fixed stopAfterCurrent bug

This commit is contained in:
Siiiiinth
2025-12-26 23:09:44 +01:00
parent 76bb347496
commit 68b7456b31
2 changed files with 6 additions and 6 deletions
+1 -6
View File
@@ -339,11 +339,6 @@ func (p *playbackEngine) Stop() error {
func (p *playbackEngine) SetStopAfterCurrent(stopAfterCurrent bool) {
p.stopAfterCurrent = stopAfterCurrent
if p.stopAfterCurrent {
p.setNextTrack(-1) // clear next playing track from internal player, if any
} else if p.loopMode != LoopNone || p.nowPlayingIdx < len(p.playQueue)-1 {
p.needToSetNextTrack = true // need to restore next track to internal player queue
}
}
func (p *playbackEngine) Pause() error {
@@ -868,7 +863,7 @@ func (p *playbackEngine) handleTimePosUpdate(seeked bool) {
meta = np.Metadata()
}
isNearEnd := meta.Type != mediaprovider.MediaItemTypeRadioStation && s.TimePos > meta.Duration.Seconds()-10
if p.needToSetNextTrack && !p.stopAfterCurrent && isNearEnd {
if p.needToSetNextTrack && isNearEnd {
p.needToSetNextTrack = false
p.setNextTrack(p.nextPlayingIndex())
}
+5
View File
@@ -134,6 +134,11 @@ func (p *PlaybackManager) addOnTrackChangeHook() {
log.Println("Play stall detected!")
p.cmdQueue.addCommand(playbackCommand{Type: cmdForceRestartPlayback})
}
if p.engine.stopAfterCurrent {
p.Pause()
p.engine.SetStopAfterCurrent(false)
}
}()
}
})