Jetpack Media3 est le nouvel espace dédié aux bibliothèques multimédias permettant aux applications Android d'afficher des expériences audio et visuelles riches. Media3 offre une architecture simple avec de puissantes options de personnalisation, de fiabilité et d'optimisation basées sur les fonctionnalités de l'appareil afin d'éliminer la complexité liée à la fragmentation.
Ce document présente les principales API pour implémenter des cas d'utilisation de lecture et de modification avec Media3.
Composants de lecture
Media3 propose plusieurs composants clés pour les cas d'utilisation de lecture. Les classes qui composent ces composants vous seront familières si vous avez déjà travaillé avec des bibliothèques multimédias Android précédentes.
Le schéma suivant montre comment ces composants s'assemblent dans une application classique.
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 sur l'implémentation |
---|---|---|
Player |
Player est une interface qui définit les fonctionnalités traditionnelles de haut niveau d'un lecteur multimédia, comme 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, comme MediaSession et MediaController .
|
ExoPlayer |
ExoPlayer est l'implémentation par défaut de l'interface Player dans Media3.
|
En savoir plus sur Media3 ExoPlayer
Session multimédia
Une session multimédia est un moyen universel d'interagir avec un lecteur multimédia. Cela permet à une application d'annoncer la lecture de contenus multimédias sur des sources externes et de recevoir des requêtes de contrôle de lecture provenant de sources externes. Dans Media3, vous trouverez:
Cours | Description | Remarque sur l'implémentation |
---|---|---|
MediaSession |
Les sessions multimédias permettent à votre application d'interagir avec un lecteur audio ou vidéo. Ils annoncent la lecture de contenus multimédias en externe et reçoivent des commandes de lecture de sources externes. |
Dans Media3, un MediaSession a besoin d'un Player pour exécuter des commandes et obtenir l'état actuel.
|
MediaSessionService |
MediaSessionService contient une session multimédia et le lecteur associé dans un service distinct du Activity principal de votre application afin de 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 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, la commande est envoyée au MediaSession connecté. Les applications clientes telles que l'Assistant Google peuvent utiliser MediaController pour contrôler la lecture lors d'une session connectée.
|
MediaLibraryService |
Un MediaLibraryService est semblable à un MediaSessionService , sauf qu'il inclut des API supplémentaires qui vous permettent de diffuser votre bibliothèque de contenu vers 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 à la fois les interfaces MediaController et Player . Comme pour MediaController , les applications clientes telles qu'Android Auto implémentent généralement MediaBrowser .
|
En savoir plus sur Media3 MediaSession
Composants de l'interface utilisateur
Media3 fournit des composants d'interface utilisateur par défaut pour regarder des vidéos et contrôler la lecture.
Cours | Description | Remarque sur l'implémentation |
---|---|---|
PlayerView |
View par défaut pour afficher les commandes de lecture et de vidéo
|
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 l'édition multimédia, y compris:
- Traitement de l'audio et de la vidéo, comme l'ajout de filtres et d'effets
- Gestion de formats spéciaux, tels que la vidéo HDR et la vidéo au ralenti
- Composition (combinaison de plusieurs fichiers d'entrée, par exemple)
- Exporter le résultat final dans un fichier
Cours | Description | Remarque sur l'implémentation |
---|---|---|
Transformer |
Utilisez la classe Transformer pour démarrer et arrêter des transformations, et pour vérifier les mises à jour de la progression d'une transformation en cours d'exécution.
|
|
Effects |
Un objet Effects est un ensemble d'effets audio et vidéo à appliquer à un élément multimédia.
|
|
EditedMediaItem |
Un EditedMediaItem représente un élément multimédia à traiter et les modifications à lui appliquer.
|
Vous pouvez utiliser ExoPlayer pour prévisualiser les effets ajoutés à un élément multimédia avant de lancer le processus d'exportation.
|
En savoir plus sur Media3 Transformer
Vidéo de présentation
Regardez la vidéo ci-dessous pour découvrir Media3 par les ingénieurs qui l'ont conçu.
Liens utiles
- Media Developer Center
- Documents
ExoPlayer
- Guide de migration
- AndroidX Media3 sur GitHub
- Application exemple de session multimédia Media3
- Application exemple Universal Music Player pour Android