Mostra una carta Now Playing

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.