fix: ios player not recreating after switching source/episode

This commit is contained in:
tapframe 2026-05-02 14:05:47 +05:30
parent c890cc3400
commit 4f62be91b8

View file

@ -34,23 +34,22 @@ actual fun PlatformPlayerSurface(
onError: (String?) -> Unit,
) {
sanitizePlaybackResponseHeaders(sourceResponseHeaders)
val latestOnControllerReady = rememberUpdatedState(onControllerReady)
val latestOnSnapshot = rememberUpdatedState(onSnapshot)
val latestOnError = rememberUpdatedState(onError)
val bridge = remember(sourceUrl) {
val bridge = remember {
NuvioPlayerBridgeFactory.create()
}
if (bridge == null) {
LaunchedEffect(Unit) {
onError("MPV player engine not available. Please rebuild the app.")
latestOnError.value("MPV player engine not available. Please rebuild the app.")
}
return
}
// Create controller
LaunchedEffect(bridge) {
onControllerReady(
val controller = remember(bridge) {
object : PlayerEngineController {
override fun 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