mirror of
https://github.com/bbara04/Purefin.git
synced 2026-03-31 17:10:08 +02:00
fix: Cannot play the same content. The previous session got stuck
This commit is contained in:
@@ -116,11 +116,16 @@ class PlayerManager @Inject constructor(
|
||||
startProgressLoop()
|
||||
}
|
||||
|
||||
fun play(mediaItem: MediaItem, mediaContext: MediaContext? = null) {
|
||||
fun play(mediaItem: MediaItem, mediaContext: MediaContext? = null, startPositionMs: Long? = null) {
|
||||
currentMediaContext = mediaContext
|
||||
if (startPositionMs != null) {
|
||||
player.setMediaItem(mediaItem, startPositionMs)
|
||||
} else {
|
||||
player.setMediaItem(mediaItem)
|
||||
}
|
||||
player.prepare()
|
||||
player.playWhenReady = true
|
||||
_progress.value = PlaybackProgressSnapshot()
|
||||
refreshMetadata(mediaItem)
|
||||
refreshQueue()
|
||||
_playbackState.update { it.copy(isEnded = false, error = null) }
|
||||
|
||||
@@ -148,10 +148,7 @@ class PlayerViewModel @Inject constructor(
|
||||
val preferenceKey = mediaRepository.episodes.value[uuid]?.seriesId?.toString() ?: id
|
||||
val mediaContext = MediaContext(mediaId = id, preferenceKey = preferenceKey)
|
||||
|
||||
playerManager.play(mediaItem, mediaContext)
|
||||
|
||||
// Seek to resume position after play() is called
|
||||
resumePositionMs?.let { playerManager.seekTo(it) }
|
||||
playerManager.play(mediaItem, mediaContext, resumePositionMs)
|
||||
|
||||
if (dataErrorMessage != null) {
|
||||
dataErrorMessage = null
|
||||
|
||||
Reference in New Issue
Block a user