Aplikacje telewizyjne, które odtwarzają dźwięk, mogą to robić nadal po powrocie użytkownika do ekranu głównego lub przełączeniu się na inną aplikację. Aby to było możliwe, aplikacja musi wyświetlać na ekranie głównym kartę Co jest grane. Dzięki tej karcie użytkownicy mogą sprawdzić, skąd pochodzi dźwięk, i wrócić do Twojej aplikacji, aby sterować odtwarzaniem multimediów.
Gdy aktywna jest sesja
MediaSession jest
obecna, platforma Android wyświetla na ekranie głównym kartę Co jest grane. Karta
zawiera metadane multimediów, takie jak okładka albumu, tytuł i ikona aplikacji. Gdy użytkownik wybierze kartę,
system otworzy aplikację.
Karta Co jest grane
Gdy zaimplementujesz sesję multimedialną, ustawisz ją jako aktywną i poprosisz o aktywność audio, pojawi się karta Co jest grane.
Uwaga: karta Co jest grane wyświetla się tylko w przypadku sesji multimedialnej z ustawioną flagą FLAG_HANDLES_TRANSPORT_CONTROLS. Ta flaga jest wycofana w przypadku interfejsu API na poziomie 26. Jednak na starszych urządzeniach ta flaga może być nadal potrzebna do zapewnienia zgodności wstecznej.
Karta jest usuwana z ekranu uruchamiania, gdy wywołanie
setActive(false)
dezatywuje sesję multimedialną lub gdy inna aplikacja rozpocznie odtwarzanie multimediów. Jeśli odtwarzanie zostanie
całkowicie zatrzymane i nie ma aktywnych multimediów, natychmiast dezaktywuj sesję multimedialną. Jeśli odtwarzanie zostanie wstrzymane, dezaktywuj sesję multimedialną po upływie określonego czasu,
zwykle od 5 do 30 minut.
Aktualizowanie karty
Gdy aplikacja zaktualizuje stan odtwarzania w MediaSession, karta
Co jest grane zostanie zaktualizowana, aby wyświetlać stan bieżących multimediów. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł
Aktualizowanie stanu odtwarzania.
Podobnie aplikacja może aktualizować
MediaMetadata aby przekazywać
informacje do karty Co jest grane o bieżących multimediach, takie jak tytuł, podtytuł,
i różne ikony. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł
Aktualizowanie metadanych multimediów.
Reagowanie na działania użytkownika
Gdy użytkownik wybierze kartę Co jest grane , system otworzy aplikację, która jest właścicielem
sesji. Jeśli aplikacja udostępnia
PendingIntent do
setSessionActivity(),
system uruchomi określoną przez Ciebie aktywność, jak pokazano w tym fragmencie kodu. W przeciwnym razie
otworzy się domyślny zamiar systemowy. Określona przez Ciebie aktywność musi udostępniać elementy sterujące odtwarzaniem, które
umożliwiają użytkownikom 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 or PendingIntent.FLAG_IMMUTABLE ) } 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);
Dozwolone przypadki użycia
Karta Co jest grane powinna być używana tylko w przypadkach, gdy użytkownik oczekuje, że po opuszczeniu aplikacji dźwięk będzie nadal odtwarzany w tle. Odtwarzanie filmu lub dźwięku z gry powinno zawsze zostać wstrzymane, chyba że aplikacja jest zintegrowana z trybem obrazu w obrazie i jest z nim zgodna.