1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge pull request #474 from redSpoutnik/volume-slider-requests

add 700ms timer for 'mousemove' and 'touchmove' volume listeners
This commit is contained in:
dkanada 2019-09-26 22:57:13 +09:00 committed by GitHub
commit 7d0f971fe7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1223,6 +1223,7 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med
var programEndDateMs = 0; var programEndDateMs = 0;
var playbackStartTimeTicks = 0; var playbackStartTimeTicks = 0;
var subtitleSyncOverlay; var subtitleSyncOverlay;
var volumeSliderTimer;
var nowPlayingVolumeSlider = view.querySelector(".osdVolumeSlider"); var nowPlayingVolumeSlider = view.querySelector(".osdVolumeSlider");
var nowPlayingVolumeSliderContainer = view.querySelector(".osdVolumeSliderContainer"); var nowPlayingVolumeSliderContainer = view.querySelector(".osdVolumeSliderContainer");
var nowPlayingPositionSlider = view.querySelector(".osdPositionSlider"); var nowPlayingPositionSlider = view.querySelector(".osdPositionSlider");
@ -1345,13 +1346,34 @@ define(["playbackManager", "dom", "inputmanager", "datetime", "itemHelper", "med
playbackManager.toggleMute(currentPlayer); playbackManager.toggleMute(currentPlayer);
}); });
nowPlayingVolumeSlider.addEventListener("change", function () { nowPlayingVolumeSlider.addEventListener("change", function () {
if(volumeSliderTimer){
// interupt and remove existing timer
clearTimeout(volumeSliderTimer);
volumeSliderTimer = null;
}
playbackManager.setVolume(this.value, currentPlayer); playbackManager.setVolume(this.value, currentPlayer);
}); });
nowPlayingVolumeSlider.addEventListener("mousemove", function () { 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 () { 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 () { nowPlayingPositionSlider.addEventListener("change", function () {