mirror of https://github.com/ekimekim/wubloader
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.4 KiB
JavaScript
99 lines
2.4 KiB
JavaScript
function changeSpeed(direction) {
|
|
const speeds = [0.5, 1, 1.25, 1.5, 2];
|
|
const currentIndex = speeds.indexOf(player.playbackRate());
|
|
if (currentIndex < 0) {
|
|
// not present
|
|
return;
|
|
}
|
|
const newIndex = currentIndex + direction;
|
|
if (newIndex < 0 || newIndex >= speeds.length) {
|
|
// out of range
|
|
return;
|
|
}
|
|
player.playbackRate(speeds[newIndex]);
|
|
}
|
|
|
|
document.addEventListener("keypress", event => {
|
|
//if(event.target.nodeName == "BODY") {
|
|
if (event.target.nodeName !== "INPUT" && event.target.nodeName !== "TEXTAREA") {
|
|
switch (event.key) {
|
|
case "j":
|
|
player.currentTime(player.currentTime() - 10);
|
|
break;
|
|
case "k":
|
|
case " ": // also pause on space
|
|
player.paused() ? player.play() : player.pause();
|
|
break;
|
|
case "l":
|
|
player.currentTime(player.currentTime() + 10);
|
|
break;
|
|
case ",":
|
|
player.currentTime(player.currentTime() - 0.1);
|
|
break;
|
|
case ".":
|
|
player.currentTime(player.currentTime() + 0.1);
|
|
break;
|
|
case "i":
|
|
player
|
|
.trimmingControls()
|
|
.updateTrimTimes(player.currentTime(), player.trimmingControls().options.endTrim);
|
|
break;
|
|
case "o":
|
|
player
|
|
.trimmingControls()
|
|
.updateTrimTimes(player.trimmingControls().options.startTrim, player.currentTime());
|
|
break;
|
|
case "=":
|
|
changeSpeed(1);
|
|
break;
|
|
case "-":
|
|
changeSpeed(-1);
|
|
break;
|
|
case "0":
|
|
player.currentTime(0);
|
|
break;
|
|
case "1":
|
|
player.currentTime(player.duration() * 0.1);
|
|
break;
|
|
case "2":
|
|
player.currentTime(player.duration() * 0.2);
|
|
break;
|
|
case "3":
|
|
player.currentTime(player.duration() * 0.3);
|
|
break;
|
|
case "4":
|
|
player.currentTime(player.duration() * 0.4);
|
|
break;
|
|
case "5":
|
|
player.currentTime(player.duration() * 0.5);
|
|
break;
|
|
case "6":
|
|
player.currentTime(player.duration() * 0.6);
|
|
break;
|
|
case "7":
|
|
player.currentTime(player.duration() * 0.7);
|
|
break;
|
|
case "8":
|
|
player.currentTime(player.duration() * 0.8);
|
|
break;
|
|
case "9":
|
|
player.currentTime(player.duration() * 0.9);
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
|
|
//Arrow keys only detected on keydown, keypress only works in "some" browsers
|
|
document.addEventListener("keydown", event => {
|
|
if (event.target.nodeName !== "INPUT" && event.target.nodeName !== "TEXTAREA") {
|
|
switch (event.keyCode) {
|
|
case 37:
|
|
player.currentTime(player.currentTime() - 5);
|
|
break;
|
|
case 39:
|
|
player.currentTime(player.currentTime() + 5);
|
|
break;
|
|
}
|
|
}
|
|
});
|