Agrega la dependencia
implementation("androidx.media3:media3-ui:1.6.0")
implementation "androidx.media3:media3-ui:1.6.0"
PlayerView
El componente más importante es PlayerView
, una vista para la reproducción de contenido multimedia.
PlayerView
muestra videos, imágenes, subtítulos y la portada del álbum durante la reproducción, así como los controles de reproducción.
PlayerView
tiene un método setPlayer()
para conectar y desconectar (pasando null
) instancias de Player
.
PlayerView
se puede usar para la reproducción de video, imagen y audio. Renderiza el video y los subtítulos en el caso de la reproducción de video, los mapas de bits para la reproducción de imágenes y puede mostrar material gráfico incluido como metadatos en los archivos de audio. Puedes incluirlo
en tus archivos de diseño como cualquier otro componente de la IU. Por ejemplo, se puede incluir un PlayerView
con el siguiente XML:
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:show_buffering="when_playing"
app:show_shuffle_button="true"/>
En el fragmento anterior, se muestra que PlayerView
proporciona varios atributos.
Estos atributos se pueden usar para personalizar el comportamiento de la vista, así como su apariencia. La mayoría de estos atributos tienen los métodos set correspondientes, que se pueden usar para personalizar la vista durante el tiempo de ejecución. En la documentación de PlayerView
, se enumeran estos atributos y métodos set en más detalle.
Una vez que se declara la vista en el archivo de diseño, se puede buscar en el método onCreate
de la actividad:
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
Cuando se inicializa un reproductor, se puede adjuntar a la vista llamando a setPlayer
:
// Instantiate the player. val player = ExoPlayer.Builder(context).build() // Attach player to the view. playerView.player = player // Set the media item to be played. player.setMediaItem(mediaItem) // Prepare the player. player.prepare()
// Instantiate the player. player = new ExoPlayer.Builder(context).build(); // Attach player to the view. playerView.setPlayer(player); // Set the media item to be played. player.setMediaItem(mediaItem); // Prepare the player. player.prepare();
PlayerControlView
PlayerControlView
es una de las subvistas de PlayerView
que contiene la barra de progreso y los botones para controlar la reproducción. Ten en cuenta que PlayerControlView
no está diseñado para usarse como un componente independiente fuera de PlayerView
. Para personalizarlo, configura atributos en PlayerView
(que se pasarán a PlayerControlView
) o proporciona un controlador personalizado con android:id="@id/exo_controller
.
Elige un tipo de plataforma
El atributo surface_type
de PlayerView
te permite establecer el tipo de superficie que se usa para la reproducción de video. Los valores permitidos son surface_view
, texture_view
, spherical_gl_surface_view
(que es un valor especial para la reproducción de video esférico), video_decoder_gl_surface_view
(que es para la renderización de video con renderizadores de extensión) y none
(solo para la reproducción de audio). Puedes encontrar más información sobre el tipo de plataforma que debes elegir en la página Plataformas.