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.