Medien-App auf Android TV erweitern

Android bietet zahlreiche nutzerfreundliche Funktionen, die für Apps auf Geräten mit großen Bildschirmen optimiert sind – zum Beispiel High-Definition-Fernseher. Sie können die Zielgruppe Ihrer App erweitern, indem Sie sie für Android TV entwickeln. In diesem Dokument finden Sie Informationen dazu, wie Sie dies effektiv tun.

TV-Apps entwickeln

TV-Apps haben dieselbe Struktur wie Apps für Smartphones und Tablets. Dies bedeutet, dass du zum Erstellen neuer TV-Apps ähnlich vorgehen kannst wie beim Erstellen von Apps für Android. Du hast aber auch die Möglichkeit, bestehende Apps so zu erweitern, dass sie auch auf Android TV-Geräten ausgeführt werden können.

Das Nutzerinteraktionsmodell für Fernseher unterscheidet sich jedoch erheblich von dem für Smartphones und Tablets. Damit Ihre App auf Fernsehern erfolgreich ist, müssen Sie neue Layouts entwerfen, die aus 3 Metern Entfernung gut erkennbar sind, und eine Navigation bereitstellen, die nur mit einer Richtungstaste und einer Auswahlschaltfläche funktioniert.

Weitere Informationen zu Themen wie dem Umgang mit TV-Hardware-Controllern, dem Erstellen von TV-Layouts und der Erstellung von TV-Navigation finden Sie unter TV-Apps erstellen.

Media3 ExoPlayer verwenden

Jetpack Media3 bietet eine Playeroberfläche mit grundlegenden Funktionen wie Wiedergabe, Pausieren, Suchen und Anzeige von Titelinformationen. ExoPlayer ist die Standardimplementierung dieser Schnittstelle in Media3.

Im Vergleich zur MediaPlayer API von Android bietet sie zusätzliche Vorteile wie die Unterstützung mehrerer Streamingprotokolle, Standard-Audio- und Video-Renderer sowie Komponenten, die die Medienpufferung steuern.

Du kannst ExoPlayer anpassen und erweitern. Außerdem kann er über Play Store-App-Updates aktualisiert werden. Weitere Informationen finden Sie unter Media3 ExoPlayer.

Media3 verwenden MediaSession

Mediensitzungen bieten eine universelle Möglichkeit für das System, mit dem Audio- oder Videoplayer Ihrer App zu interagieren. Eine der Hauptmerkmale, die Media3 von früheren Medien-APIs unterscheidet, ist, dass keine Verbindungen zwischen Komponenten mehr erforderlich sind.

Die neue MediaSession-Klasse kann jede Klasse annehmen, die die Player-Schnittstelle implementiert. Sowohl ExoPlayer als auch MediaController sind Klassen, die diese Schnittstelle implementieren. Das ermöglicht eine wesentlich einfachere Interaktion zwischen den Komponenten. Weitere Informationen finden Sie unter Player-Oberfläche.

Weitere Informationen zum Erstellen einer App für die Medienwiedergabe finden Sie unter Einen einfachen Mediaplayer mit ExoPlayer erstellen.

Um die Nutzerfreundlichkeit für die Endnutzer Ihrer Medien-App zu optimieren, müssen Sie MediaSession implementieren. Dazu initialisieren Sie eine Player und geben sie so an MediaSession.Builder weiter:

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();

Automatische Statusverwaltung

Die Media3-Bibliothek aktualisiert die Mediensitzung automatisch anhand des Status des Players. Du musst die Zuordnung von Spieler zu Sitzung also nicht manuell vornehmen. So sehen Nutzer immer aktuelle Informationen zu den wiedergegebenen Medien, auch auf der Now Playing-Karte.

Wiedergabe steuern und bewerben

In Media3 ist der Standardplayer die ExoPlayer-Klasse, die die Player-Schnittstelle implementiert. Wenn die Mediensitzung mit dem Player verbunden ist, kann eine App die Medienwiedergabe extern ankündigen und Wiedergabebefehle von externen Quellen empfangen. Die Mediensitzung delegiert diese Befehle an den Player der Medien-App.

Die Mediensitzung ist der Schlüssel zur Steuerung der Wiedergabe. Sie können damit Befehle von externen Quellen an den Player weiterleiten, der Ihre Medien abspielt. Externe Clients können über einen Mediacontroller Wiedergabebefehle an Ihre Medien-App senden. Diese werden von Ihrer Mediensitzung empfangen, die die Befehle an den Mediaplayer weiterleitet.

Weitere Informationen zur Wiedergabe, z. B. zum Anpassen des Verhaltens von Wiedergabebefehlen, findest du unter Wiedergabe mit MediaSession steuern und bewerben.

