Udostępnij swoją aplikację do multimediów na Androidzie TV

Android zapewnia bogate wrażenia użytkownika, które są zoptymalizowane pod kątem aplikacji działających na urządzeniach z dużym ekranem, takich jak telewizory HD. Możesz zwiększyć zasięg aplikacji, tworząc ją na Androida TV. W tym dokumencie znajdziesz wskazówki, jak to zrobić skutecznie.

Tworzenie aplikacji na telewizory

Aplikacje na telewizory mają taką samą strukturę jak aplikacje na telefony i tablety. Dzięki temu możesz tworzyć nowe aplikacje na telewizory na podstawie wiedzy, którą już masz na temat tworzenia aplikacji na Androida, lub rozszerzać istniejące aplikacje, aby działały również na telewizorach.

Model interakcji użytkownika z telewizorem znacznie różni się jednak od modelu interakcji z telefonem i tabletem. Aby Twoja aplikacja odniosła sukces na urządzeniach telewizyjnych, musisz zaprojektować nowe układy, które będą czytelne z odległości 3 metrów, oraz zapewnić nawigację działającą tylko za pomocą pada kierunkowego i przycisku wyboru.

Więcej informacji o kwestiach takich jak obsługa kontrolerów sprzętu TV, tworzenie układów TV i nawigacji w TV znajdziesz w artykule Tworzenie aplikacji na telewizory.

Korzystanie z ExoPlayer w Media3

Jetpack Media3 udostępnia interfejs odtwarzacza, który definiuje podstawowe funkcje, takie jak odtwarzanie, wstrzymywanie, przewijanie i wyświetlanie informacji o ścieżce. ExoPlayer to domyślna implementacja tego interfejsu w Media3.

W porównaniu z interfejsem MediaPlayer API Androida dodaje dodatkowe udogodnienia, takie jak obsługa wielu protokołów strumieniowania, domyślne renderery audio i wideo oraz komponenty obsługujące buforowanie multimediów.

ExoPlayer można dostosowywać i rozszerzać, a także aktualizować za pomocą aktualizacji aplikacji w Sklepie Play. Więcej informacji znajdziesz w artykule Media3 ExoPlayer.

Używanie Media3 MediaSession

Sesje multimedialne zapewniają uniwersalny sposób interakcji systemu z odtwarzaczem audio lub wideo w Twojej aplikacji. Jedną z głównych cech, która odróżnia Media3 od poprzednich interfejsów API do obsługi multimediów, jest to, że nie ma już potrzeby stosowania łączników między komponentami.

Nowa klasa MediaSession przyjmuje dowolną klasę, która implementuje interfejs Player. Zarówno ExoPlayer, jak i MediaController to klasy, które implementują ten interfejs. Ułatwia to interakcję między komponentami. Więcej informacji znajdziesz w artykule Interfejs odtwarzacza.

Więcej informacji o tworzeniu aplikacji do odtwarzania multimediów znajdziesz w artykule Tworzenie podstawowego odtwarzacza multimediów za pomocą ExoPlayera.

Aby zapewnić użytkownikom aplikacji do multimediów jak najlepsze wrażenia, musisz wdrożyć MediaSession. Aby to zrobić, zainicjuj obiekt Player i przekaż go do funkcji MediaSession.Builder w ten sposób:

Kotlin

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

Java

ExoPlayer player = new ExoPlayer.Builder(context).build();
MediaSession mediaSession = new MediaSession.Builder(context, player).build();

Automatyczna obsługa stanu

Biblioteka Media3 automatycznie aktualizuje sesję multimediów na podstawie stanu odtwarzacza. W związku z tym nie musisz ręcznie obsługiwać mapowania odtwarzacza do sesji. Dzięki temu użytkownicy zawsze widzą aktualne informacje o odtwarzanych multimediach, w tym na karcie Co jest grane.

Sterowanie odtwarzaniem i reklamowanie odtwarzania

W Media3 domyślnym odtwarzaczem jest klasa ExoPlayer, która implementuje interfejs Player. Połączenie sesji multimedialnej z odtwarzaczem umożliwia aplikacji przekazywanie informacji o odtwarzaniu multimediów źródłom zewnętrznym i otrzymywanie poleceń odtwarzania ze źródeł zewnętrznych. Sesja multimedialna przekazuje te polecenia do odtwarzacza aplikacji multimedialnej.

Sesja multimedialna jest kluczem do sterowania odtwarzaniem. Umożliwia kierowanie poleceń ze źródeł zewnętrznych do odtwarzacza, który odtwarza multimedia. Klienty zewnętrzne mogą używać kontrolera multimediów do wydawania poleceń odtwarzania aplikacji multimedialnej. Są one odbierane przez sesję multimedialną, która ostatecznie przekazuje polecenia do odtwarzacza.

