diff --git a/media_server/static/index.html b/media_server/static/index.html
index b325a01..93d7f51 100644
--- a/media_server/static/index.html
+++ b/media_server/static/index.html
@@ -1395,6 +1395,7 @@
let currentDuration = 0;
let currentPosition = 0;
let isUserAdjustingVolume = false;
+ let volumeUpdateTimer = null; // Timer for throttling volume updates
let scripts = [];
let lastStatus = null; // Store last status for locale switching
@@ -1431,9 +1432,25 @@
isUserAdjustingVolume = true;
const volume = parseInt(e.target.value);
document.getElementById('volume-display').textContent = `${volume}%`;
+
+ // Throttle volume updates while dragging (update every 50ms)
+ if (volumeUpdateTimer) {
+ clearTimeout(volumeUpdateTimer);
+ }
+ volumeUpdateTimer = setTimeout(() => {
+ setVolume(volume);
+ volumeUpdateTimer = null;
+ }, 50);
});
volumeSlider.addEventListener('change', (e) => {
+ // Clear any pending throttled update
+ if (volumeUpdateTimer) {
+ clearTimeout(volumeUpdateTimer);
+ volumeUpdateTimer = null;
+ }
+
+ // Send final volume update immediately
const volume = parseInt(e.target.value);
setVolume(volume);
setTimeout(() => { isUserAdjustingVolume = false; }, 500);