Étendre votre application multimédia à Android TV

Android offre une expérience utilisateur enrichie, optimisée pour les applications exécutées sur des appareils à grand écran, tels que les téléviseurs haute définition. Vous pouvez élargir l'audience de votre application en la développant pour Android TV. Ce document fournit des conseils sur la façon de le faire efficacement.

Créer des applications TV

Les applications TV utilisent la même structure que celles des téléphones et des tablettes. Cette approche vous permet de créer des applications TV en fonction de ce que vous savez déjà sur la création d'applications pour Android, ou d'étendre vos applications existantes pour qu'elles s'exécutent également sur les téléviseurs.

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

Pour en savoir plus sur les considérations telles que la gestion des contrôleurs de matériel 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 de lecteur qui définit des fonctionnalités de base telles que la lecture, la mise en pause, la recherche et l'affichage d'informations sur un titre. ExoPlayer est l'implémentation par défaut de cette interface dans Media3.

Par rapport à l'API MediaPlayer d'Android, elle offre des fonctionnalités supplémentaires, telles que la prise en charge de plusieurs protocoles de streaming, les moteurs de rendu audio et vidéo par défaut, et les 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 au système un moyen universel d'interagir avec le lecteur audio ou vidéo de votre application. L'une des principales caractéristiques qui distingue Media3 des API multimédias précédentes est qu'il n'est plus nécessaire de disposer de connecteurs entre les composants.

La nouvelle classe MediaSession accepte n'importe quelle classe qui implémente l'interface Player. ExoPlayer et MediaController sont des classes qui implémentent cette interface. Cela permet une interaction beaucoup plus simple entre les composants. Pour en savoir plus, consultez la section 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 à l'aide d'ExoPlayer.

Pour créer la meilleure expérience possible pour les 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. Ainsi, vous n'avez pas besoin de gérer manuellement le mappage du lecteur à la session. Ainsi, vos utilisateurs voient toujours des informations à jour sur le contenu multimédia en cours de lecture, y compris sur la fiche "En écoute".

Contrôler et annoncer la lecture

Dans Media3, le lecteur par défaut est la classe ExoPlayer, qui implémente l'interface du lecteur. Connecter la session multimédia au lecteur permet à une application d'annoncer la lecture des 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 d'acheminer les commandes provenant de sources externes vers le lecteur chargé de lire votre contenu multimédia. Les clients externes peuvent utiliser un contrôleur multimédia pour émettre des commandes de lecture vers votre application multimédia. Celles-ci sont reçues par votre session multimédia, qui délègue les commandes au lecteur multimédia.

Pour en savoir plus sur la lecture, y compris sur la personnalisation du comportement de la commande de lecture, consultez Contrôler et annoncer la lecture à l'aide de MediaSession.

Évitez les interruptions dans votre application

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

  • Lecture inattendue et continue lors de l'arrêt du téléviseur ou du changement d'entrée du téléviseur. 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 des contenus multimédias, et la plate-forme peut indiquer à l'application que la lecture peut s'arrêter.

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

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

Autres points à prendre en compte

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

Accessibilité TV

Bien que les technologies d'assistance puissent aider les utilisateurs souffrant d'une déficience visuelle et qu'ils l'ont fait, il est important de garantir l'accessibilité lors des parcours de découverte de contenu pour les applications TV.

Par exemple, veillez à fournir des conseils de navigation et à étiqueter correctement les éléments, et assurez-vous que les applications TV fonctionnent bien avec les fonctionnalités d'accessibilité telles que TalkBack. Ces étapes peuvent considérablement améliorer l'expérience des utilisateurs malvoyants.

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 audiodescriptions, consultez les ressources d'accessibilité.

Bonnes pratiques pour stimuler 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 en savoir plus sur la mise en œuvre, consultez Utiliser Media3 MediaSession.

Par défaut, 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 Android TV, ainsi que sur les appareils Chromecast et dotés de l'Assistant. Pour en savoir plus, consultez la documentation Google Cast.

Vous pouvez également aider les utilisateurs à:

  • Découvrez du contenu sur plusieurs surfaces en proposant un flux d'actions multimédias ou en intégrant la section "À regarder ensuite".

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

  • Payez plus facilement en intégrant Google Play Billing et en proposant des abonnements fluides.

Créer un framework d'entrée TV

Le visionnage d'émissions en direct et d'autres contenus en continu liés aux chaînes constitue une grande partie de l'expérience télévisuelle. Les utilisateurs ont l'habitude de sélectionner et de regarder des émissions à la télévision en parcourant des chaînes. TV Input Framework crée des chaînes pour publier des idées ou des contenus musicaux dans le guide de programmation TV.

TV Input Framework fournit une méthode unifiée pour la réception et la lecture de contenu vidéo en direct à partir 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 sur Internet. Pour en savoir plus, consultez Créer des services d'entrée TV.