Étendre votre application multimédia à Android TV

Android offre une expérience utilisateur optimisée pour les applications fonctionnant sur des appareils à grand écran, tels que les télévisions haute définition. Vous pouvez élargir l'audience de votre application en la développant pour Android TV. Ce document vous explique comment le faire efficacement.

Créer des applications TV

Les applications Android TV utilisent la même structure que les applications sur téléphones et tablettes. Vous pouvez donc créer de nouvelles applications Android TV en vous appuyant sur ce que vous savez déjà sur la création d'applications pour Android, ou étendre vos applications existantes pour qu'elles fonctionnent sur télévision.

Toutefois, le modèle d'interaction utilisateur pour la TV est très différent de celui des téléphones et des tablettes. Pour que votre application soit performante sur les appareils TV, vous devez concevoir de nouvelles mises en page qui peuvent être clairement comprises à trois mètres de distance et fournir une navigation qui fonctionne avec un simple pavé directionnel et un bouton de sélection.

Pour en savoir plus sur les points à prendre en compte, comme la gestion des télécommandes TV, la création de mises en page TV et la création d'une navigation TV, consultez Créer des applications TV.

Utiliser Media3 ExoPlayer

Jetpack Media3 fournit une interface Player qui définit des fonctionnalités de base telles que la possibilité de lire, de mettre en pause, de rechercher et d'afficher des informations sur les pistes. ExoPlayer est l'implémentation par défaut de cette interface dans Media3.

Par rapport à l'API MediaPlayer d'Android, elle ajoute des fonctionnalités pratiques telles que la prise en charge de plusieurs protocoles de streaming, des renderers audio et vidéo par défaut, et des composants qui gèrent la mise en mémoire tampon des contenus multimédias.

Vous pouvez personnaliser et étendre ExoPlayer, et le mettre à jour via les mises à jour de l'application Play Store. Pour en savoir plus, consultez Media3 ExoPlayer.

Utiliser Media3 MediaSession

Les sessions multimédias offrent un moyen universel pour le système d'interagir avec le lecteur audio ou vidéo de votre application. L'une des principales caractéristiques qui distingue Media3 des précédentes API multimédias est qu'il n'est plus nécessaire d'utiliser des connecteurs entre les composants.

La nouvelle classe MediaSession accepte toute classe qui implémente l'interface Player. ExoPlayer et MediaController sont des classes qui implémentent cette interface. Cela facilite grandement l'interaction entre les composants. Pour en savoir plus, consultez L'interface du lecteur.

Pour en savoir plus sur la création d'une application de lecture multimédia, consultez Créer un lecteur multimédia de base avec ExoPlayer.

Pour offrir la meilleure expérience possible aux utilisateurs finaux de votre application multimédia, vous devez implémenter MediaSession. Pour ce faire, initialisez un Player et fournissez-le à MediaSession.Builder comme suit :

Kotlin

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

Java

ExoPlayer player = new ExoPlayer.Builder(context).build();
MediaSession mediaSession = new MediaSession.Builder(context, player).build();

Gestion automatique de l'état

La bibliothèque Media3 met automatiquement à jour la session multimédia en fonction de l'état du lecteur. Vous n'avez donc pas besoin de gérer manuellement le mappage entre le joueur et la session. Cela permet de s'assurer que vos utilisateurs voient toujours les informations à jour sur le contenu multimédia en cours de lecture, y compris dans la carte "En écoute".

Contrôler et annoncer la lecture

Dans Media3, le lecteur par défaut est la classe ExoPlayer, qui implémente l'interface Player. La connexion de la session multimédia au lecteur permet à une application de diffuser la lecture de contenus multimédias en externe et de recevoir des commandes de lecture provenant de sources externes. La session multimédia délègue ces commandes au lecteur de l'application multimédia.

La session multimédia est essentielle pour contrôler la lecture. Il vous permet de router les commandes provenant de sources externes vers le lecteur qui lit vos contenus multimédias. Les clients externes peuvent utiliser un contrôleur multimédia pour envoyer des commandes de lecture à votre application multimédia. Ces commandes sont reçues par votre session multimédia, qui les délègue en fin de compte au lecteur multimédia.

