Как упоминалось выше, у меня проблема с изменением режима изменения размера на моем ExoPlayer. Я воспроизводю список видео, которые меняются при прокрутке, и в зависимости от ориентации экрана я пытаюсь увеличить масштаб видео, если оно близко к экрану AspectRatio, блок кода, который обрабатывает:
override fun onVideoSizeChanged(width: Int, height: Int, unappliedRotationDegrees: Int, pixelWidthHeightRatio: Float) {
super.onVideoSizeChanged(width, height, unappliedRotationDegrees, pixelWidthHeightRatio)
val displayMetrics = DisplayMetrics()
(context as Activity).windowManager.defaultDisplay.getMetrics(displayMetrics)
val displayAspectRatio = displayMetrics.widthPixels.toFloat() / displayMetrics.heightPixels
val videoAspectRatio = width.toFloat() / height
if (abs(videoAspectRatio - displayAspectRatio) < 0.2) {
exoPlayerView.resizeMode = AspectRatioFrameLayout.RESIZE_MODE_ZOOM
selectedPlayer?.videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING
} else {
exoPlayerView.resizeMode = AspectRatioFrameLayout.RESIZE_MODE_FIT
selectedPlayer?.videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT
}
}
Но exoPlayerView.resizeMode
виден только при первом вызове. Есть другой способ сделать это? Или, может быть, принудительно выполнить повторный рендеринг вида?
Заранее спасибо!