Merge pull request #896 from Tim-Kaiser/ISSUE-895

Fix #895: Fix crash on track change and scrobble
This commit is contained in:
tk
2026-04-05 09:53:30 -07:00
committed by GitHub
parent 8fa6113969
commit 6aa53d6cfe
+4 -2
View File
@@ -262,6 +262,7 @@ func (p *playbackEngine) getPlayQueueLength() int {
} }
func (p *playbackEngine) clearPlayQueue() { func (p *playbackEngine) clearPlayQueue() {
p.checkScrobble()
p.player.Stop(false) p.player.Stop(false)
p.nowPlayingIdx = -1 p.nowPlayingIdx = -1
p.playQueue = nil p.playQueue = nil
@@ -576,12 +577,13 @@ func (p *playbackEngine) LoadItems(items []mediaprovider.MediaItem, insertQueueM
return p.doLoaditems(newItems, insertQueueMode, shuffle) return p.doLoaditems(newItems, insertQueueMode, shuffle)
} }
// Load items into the play queue. // Load items into the play queue and play the track at idx.
// If replacing the current queue (!appendToQueue), playback will be stopped. // Replaces the playQueue, shuffledPlayQueue, or both
func (p *playbackEngine) LoadItemsAndPlayAtIdx(items []mediaprovider.MediaItem, shuffle bool, idx int) error { func (p *playbackEngine) LoadItemsAndPlayAtIdx(items []mediaprovider.MediaItem, shuffle bool, idx int) error {
newItems := deepCopyMediaItemSlice(items) newItems := deepCopyMediaItemSlice(items)
if p.shuffle || shuffle { if p.shuffle || shuffle {
p.clearPlayQueue()
rand.Shuffle(len(newItems), func(i, j int) { rand.Shuffle(len(newItems), func(i, j int) {
newItems[i], newItems[j] = newItems[j], newItems[i] newItems[i], newItems[j] = newItems[j], newItems[i]
}) })