Wyświetl kartę Co jest grane

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.