Pour en savoir plus sur la lecture, par exemple sur la façon de personnaliser le comportement des commandes de lecture, consultez Contrôler et annoncer la lecture avec MediaSession.

Éviter les interruptions dans votre application

L'utilisation de MediaSession vous permet d'éviter les interruptions inutiles, par exemple :

  • Lecture inattendue et continue lorsque le téléviseur est éteint ou que l'entrée TV est changée. Cela entraîne également une forte consommation d'énergie pour le matériel TV. Avec MediaSession, votre application peut informer la plate-forme qu'elle lit du contenu multimédia, et la plate-forme peut informer l'application que la lecture peut s'arrêter.

  • La lecture de musique s'arrête de manière inattendue lorsque vous quittez l'application ou que vous éteignez l'écran du téléviseur. L'utilisation des API MediaSession permet une lecture continue dans un service en arrière-plan.

  • Interaction limitée avec le contenu, qui empêche les utilisateurs de contrôler la lecture. Par exemple, en revenant à votre application si elle lit de la musique en arrière-plan ou en prenant en charge les commandes vocales. Avec MediaSession dans votre application, les utilisateurs peuvent utiliser des commandes vocales pour rechercher et passer des titres ou des épisodes.

Autres considérations

Lorsque vous étendez votre application multimédia à Android TV, vous devez tenir compte des problèmes d'accessibilité, de la façon de stimuler l'engagement, de la façon de permettre aux utilisateurs de trouver du contenu, ainsi que de la façon de créer des jeux et des services d'entrée TV.

Accessibilité TV

Bien que les technologies d'assistance puissent aider les utilisateurs malvoyants, il est important de prendre en charge l'accessibilité dans les parcours de découverte de contenus pour les applications TV.

Par exemple, veillez tout particulièrement à fournir des instructions de navigation et à étiqueter correctement les éléments, et assurez-vous que les applications TV fonctionnent correctement avec les fonctionnalités d'accessibilité telles que TalkBack. Ces étapes peuvent améliorer considérablement l'expérience des utilisateurs souffrant d'une déficience visuelle.

La première étape pour améliorer l'accessibilité est la sensibilisation. Pour en savoir plus sur la mise à l'échelle du texte, les dispositions de clavier et les descriptions audio, consultez les ressources sur l'accessibilité.

Bonnes pratiques pour générer de l'engagement sur Google TV

Toutes les applications conçues pour Android TV fonctionnent sur les appareils équipés de Google TV. Pour offrir la meilleure expérience utilisateur possible sur Google TV, nous vous recommandons d'appliquer les bonnes pratiques suivantes.

Vous devez utiliser MediaSession pour fournir un moyen universel d'interagir avec un lecteur audio ou vidéo. Pour savoir comment implémenter cela, consultez Utiliser MediaSession Media3.

Votre application doit être compatible avec Google Cast. Il vous permet d'étendre vos applications Android, iOS et Chrome pour activer le streaming audio et vidéo sur les téléviseurs Android, ainsi que sur les appareils Chromecast et les appareils avec Assistant. Pour en savoir plus, consultez la documentation Google Cast.

Vous pouvez également aider les utilisateurs à :

  • Découvrez des contenus sur différentes surfaces en proposant un flux d'actions multimédias ou en intégrant la fonctionnalité À regarder ensuite.

  • Profitez des commandes vocales et de l'engagement en prenant en charge l'association de comptes et la synchronisation des droits d'accès, en proposant la diffusion vocale et en activant Cast Connect.

  • Simplifiez les paiements en intégrant Google Play Billing et en proposant des abonnements sans friction.

Créer un framework d'entrée TV

Regarder des séries TV en direct et d'autres contenus continus basés sur des chaînes fait partie intégrante de l'expérience TV. Les utilisateurs sont habitués à sélectionner et à regarder des séries sur leur téléviseur en parcourant les chaînes. Le framework TV Input crée des chaînes pour publier des contenus vidéo ou musicaux dans le guide des programmes TV.

Le TV Input Framework fournit une méthode unifiée pour la réception et la lecture de contenus vidéo en direct provenant de sources matérielles, telles que les ports HDMI et les tuners intégrés, et de sources logicielles, telles que les vidéos diffusées en streaming sur Internet. Pour en savoir plus, consultez Créer des services d'entrée TV.