Android zapewnia bogate wrażenia użytkownika 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 TV.
Używanie odtwarzacza 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.
Możesz dostosowywać i rozszerzać ExoPlayer, a także aktualizować go 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 aplikacji. Jedną z głównych cech odróżniających 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 multimedialnej jak najlepsze wrażenia, musisz wdrożyć MediaSession
. Aby to zrobić, zainicjuj Player
i przekaż go do 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 na sesję. Dzięki temu użytkownicy zawsze widzą aktualne informacje o odtwarzanych multimediach, w tym na karcie Co jest grane.
Sterowanie odtwarzaniem i reklamowanie go
W Media3 domyślnym odtwarzaczem jest klasa ExoPlayer, która implementuje interfejs Player. Połączenie sesji multimedialnej z odtwarzaczem umożliwia aplikacji reklamowanie odtwarzania multimediów na zewnątrz i otrzymywanie poleceń odtwarzania ze źródeł zewnętrznych. Sesja multimediów 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. Klienci zewnętrzni 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 multimediów.
Więcej informacji o odtwarzaniu, np. o dostosowywaniu działania poleceń odtwarzania, znajdziesz w artykule Sterowanie odtwarzaniem i wyświetlanie reklam za pomocą MediaSession.
Unikanie przerw w działaniu 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 telewizora. Dzięki temu
MediaSession
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 przełączeniu na inną aplikację lub wyłączeniu ekranu telewizora. Korzystanie z interfejsów API
MediaSession
umożliwia dalsze odtwarzanie w usłudze działającej w tle.Ograniczone interakcje z treściami, które uniemożliwiają 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ę multimedialną na Androida TV, musisz wziąć pod uwagę kwestie związane z ułatwieniami dostępu, sposobami zwiększania zaangażowania użytkowników, sposobami umożliwiania użytkownikom znajdowania treści oraz sposobami tworzenia 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 wspierać dostępność 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.
Aplikacja musi obsługiwać Google Cast. 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 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 w różnych miejscach, udostępniając kanał działań związanych z multimediami lub integrując funkcję Warte obejrzenia.
Wykorzystaj możliwości głosu i zaangażowania, 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, integrując płatności w Google Play i zapewniając bezproblemowe subskrypcje.
Tworzenie platformy wejścia TV
Oglądanie programów telewizyjnych na żywo i innych ciągłych treści na poszczególnych kanałach jest ważną częścią 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 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ściowych TV.