Wyświetl kartę Co jest grane

Podczas odtwarzania multimediów w programie uruchamiającym lub w tle aplikacje na telewizory muszą wyświetlać kartę Co jest grane. Ta karta umożliwia użytkownikom powrót do aplikacji, w której obecnie odtwarzane są multimedia.

Platforma Androida wyświetla kartę Co jest grane na ekranie głównym, gdy jest aktywny MediaSession. Zawiera ona metadane multimediów, takie jak okładka albumu, tytuł i ikona aplikacji. Gdy użytkownik wybierze kartę, system otworzy aplikację.

Do wdrożenia karty Co jest grane możesz użyć klasy MediaSession.

Rysunek 1. Gdy odtwarzasz multimedia w tle, wyświetla się karta Co jest grane.

Karta Co jest grane

Po zaimplementowaniu sesji multimediów, ustawieniu sesji w trybie aktywnym i żądaniu skupienia się na dźwięku pojawi się karta Co jest grane.

Uwaga: karta Teraz odtwarzane wyświetla się tylko w przypadku sesji multimedialnej z ustawioną flagą FLAG_HANDLES_TRANSPORT_CONTROLS. Ta flaga jest wycofana od poziomu interfejsu API 26. Jednak w przypadku starszych urządzeń takie oznaczenie może być wymagane w celu zapewnienia wstecznej zgodności.

Karta jest usuwana z ekranu programu uruchamiającego, gdy wywołanie setActive(false) dezaktywuje sesję multimediów lub gdy inna aplikacja inicjuje odtwarzanie multimediów. Jeśli odtwarzanie zostanie całkowicie zatrzymane i nie będzie żadnych aktywnych multimediów, natychmiast wyłącz sesję multimediów. Jeśli odtwarzanie jest wstrzymane, dezaktywuj sesję multimediów po opóźnieniu, który zwykle trwa od 5 do 30 minut.

Zaktualizuj kartę

Za każdym razem, gdy aplikacja aktualizuje stan odtwarzania w MediaSession, karta Co jest grane aktualizuje się, aby pokazać stan bieżącego multimediów. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł o aktualizowaniu stanu odtwarzania.

W podobny sposób aplikacja może zaktualizować MediaMetadata, aby na karcie Teraz odtwarzane były dostępne informacje o bieżących multimediach, takich jak tytuł, podtytuł i różne ikony. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł o aktualizowaniu metadanych multimediów.

Reaguj na działanie użytkownika

Gdy użytkownik wybierze kartę Co jest grane, system otworzy aplikację, do której należy sesja. Jeśli aplikacja udostępnia PendingIntent do setSessionActivity(), system uruchamia wskazane przez Ciebie działanie, jak pokazano w tym fragmencie kodu. W przeciwnym razie otworzy się domyślna intencja systemowa. Określona aktywność musi zapewniać elementy sterujące odtwarzaniem, które pozwalają użytkownikom na wstrzymywanie i zatrzymywanie odtwarzania.

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