Exoplayer playerview UI утечки на предыдущий экран при нажатии назад или с использованием NavController.popbackStack () Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Exoplayer playerview UI утечки на предыдущий экран при нажатии назад или с использованием NavController.popbackStack ()

Сообщение Anonymous »

Я столкнулся с проблемой, из-за которой 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»