|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|