nurlan kanimetov
Cómo ocultar todos los controladores en ExoPlayer2 (botón de inicio, pausa, etc.) que no existían y la pantalla siempre estaba llena.
Miré, hay simpleExoPlayerView.setUseController(true)
método;
Pero desactivo el reproductor…
public void setUseController (boolean useController) {
this.useController = useController;
if (useController) {
controller.setPlayer(player);
} else {
controller.hide();
controller.setPlayer(null);
}
}
¿Cómo ocultar o eliminar estos componentes?
junsu lee
ExoPlayer-r2.2.0 usado
videoView.hideController();
videoView.setControllerVisibilityListener(new PlaybackControlView.VisibilityListener() {
@Override
public void onVisibilityChange(int visibility) {
if(visibility == View.VISIBLE) {
videoView.hideController();
}
}
});
o
app:use_controller=”false” en Diseño
<...
xmlns:app="http://schemas.android.com/apk/res-auto"
...>
<com.google.android.exoplayer2.ui.SimpleExoPlayerView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:use_controller="false"/>
-
cuando use la aplicación: use_controller=”false”, luego haga clic en el evento que no funciona en el exoplayer2
– Amit Verma
8 de abril de 2020 a las 15:19
-
Solo quiero reproducir un video, el clicklistener todavía muestra el control incluso con use_controller establecido en falso
– JPM
10 de agosto de 2021 a las 15:48
-
Consulte esto puede ser útil para Jetpack Compose: stackoverflow.com/a/71977304/3974530
– Gato loco
23 de abril de 2022 a las 6:14
Simplemente usa esto
exoPlayerView.setUseController(false);
-
¿Cómo ocultar el siguiente botón solo desde el controlador?
– Muhammed Haris
25 de marzo de 2020 a las 11:13
-
@MuhammedHaris intente preguntar eso en una nueva pregunta
– Westy92
16 de septiembre de 2020 a las 15:08
-
Consulte esto puede ser útil para Jetpack Compose: stackoverflow.com/a/71977304/3974530
– Gato loco
23 de abril de 2022 a las 6:14
-
Después de aplicar
setUseController(false);
. su método onclicklistener no funciona.– Príncipe Dholakiya
27 de agosto de 2022 a las 11:33
Westy92
Kotlin:
exoPlayerView.useController = false
Java:
exoPlayerView.setUseController(false);
XML:
app:use_controller="false"
Documentación:
https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/ui/PlayerView.html#setUseController-boolean-
exoPlayerView.setUseController(false);
PlayerView tiene un método hideController. puedes llamarlo así:
mPlayerView.hideController();
Marcelo Souza
Para resolver este problema hice esto:
Código en Kotlin
simpleExoPlayerView.setControllerVisibilityListener { visibility ->
val layout = activity.findViewById<LinearLayout>(R.id.ll_customPlayBackControlView)
if (layout.tag != "IN_ANIMATION") {
when (visibility) {
View.GONE -> {
layout.tag = "IN_ANIMATION"
ex_fragmentVideoView.showController()
layout.animate().alpha(0F).setDuration(450L).withEndAction({ ex_fragmentVideoView.hideController(); layout.tag = "" }).start()
}
View.VISIBLE -> {
layout.animate().alpha(1F).setDuration(450L).start()
}
}
}
}
voghdev
Una adaptación simple a Jetpack compone de esta respuesta
@Composable
fun VideoPlayer(myVideo: MyVideo, modifier: Modifier = Modifier) {
val context = LocalContext.current
val exoPlayer = remember {
ExoPlayer.Builder(context).build().apply {
setMediaItem(myVideo.asMediaItem())
repeatMode = ExoPlayer.REPEAT_MODE_ALL
playWhenReady = true
prepare()
play()
}
}
DisposableEffect(
AndroidView(
modifier = modifier,
factory = {
PlayerView(context).apply {
player = exoPlayer
useController = false
FrameLayout.LayoutParams(
ViewGroup.LayoutParams
.MATCH_PARENT,
ViewGroup.LayoutParams
.MATCH_PARENT
)
}
}
)
) {
onDispose {
exoPlayer.release()
}
}
}
Esto sería asMediaItem()
función de extensión
private fun MyVideo.asMediaItem() =
MediaItem.Builder()
.setUri(url)
.setMediaId("some-media-id")
.setTag("some-video-tag")
.setMediaMetadata(
MediaMetadata.Builder().setDisplayTitle("Video").build()
)
.build()
y la clase MyVideo, que modela un video realmente básico
data class MyVideo(val url: String, val previewImage: String)
La línea clave para eliminar los controles aquí es useController = false
-
El método VideoPlayer me funciona para detener el video mediante onDispose () ¡Gracias! El método simple mío es algo así como: stackoverflow.com/a/71977304/3974530
– Gato loco
23 de abril de 2022 a las 6:13
Consulte esto puede ser útil para Jetpack Compose: stackoverflow.com/a/71977304/3974530
– Gato loco
23 de abril de 2022 a las 6:14