Fix playback scrubbing not working if playback is stopped

This commit is contained in:
Florian Renaud 2023-01-17 15:32:44 +01:00
parent 6b98b3023e
commit 960bb77c2f
2 changed files with 11 additions and 9 deletions

1
changelog.d/7961.bugfix Normal file
View file

@ -0,0 +1 @@
Voice Broadcast - Fix playback scrubbing not working if the playback is in a stopped state

View file

@ -182,15 +182,16 @@ class VoiceBroadcastPlayerImpl @Inject constructor(
}
}
State.Buffering -> {
val nextItem = if (isLiveListening && playlist.currentSequence == null) {
// live listening, jump to the last item if playback has not started
playlist.lastOrNull()
} else {
// not live or playback already started, request next item
playlist.getNextItem()
}
if (nextItem != null) {
startPlayback(nextItem.startTime)
val savedPosition = currentVoiceBroadcast?.voiceBroadcastId?.let { playbackTracker.getPlaybackTime(it) }
when {
// resume playback from the next sequence item
playlist.currentSequence != null -> playlist.getNextItem()?.let { startPlayback(it.startTime) }
// resume playback from the saved position, if any
savedPosition != null -> startPlayback(savedPosition)
// live listening, jump to the last item
isLiveListening -> playlist.lastOrNull()?.let { startPlayback(it.startTime) }
// start playback from the beginning
else -> startPlayback(0)
}
}
is State.Error -> Unit