В Android мне нужно воспроизвести видео Exoplayer над камерой записи. Я использую AndroidView () для камеры и VideoOplayer () под ним в моем методе Compose.
В настоящее время я вижу только кнопки видеоплеере над слоем камеры. Как я могу снять все видео выше? Есть модификатор для этого? < /P>
Box(modifier = Modifier.fillMaxSize()) {
// Camera
AndroidView(
factory = { ctx ->
PreviewView(ctx).apply {
scaleType = PreviewView.ScaleType.FILL_CENTER
}
},
update = { previewView ->
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
val cameraProviderFuture = ProcessCameraProvider.getInstance(context)
cameraProviderFuture.addListener({
val cameraProvider = cameraProviderFuture.get()
val barcodeAnalyzer = BarcodeAnalyzer(viewModel)
val imageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build()
.also {
it.setAnalyzer(ContextCompat.getMainExecutor(context), barcodeAnalyzer)
}
preview = Preview.Builder().build().also {
it.surfaceProvider = previewView.surfaceProvider
}
cameraProvider.unbindAll()
cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis)
}, ContextCompat.getMainExecutor(context))
}
)
//Video
VideoPlayer(modifier = Modifier.zIndex(2.0f))
}
@Composable
fun VideoPlayer(videoUri: String = DEFAULT_VIDEO, modifier: Modifier = Modifier) {
val context = LocalContext.current
val exoPlayer = remember { ExoPlayer.Builder(context).build() }
DisposableEffect(Unit) {
val mediaItem = MediaItem.fromUri(videoUri)
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()
exoPlayer.playWhenReady = true
onDispose {
exoPlayer.release()
}
}
AndroidView(
factory = { context ->
PlayerView(context).apply {
player = exoPlayer
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
},
modifier = modifier.fillMaxSize()
)
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... ing-camera
Нужно воспроизвести видео над камерой записи ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1758113557
Anonymous
В Android мне нужно воспроизвести видео Exoplayer над камерой записи. Я использую AndroidView () для камеры и VideoOplayer () под ним в моем методе Compose.
В настоящее время я вижу только кнопки видеоплеере над слоем камеры. Как я могу снять все видео выше? Есть модификатор для этого? < /P>
Box(modifier = Modifier.fillMaxSize()) {
// Camera
AndroidView(
factory = { ctx ->
PreviewView(ctx).apply {
scaleType = PreviewView.ScaleType.FILL_CENTER
}
},
update = { previewView ->
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
val cameraProviderFuture = ProcessCameraProvider.getInstance(context)
cameraProviderFuture.addListener({
val cameraProvider = cameraProviderFuture.get()
val barcodeAnalyzer = BarcodeAnalyzer(viewModel)
val imageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build()
.also {
it.setAnalyzer(ContextCompat.getMainExecutor(context), barcodeAnalyzer)
}
preview = Preview.Builder().build().also {
it.surfaceProvider = previewView.surfaceProvider
}
cameraProvider.unbindAll()
cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis)
}, ContextCompat.getMainExecutor(context))
}
)
//Video
VideoPlayer(modifier = Modifier.zIndex(2.0f))
}
@Composable
fun VideoPlayer(videoUri: String = DEFAULT_VIDEO, modifier: Modifier = Modifier) {
val context = LocalContext.current
val exoPlayer = remember { ExoPlayer.Builder(context).build() }
DisposableEffect(Unit) {
val mediaItem = MediaItem.fromUri(videoUri)
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()
exoPlayer.playWhenReady = true
onDispose {
exoPlayer.release()
}
}
AndroidView(
factory = { context ->
PlayerView(context).apply {
player = exoPlayer
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
},
modifier = modifier.fillMaxSize()
)
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79767345/need-to-play-a-video-above-the-recording-camera[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия