Android offre une expérience utilisateur riche, 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 explique comment procéder 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 vous basant sur 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 appareils TV.
Toutefois, le modèle d'interaction utilisateur pour la télévision est sensiblement différent de celui des téléphones et des tablettes. Pour que votre application soit efficace sur les téléviseurs, vous devez concevoir de nouvelles mises en page clairement compréhensibles à une distance de trois mètres et proposer une navigation qui fonctionne simplement avec un pavé directionnel et un bouton de sélection.
Pour en savoir plus sur des aspects tels que la gestion des contrôleurs matériels TV, la création de mises en page TV et la création de la 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 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 ajoute 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, 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 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 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 L'interface Player.
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 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. Par conséquent, vous n'avez 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 sur 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. En connectant la session multimédia au lecteur, une application peut annoncer la lecture multimédia en externe et recevoir des commandes de lecture depuis des 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. Elle vous permet d'acheminer les commandes de sources externes vers le lecteur qui lit votre contenu multimédia. 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 les délègue ensuite 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 avec MediaSession.
Évitez les interruptions dans votre application
L'utilisation de MediaSession vous permet d'éviter les interruptions inutiles, telles que :
Lecture inattendue et continue lorsque vous éteignez le téléviseur ou changez d'entrée TV. Cela entraîne également une consommation d'énergie élevée pour le matériel TV. Avec
MediaSession, votre application peut informer la plate-forme qu'elle lit un contenu multimédia, et la plate-forme peut informer 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
MediaSessionpermet de poursuivre la lecture 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 prendre en charge les commandes vocales. Avec
MediaSessiondans votre application, les utilisateurs peuvent utiliser des commandes vocales pour rechercher et ignorer des titres ou des épisodes.
Autres remarques
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 la manière de permettre aux utilisateurs de trouver du contenu, ainsi que de la manière 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 de déficience visuelle, il est important de prendre en charge l'accessibilité dans les 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 améliorer considérablement l'expérience des utilisateurs souffrant de déficiences visuelles.
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 l'audiodescription, 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 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 l'implémentation, consultez Utiliser Media3 MediaSession.
Pour commencer, votre application doit être compatible avec Google Cast. Il vous permet d'étendre vos applications Android, iOS et Chrome pour permettre le streaming audio et vidéo sur les Android TV, ainsi que sur les appareils Chromecast et les appareils 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 différentes surfaces en proposant un flux d'actions multimédias ou en intégrant "À regarder ensuite".
Tirez parti de la voix et de l'engagement en prenant en charge l'association de comptes et la synchronisation des droits, en proposant la diffusion vocale et en activant Cast Connect.
Facilitez 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 émissions de télévision en direct et d'autres contenus continus diffusés sur des chaînes est un aspect important 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 les chaînes. Le framework d'entrée TV crée des chaînes pour publier du contenu vidéo ou musical dans le guide des programmes TV.
Le framework d'entrée TV 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 des ports HDMI et des tuners intégrés, et de sources logicielles, telles que des vidéos diffusées en streaming sur Internet. Pour en savoir plus, consultez Créer des services d'entrée TV.