diff --git a/airsonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp b/airsonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp
index 20815780..289a9724 100644
--- a/airsonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp
+++ b/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() {
if (CastPlayer.castSession) {
CastPlayer.playCast();
} else if ($('#audioPlayer').get(0)) {
- var audioPlayer = $('#audioPlayer');
- if(audioPlayer.paused) {
- skip(0, audioPlayer.currentTime);
+ if ($('#audioPlayer').get(0).src) {
+ $('#audioPlayer').get(0).play(); // Resume playing if the player was paused
+ }
+ else {
+ skip(0); // Start the first track if the player was not yet loaded
}
} else {
playQueueService.start(playQueueCallback);
@@ -205,8 +207,9 @@
var playing = CastPlayer.mediaSession && CastPlayer.mediaSession.playerState == chrome.cast.media.PlayerState.PLAYING;
if (playing) onStop();
else onStart();
- } else if ($('#audioPlayer')) {
- if (!$('#audioPlayer').get(0).paused) onStop();
+ } else if ($('#audioPlayer').get(0)) {
+ var playing = $("#audioPlayer").get(0).paused != null && !$("#audioPlayer").get(0).paused;
+ if (playing) onStop();
else onStart();
} else {
playQueueService.toggleStartStop(playQueueCallback);
@@ -237,11 +240,11 @@
if (volume < 0) volume = 0;
CastPlayer.setCastVolume(volume / 100, false);
$("#castVolume").slider("option", "value", volume); // Need to update UI
- } else if ($('#audioPlayer')) {
- var volume = parseInt($('#audioPlayer').get(0).volume) + gain;
+ } else if ($('#audioPlayer').get(0)) {
+ var volume = parseFloat($('#audioPlayer').get(0).volume)*100 + gain;
if (volume > 100) volume = 100;
if (volume < 0) volume = 0;
- $('#audioPlayer').get(0).volume = volume;
+ $('#audioPlayer').get(0).volume = volume / 100;
} else {
var volume = parseInt($("#jukeboxVolume").slider("option", "value")) + gain;
if (volume > 100) volume = 100;
@@ -360,7 +363,7 @@
playQueueService.sortByAlbum(playQueueCallback);
}
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);
$().toastmessage("showSuccessToast", "");
}
@@ -542,10 +545,13 @@
if (CastPlayer.castSession) {
CastPlayer.loadCastMedia(song, position);
} else {
- $('#audioPlayer').get(0).src = song.streamUrl;
- $('#audioPlayer').get(0).load();
+ if ($('#audioPlayer').get(0).src != song.streamUrl) {
+ $('#audioPlayer').get(0).src = song.streamUrl;
+ $('#audioPlayer').get(0).load();
+ console.log(song.streamUrl);
+ }
+ $('#audioPlayer').get(0).currentTime = position ? position : 0;
$('#audioPlayer').get(0).play();
- console.log(song.streamUrl);
}
updateWindowTitle(song);
@@ -689,7 +695,7 @@
|