Я столкнулся с проблемой, из-за которой PlayerView из ExoPlayer просачивается или переходит на предыдущий экран после возврата назад. Это происходит, когда я нажимаю кнопку «Назад» или вызываю navController.popBackStack() на экране создания сообщения.
Вот код для составного экрана:
@OptIn(ExperimentalMaterialApi::class)
@Stateless
@Composable
fun HelpVideo(@RawRes videoResource: Int,onNavIconClicked: () -> Unit,@StringRes guideTitle: Int)
{
ApplyStatusNavBarColor()
MaintenanceAppScaffold(topAppBar = {
CommonAppBar(
text = R.string.soundassist_update_interrupted_video,
isInfoButton = false,
isBackButton = false
)
})
{
val context = LocalContext.current
val exoPlayer = remember {
ExoPlayer.Builder(context).build().apply {
val videoUri = RawResourceDataSource.buildRawResourceUri(videoResource)
val mediaItem = MediaItem.fromUri(videoUri)
addMediaItem(mediaItem)
prepare()
playWhenReady = true
}
}
LaunchedEffect(exoPlayer) {
exoPlayer.awaitVideoFinish()
onNavIconClicked()
}
AndroidView(
modifier =
Modifier.fillMaxSize(),
factory = {
StyledPlayerView(context).apply {
player = exoPlayer
layoutParams =
FrameLayout.LayoutParams(
ViewGroup.LayoutParams
.MATCH_PARENT,
ViewGroup.LayoutParams
.MATCH_PARENT
)
useController = false
}
}
)
DisposableEffect(exoPlayer) {
onDispose {
exoPlayer.release()
}
}
}}
< /code>
Проблема: < /strong> < /p>
При навигации назад: < /p>
Playerview виден на предыдущем экране в течение нескольких секунд
до исчезновения. Это происходит независимо от того, нажимаю ли я кнопку
назад или использую NavController.popbackStack (). < /Li>
< /ul>
Что я пробовал: < /strong> < /p>
Использование NavController.popbackStack () - Проблема сохраняется. < /li>
Единственный обходной путь, который я нашел Вызов NavController.navigate (GotoPrevious Screen). Хотя это решает визуальную проблему
, вводит другие связанные с навигацией осложнения
и не является идеальным решением. < /Li>
< /ul>
Почему это Playerview ведут себя как это при навигации? :
Я использую JetPack Compose с Exoplayer для воспроизведения видео.
Проблема, похоже, связана с жизненным циклом или утилизацией PlayerView в AndroidView.
изображение, показывающее проблему < /p>
Подробнее здесь: https://stackoverflow.com/questions/793 ... k-or-using
Exoplayer playerview UI утечки на предыдущий экран при нажатии назад или с использованием NavController.popbackStack () ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Разница в цвете при использовании Exoplayer и Playerview в Android Compose
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Разница в цвете при использовании Exoplayer и Playerview в Android Compose
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-