mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-17 07:21:58 +00:00
Fix ExoPlayer unpausing when returning to foreground
The lifecycle observer was holding onto a stale playWhenReady value, so every time you came back to the app it would resume playback even if you had explicitly paused the video. Now it uses rememberUpdatedState to check the live value instead.
This commit is contained in:
parent
70d3eee9d2
commit
e8d74d9194
1 changed files with 4 additions and 2 deletions
|
|
@ -81,7 +81,9 @@ actual fun PlatformPlayerSurface(
|
|||
val lifecycleOwner = LocalLifecycleOwner.current
|
||||
val latestOnSnapshot = rememberUpdatedState(onSnapshot)
|
||||
val latestOnError = rememberUpdatedState(onError)
|
||||
val latestPlayWhenReady = rememberUpdatedState(playWhenReady)
|
||||
val coroutineScope = rememberCoroutineScope()
|
||||
val latestPlayWhenReady = rememberUpdatedState(playWhenReady)
|
||||
|
||||
val playerSettings = remember {
|
||||
PlayerSettingsRepository.ensureLoaded()
|
||||
|
|
@ -251,7 +253,7 @@ actual fun PlatformPlayerSurface(
|
|||
val activity = context.findActivity()
|
||||
val observer = LifecycleEventObserver { _, event ->
|
||||
when (event) {
|
||||
Lifecycle.Event.ON_START -> exoPlayer.playWhenReady = playWhenReady
|
||||
Lifecycle.Event.ON_START -> exoPlayer.playWhenReady = latestPlayWhenReady.value
|
||||
Lifecycle.Event.ON_STOP -> {
|
||||
val isInPictureInPicture =
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && activity?.isInPictureInPictureMode == true
|
||||
|
|
@ -271,7 +273,7 @@ actual fun PlatformPlayerSurface(
|
|||
}
|
||||
|
||||
LaunchedEffect(exoPlayer, playWhenReady) {
|
||||
exoPlayer.playWhenReady = playWhenReady
|
||||
exoPlayer.playWhenReady = latestPlayWhenReady.value
|
||||
syncPlayerViewKeepScreenOn()
|
||||
latestOnSnapshot.value(exoPlayer.snapshot())
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue