Android offre un'esperienza utente completa ottimizzata per le app in esecuzione su dispositivi con schermi grandi, come i televisori ad alta definizione. Puoi ampliare il pubblico della tua app sviluppandola per Android TV. Questo documento fornisce indicazioni su come farlo in modo efficace.
Crea app TV
Le app TV utilizzano la stessa struttura di quelle per smartphone e tablet. Questo approccio significa che puoi creare nuove app TV in base a ciò che già sai sulla creazione di app per Android o estendere le tue app esistenti in modo che vengano eseguite anche su dispositivi TV.
Tuttavia, il modello di interazione dell'utente per la TV è sostanzialmente diverso da quello per smartphone e tablet. Per far sì che la tua app abbia successo sui dispositivi TV, devi progettare nuovi layout che possano essere compresi chiaramente da 3 metri di distanza e fornire una navigazione che funzioni solo con un tasto direzionale e un pulsante di selezione.
Per ulteriori informazioni su considerazioni come la gestione dei controller hardware della TV, la creazione di layout per la TV e la creazione della navigazione TV, consulta Crea app TV.
Utilizza ExoPlayer di Media3
Jetpack Media3 fornisce un'interfaccia Player che definisce funzionalità di base come la possibilità di riprodurre, mettere in pausa, cercare e visualizzare le informazioni sulla traccia. ExoPlayer è l'implementazione predefinita di questa interfaccia in Media3.
Rispetto all'API MediaPlayer di Android, aggiunge ulteriori funzionalità, come il supporto di più protocolli di streaming, renderer audio e video predefiniti e componenti che gestiscono il buffering dei contenuti multimediali.
Puoi personalizzare ed estendere ExoPlayer, che può essere aggiornato tramite gli aggiornamenti dell'applicazione Play Store. Per saperne di più, consulta Media3 ExoPlayer.
Utilizza Media3 MediaSession
Le sessioni multimediali forniscono un modo universale per consentire al sistema di interagire con il video player o l'audio player della tua app. Una delle caratteristiche principali che distingue Media3 dalle API multimediali precedenti è che non sono più necessari connettori tra i componenti.
La nuova classe MediaSession accetta qualsiasi classe che implementa l'interfaccia Player. Sia ExoPlayer che MediaController sono classi che implementano questa interfaccia. In questo modo l'interazione tra i componenti è molto più semplice.
Per saperne di più, consulta L'interfaccia del player.
Per saperne di più sulla creazione di un'app di riproduzione di contenuti multimediali, consulta Crea un media player di base utilizzando ExoPlayer.
Per creare la migliore esperienza per gli utenti finali della tua app multimediale, devi implementare MediaSession. Per farlo, inizializza un Player e forniscilo a MediaSession.Builder in questo modo:
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();
Gestione automatica dello stato
La libreria Media3 aggiorna automaticamente la sessione multimediale utilizzando lo stato del player. Pertanto, non è necessario gestire manualmente la mappatura dal player alla sessione. In questo modo, gli utenti vedranno sempre le informazioni aggiornate sui contenuti multimediali in riproduzione, anche nella scheda Now Playing.
Controlla e annuncia la riproduzione
In Media3, il player predefinito è la classe ExoPlayer, che implementa l'interfaccia Player. La connessione della sessione multimediale al player consente a un'app di pubblicizzare la riproduzione di contenuti multimediali esternamente e di ricevere comandi di riproduzione da fonti esterne. La sessione multimediale delega questi comandi al player dell'app multimediale.
La sessione multimediale è la chiave per controllare la riproduzione. Ti consente di indirizzare i comandi da fonti esterne al player che riproduce i tuoi contenuti multimediali. I client esterni possono utilizzare un controller multimediale per inviare comandi di riproduzione alla tua app multimediale. Questi vengono ricevuti dalla sessione multimediale, che infine delega i comandi al media player.
Per ulteriori informazioni sulla riproduzione, ad esempio su come personalizzare il comportamento dei comandi di riproduzione, consulta Controlla e annuncia la riproduzione utilizzando MediaSession.
Evita interruzioni nella tua app
L'utilizzo di MediaSession ti consente di evitare interruzioni non necessarie, ad esempio:
Riproduzione imprevista e continua quando si spegne la TV o si cambia ingresso TV. Questo causa anche un elevato consumo energetico per l'hardware della TV. Con
MediaSession, la tua app può informare la piattaforma che sta riproducendo contenuti multimediali e la piattaforma può informare l'app che la riproduzione può essere interrotta.La riproduzione della musica si interrompe inaspettatamente quando esci dall'app o spegni il display della TV. L'utilizzo delle API
MediaSessionconsente la riproduzione continua in un servizio in background.Interazione limitata con i contenuti che impedisce agli utenti di controllare la riproduzione. Ad esempio, tornare all'app se sta riproducendo musica in background o supportare i comandi vocali. Con
MediaSessionnella tua app, gli utenti possono utilizzare i comandi vocali per cercare e saltare brani o puntate.
Ulteriori considerazioni
Quando estendi la tua app multimediale ad Android TV, devi considerare i problemi di accessibilità, come aumentare il coinvolgimento, come consentire agli utenti di trovare contenuti, nonché come creare giochi e servizi di ingresso TV.
Accessibilità della TV
Sebbene le tecnologie per la disabilità possano aiutare gli utenti con disabilità visiva, è importante supportare l'accessibilità nei percorsi di scoperta dei contenuti per le app TV.
Ad esempio, presta particolare attenzione a fornire indicazioni per la navigazione ed etichettare correttamente gli elementi, nonché ad assicurarti che le app TV funzionino bene con le funzioni di accessibilità come TalkBack. Questi passaggi possono migliorare notevolmente l'esperienza per gli utenti con disabilità visive.
Il primo passo per migliorare l'accessibilità è la consapevolezza. Per saperne di più su scalabilità del testo, layout di tastiera e descrizioni audio, consulta le risorse per l'accessibilità.
Best practice per aumentare il coinvolgimento su Google TV
Tutte le app create per Android TV funzionano sui dispositivi con Google TV. Per offrire la migliore esperienza utente su Google TV, ti consigliamo di applicare le seguenti best practice.
Devi utilizzare MediaSession per fornire un modo universale di interagire con un player audio o video. Per ulteriori informazioni su come implementare questa funzionalità, consulta
Utilizza MediaSession di Media3.
Come base di partenza, l'app deve supportare Google Cast. Ti consente di estendere le tue app per Android, iOS e Chrome per abilitare lo streaming audio e video su Android TV, nonché su dispositivi Chromecast e con l'assistente. Per saperne di più, consulta la documentazione di Google Cast.
Puoi anche aiutare gli utenti a:
Scoprire contenuti su più piattaforme offrendo un feed di azioni multimediali o integrando Cosa guardare.
Sfrutta i comandi vocali e il coinvolgimento supportando il collegamento degli account e la sincronizzazione dei diritti, offrendo la trasmissione vocale e attivando Cast Connect.
Paga più facilmente integrando la Fatturazione Google Play e offrendo abbonamenti senza problemi.
Crea un framework di ingresso TV
Guardare programmi TV in diretta e altri contenuti continui basati su canali è una parte importante dell'esperienza TV. Gli utenti sono abituati a selezionare e guardare i programmi sulla TV sfogliando i canali. Il framework di ingresso TV crea canali per la pubblicazione di contenuti video o musicali nella guida alla programmazione TV.
Il framework di input TV fornisce un metodo unificato per la ricezione e la riproduzione di contenuti video in diretta da sorgenti hardware, come porte HDMI e sintonizzatori integrati, e sorgenti software, come video in streaming su internet. Per ulteriori informazioni, consulta Crea servizi di ingresso TV.