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ć liczbę odbiorców aplikacji, tworząc ją na Androida TV. Ten dokument zawiera wskazówki, jak zrobić to skutecznie.

Tworzenie aplikacji na telewizory

Aplikacje TV mają taką samą strukturę jak aplikacje na telefony i tablety. Dzięki temu możesz tworzyć nowe aplikacje TV, korzystając z wiedzy o tworzeniu aplikacji na Androida, lub rozszerzać istniejące aplikacje, aby działały również na telewizorach.

Jednak model interakcji użytkownika z telewizorem znacznie różni się od modelu interakcji z telefonem czy tabletem. Aby Twoja aplikacja odniosła sukces na telewizorach, musisz zaprojektować nowe układy, które będą czytelne z odległości 3 metrów, i zapewnić nawigację, która działa tylko za pomocą przycisków kierunkowych i przycisku wyboru.

Więcej informacji o takich kwestiach jak obsługa kontrolerów sprzętowych telewizora, tworzenie układów telewizyjnych i tworzenie nawigacji telewizyjnej znajdziesz w artykule Tworzenie aplikacji TV.

Używanie ExoPlayera z Media3

Jetpack Media3 udostępnia interfejs Player, który definiuje podstawowe funkcje, takie jak odtwarzanie, wstrzymywanie, przewijanie i wyświetlanie informacji o ścieżce. ExoPlayer jest domyślną implementacją tego interfejsu w Media3.

W porównaniu z interfejsem MediaPlayer API na Androidzie zapewnia 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ć ExoPlayera, 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ą systemowi uniwersalny sposób interakcji z odtwarzaczem audio lub wideo w aplikacji. Jedną z głównych cech, które odróżniają Media3 od poprzednich interfejsów API 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 Player i podaj go w 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ę multimedialną na podstawie stanu odtwarzacza. Dlatego nie musisz ręcznie mapować gracza na sesję. Dzięki temu użytkownicy zawsze będą widzieć aktualne informacje o odtwarzanych multimediach, m.in. na karcie Co jest grane.

Sterowanie odtwarzaniem i rozgłaszanie

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 do multimediów. Są one odbierane przez sesję multimedialną, która ostatecznie przekazuje polecenia do odtwarzacza.

Więcej informacji o odtwarzaniu, np. o tym, jak dostosować działanie poleceń odtwarzania, znajdziesz w artykule Sterowanie odtwarzaniem i rozgłaszanie odtwarzania za pomocą MediaSession.

Unikanie zakłóceń w aplikacji

Korzystanie z MediaSession pozwala uniknąć niepotrzebnych zakłóceń, takich jak:

  • Nieoczekiwane i nieprzerwane odtwarzanie po wyłączeniu telewizora lub przełączeniu wejść telewizora. Powoduje to też duże zużycie energii przez telewizor. Dzięki MediaSession aplikacja może poinformować platformę, że odtwarza multimedia, a platforma może poinformować aplikację, że odtwarzanie może zostać zatrzymane.

  • Odtwarzanie muzyki nieoczekiwanie się zatrzymuje po przełączeniu się na inną aplikację lub wyłączeniu ekranu telewizora. Korzystanie z interfejsów API MediaSession umożliwia dalsze odtwarzanie w usłudze w tle.

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

Dodatkowe kwestie

Rozszerzając aplikację do multimediów na Androida TV, musisz wziąć pod uwagę kwestie ułatwień dostępu, sposoby zwiększania zaangażowania, umożliwiania użytkownikom znajdowania treści oraz tworzenia gier i usług wejściowych TV.

Ułatwienia dostępu na telewizorze

Chociaż technologie wspomagające osoby z niepełnosprawnością mogą pomagać użytkownikom niedowidzącym, ważne jest, aby wspierać ułatwienia dostępu w procesie odkrywania treści w aplikacjach TV.

Zwróć szczególną uwagę na wskazówki dotyczące nawigacji i prawidłowe etykietowanie elementów oraz upewnij się, że aplikacje TV dobrze współpracują z ułatwieniami dostępu, takimi jak TalkBack. Te kroki mogą znacznie poprawić wrażenia użytkowników z wadami wzroku.

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

Sprawdzone metody zwiększania zaangażowania w Google TV

Wszystkie aplikacje stworzone na Androida TV działają na urządzeniach z Google TV. Aby zapewnić użytkownikom Google TV jak najlepsze wrażenia, 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 Media3 MediaSession.

Podstawowym wymaganiem jest obsługa Google Cast przez aplikację. Umożliwia rozszerzenie aplikacji na Androida, iOS i Chrome, aby umożliwić strumieniowe przesyłanie dźwięku i obrazu 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 na różnych platformach, oferując kanał działań związanych z multimediami lub integrując funkcję Warte obejrzenia.

  • Wykorzystaj możliwości sterowania głosowego i zwiększ zaangażowanie, obsługując łączenie kont i synchronizację uprawnień, oferując przesyłanie głosowe i włączając Cast Connect.

  • Ułatw płatności, integrując system rozliczeniowy Google Play i zapewniając bezproblemowe subskrypcje.

Tworzenie platformy wejścia TV

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

Platforma wejścia 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ściowych TV.