fix: Player switching
This commit is contained in:
1 parent
0d8b8b6f5d
commit
4b07203082
2 files changed
+6
-11
No files matched your search
+5
-9
@@ -110,6 +110,7 @@ async function absCloseSession(sessionId) {
|
|||||||
// ─── PLAYER INTERNALS ───
|
// ─── PLAYER INTERNALS ───
|
||||||
let _audio = null;
|
let _audio = null;
|
||||||
let _syncTimer = null;
|
let _syncTimer = null;
|
||||||
|
let _absMiniVisible = false; // true = ABS bar covers the music player, only toggled on play start
|
||||||
let _sleepTimer = null;
|
let _sleepTimer = null;
|
||||||
let _sleepEndTime = null;
|
let _sleepEndTime = null;
|
||||||
let _sleepTick = null;
|
let _sleepTick = null;
|
||||||
@@ -119,7 +120,7 @@ function _getAudio() {
|
|||||||
_audio = document.getElementById('abs-audio');
|
_audio = document.getElementById('abs-audio');
|
||||||
_audio.addEventListener('timeupdate', _onTimeUpdate);
|
_audio.addEventListener('timeupdate', _onTimeUpdate);
|
||||||
_audio.addEventListener('ended', _onTrackEnded);
|
_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(); });
|
_audio.addEventListener('pause', () => { S.absPlayer.playing = false; _renderControls(); _doSync(); });
|
||||||
}
|
}
|
||||||
return _audio;
|
return _audio;
|
||||||
@@ -263,12 +264,8 @@ export function absTogglePlay() {
|
|||||||
|
|
||||||
export function absInterrupt() {
|
export function absInterrupt() {
|
||||||
if (!S.absPlayer.item || !S.absPlayer.playing) return;
|
if (!S.absPlayer.item || !S.absPlayer.playing) return;
|
||||||
_getAudio().pause(); // triggers the pause listener which calls _doSync()
|
_absMiniVisible = false; // music is taking over — hide ABS bar until ABS plays again
|
||||||
}
|
_getAudio().pause();
|
||||||
|
|
||||||
export function absOnMusicPause() {
|
|
||||||
// When music pauses, re-evaluate mini bar visibility (ABS bar should reappear)
|
|
||||||
if (S.absPlayer.item) _renderMiniBar();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function absSeek(globalTime) {
|
export function absSeek(globalTime) {
|
||||||
@@ -409,8 +406,7 @@ function _renderMiniBar() {
|
|||||||
const ap = S.absPlayer;
|
const ap = S.absPlayer;
|
||||||
const bar = document.getElementById('abs-mini-bar');
|
const bar = document.getElementById('abs-mini-bar');
|
||||||
if (!bar) return;
|
if (!bar) return;
|
||||||
// Hide when no ABS item loaded, or when music is actively playing
|
if (!ap.item || !_absMiniVisible) { bar.classList.remove('visible'); return; }
|
||||||
if (!ap.item || (S.audio && !S.audio.paused)) { bar.classList.remove('visible'); return; }
|
|
||||||
bar.classList.add('visible');
|
bar.classList.add('visible');
|
||||||
const meta = ap.item?.media?.metadata || {};
|
const meta = ap.item?.media?.metadata || {};
|
||||||
const cover = absCoverUrl(ap.item?.id);
|
const cover = absCoverUrl(ap.item?.id);
|
||||||
|
|||||||
+1
-2
@@ -24,7 +24,7 @@ import {
|
|||||||
absSetSpeed, absSleepIn, absOpenPlayer, absClosePlayer, absToggleChapters,
|
absSetSpeed, absSleepIn, absOpenPlayer, absClosePlayer, absToggleChapters,
|
||||||
absToggleSpeedPicker, absToggleSleepPicker, absSeekToChapter, absProgDown, absProgMove,
|
absToggleSpeedPicker, absToggleSleepPicker, absSeekToChapter, absProgDown, absProgMove,
|
||||||
absProgUp, loadAbsBooks, absOpenBook, loadAbsBookDetail, absPlayChapter,
|
absProgUp, loadAbsBooks, absOpenBook, loadAbsBookDetail, absPlayChapter,
|
||||||
absLoadSettingsLibraries, absToggleChapterTrack, absInterrupt, absOnMusicPause,
|
absLoadSettingsLibraries, absToggleChapterTrack, absInterrupt,
|
||||||
} from './abs.js';
|
} from './abs.js';
|
||||||
import {
|
import {
|
||||||
openNowPlaying, closeNowPlaying, switchNpTab, npGoArtist, npGoAlbum,
|
openNowPlaying, closeNowPlaying, switchNpTab, npGoArtist, npGoAlbum,
|
||||||
@@ -135,7 +135,6 @@ window.addEventListener('load', () => {
|
|||||||
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';
|
if(navigator.mediaSession) navigator.mediaSession.playbackState = 'paused';
|
||||||
absOnMusicPause();
|
|
||||||
});
|
});
|
||||||
S.previewAudio.addEventListener('timeupdate', updatePreviewProgress);
|
S.previewAudio.addEventListener('timeupdate', updatePreviewProgress);
|
||||||
S.previewAudio.addEventListener('ended', stopPreview);
|
S.previewAudio.addEventListener('ended', stopPreview);
|
||||||
|
|||||||
Reference in new issue
Block a user