Android offre un'esperienza utente ricca e ottimizzata per le app in esecuzione su dispositivi con schermi di grandi dimensioni, come i televisori ad alta definizione. Puoi ampliare il pubblico della tua app sviluppandola per Android TV. Questo documento fornisce indicazioni su come eseguire questa operazione in modo efficace.
Creare app TV
Le app TV utilizzano la stessa struttura di quelle per smartphone e tablet. Questo approccio ti consente di creare nuove app TV in base a ciò che già sai sulla creazione di app per Android o di estendere le app esistenti in modo che vengano eseguite anche sui dispositivi TV.
Tuttavia, il modello di interazione dell'utente per la TV è sostanzialmente diverso da quello di smartphone e tablet. Per rendere la tua app efficace 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 tastierino direzionale e un tasto di selezione.
Per maggiori informazioni su considerazioni come la gestione dei controller hardware della TV, la creazione di layout TV e la creazione della navigazione TV, consulta la pagina Creare app TV.
Utilizzare Media3 ExoPlayer
Jetpack Media3 fornisce un'interfaccia Player che definisce funzionalità di base come la possibilità di riprodurre, mettere in pausa, cercare e visualizzare le informazioni sulle tracce. ExoPlayer è l'implementazione predefinita di questa interfaccia in Media3.
Rispetto all'API MediaPlayer di Android, aggiunge ulteriori comodità, 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 delle applicazioni del Play Store. Per ulteriori informazioni, vedi Media3 ExoPlayer.
Utilizzare Media3 MediaSession
Le sessioni multimediali forniscono un modo universale per il sistema di interagire con il lettore audio o video della tua app. Una delle caratteristiche principali che distinguono Media3 dalle precedenti API multimediali è che non è più necessario utilizzare connettori tra i componenti.
La nuova classe MediaSession
accetta qualsiasi classe che implementi l'interfaccia Player. Sia ExoPlayer che MediaController sono classi che implementano questa
interfaccia. Ciò facilita un'interazione molto più semplice tra i componenti.
Per saperne di più, consulta la sezione L'interfaccia del lettore.
Per saperne di più sulla creazione di un'app di riproduzione multimediale, consulta Crea un lettore multimediale 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 lettore. Pertanto, non è necessario gestire manualmente la mappatura dal giocatore alla sessione. In questo modo, gli utenti vedranno sempre le informazioni aggiornate sui contenuti multimediali in riproduzione, anche nella scheda Now Playing.
Controllare e pubblicizzare la riproduzione
In Media3, il player predefinito è la classe ExoPlayer, che implementa l'interfaccia Player. Il collegamento della sessione multimediale al player consente a un'app di pubblicizzare la riproduzione dei contenuti multimediali esternamente e di ricevere comandi di riproduzione da origini esterne. La sessione multimediale delega questi comandi al lettore dell'app multimediale.
La sessione multimediale è la chiave per controllare la riproduzione. Consente di indirizzare i comandi da fonti esterne al lettore 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 alla fine delega i comandi al media player.
Per maggiori informazioni sulla riproduzione, ad esempio su come personalizzare il comportamento dei comandi di riproduzione, consulta Controllare e pubblicizzare la riproduzione utilizzando MediaSession.
Evitare interruzioni nell'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 cambiano gli ingressi TV. Ciò causa anche un elevato consumo energetico per l'hardware della TV. Con
MediaSession
, la tua app può comunicare alla piattaforma che sta riproducendo contenuti multimediali e la piattaforma può comunicare all'app che la riproduzione può essere interrotta.La riproduzione musicale si interrompe in modo imprevisto quando esci dall'app o quando disattivi il display della TV. L'utilizzo delle API
MediaSession
consente la riproduzione continua in un servizio in background.Interazione limitata con i contenuti che impedisce agli utenti di controllare la riproduzione. Ad esempio, tornare alla tua app se sta riproducendo musica in background o supportare i comandi vocali. Con
MediaSession
nella tua app, gli utenti possono usare i comandi vocali per cercare e saltare brani o episodi.
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 input TV.
Accessibilità TV
Sebbene le tecnologie per la disabilità possano aiutare gli utenti con problemi di vista, è importante supportare l'accessibilità nei percorsi di scoperta dei contenuti per le app TV.
Ad esempio, presta particolare attenzione a fornire indicazioni di navigazione ed etichettare correttamente gli elementi e contribuisci a garantire che le app TV funzionino bene con le funzionalità di accessibilità come TalkBack. Questi passaggi possono migliorare notevolmente l'esperienza per gli utenti con disabilità visive.
Il primo passo verso il miglioramento dell'accessibilità è la consapevolezza. Per ulteriori informazioni su ridimensionamento del testo, layout della 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 lettore audio o video. Per saperne di più su come implementare questa funzionalità, vedi
Utilizzare MediaSession di Media3.
Come base, la tua app deve supportare Google Cast. Consente di estendere le app per Android, iOS e Chrome per attivare lo streaming audio e video su Android TV, nonché su dispositivi Chromecast e dispositivi con l'assistente. Per saperne di più, consulta la documentazione di Google Cast.
Puoi anche aiutare gli utenti:
Scopri contenuti su varie piattaforme offrendo un feed di azioni multimediali o integrando la funzionalità Cosa guardare.
Sfrutta la voce e il coinvolgimento supportando il collegamento dell'account e la sincronizzazione dei diritti, offrendo la trasmissione vocale e attivando Cast Connect.
Paga più facilmente integrando la fatturazione Google Play e fornendo abbonamenti senza problemi.
Crea il framework di input TV
Guardare programmi TV in diretta e altri contenuti continui basati sui canali è una parte importante dell'esperienza TV. Gli utenti sono abituati a selezionare e guardare i programmi in TV sfogliando i canali. Il framework di input TV crea canali per la pubblicazione di contenuti video o musicali nella guida ai programmi TV.
Il framework di input TV fornisce un metodo unificato per la ricezione e la riproduzione di contenuti video live da fonti hardware, come porte HDMI e sintonizzatori integrati, e fonti software, come video trasmessi in streaming su internet. Per ulteriori informazioni, consulta la pagina Creare servizi di input TV.