PlayQueue: Fix broken keyboard shortcuts

Using the "space" key to resume playback, as well as +/- to
increase/decrease volume, were not working properly.
master
François-Xavier Thomas 6 years ago
parent 77ca475fbe
commit 21eff917b6
  1. 30
      airsonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp

@ -167,15 +167,17 @@
} }
/** /**
* Start playing from the current playlist * Start/resume playing from the current playlist
*/ */
function onStart() { function onStart() {
if (CastPlayer.castSession) { if (CastPlayer.castSession) {
CastPlayer.playCast(); CastPlayer.playCast();
} else if ($('#audioPlayer').get(0)) { } else if ($('#audioPlayer').get(0)) {
var audioPlayer = $('#audioPlayer'); if ($('#audioPlayer').get(0).src) {
if(audioPlayer.paused) { $('#audioPlayer').get(0).play(); // Resume playing if the player was paused
skip(0, audioPlayer.currentTime); }
else {
skip(0); // Start the first track if the player was not yet loaded
} }
} else { } else {
playQueueService.start(playQueueCallback); playQueueService.start(playQueueCallback);
@ -205,8 +207,9 @@
var playing = CastPlayer.mediaSession && CastPlayer.mediaSession.playerState == chrome.cast.media.PlayerState.PLAYING; var playing = CastPlayer.mediaSession && CastPlayer.mediaSession.playerState == chrome.cast.media.PlayerState.PLAYING;
if (playing) onStop(); if (playing) onStop();
else onStart(); else onStart();
} else if ($('#audioPlayer')) { } else if ($('#audioPlayer').get(0)) {
if (!$('#audioPlayer').get(0).paused) onStop(); var playing = $("#audioPlayer").get(0).paused != null && !$("#audioPlayer").get(0).paused;
if (playing) onStop();
else onStart(); else onStart();
} else { } else {
playQueueService.toggleStartStop(playQueueCallback); playQueueService.toggleStartStop(playQueueCallback);
@ -237,11 +240,11 @@
if (volume < 0) volume = 0; if (volume < 0) volume = 0;
CastPlayer.setCastVolume(volume / 100, false); CastPlayer.setCastVolume(volume / 100, false);
$("#castVolume").slider("option", "value", volume); // Need to update UI $("#castVolume").slider("option", "value", volume); // Need to update UI
} else if ($('#audioPlayer')) { } else if ($('#audioPlayer').get(0)) {
var volume = parseInt($('#audioPlayer').get(0).volume) + gain; var volume = parseFloat($('#audioPlayer').get(0).volume)*100 + gain;
if (volume > 100) volume = 100; if (volume > 100) volume = 100;
if (volume < 0) volume = 0; if (volume < 0) volume = 0;
$('#audioPlayer').get(0).volume = volume; $('#audioPlayer').get(0).volume = volume / 100;
} else { } else {
var volume = parseInt($("#jukeboxVolume").slider("option", "value")) + gain; var volume = parseInt($("#jukeboxVolume").slider("option", "value")) + gain;
if (volume > 100) volume = 100; if (volume > 100) volume = 100;
@ -360,7 +363,7 @@
playQueueService.sortByAlbum(playQueueCallback); playQueueService.sortByAlbum(playQueueCallback);
} }
function onSavePlayQueue() { function onSavePlayQueue() {
var positionMillis = $('#audioPlayer') ? Math.round(1000.0 * $('#audioPlayer').get(0).currentTime) : 0; var positionMillis = $('#audioPlayer').get(0) ? Math.round(1000.0 * $('#audioPlayer').get(0).currentTime) : 0;
playQueueService.savePlayQueue(getCurrentSongIndex(), positionMillis); playQueueService.savePlayQueue(getCurrentSongIndex(), positionMillis);
$().toastmessage("showSuccessToast", "<fmt:message key="playlist.toast.saveplayqueue"/>"); $().toastmessage("showSuccessToast", "<fmt:message key="playlist.toast.saveplayqueue"/>");
} }
@ -542,11 +545,14 @@
if (CastPlayer.castSession) { if (CastPlayer.castSession) {
CastPlayer.loadCastMedia(song, position); CastPlayer.loadCastMedia(song, position);
} else { } else {
if ($('#audioPlayer').get(0).src != song.streamUrl) {
$('#audioPlayer').get(0).src = song.streamUrl; $('#audioPlayer').get(0).src = song.streamUrl;
$('#audioPlayer').get(0).load(); $('#audioPlayer').get(0).load();
$('#audioPlayer').get(0).play();
console.log(song.streamUrl); console.log(song.streamUrl);
} }
$('#audioPlayer').get(0).currentTime = position ? position : 0;
$('#audioPlayer').get(0).play();
}
updateWindowTitle(song); updateWindowTitle(song);
@ -689,7 +695,7 @@
<c:if test="${model.player.web}"> <c:if test="${model.player.web}">
<td> <td>
<div id="player" style="width:340px; height:40px;padding-right:10px"> <div id="player" style="width:340px; height:40px;padding-right:10px">
<audio id="audioPlayer" class="mejs__player" data-mejsoptions='{"alwaysShowControls": "true"}' width="340px" height"40px"/> <audio id="audioPlayer" class="mejs__player" data-mejsoptions='{"alwaysShowControls": true, "enableKeyboard": false}' width="340px" height"40px" tabindex="-1" />
</div> </div>
<div id="castPlayer" style="display: none"> <div id="castPlayer" style="display: none">
<div style="float:left"> <div style="float:left">

Loading…
Cancel
Save