Mostra una carta Now Playing

Le app per TV devono mostrare una scheda Ora in riproduzione quando i contenuti multimediali vengono riprodotti dietro Avvio app o in background. Questa scheda consente agli utenti di tornare all'app che sta riproducendo i contenuti multimediali.

Il framework Android mostra una scheda Ora in riproduzione sulla schermata Home quando è presente una scheda MediaSession attiva. La scheda include metadati multimediali come copertina dell'album, titolo e icona dell'app. Quando l'utente seleziona la carta, il sistema apre l'app.

Puoi utilizzare la classe MediaSession per implementare la scheda Ora in riproduzione.

Figura 1. Mostra una scheda Ora in riproduzione durante la riproduzione di contenuti multimediali in background.

Carta Now Playing

Dopo aver implementato una sessione multimediale, impostato la sessione come attiva e richiesto il focus audio, viene visualizzata la scheda Ora in riproduzione.

Nota: la scheda Ora in riproduzione viene visualizzata solo per una sessione multimediale con il flag FLAG_HANDLES_TRANSPORT_CONTROLS impostato. Questo flag è deprecato al livello API 26. Tuttavia, questo flag potrebbe essere ancora necessario sui dispositivi meno recenti per garantire la compatibilità con le versioni precedenti.

La scheda viene rimossa dalla schermata Avvio app quando una chiamata setActive(false) disattiva la sessione multimediale o quando un'altra app avvia la riproduzione di contenuti multimediali. Se la riproduzione è stata interrotta completamente e non ci sono 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.

Aggiorna la carta

Ogni volta che la tua app aggiorna lo stato di riproduzione in MediaSession, la scheda Ora in riproduzione si aggiorna per mostrare lo stato del contenuto multimediale corrente. Per scoprire come fare, consulta Aggiornare lo stato di riproduzione.

Analogamente, l'app può aggiornare MediaMetadata per fornire alla scheda Ora in riproduzione informazioni sui contenuti multimediali correnti, ad esempio titolo, sottotitoli 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 Ora in riproduzione, il sistema apre l'app proprietaria della sessione. Se la tua app fornisce PendingIntent a setSessionActivity(), il sistema avvia l'attività specificata, come mostrato nel seguente snippet di codice. In caso contrario, si apre 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
    )
}
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);