Видео переполняется с нижнего листа при прокруткеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Видео переполняется с нижнего листа при прокрутке

Сообщение Anonymous »

Я работаю над приложением, где видеоплеера встроен в нижний лист. Когда я прокручиваю в нижнем листе, видео неожиданно выходит за пределы границ и переполняется за пределами видимой области нижнего листа. Мне нужно, чтобы видео оставалось в нижнем листе во время прокрутки, без нарушения макета. < /P>
Вот видео о проблеме, с которой я сталкиваюсь.

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

@OptIn(UnstableApi::class)
@Composable
fun VideoPlayer(
modifier: Modifier = Modifier,
file: File,
) {
val context = LocalContext.current
val exoPlayer = remember { ExoPlayer.Builder(context).build() }

// Get the video URI from internal storage
val correctedFile = file.takeIf { it.name.endsWith(".mp4") } ?: File(file.parent, "${file.name}.mp4")
val videoUri = Uri.fromFile(correctedFile)

// Set the media source
val mediaItem = MediaItem.Builder()
.setUri(videoUri)
.setMimeType(MimeTypes.VIDEO_MP4) // Specify the correct MIME type
.build()
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()
exoPlayer.videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING
exoPlayer.playWhenReady = true

// Add a listener to log errors
exoPlayer.addListener(object : Player.Listener {
override fun onPlayerError(error: PlaybackException) {
Timber.e("VideoPlayer", "Player error: ${error.message}")
}
})

// Use AndroidView to integrate ExoPlayer's PlayerView
AndroidView(
modifier = modifier
.clipToBounds(),
factory = { ctx ->
PlayerView(ctx).apply {
player = exoPlayer
resizeMode = AspectRatioFrameLayout.RESIZE_MODE_ZOOM
}
})

// Clean up the ExoPlayer when the composable is disposed
DisposableEffect(Unit) {
onDispose {
exoPlayer.release()
}
}
}
Я первоначально подозревал, что проблема была связана с AndroidView , но после замены PlayerView на ImageView все работало, как и ожидалось. Это говорит о том, что проблема специально связана с PlayerView .
В настоящее время я использую столбец с вертикальной прокруткой для заполнения содержания нижнего листа. Я также пытался использовать Lazycolumn , но та же проблема возникла. Как я могу его разрешить и убедиться, что видеоплеер правильно остается в нижнем листе во время прокрутки?

Подробнее здесь: https://stackoverflow.com/questions/789 ... -scrolling
Ответить

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

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

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

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

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