Android offre una ricca esperienza utente ottimizzata per le app in esecuzione su dispositivi con schermi di grandi dimensioni, come le TV ad alta definizione. Puoi ampliare il pubblico della tua app sviluppandola per Android TV. Questo documento fornisce indicazioni su come farlo 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 basate su 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 utente per la TV è sostanzialmente diverso da quello per smartphone e tablet. Per fare in modo 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 tastierino direzionale e un pulsante di selezione.
Per ulteriori 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 le 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 per più protocolli di streaming, i renderer audio e video predefiniti e i 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, consulta Media3 ExoPlayer.
Utilizzare Media3 MediaSession
Le sessioni multimediali forniscono un modo universale per il sistema di interagire con il player audio o video della tua app. Una delle caratteristiche principali che distingue 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 ulteriori informazioni, consulta L'interfaccia Player.
Per ulteriori informazioni sulla creazione di un'app di riproduzione multimediale, consulta Creare un player 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 come segue:
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 devi gestire manualmente il mapping dal player alla sessione. In questo modo, gli utenti vedranno sempre le informazioni aggiornate sui contenuti multimediali in riproduzione, inclusa la 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 multimediale 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 si occupa della riproduzione dei 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 ulteriori 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 consente di evitare interruzioni non necessarie, ad esempio:
Riproduzione imprevista e continua quando si spegne la TV o si cambiano gli ingressi della TV. Ciò 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 musicale si interrompe in modo imprevisto quando si esce dall'app o si spegne lo schermo 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 alla tua 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 episodi.
Ulteriori considerazioni
Quando estendi la tua app multimediale ad Android per TV, devi tenere in considerazione i problemi di accessibilità, come aumentare il coinvolgimento, come consentire agli utenti di trovare i contenuti e come creare giochi e servizi di input TV.
Accessibilità TV
Sebbene le tecnologie assistive 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 assicurati che le app TV funzionino correttamente con le funzionalità di accessibilità come TalkBack. Questi passaggi possono migliorare notevolmente l'esperienza degli utenti con problemi di vista.
Il primo passo verso il miglioramento dell'accessibilità è la consapevolezza. Per ulteriori informazioni sul ridimensionamento del testo, sui layout della tastiera e sulle 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
Utilizzare Media3 MediaSession.
Come base, la tua app deve supportare Google Cast. Ti consente di estendere le tue app Android, iOS e Chrome per abilitare lo streaming audio e video su Android TV, nonché su dispositivi Chromecast e dispositivi con Assistente. Per ulteriori informazioni, consulta la documentazione di Google Cast.
Puoi anche aiutare gli utenti a:
Scoprire i contenuti su tutte le piattaforme offrendo un feed di azioni multimediali o integrando Guarda dopo.
Sfruttare la voce e il coinvolgimento supportando il collegamento dell'account e la sincronizzazione dei diritti, offrendo la trasmissione vocale e abilitando Cast Connect.
Pagare più facilmente integrando la fatturazione di Google Play e fornendo abbonamenti senza problemi.
Creare 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 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 in diretta da fonti hardware, come porte HDMI e sintonizzatori integrati, e fonti software, come video in streaming su internet. Per ulteriori informazioni, consulta Creare servizi di input TV.