Le app TV che riproducono audio potrebbero continuare a farlo dopo che l'utente torna alla schermata Home o passa a un'altra app. Per farlo, l'app deve fornire una scheda Now Playing nella schermata Home. Questa scheda consente agli utenti di capire da dove proviene l'audio e di tornare alla tua app per controllare la riproduzione dei contenuti multimediali.
Ogni volta che è presente un
MediaSession attivo, il framework Android visualizza una scheda Now Playing nella schermata Home. La scheda
include i metadati dei contenuti multimediali, come la copertina dell'album, il titolo e l'icona dell'app. Quando l'utente seleziona la scheda,
il sistema apre l'app.
Scheda Now Playing
Dopo aver implementato una sessione multimediale, impostala come attiva e richiedi il focus audio, viene visualizzata la scheda Now Playing.
Nota: la scheda Now Playing viene visualizzata solo per una sessione multimediale con il flag FLAG_HANDLES_TRANSPORT_CONTROLS impostato. Questo flag è stato ritirato nel livello API 26. Tuttavia, potrebbe essere ancora necessario sui dispositivi meno recenti per la compatibilità con le versioni precedenti.
La scheda viene rimossa dalla schermata di avvio quando una
setActive(false)
chiamata disattiva la sessione multimediale o quando un'altra app avvia la riproduzione dei contenuti multimediali. Se la riproduzione viene
completamente interrotta e non sono presenti contenuti multimediali attivi, disattiva immediatamente la sessione multimediale. Se la riproduzione è in pausa, disattiva la sessione multimediale dopo un ritardo,
in genere da 5 a 30 minuti.
Aggiornare la scheda
Ogni volta che l'app aggiorna lo stato di riproduzione in MediaSession, la
scheda Now Playing viene aggiornata per mostrare lo stato dei contenuti multimediali correnti. Per scoprire come fare, consulta
Aggiornare lo stato di riproduzione.
Allo stesso modo, l'app può aggiornare i
MediaMetadata per fornire
informazioni alla scheda Now Playing sui contenuti multimediali correnti, come il titolo, il sottotitolo,
e varie icone. Per scoprire come fare, consulta
Aggiornare i metadati dei contenuti multimediali.
Rispondere all'azione dell'utente
Quando l'utente seleziona la scheda Now Playing, il sistema apre l'app proprietaria della
sessione. Se l'app fornisce un
PendingIntent a
setSessionActivity(),
il sistema avvia l'attività specificata, come mostrato nello snippet di codice seguente. In caso contrario,
viene aperto l'intent di sistema predefinito. L'attività specificata deve fornire controlli di riproduzione che
consentano agli utenti di mettere in pausa o interrompere la riproduzione.
Kotlin
val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent -> PendingIntent.getActivity( context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) } session.setSessionActivity(pi)
Java
Intent intent = new Intent(context, MyActivity.class); PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/, intent, PendingIntent.FLAG_UPDATE_CURRENT); session.setSessionActivity(pi);
Casi d'uso accettati
La scheda Now Playing deve essere utilizzata solo nei casi in cui l'utente si aspetta che l'audio continui a essere riprodotto in background quando esce dall'app. La riproduzione di video o l'audio di un gioco devono sempre essere messi in pausa, a meno che l'app non sia integrata e conforme alla funzionalità Picture in picture.