ExoPlayer сильно трясется во время рекомпозиции на Android API 30+Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 ExoPlayer сильно трясется во время рекомпозиции на Android API 30+

Сообщение Anonymous »

Я тестировал различные уровни API. Это происходит с API 30+, но с более низким API все работает нормально. Проблема существует на эмуляторах и физических устройствах.
Вот краткий код того, как я объявляю Player и работаю с ним:

Код: Выделить всё

[versions]
exoplayer = "1.3.1"

[libraries]
androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "exoplayer" }
androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "exoplayer" }

Модель просмотра

Код: Выделить всё

@HiltViewModel
class NotesViewModel @Inject constructor(
@ApplicationContext val context: Context,
) : ViewModel() {
val player: Player = buildPlayer(context).apply {
repeatMode = Player.REPEAT_MODE_ONE
prepare()
}

}
Интерфейс

Код: Выделить всё

 val viewModel: NotesViewModel = hiltViewModel()
val player = remember { viewModel.player }
VideoPlayer(
player = player,
isPlaying = uiState.isVideoPlaying,
onPlayClicked = viewModel::playVideo,
)

@OptIn(UnstableApi::class)
@Composable
fun VideoPlayer(
player: Player,
isPlaying: Boolean,
onPlayClicked: () -> Unit,
modifier: Modifier = Modifier,
) {
val videoHeight = screenHeight() * VIDEO_HEIGHT_RATIO

Box(modifier) {
AndroidView(
factory = { ctx ->
PlayerView(ctx).apply {
this.player = player
useController = false
resizeMode = AspectRatioFrameLayout.RESIZE_MODE_FIXED_HEIGHT
}
},
modifier = Modifier
.fillMaxWidth()
.height(videoHeight.dp)
)
PlayButton(
visible = !isPlaying,
onClick = onPlayClicked,
modifier = Modifier.align(Alignment.Center)
)
}
}
[Хорошее поведение при API ниже 30][Тряска при API 30+]

Подробнее здесь: https://stackoverflow.com/questions/786 ... oid-api-30
Ответить

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

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

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

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

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