fix: pwa changes

This commit is contained in:
Honey committed 2026-05-02 21:27:57 +02:00
1 parent 89abc81875
commit a5959b19b8
3 files changed
+10 -2

No files matched your search

+2 -1
View File
@@ -118,7 +118,8 @@ window.addEventListener('load', () => {
S.audio.addEventListener('pause', () => { S.audio.addEventListener('pause', () => {
setPlayIcon(false); setPlayIcon(false);
document.getElementById('player-art').classList.remove('spinning'); document.getElementById('player-art').classList.remove('spinning');
if(navigator.mediaSession) navigator.mediaSession.playbackState = 'paused'; // Skip during track transitions — src change fires pause but we're about to play() immediately
if(!S._changingTrack && navigator.mediaSession) navigator.mediaSession.playbackState = 'paused';
}); });
S.previewAudio.addEventListener('timeupdate', updatePreviewProgress); S.previewAudio.addEventListener('timeupdate', updatePreviewProgress);
S.previewAudio.addEventListener('ended', stopPreview); S.previewAudio.addEventListener('ended', stopPreview);
+7 -1
View File
@@ -17,8 +17,14 @@ export function playQueue(songs, startIdx) {
export function playCurrent() { export function playCurrent() {
if(S.qIdx < 0 || S.qIdx >= S.queue.length) return; if(S.qIdx < 0 || S.qIdx >= S.queue.length) return;
const s = S.queue[S.qIdx]; const s = S.queue[S.qIdx];
// Pre-update MediaSession before src change so the OS never sees a "paused" flash
// (setting src fires pause synchronously; _changingTrack suppresses that in the pause handler)
updateMediaSession(s);
if(navigator.mediaSession) navigator.mediaSession.playbackState = 'playing';
S._changingTrack = true;
S.audio.src = streamUrl(s.id); S.audio.src = streamUrl(s.id);
S.audio.play(); S._changingTrack = false;
S.audio.play().catch(() => {});
updatePlayerUI(s); updatePlayerUI(s);
onNpSongChange(s.id); onNpSongChange(s.id);
renderQueue(); renderQueue();
+1
View File
@@ -12,6 +12,7 @@ export const S = {
previewAudio: null, previewAudio: null,
previewCurrent: null, previewCurrent: null,
_scrubbing: false, _scrubbing: false,
_changingTrack: false,
_msPosLast: 0, _msPosLast: 0,
queueOpen: false, queueOpen: false,