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 Ora in riproduzione sulla 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 mostra una scheda Ora in riproduzione nella schermata Home. 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.

Carta Now Playing

Dopo aver implementato una sessione multimediale, aver impostato la sessione come attiva e aver richiesto lo stato attivo dell'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 è obsoleto a 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 è completamente interrotta e non ci sono contenuti multimediali attivi, disattiva immediatamente la sessione multimediale. Se la riproduzione è in pausa, disattiva la sessione multimediale dopo un ritardo, solitamente compreso tra 5 e 30 minuti.

Aggiorna la carta

Ogni volta che l'app aggiorna lo stato di riproduzione nell'MediaSession, la scheda Ora in riproduzione viene aggiornata per mostrare lo stato del contenuto multimediale corrente. Per scoprire come fare, consulta la sezione Aggiornare lo stato di riproduzione.

Analogamente, la tua app può aggiornare MediaMetadata per fornire alla scheda Ora in riproduzione informazioni relative ai contenuti multimediali correnti, ad esempio titolo, 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 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 nello snippet di codice riportato di seguito. 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);

Casi d'uso accettati

La scheda Ora in riproduzione 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 o l'audio di un gioco dovrebbe sempre essere messa in pausa, a meno che la tua app non si integri e sia conforme alla funzionalità Picture in picture.