Unterbrechungen in Ihrer App vermeiden

Mit MediaSession lassen sich unnötige Unterbrechungen vermeiden, z. B.:

  • Unerwartete und fortgesetzte Wiedergabe, wenn der Fernseher ausgeschaltet oder der TV-Eingang gewechselt wird. Dies führt auch zu einem hohen Energieverbrauch der Fernseher. Mit MediaSession kann Ihre App die Plattform darüber informieren, dass Medien wiedergegeben werden, und die Plattform kann die App darüber informieren, dass die Wiedergabe beendet werden kann.

  • Die Musikwiedergabe wird unerwartet beendet, wenn du die App verlässt oder das Fernseherdisplay ausschaltest. Mit MediaSession APIs ist eine fortlaufende Wiedergabe in einem Hintergrunddienst möglich.

  • Eingeschränkte Interaktion mit Inhalten, die Nutzer daran hindert, die Wiedergabe zu steuern. Beispielsweise kann die App zur Wiedergabe von Musik im Hintergrund zurückkehren oder Sprachbefehle unterstützen. Mit MediaSession in deiner App können Nutzer Sprachbefehle verwenden, um Titel oder Folgen zu überspringen und zu suchen.

Weitere Überlegungen

Wenn Sie Ihre Medien-App auf Android TV ausweiten, müssen Sie die Barrierefreiheit berücksichtigen, die Interaktion fördern, Nutzern die Suche nach Inhalten ermöglichen und Spiele und TV-Eingabedienste entwickeln.

Bedienungshilfen für Fernseher

Hilfstechnologien können und helfen Nutzern mit eingeschränktem Sehvermögen. Es ist jedoch wichtig, die Barrierefreiheit bei der Suche nach Inhalten in TV-Apps zu unterstützen.

Achten Sie beispielsweise besonders darauf, eine Navigationshilfe bereitzustellen und Elemente korrekt zu beschriften. Außerdem sollten Sie dafür sorgen, dass TV-Apps gut mit Bedienungshilfen wie TalkBack funktionieren. Mit diesen Schritten lässt sich die Nutzerfreundlichkeit für Nutzer mit Sehbehinderung erheblich verbessern.

Der erste Schritt zur Verbesserung der Barrierefreiheit ist das Bewusstsein. Weitere Informationen zu Textskalierung, Tastaturlayouts und Audiobeschreibungen finden Sie in den Ressourcen zur Barrierefreiheit.

Best Practices für mehr Interaktionen auf Google TV

Alle für Android TV entwickelten Apps funktionieren auf Geräten mit Google TV. Für eine optimale Nutzererfahrung auf Google TV empfehlen wir die folgenden Best Practices.

Sie müssen MediaSession verwenden, um eine universelle Möglichkeit zur Interaktion mit einem Audio- oder Videoplayer bereitzustellen. Weitere Informationen zur Implementierung findest du unter Media3 MediaSession verwenden.

Ihre App muss Google Cast unterstützen. Sie können damit Ihre Android-, iOS- und Chrome-Apps erweitern, um Audio- und Videostreaming auf Android TV-Geräten sowie auf Chromecast- und Assistant-Geräten zu ermöglichen. Weitere Informationen finden Sie in der Google Cast-Dokumentation.

Außerdem können Sie Nutzern helfen,

  • Nutzer können Inhalte auf verschiedenen Oberflächen entdecken, indem du einen Feed mit Medienaktionen anbietest oder „Als Nächstes ansehen“ einbindest.

  • Nutzen Sie Sprachbefehle und Interaktionen, indem Sie die Kontoverknüpfung und die Berechtigungssynchronisierung unterstützen, Sprachstreams anbieten und Cast Connect aktivieren.

  • Einfachere Zahlungen durch die Einbindung von Google Play Billing und die Bereitstellung reibungsloser Abos.

TV-Eingabe-Framework erstellen

Das Ansehen von Live-TV-Sendungen und anderen kontinuierlichen, kanalbasierten Inhalten ist ein wichtiger Bestandteil des Fernseherlebnisses. Nutzer sind es gewohnt, sich Sendungen im Fernsehen anzusehen, indem sie durch die Kanäle schalten. Das TV Input Framework erstellt Kanäle zum Veröffentlichen von Video- oder Musikinhalten im TV-Programmführer.

Das TV Input Framework bietet eine einheitliche Methode zum Empfangen und Wiedergeben von Live-Videoinhalten von Hardwarequellen wie HDMI-Ports und integrierten Tunern sowie von Softwarequellen wie über das Internet gestreamten Videos. Weitere Informationen finden Sie unter TV-Eingabedienste erstellen.