Ajouter la dépendance
Kotlin
implementation("androidx.media3:media3-ui:1.6.0")
Groovy
implementation "androidx.media3:media3-ui:1.6.0"
PlayerView
Le composant le plus important est PlayerView
, une vue pour la lecture multimédia.
PlayerView
affiche la vidéo, les images, les sous-titres et la pochette de l'album pendant la lecture, ainsi que les commandes de lecture.
PlayerView
dispose d'une méthode setPlayer()
pour associer et dissocier (en transmettant null
) des instances Player
.
PlayerView
peut être utilisé pour la lecture de vidéos, d'images et d'audio. Il affiche la vidéo et les sous-titres en cas de lecture vidéo, les bitmaps pour la lecture d'images et peut afficher des illustrations incluses en tant que métadonnées dans les fichiers audio. Vous pouvez l'inclure dans vos fichiers de mise en page comme n'importe quel autre composant d'interface utilisateur. Par exemple, un PlayerView
peut être inclus avec le code XML suivant:
<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"/>
L'extrait de code ci-dessus montre que PlayerView
fournit plusieurs attributs.
Ces attributs peuvent être utilisés pour personnaliser le comportement de la vue, ainsi que son apparence. La plupart de ces attributs ont des méthodes de setter correspondantes, qui peuvent être utilisées pour personnaliser la vue au moment de l'exécution. La documentation PlayerView
liste ces attributs et méthodes de setter plus en détail.
Une fois la vue déclarée dans le fichier de mise en page, elle peut être recherchée dans la méthode onCreate
de l'activité:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
Une fois qu'un lecteur a été initialisé, il peut être associé à la vue en appelant setPlayer
:
Kotlin
// 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()
Java
// 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
est l'une des sous-vues PlayerView
qui contient la barre de progression et les boutons de contrôle de la lecture. Notez que PlayerControlView
n'est pas destiné à être utilisé en tant que composant autonome en dehors de PlayerView
. Il peut être personnalisé en définissant des attributs sur PlayerView
(qui seront transmis à PlayerControlView
) ou en fournissant un contrôleur personnalisé avec android:id="@id/exo_controller
.
Choisir un type de surface
L'attribut surface_type
de PlayerView
vous permet de définir le type de surface utilisé pour la lecture vidéo. Les valeurs autorisées sont surface_view
, texture_view
, spherical_gl_surface_view
(valeur spéciale pour la lecture de vidéos sphériques), video_decoder_gl_surface_view
(pour le rendu vidéo à l'aide de moteurs de rendu d'extension) et none
(pour la lecture audio uniquement). Pour en savoir plus sur le type de surface à choisir, consultez la page sur les surfaces.