diff --git a/src/abs.js b/src/abs.js index f0375eb..d9c1c1e 100644 --- a/src/abs.js +++ b/src/abs.js @@ -110,6 +110,7 @@ async function absCloseSession(sessionId) { // ─── PLAYER INTERNALS ─── let _audio = null; let _syncTimer = null; +let _absMiniVisible = false; // true = ABS bar covers the music player, only toggled on play start let _sleepTimer = null; let _sleepEndTime = null; let _sleepTick = null; @@ -119,7 +120,7 @@ function _getAudio() { _audio = document.getElementById('abs-audio'); _audio.addEventListener('timeupdate', _onTimeUpdate); _audio.addEventListener('ended', _onTrackEnded); - _audio.addEventListener('play', () => { S.absPlayer.playing = true; _renderControls(); _startSync(); }); + _audio.addEventListener('play', () => { S.absPlayer.playing = true; _absMiniVisible = true; _renderControls(); _startSync(); }); _audio.addEventListener('pause', () => { S.absPlayer.playing = false; _renderControls(); _doSync(); }); } return _audio; @@ -263,12 +264,8 @@ export function absTogglePlay() { export function absInterrupt() { if (!S.absPlayer.item || !S.absPlayer.playing) return; - _getAudio().pause(); // triggers the pause listener which calls _doSync() -} - -export function absOnMusicPause() { - // When music pauses, re-evaluate mini bar visibility (ABS bar should reappear) - if (S.absPlayer.item) _renderMiniBar(); + _absMiniVisible = false; // music is taking over — hide ABS bar until ABS plays again + _getAudio().pause(); } export function absSeek(globalTime) { @@ -409,8 +406,7 @@ function _renderMiniBar() { const ap = S.absPlayer; const bar = document.getElementById('abs-mini-bar'); if (!bar) return; - // Hide when no ABS item loaded, or when music is actively playing - if (!ap.item || (S.audio && !S.audio.paused)) { bar.classList.remove('visible'); return; } + if (!ap.item || !_absMiniVisible) { bar.classList.remove('visible'); return; } bar.classList.add('visible'); const meta = ap.item?.media?.metadata || {}; const cover = absCoverUrl(ap.item?.id); diff --git a/src/main.js b/src/main.js index 34ac137..c98edf0 100644 --- a/src/main.js +++ b/src/main.js @@ -24,7 +24,7 @@ import { absSetSpeed, absSleepIn, absOpenPlayer, absClosePlayer, absToggleChapters, absToggleSpeedPicker, absToggleSleepPicker, absSeekToChapter, absProgDown, absProgMove, absProgUp, loadAbsBooks, absOpenBook, loadAbsBookDetail, absPlayChapter, - absLoadSettingsLibraries, absToggleChapterTrack, absInterrupt, absOnMusicPause, + absLoadSettingsLibraries, absToggleChapterTrack, absInterrupt, } from './abs.js'; import { openNowPlaying, closeNowPlaying, switchNpTab, npGoArtist, npGoAlbum, @@ -135,7 +135,6 @@ window.addEventListener('load', () => { setPlayIcon(false); document.getElementById('player-art').classList.remove('spinning'); if(navigator.mediaSession) navigator.mediaSession.playbackState = 'paused'; - absOnMusicPause(); }); S.previewAudio.addEventListener('timeupdate', updatePreviewProgress); S.previewAudio.addEventListener('ended', stopPreview);