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