Więcej informacji o odtwarzaniu, np. o dostosowywaniu działania poleceń odtwarzania, znajdziesz w artykule Sterowanie odtwarzaniem i reklamowanie go za pomocą MediaSession.

Unikaj zakłóceń w aplikacji

Korzystanie z MediaSession pozwala uniknąć niepotrzebnych przerw, takich jak:

  • Nieoczekiwane i ciągłe odtwarzanie po wyłączeniu telewizora lub przełączeniu wejść telewizora. Powoduje to również wysokie zużycie energii przez sprzęt telewizyjny. Dzięki MediaSession Twoja aplikacja może informować platformę, że odtwarza multimedia, a platforma może informować aplikację, że odtwarzanie może zostać zatrzymane.

  • Odtwarzanie muzyki nieoczekiwanie zatrzymuje się po wyjściu z aplikacji lub wyłączeniu ekranu telewizora. Korzystanie z interfejsów API MediaSession umożliwia dalsze odtwarzanie w usłudze w tle.

  • Ograniczona interakcja z treściami, która uniemożliwia użytkownikom sterowanie odtwarzaniem. Na przykład powrót do aplikacji, jeśli odtwarza muzykę w tle, lub obsługa poleceń głosowych. Dzięki MediaSession w aplikacji użytkownicy mogą używać poleceń głosowych do przewijania i pomijania utworów lub odcinków.

Dodatkowe uwagi

Rozszerzając aplikację do multimediów na Androida TV, musisz wziąć pod uwagę kwestie związane z ułatwieniami dostępu, sposobami zwiększania zaangażowania, umożliwianiem użytkownikom wyszukiwania treści oraz tworzeniem gier i usług wejścia TV.

Ułatwienia dostępu w telewizji

Technologie wspomagające mogą pomagać użytkownikom z wadami wzroku, ale ważne jest, aby obsługiwać ułatwienia dostępu w procesie odkrywania treści w aplikacjach na telewizory.

Zwróć szczególną uwagę na wskazówki dotyczące nawigacji i prawidłowe etykietowanie elementów oraz zadbaj o to, aby aplikacje TV dobrze współpracowały z funkcjami ułatwień dostępu, takimi jak TalkBack. Te czynności mogą znacznie poprawić komfort korzystania z usługi przez osoby niedowidzące.

Pierwszym krokiem do poprawy dostępności jest świadomość. Więcej informacji o skalowaniu tekstu, układach klawiatury i opisach dźwiękowych znajdziesz w materiałach dotyczących ułatwień dostępu.

Sprawdzone metody zwiększania zaangażowania w Google TV

Wszystkie aplikacje stworzone z myślą o Androidzie TV działają na urządzeniach z Google TV. Aby zapewnić użytkownikom jak najlepsze wrażenia z korzystania z Google TV, zalecamy stosowanie tych sprawdzonych metod.

Musisz użyć MediaSession, aby zapewnić uniwersalny sposób interakcji z odtwarzaczem audio lub wideo. Więcej informacji o tym, jak to zrobić, znajdziesz w artykule Korzystanie z MediaSession w Media3.

Podstawowym wymaganiem jest obsługa Google Cast przez aplikację. Umożliwia rozszerzenie aplikacji na Androida, iOS i Chrome, aby włączyć strumieniowe przesyłanie dźwięku i wideo na telewizory z Androidem, a także na Chromecasty i urządzenia z Asystentem. Więcej informacji znajdziesz w dokumentacji Google Cast.

Możesz też pomóc użytkownikom:

  • Odkrywanie treści na różnych platformach poprzez udostępnianie karty działań związanych z multimediami lub integrację funkcji Obejrzyj następny.

  • Korzystaj z funkcji głosowych i zaangażowania użytkowników, obsługując połączenie kont i synchronizację uprawnień, oferując przesyłanie głosu i włączając Cast Connect.

  • Ułatw płatności dzięki integracji z systemem rozliczeniowym Google Play i zapewnij bezproblemowe subskrypcje.

Tworzenie struktury wejścia TV

Oglądanie programów telewizyjnych na żywo i innych ciągłych treści na kanałach to ważna część korzystania z telewizji. Użytkownicy są przyzwyczajeni do wybierania i oglądania programów telewizyjnych poprzez przeglądanie kanałów. Framework wejścia TV tworzy kanały do publikowania treści wideo lub muzycznych w przewodniku po programach telewizyjnych.

TV Input Framework zapewnia ujednoliconą metodę odbierania i odtwarzania transmisji na żywo ze źródeł sprzętowych, takich jak porty HDMI i wbudowane tunery, oraz źródeł oprogramowania, takich jak wideo przesyłane strumieniowo przez internet. Więcej informacji znajdziesz w artykule Tworzenie usług wejściowych na telewizor.