Ajouter la dépendance
Kotlin
implementation("androidx.media3:media3-ui:1.7.1")
Groovy
implementation "androidx.media3:media3-ui:1.7.1"
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
) les instances Player
.
PlayerView
peut être utilisé pour la lecture de vidéos, d'images et de contenus 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 les pochettes 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'UI. 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 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 setter plus en détail.
Pour une expérience utilisateur plus confortable, envisagez d'ajouter l'attribut keepScreenOn
Android ou de définir un verrouillage de réveil si vous utilisez ExoPlayer. Vous pouvez examiner d'autres actions qui maintiennent l'appareil en éveil sur les pages Travail en arrière-plan.
android:keepScreenOn="true"
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 le lecteur 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 permettant de contrôler la lecture. Notez que PlayerControlView
n'est pas destiné à être utilisé comme composant autonome en dehors de PlayerView
. Vous pouvez le personnaliser 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 de la 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 savoir quel type de surface choisir, consultez la page "Surface".