mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-16 23:12:12 +00:00
fix: ios player not recreating after switching source/episode
This commit is contained in:
parent
c890cc3400
commit
4f62be91b8
1 changed files with 123 additions and 121 deletions
|
|
@ -34,23 +34,22 @@ actual fun PlatformPlayerSurface(
|
||||||
onError: (String?) -> Unit,
|
onError: (String?) -> Unit,
|
||||||
) {
|
) {
|
||||||
sanitizePlaybackResponseHeaders(sourceResponseHeaders)
|
sanitizePlaybackResponseHeaders(sourceResponseHeaders)
|
||||||
|
val latestOnControllerReady = rememberUpdatedState(onControllerReady)
|
||||||
val latestOnSnapshot = rememberUpdatedState(onSnapshot)
|
val latestOnSnapshot = rememberUpdatedState(onSnapshot)
|
||||||
val latestOnError = rememberUpdatedState(onError)
|
val latestOnError = rememberUpdatedState(onError)
|
||||||
|
|
||||||
val bridge = remember(sourceUrl) {
|
val bridge = remember {
|
||||||
NuvioPlayerBridgeFactory.create()
|
NuvioPlayerBridgeFactory.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bridge == null) {
|
if (bridge == null) {
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
onError("MPV player engine not available. Please rebuild the app.")
|
latestOnError.value("MPV player engine not available. Please rebuild the app.")
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create controller
|
val controller = remember(bridge) {
|
||||||
LaunchedEffect(bridge) {
|
|
||||||
onControllerReady(
|
|
||||||
object : PlayerEngineController {
|
object : PlayerEngineController {
|
||||||
override fun play() {
|
override fun play() {
|
||||||
bridge.play()
|
bridge.play()
|
||||||
|
|
@ -207,7 +206,10 @@ actual fun PlatformPlayerSurface(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(controller, sourceUrl, sourceAudioUrl, sourceHeaders, sourceResponseHeaders) {
|
||||||
|
latestOnControllerReady.value(controller)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load file and set initial state
|
// Load file and set initial state
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue