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