mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 10:31:47 +00:00
simplify playback rate steps
This commit is contained in:
@ -7,23 +7,11 @@ const slider = ElementFromFile(templatePath(__dirname, "slider.html"));
|
||||
|
||||
const roundToTwo = (n) => Math.round( n * 1e2 ) / 1e2;
|
||||
|
||||
const MIN_PLAYBACK_SPEED = 0.25;
|
||||
const MAX_PLAYBACK_SPEED = 2;
|
||||
const MIN_PLAYBACK_SPEED = 0.07;
|
||||
|
||||
let playbackSpeed = 1;
|
||||
|
||||
const computePlayBackSpeed = (playbackSpeedPercentage) => {
|
||||
if (playbackSpeedPercentage <= 50) { // = Playback speed <= 1
|
||||
// Slow down video by setting a playback speed between MIN_PLAYBACK_SPEED and 1
|
||||
return (
|
||||
MIN_PLAYBACK_SPEED +
|
||||
((1 - MIN_PLAYBACK_SPEED) / 50) * playbackSpeedPercentage
|
||||
).toFixed(2);
|
||||
}
|
||||
|
||||
// Accelerate video by setting a playback speed between 1 and MAX_PLAYBACK_SPEED
|
||||
return roundToTwo(1 + ((MAX_PLAYBACK_SPEED - 1) / 50) * (playbackSpeedPercentage - 50));
|
||||
};
|
||||
const computePlayBackSpeed = (playbackSpeedPercentage) => playbackSpeedPercentage || MIN_PLAYBACK_SPEED;
|
||||
|
||||
const updatePlayBackSpeed = () => {
|
||||
$('video').playbackRate = playbackSpeed;
|
||||
@ -67,15 +55,18 @@ const setupSliderListeners = () => {
|
||||
updatePlayBackSpeed();
|
||||
})
|
||||
slider.addEventListener('wheel', e => {
|
||||
if (playbackSpeed <= 0.07) return; // lowest possible speed
|
||||
e.preventDefault();
|
||||
if (isNaN(playbackSpeed)) {
|
||||
playbackSpeed = 1;
|
||||
}
|
||||
// e.deltaY < 0 means wheel-up
|
||||
playbackSpeed = roundToTwo(e.deltaY < 0 ? playbackSpeed + 0.01 : playbackSpeed - 0.01);
|
||||
playbackSpeed = roundToTwo(e.deltaY < 0 ?
|
||||
playbackSpeed + 0.01 :
|
||||
Math.max(playbackSpeed - 0.01, MIN_PLAYBACK_SPEED));
|
||||
|
||||
updatePlayBackSpeed();
|
||||
$('#playback-speed-slider').value = playbackSpeed * 50;
|
||||
// update slider position
|
||||
$('#playback-speed-slider').value = playbackSpeed;
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user