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.
wubloader/thrimbletrimmer/scripts/keyboardShortcuts.js

100 lines
3.2 KiB
JavaScript

function changeSpeed(direction) {
var speeds = [0.5, 1, 1.25, 1.5, 2];
var currentIndex = speeds.indexOf(player.playbackRate());
if (currentIndex < 0) {
// not present
return;
}
var 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;
}
}
// const keyName = event.key;
// console.log('keypress event\n\n' + 'key: ' + keyName);
// console.log(event.target.nodeName);
});
//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;
}
}
});