Étendre votre application multimédia à Android TV

Android offre une expérience utilisateur enrichie, optimisée pour les applications exécutées sur les 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 pour téléphones et 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 des téléviseurs.

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

Pour en savoir plus sur la gestion des contrôleurs matériels TV, la création des mises en page TV et de la 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 les pistes. ExoPlayer est l'implémentation par défaut de cette interface dans Media3.

Par rapport à l'API MediaPlayer d'Android, elle offre des avantages supplémentaires, tels que la prise en charge de plusieurs protocoles de streaming, des moteurs de rendu audio et vidéo par défaut, et des composants qui gèrent la mise en mémoire tampon multimédia.

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 au système 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 d'utiliser des connecteurs entre les composants.

La nouvelle classe MediaSession accepte toutes les classes qui implémentent l'interface Player. ExoPlayer et MediaController sont des classes qui implémentent cette interface. Les interactions entre les composants sont ainsi beaucoup plus simples. Pour en savoir plus, consultez la section Interface du lecteur.

Pour en savoir plus sur la création d'une application de lecture de contenus multimédias, consultez la page 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 ceci:

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. Cela permet de garantir que vos utilisateurs voient toujours les informations à jour sur le contenu multimédia en cours de lecture, y compris dans 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 Player. La connexion de la session multimédia au lecteur permet à une application d'annoncer la lecture de contenus multimédias en externe et de recevoir des commandes de lecture de sources externes. La session multimédia délègue ces commandes au lecteur de l'application multimédia.

La session multimédia est la clé pour contrôler la lecture. Il vous permet d'acheminer les commandes 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. 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, par exemple sur la personnalisation du comportement des commandes de lecture, consultez Contrôler et annoncer la lecture à l'aide de MediaSession.

Éviter les interruptions dans votre application

L'utilisation de MediaSession vous permet d'éviter des perturbations inutiles telles que:

  • Lecture continue et inattendue lorsque vous éteignez le téléviseur ou changez d'entrée. Cela entraîne également une consommation d'énergie élevée du 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 que vous é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, revenir à votre application si elle lit de la musique en arrière-plan ou prend en charge 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 considérations

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

Accessibilité TV

Bien que les technologies d'assistance puissent aider les utilisateurs malvoyants et le faire, il est important de favoriser l'accessibilité lors des parcours de découverte de contenu pour les applications TV.

Par exemple, veillez à fournir des conseils de navigation et à ajouter correctement des libellés aux éléments, et à vous assurer que les applications pour téléviseur fonctionnent bien avec les fonctionnalités d'accessibilité telles que TalkBack. Ces mesures peuvent améliorer considérablement 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 descriptions audio, consultez la section 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. Elle vous permet d'étendre vos applications Android, iOS et Chrome pour permettre 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 des contenus sur toutes les surfaces en proposant un flux d'actions multimédias ou en intégrant "Ma sélection".

  • Profitez des fonctionnalités vocales 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 la facturation Google Play et en proposant des abonnements fluides.

Créer un framework d'entrée TV

Le visionnage d'émissions télévisées en direct et d'autres contenus continus basés sur des 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 sur un téléviseur en parcourant les chaînes. TV Input Framework crée des chaînes pour la publication d'idées ou de 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 la section Créer des services d'entrée TV.