Jetpack Media3 est le nouvel espace dédié aux bibliothèques multimédias qui permet aux applications Android d'afficher des expériences audio et visuelles riches. Media3 propose une architecture simple avec une personnalisation, une fiabilité et des optimisations puissantes basées sur les fonctionnalités de l'appareil pour éliminer la complexité liée à la fragmentation.
Ce document présente les API clés permettant d'implémenter des cas d'utilisation de lecture et de montage avec Media3.
Composants de lecture
Media3 propose plusieurs composants clés pour les cas d'utilisation de lecture. Les classes qui constituent ces composants vous seront familières si vous avez déjà travaillé avec les anciennes bibliothèques multimédias Android.
Le schéma suivant montre comment ces composants s'agencent dans une application typique.

Lecteur multimédia
Un lecteur multimédia est un composant de votre application qui permet de lire des fichiers multimédias. Dans Media3, vous trouverez:
Cours | Description | Remarque d'implémentation |
---|---|---|
Player |
Player est une interface qui définit les fonctionnalités traditionnelles de haut niveau d'un lecteur multimédia, telles que la lecture, la mise en pause et la recherche.
|
Dans Media3, l'interface Player est une API courante implémentée ou utilisée par plusieurs composants, y compris MediaSession et MediaController , par exemple.
|
ExoPlayer |
ExoPlayer est l'implémentation par défaut de l'interface Player dans Media3.
|
En savoir plus sur Media3 ExoPlayer
La session multimédia
Une session multimédia offre un moyen universel d'interagir avec un lecteur multimédia. Cela permet à une application de diffuser la lecture multimédia auprès de sources externes et de recevoir des requêtes de contrôle de la lecture provenant de sources externes. Dans Media3, vous trouverez:
Cours | Description | Remarque d'implémentation |
---|---|---|
MediaSession |
Les sessions multimédias permettent à votre application d'interagir avec un lecteur audio ou vidéo. Ils annoncent la lecture multimédia en externe et reçoivent des commandes de lecture provenant de sources externes. |
Dans Media3, un MediaSession a besoin d'un Player pour exécuter des commandes et obtenir l'état actuel.
|
MediaSessionService |
Le MediaSessionService contient une session multimédia et le lecteur associé dans un service distinct du Activity principal de votre application pour faciliter la lecture en arrière-plan.
|
|
MediaController |
La classe MediaController est généralement utilisée pour envoyer des commandes depuis l'extérieur de votre application, par exemple depuis d'autres applications ou le système lui-même.
Les commandes sont envoyées au Player sous-jacent du MediaSession associé.
|
La classe MediaController implémente l'interface Player , mais lors de l'appel d'une méthode, MediaController envoie la commande envoyée au MediaSession connecté. Les applications clientes telles que l'Assistant Google peuvent utiliser MediaController pour contrôler la lecture dans une session connectée.
|
MediaLibraryService |
Un MediaLibraryService est semblable à un MediaSessionService , sauf qu'il inclut des API supplémentaires pour que vous puissiez diffuser votre bibliothèque de contenus auprès des applications clientes.
|
|
MediaBrowser |
La classe MediaBrowser permet à l'utilisateur de parcourir la bibliothèque de contenu d'une application multimédia et de sélectionner les éléments à lire.
|
La classe MediaBrowser implémente les interfaces MediaController et Player . Comme MediaController , les applications clientes telles qu'Android Auto implémentent généralement MediaBrowser .
|
En savoir plus sur Media3 MediaSession
Composants d'UI
Media3 fournit des composants d'interface utilisateur par défaut pour afficher des vidéos et contrôler la lecture.
Cours | Description | Remarque d'implémentation |
---|---|---|
PlayerView |
View par défaut pour afficher la vidéo et les commandes de lecture.
|
Se connecte à ExoPlayer , MediaController ou à tout autre Player personnalisé.
|
En savoir plus sur l'interface utilisateur de Media3
Modifier des composants
Media3 inclut les API Transformer pour les cas d'utilisation de montage multimédia, y compris les suivants:
- Traitement audio et vidéo, comme l'ajout de filtres et d'effets
- Gérer les formats spéciaux, tels que les vidéos HDR et les vidéos au ralenti
- Composition, par exemple en combinant plusieurs fichiers d'entrée
- Exporter la sortie finale vers un fichier
Cours | Description | Remarque d'implémentation |
---|---|---|
Transformer |
Utilisez la classe Transformer pour démarrer et arrêter les transformations, et pour vérifier les mises à jour de la progression d'une transformation en cours.
|
|
Effects |
Un objet Effects est un ensemble d'effets audio et vidéo à appliquer à un élément multimédia.
|
|
EditedMediaItem |
Un élément EditedMediaItem représente un élément multimédia à traiter et les modifications à y appliquer.
|
Vous pouvez utiliser ExoPlayer pour prévisualiser les effets ajoutés à un élément multimédia avant de démarrer le processus d'exportation.
|
En savoir plus sur Media3 Transformer
Vidéo d'introduction
Regardez la vidéo ci-dessous pour découvrir Media3 par les ingénieurs qui l'ont conçu.
Liens utiles
- Developer Center pour les médias
- Documentation
ExoPlayer
- Guide de migration
- AndroidX Media3 sur GitHub
- Application exemple de session multimédia Media3
- Application exemple Universal Android Music Player