AccueilActualités informatiqueDéveloppement Android : Jetpack Media3 a pour but de réunir les fonctions...

Développement Android : Jetpack Media3 a pour but de réunir les fonctions essentielles des médias

Google a dévoilé une nouvelle collection de bibliothèques pour la lecture des médias lors de son Android Dev Summit 2021. Jetpack Media 3 combine et étend les fonctions des bibliothèques précédentes. En outre, le paquet est censé garantir la stabilité des API. À l’heure actuelle, cependant, il a toujours le statut alpha.

Jusqu’à présent, les développeurs ont pu utiliser trois bibliothèques de médias : Jetpack Media ou MediaCompat, Jetpack Media2 et ExoPlayer. La première bibliothèque offre principalement des classes pour la gestion des sessions média et la seconde dispose d’éléments d’interface utilisateur pour contrôler la lecture à bord. Media2 contient déjà une combinaison des deux.

Sommaire

Selon le billet de blog présentant la nouvelle collection de bibliothèques Jetpack, l’équipe de Media3 a sélectionné et adapté les caractéristiques essentielles des bibliothèques précédentes en termes d’interface utilisateur, de lecture et de gestion des sessions média.

Le billet de blog met en avant trois bibliothèques comme éléments centraux :

  • media3-exoplayer offre des fonctions simples pour lire les médias via l’ExoPlayer,
  • media3-ui contient principalement des vues pour l’affichage des contrôles de lecture dans l’interface utilisateur et des vues pour l’affichage de l’interface utilisateur.
  • media3-session fournit des objets pour créer et interagir avec les sessions média.

Un composant essentiel de Jetpack Media 3 est une Playerqui combine ou remplace les objets des bibliothèques précédentes qui servent à la lecture et aux fonctions telles que play, pause ou skip fournir. La base du nouveau joueur est l’interface du joueur d’ExoPlayer. Au cours de l’unification, des classes telles que MediaController mettre en œuvre le nouveau joueur.

La nouvelle interface du joueur offre un accès unifié aux éléments de l’interface utilisateur.

(Image : Google)

L’interface unifiée du lecteur offre également une connexion directe aux sessions multimédia, comme le montre l’extrait de code suivant, tiré du blog sur le développement d’Android :

player = ExoPlayer.Builder(context).build()
session = MediaSession.Builder(context, player).build()

Grâce à cette intégration, la session média reflète toujours l’état du lecteur, qui, à l’inverse, reçoit toutes les commandes envoyées à la session.

De nombreuses API dans Jetpack Media3 comme Player et MediaItem sont marqués comme stables. Cependant, la plupart des API pour la partie ExoPlayer sont considérées comme étant de type MediaSource sont considérés comme instables. Pour ces derniers, le OptIn-est nécessaire pour l’utiliser dans vos propres applications :

@androidx.annotation.OptIn(UnstableApi::class)
private fun initializeExoPlayer() {
  // ...
}

Vous trouverez de plus amples informations sur la collection de bibliothèques Jetpack Media3 sur le blog des développeurs Android. Une description complète de la première alpha se trouve dans les notes de publication. La page du projet contient des instructions sur la manière de l’intégrer dans vos propres applications et une application de démonstration sur GitHub devrait vous aider à démarrer.

Plus d'articles