diff --git a/src/player.js b/src/player.js index 1e712b5..2460cd8 100644 --- a/src/player.js +++ b/src/player.js @@ -98,9 +98,17 @@ window.NSPlayer = { onPlaybackStateChanged(stateJson) { try { const state = JSON.parse(stateJson); - if (state.isPlaying) { _skipping = false; clearTimeout(_skipTimer); } - // Suppress the transient isPlaying:false emitted by the native player during track transitions. - if (!state.isPlaying && _skipping) return; + if (_skipping) { + if (state.isPlaying) { + // isPlaying:true during skip/seek — restart grace period instead of clearing immediately, + // so a follow-up buffering false event is also suppressed. + clearTimeout(_skipTimer); + _skipTimer = setTimeout(() => { _skipping = false; }, 600); + } else { + // Suppress transient isPlaying:false during track transitions / seeks. + return; + } + } const prev = _nativePlaying; _nativePlaying = state.isPlaying; if (state.isPlaying !== prev) {