Karte „Now Playing“ anzeigen

TV-Apps müssen eine Now Playing-Karte anzeigen, wenn Medien hinter dem Launcher oder im Hintergrund wiedergegeben werden. Über diese Karte können Nutzer zu der App zurückkehren, in der gerade Medien abgespielt werden.

Das Android-Framework zeigt die Karte Now Playing (Läuft gerade) auf dem Startbildschirm an, wenn eine aktive MediaSession vorhanden ist. Die Karte enthält Metadaten zu Medien wie Albumcover, Titel und App-Symbol. Wenn der Nutzer die Karte auswählt, öffnet das System die App.

Mit der Klasse MediaSession können Sie die Karte Now Playing implementieren.

Abbildung 1: Bei der Hintergrundwiedergabe von Medien wird die Karte Now Playing angezeigt.

Karte „Now Playing“

Nachdem Sie eine Mediensitzung implementiert, die Sitzung aktiviert und den Audiofokus angefordert haben, wird die Karte Now Playing (Läuft gerade) angezeigt.

Hinweis:Die Karte Now Playing wird nur für eine Mediensitzung angezeigt, bei der das Flag FLAG_HANDLES_TRANSPORT_CONTROLS gesetzt ist. Dieses Flag wurde auf API-Level 26 eingestellt. Dieses Flag kann jedoch aus Gründen der Abwärtskompatibilität weiterhin auf älteren Geräten erforderlich sein.

Die Karte wird vom Launcher-Bildschirm entfernt, wenn die Mediensitzung durch einen setActive(false)-Aufruf deaktiviert wird oder wenn eine andere App die Medienwiedergabe initiiert. Wenn die Wiedergabe vollständig angehalten wird und keine aktiven Medien vorhanden sind, deaktivieren Sie die Mediensitzung sofort. Wenn die Wiedergabe pausiert wird, deaktivieren Sie die Mediensitzung nach einer Verzögerung, in der Regel 5 bis 30 Minuten.

Karte aktualisieren

Immer wenn Ihre App den Wiedergabestatus im MediaSession aktualisiert, wird die Karte Now Playing (Läuft gerade) aktualisiert und zeigt den Status der aktuellen Medien an. Informationen dazu findest du unter Wiedergabestatus aktualisieren.

Ebenso kann Ihre App die MediaMetadata aktualisieren, um der Karte Now Playing (Läuft gerade) Informationen zum aktuellen Medium (z. B. Titel, Untertitel und verschiedene Symbole) bereitzustellen. Informationen dazu finden Sie unter Medienmetadaten aktualisieren.

Auf Nutzeraktion reagieren

Wenn der Nutzer die Karte Läuft gerade auswählt, öffnet das System die App, zu der die Sitzung gehört. Wenn Ihre App eine PendingIntent für setSessionActivity() bereitstellt, startet das System die von Ihnen angegebene Aktivität, wie im folgenden Code-Snippet gezeigt. Andernfalls wird der standardmäßige System-Intent geöffnet. Für die angegebene Aktivität muss eine Wiedergabesteuerung bereitgestellt werden, mit der Nutzer die Wiedergabe pausieren oder beenden können.

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);