fix: reset progress bar to 0:00 immediately on track skip/play in bridge mode
This commit is contained in:
1 parent
a1a4416bb6
commit
10e3e0eb1d
1 file changed
+16
-3
+16
-3
@@ -283,6 +283,7 @@ export function playCurrent() {
|
||||
if (HAS_BRIDGE) {
|
||||
// Update DOM immediately for snappy feedback; onTrackChanged will confirm.
|
||||
S._trackChanging = true;
|
||||
_resetProgressUI();
|
||||
updatePlayerUI(s, true);
|
||||
onNpSongChange(s.id);
|
||||
renderQueue();
|
||||
@@ -471,15 +472,27 @@ function _setSkipping() {
|
||||
_skipTimer = setTimeout(() => { _skipping = false; }, 2000);
|
||||
}
|
||||
|
||||
function _resetProgressUI() {
|
||||
_nativePos = 0;
|
||||
document.getElementById('progress-fill').style.width = '0%';
|
||||
document.getElementById('time-cur').textContent = formatDur(0);
|
||||
if (S.npOpen) {
|
||||
const fill = document.getElementById('np-fill');
|
||||
const cur = document.getElementById('np-cur');
|
||||
if (fill) fill.style.width = '0%';
|
||||
if (cur) cur.textContent = formatDur(0);
|
||||
}
|
||||
}
|
||||
|
||||
export function prevSong() {
|
||||
_clearPreload();
|
||||
if (HAS_BRIDGE) {
|
||||
_setSkipping();
|
||||
if (_lastPositionMs > 3000) { _nsBridge('prev'); return; }
|
||||
if (_lastPositionMs > 3000) { _resetProgressUI(); _nsBridge('prev'); return; }
|
||||
if (S.qIdx > 0) {
|
||||
S.qIdx--;
|
||||
const s = S.queue[S.qIdx];
|
||||
if (s) { updatePlayerUI(s, true); onNpSongChange(s.id); renderQueue(); }
|
||||
if (s) { _resetProgressUI(); updatePlayerUI(s, true); onNpSongChange(s.id); renderQueue(); }
|
||||
}
|
||||
_nsBridge('prev');
|
||||
return;
|
||||
@@ -496,7 +509,7 @@ export function nextSong() {
|
||||
if (ni >= 0 && ni < S.queue.length) {
|
||||
S.qIdx = ni;
|
||||
const s = S.queue[S.qIdx];
|
||||
if (s) { updatePlayerUI(s, true); onNpSongChange(s.id); renderQueue(); }
|
||||
if (s) { _resetProgressUI(); updatePlayerUI(s, true); onNpSongChange(s.id); renderQueue(); }
|
||||
}
|
||||
_nsBridge('next');
|
||||
if (S.radioMode && S.queue.length - S.qIdx < 5) fillRadioQueue();
|
||||
|
||||
Reference in new issue
Block a user