diff --git a/src/controllers/videoosd.js b/src/controllers/videoosd.js index c37cbc3ce9..8a6d1ffdf7 100644 --- a/src/controllers/videoosd.js +++ b/src/controllers/videoosd.js @@ -1223,6 +1223,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med var programEndDateMs = 0; var playbackStartTimeTicks = 0; var subtitleSyncOverlay; + var volumeSliderTimer; var nowPlayingVolumeSlider = view.querySelector(".osdVolumeSlider"); var nowPlayingVolumeSliderContainer = view.querySelector(".osdVolumeSliderContainer"); var nowPlayingPositionSlider = view.querySelector(".osdPositionSlider"); @@ -1345,13 +1346,34 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med playbackManager.toggleMute(currentPlayer); }); nowPlayingVolumeSlider.addEventListener("change", function () { + if(volumeSliderTimer){ + // interupt and remove existing timer + clearTimeout(volumeSliderTimer); + volumeSliderTimer = null; + } playbackManager.setVolume(this.value, currentPlayer); }); nowPlayingVolumeSlider.addEventListener("mousemove", function () { - playbackManager.setVolume(this.value, currentPlayer); + if(!volumeSliderTimer){ + var that = this; + // register new timer + volumeSliderTimer = setTimeout(function(){ + playbackManager.setVolume(that.value, currentPlayer); + // delete timer after completion + volumeSliderTimer = null; + }, 700); + } }); nowPlayingVolumeSlider.addEventListener("touchmove", function () { - playbackManager.setVolume(this.value, currentPlayer); + if(!volumeSliderTimer){ + var that = this; + // register new timer + volumeSliderTimer = setTimeout(function(){ + playbackManager.setVolume(that.value, currentPlayer); + // delete timer after completion + volumeSliderTimer = null; + }, 700); + } }); nowPlayingPositionSlider.addEventListener("change", function () {