É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 fournit des conseils pour le faire efficacement.

Créer des applications TV

Les applications 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 télévision est très différent de celui des téléphones et des tablettes. Pour que votre application soit un succès sur les appareils TV, vous devez concevoir de nouvelles mises en page qui peuvent être clairement comprises à 3 mètres de distance et fournir une navigation qui fonctionne 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 matériels TV, la création de mises en page TV et la création de navigation TV, consultez la section 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 lecture, la mise en pause, la recherche et l'affichage d'informations sur le 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, des moteurs de rendu audio et vidéo par défaut, ainsi que des composants qui gèrent le tamponnage multimédia.

Vous pouvez personnaliser et étendre ExoPlayer, et il peut être mis à jour via les mises à jour de l'application Play Store. Pour en savoir plus, consultez Media3 ExoPlayer.

Utiliser MediaSession Media3

Les sessions multimédias permettent au système d'interagir de manière universelle 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 l'interaction 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 la section Créer un lecteur multimédia de base à l'aide d'ExoPlayer.

Pour offrir une expérience optimale 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 à l'aide de l'état du lecteur. Vous n'avez donc pas besoin de gérer manuellement le mappage du joueur à 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 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. Connecter la session multimédia au lecteur permet à une application de diffuser la lecture multimédia en externe et de recevoir des commandes de lecture à partir 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 émettre des commandes de lecture à votre application multimédia. Elles sont reçues par votre session multimédia, qui délègue finalement les commandes au lecteur multimédia.

Pour en savoir plus sur la lecture, par exemple pour savoir comment 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 perturbations inutiles, par exemple:

  • Lecture inattendue et continue lorsque vous éteignez le téléviseur ou changez d'entrée. Cela entraîne également une consommation d'énergie élevée pour le matériel du téléviseur. Avec MediaSession, votre application peut informer la plate-forme qu'elle lit des contenus multimédias, 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 éteignez l'écran de la télévision. L'utilisation des API MediaSession permet de poursuivre la lecture 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, revenir à votre application si elle lit de la musique en arrière-plan ou si elle est compatible avec les 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 déployez votre application multimédia sur Android TV, vous devez tenir compte des problèmes d'accessibilité, de l'engagement des utilisateurs, de la recherche de contenu, ainsi que de la création de jeux et de services d'entrée TV.

Accessibilité TV

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

Par exemple, soyez particulièrement attentif à fournir des instructions de navigation et à bien nommer les éléments. Veillez également à ce 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 malvoyants.

La première étape pour améliorer l'accessibilité consiste à sensibiliser les utilisateurs. Pour en savoir plus sur la mise à l'échelle du texte, les dispositions de clavier et les descriptions audio, consultez les ressources d'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 une expérience utilisateur optimale sur Google TV, nous vous recommandons de suivre 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 l'implémentation, consultez la section Utiliser MediaSession Media3.

Pour commencer, votre application doit être compatible avec Google Cast. Il vous permet d'étendre vos applications Android, iOS et Chrome pour diffuser du contenu audio et vidéo sur des téléviseurs Android, ainsi que sur des appareils Chromecast et des appareils avec l'Assistant. Pour en savoir plus, consultez la documentation Google Cast.

Vous pouvez également aider les utilisateurs à:

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

  • Profitez de la voix et de l'engagement en acceptant l'association de comptes et la synchronisation des droits d'accès, en proposant le castage vocal et en activant Cast Connect.

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

Créer un framework d'entrée TV

Le visionnage de séries TV en direct et d'autres contenus continus sur les chaînes est une part importante de l'expérience TV. Les utilisateurs sont habitués à sélectionner et à regarder des émissions à la télévision en parcourant les chaînes. Le TV Input Framework crée des chaînes pour publier des contenus vidéo ou musicaux dans le guide de programmation TV.

Le TV Input Framework fournit une méthode unifiée pour la réception et la lecture de contenus 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.