Android zapewnia użytkownikom bogate wrażenia, które są zoptymalizowane pod kątem aplikacji działających na urządzeniach z dużym ekranem, takich jak telewizory o wysokiej rozdzielczości. Możesz zwiększyć grono odbiorców aplikacji, tworząc ją na Androida TV. Ten dokument zawiera wskazówki, jak to zrobić skutecznie.
Tworzenie aplikacji na telewizory
Aplikacje na telewizory korzystają z tej samej struktury co aplikacje na telefony i tablety. Dzięki temu możesz tworzyć nowe aplikacje na telewizory na podstawie swojej wiedzy o tworzeniu aplikacji na Androida lub rozszerzać istniejące aplikacje, aby działały również na urządzeniach TV.
Model interakcji z użytkownikiem w przypadku telewizorów różni się jednak znacznie od modelu na telefony i tablety. Aby aplikacja działała dobrze na urządzeniach z telewizorem, musisz zaprojektować nowe układy, które będą czytelne z odległości 3 metrów, oraz zapewnić nawigację, która działa tylko z użyciem pada kierunkowego i przycisku wyboru.
Więcej informacji o takich kwestiach, jak obsługa kontrolerów sterowania sprzętem telewizyjnym, tworzenie układów na telewizory i tworzenie nawigacji na telewizory, znajdziesz w artykule Tworzenie aplikacji na telewizory.
Korzystanie z Media3 ExoPlayer
Jetpack Media3 udostępnia interfejs odtwarzacza, który definiuje podstawowe funkcje, takie jak możliwość odtwarzania, wstrzymywania, przewijania i wyświetlania informacji o utworze. ExoPlayer to domyślna implementacja tego interfejsu w Media3.
W porównaniu z interfejsem MediaPlayer API na Androidzie ten interfejs zapewnia dodatkowe udogodnienia, takie jak obsługa wielu protokołów strumieniowego przesyłania danych, domyślne mechanizmy renderowania audio i wideo oraz komponenty obsługujące buforowanie multimediów.
ExoPlayer możesz dostosowywać i rozszerzać oraz aktualizować w ramach aktualizacji aplikacji Sklep Play. Więcej informacji znajdziesz na stronie Media3 ExoPlayer.
Użyj Media3 MediaSession
Sesje multimediów stanowią uniwersalny sposób na interakcję systemu z odtwarzaczem audio lub wideo aplikacji. Jedną z głównych cech, które odróżnia Media3 od poprzednich interfejsów API multimediów, jest to, że nie ma już potrzeby łączników między komponentami.
Nowa klasa MediaSession
przyjmuje wszystkie klasy, które implementują interfejs Player. Zarówno ExoPlayer, jak i MediaController to klasy, które implementują ten interfejs. Dzięki temu interakcja między komponentami jest znacznie prostsza.
Więcej informacji znajdziesz w artykule Interfejs odtwarzacza.
Więcej informacji o tworzeniu aplikacji do odtwarzania multimediów znajdziesz w artykule o tworzeniu podstawowego odtwarzacza multimediów przy użyciu ExoPlayer.
Aby zapewnić użytkownikom aplikacji multimedialnej jak najlepsze wrażenia, musisz wdrożyć MediaSession
. Aby to zrobić, zainicjuj zmienną Player
i przekaż ją do zmiennej 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 stanów
Biblioteka Media3 automatycznie aktualizuje sesję multimediów na podstawie stanu odtwarzacza. W związku z tym nie musisz ręcznie mapować odtwarzacza na sesję. Dzięki temu użytkownicy zawsze widzą aktualne informacje o odtwarzanych treściach, m.in. na karcie Co jest grane.
kontrolować odtwarzanie i reklamować je,
W Media3 domyślnym odtwarzaczem jest klasa ExoPlayer, która implementuje interfejs Player. Połączenie sesji multimediów z odtwarzaczem umożliwia aplikacji wyświetlanie informacji o odtwarzaniu multimediów na zewnątrz i odbieranie poleceń odtwarzania ze źródeł zewnętrznych. Sesja multimediów deleguje te polecenia do odtwarzacza aplikacji multimedialnej.
Sesja multimediów jest kluczowa dla sterowania odtwarzaniem. Umożliwia ona kierowanie poleceń z zewnętrznych źródeł do odtwarzacza, który odtwarza Twoje multimedia. Klienci zewnętrzni mogą używać kontrolera multimediów do wydawania poleceń odtwarzania do Twojej aplikacji multimedialnej. Polecenia te są odbierane przez sesję multimediów, która ostatecznie deleguje je do odtwarzacza multimediów.
.Więcej informacji o odtwarzaniu, np. o dostosowywaniu zachowania poleceń odtwarzania, znajdziesz w artykule Kontrolowanie i reklamowanie odtwarzania za pomocą MediaSession.
Unikaj zakłóceń w działaniu aplikacji
Korzystanie z usługi MediaSession
pozwala uniknąć niepotrzebnych przerw, takich jak:
Nieoczekiwane i ciągłe odtwarzanie po wyłączeniu telewizora lub zmianie wejścia telewizora. Spowoduje to również duże zużycie energii przez sprzęt telewizora. Dzięki temu aplikacja może informować platformę o tym, że odtwarza multimedia, a platforma może informować aplikację o możliwości zatrzymania odtwarzania.
MediaSession
Odtwarzanie muzyki nieoczekiwanie zatrzymuje się po wyjściu z aplikacji lub wyłączeniu ekranu telewizora. Użycie interfejsów API
MediaSession
umożliwia ciągłe odtwarzanie w usłudze w tle.Ograniczona interakcja z treścią, która uniemożliwia użytkownikom kontrolowanie odtwarzania. Może to być na przykład powrót do aplikacji, która odtwarza muzykę w tle, lub obsługa poleceń głosowych. Dzięki
MediaSession
w aplikacji użytkownicy mogą używać poleceń głosowych, aby wyszukiwać i pomijać utwory lub odcinki.
Dodatkowe uwagi
Podczas rozszerzania aplikacji multimedialnej na Androida na telewizory musisz wziąć pod uwagę kwestie ułatwień dostępu, sposoby zwiększania zaangażowania użytkowników, umożliwianie im znajdowania treści oraz tworzenie gier i usług wejściowych na telewizory.
Ułatwienia dostępu w telewizorze
Chociaż technologie wspomagające mogą pomagać niedowidzącym użytkownikom, ważne jest, aby w przypadku aplikacji na telewizory wspierać ułatwienia dostępu w procesie odkrywania treści.
Zwróć na przykład szczególną uwagę na wskazówki dotyczące nawigacji i prawidłowe oznaczanie elementów oraz zadbaj o to, aby aplikacje na telewizory dobrze współpracowały z funkcjami ułatwień dostępu, takimi jak TalkBack. Dzięki temu użytkownicy z niepełnosprawnością wzroku będą mogli wygodniej korzystać z usługi.
Pierwszym krokiem na drodze do poprawy ułatwień dostępu jest uświadomienie. Więcej informacji o skalowaniu tekstu, układach klawiatury i audiodeskrypcjach znajdziesz w zasobach dotyczących ułatwień dostępu.
Sprawdzone metody zwiększania zaangażowania na Google TV
Wszystkie aplikacje stworzone na Androida TV działają na urządzeniach z Google TV. Aby zadbać o jak największą wygodę użytkowników Google TV, zalecamy stosowanie tych sprawdzonych metod.
Musisz użyć interfejsu MediaSession
, aby zapewnić uniwersalny sposób interakcji z odtwarzaczem audio lub wideo. Więcej informacji o wdrażaniu tej funkcji znajdziesz w artykule Korzystanie z MediaSession w Media3.
Domyślnie aplikacja musi obsługiwać Google Cast. Dzięki temu możesz rozszerzyć swoje aplikacje na Androida, iOS i Chrome, aby umożliwić strumieniowe przesyłanie dźwięku i wideo na telewizory z Androidem TV, a także na urządzenia Chromecast i urządzenia z Asystentem. Więcej informacji znajdziesz w dokumentacji Google Cast.
Możesz też pomóc użytkownikom:
Odkrywaj treści na różnych platformach, oferując kanał działań związanych z mediami lub integrując funkcję „Warto obejrzeć”.
Wykorzystaj możliwości głosowe i zaangażowanie, wspierając łączenie kont, synchronizację uprawnień, przesyłanie głosu i funkcję Cast Connect.
Łatwiej płacić dzięki integracji z systemem płatności Google Play i bezproblemowemu pozyskiwaniu subskrypcji.
Tworzenie ramy źródła TV
Oglądanie programów telewizyjnych na żywo i innych ciągłych treści na kanałach jest ważną częścią korzystania z telewizji. Użytkownicy są przyzwyczajeni do wybierania i oglądania programów na telewizory, przeglądając kanały. TVinput Framework tworzy kanały do publikowania idei lub treści muzycznych w przewodniku po programach telewizyjnych.
Platforma wprowadzania danych TV zapewnia ujednoliconą metodę odbierania i odtwarzania treści wideo 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ścia TV.