Présentation de Jetpack Media3

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.

Les différents composants d'une application multimédia qui utilise Media3 se connectent ensemble de plusieurs manières simples en raison du partage d'interfaces et de classes.
Figure 1: Composants des applications multimédias

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.