Merge branch 'tuukkao-seek-keyboard-shortcuts' into develop
This commit is contained in:
@@ -71,6 +71,8 @@ _LMS_ supports lyrics in `lrc` files, `txt` files, and embedded track metadata.
|
|||||||
* Next track: <kbd>Ctrl</kbd> + <kbd>Right</kbd>
|
* Next track: <kbd>Ctrl</kbd> + <kbd>Right</kbd>
|
||||||
* Decrease volume: <kbd>Ctrl</kbd> + <kbd>Down</kbd>
|
* Decrease volume: <kbd>Ctrl</kbd> + <kbd>Down</kbd>
|
||||||
* Increase volume: <kbd>Ctrl</kbd> + <kbd>Up</kbd>
|
* Increase volume: <kbd>Ctrl</kbd> + <kbd>Up</kbd>
|
||||||
|
* Seek back by 5 seconds: <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Left</kbd>
|
||||||
|
* Seek forward by 5 seconds: <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Right</kbd>
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ Object.freeze(Mode);
|
|||||||
// How much to increase / decrease volume when adjusting it with keyboard shortcuts
|
// How much to increase / decrease volume when adjusting it with keyboard shortcuts
|
||||||
const volumeStepAmount = 0.05;
|
const volumeStepAmount = 0.05;
|
||||||
|
|
||||||
|
// How much to seek back / forward (in seconds) with keyboard shortcuts
|
||||||
|
const seekAmount = 5;
|
||||||
|
|
||||||
LMS.mediaplayer = function () {
|
LMS.mediaplayer = function () {
|
||||||
let _root = {};
|
let _root = {};
|
||||||
let _elems = {};
|
let _elems = {};
|
||||||
@@ -245,6 +248,18 @@ LMS.mediaplayer = function () {
|
|||||||
_updateMediaSessionState();
|
_updateMediaSessionState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let _seekBack = function() {
|
||||||
|
let currentPosition = _offset + _elems.audio.currentTime;
|
||||||
|
let newPosition = currentPosition - seekAmount;
|
||||||
|
_seekTo(Math.max(newPosition, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
let _seekForward = function() {
|
||||||
|
let currentPosition = _offset + _elems.audio.currentTime;
|
||||||
|
let newPosition = currentPosition + seekAmount;
|
||||||
|
_seekTo(Math.min(newPosition, _duration));
|
||||||
|
}
|
||||||
|
|
||||||
let _updateMediaSessionState = function() {
|
let _updateMediaSessionState = function() {
|
||||||
if ("mediaSession" in navigator) {
|
if ("mediaSession" in navigator) {
|
||||||
navigator.mediaSession.setPositionState({
|
navigator.mediaSession.setPositionState({
|
||||||
@@ -346,11 +361,11 @@ LMS.mediaplayer = function () {
|
|||||||
_playPause();
|
_playPause();
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
else if (event.ctrlKey && event.keyCode == 37) {
|
else if (event.ctrlKey && !event.shiftKey && event.keyCode == 37) {
|
||||||
_playPrevious();
|
_playPrevious();
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
else if (event.ctrlKey && event.keyCode == 39) {
|
else if (event.ctrlKey && !event.shiftKey && event.keyCode == 39) {
|
||||||
_playNext();
|
_playNext();
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
@@ -362,6 +377,14 @@ LMS.mediaplayer = function () {
|
|||||||
_stepVolumeUp();
|
_stepVolumeUp();
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
|
else if (event.ctrlKey && event.shiftKey && event.keyCode == 37) {
|
||||||
|
_seekBack();
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
else if (event.ctrlKey && event.shiftKey && event.keyCode == 39) {
|
||||||
|
_seekForward();
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (handled)
|
if (handled)
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user