Medien-App auf Android TV erweitern

Android bietet eine umfassende Nutzererfahrung, die für Apps auf Geräten mit großen Bildschirmen wie HD-Fernsehern optimiert ist. Sie können die Zielgruppe Ihrer App erweitern, indem Sie sie für Android TV entwickeln. In diesem Dokument finden Sie eine Anleitung dazu, wie Sie dies effektiv tun können.

TV-Apps entwickeln

TV-Apps haben dieselbe Struktur wie Apps für Smartphones und Tablets. So kannst du neue TV-Apps auf Grundlage deines Wissens über die Entwicklung von Apps für Android erstellen oder deine vorhandenen Apps so erweitern, dass sie auch auf TV-Geräten ausgeführt werden können.

Das Modell für die Nutzerinteraktion bei Fernsehern unterscheidet sich jedoch erheblich von dem bei Smartphones und Tablets. Damit deine App auf TV-Geräten erfolgreich ist, musst du neue Layouts entwerfen, die aus einer Entfernung von 3 Metern gut zu erkennen sind, und eine Navigation bereitstellen, die nur mit einem Steuerkreuz und einer Auswahltaste funktioniert.

Weitere Informationen zu Überlegungen wie dem Umgang mit TV-Hardware-Controllern, dem Erstellen von TV-Layouts und dem Erstellen von TV-Navigation findest du unter TV-Apps erstellen.

Media3 ExoPlayer verwenden

Jetpack Media3 bietet eine Player-Schnittstelle, die grundlegende Funktionen wie die Möglichkeit zum Abspielen, Pausieren, Suchen und Anzeigen von Titelinformationen definiert. 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 für die Medienpufferung.

ExoPlayer kann angepasst und erweitert werden und lässt sich über Google Play Store-Anwendungsupdates aktualisieren. Weitere Informationen finden Sie unter Media3 ExoPlayer.

Media3-MediaSession verwenden

Media Sessions bieten eine universelle Möglichkeit, mit dem Audio- oder Videoplayer deiner App zu interagieren. Eines der Hauptmerkmale, die Media3 von früheren Medien-APIs unterscheiden, ist, dass keine Connectors mehr zwischen Komponenten erforderlich sind.

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

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

Damit die Endnutzer Ihrer Medien-App die bestmögliche Nutzererfahrung haben, müssen Sie MediaSession implementieren. Initialisieren Sie dazu ein Player-Objekt und übergeben Sie es wie folgt an MediaSession.Builder:

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 Statusverarbeitung

Die Media3-Bibliothek aktualisiert die Media Session automatisch anhand des Status des Players. Sie müssen also keine manuelle Zuordnung von Player und Session vornehmen. So sehen Nutzer immer die aktuellen 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. Durch die Verbindung der Media Session mit dem Player kann eine App die Medienwiedergabe extern bewerben und Wiedergabebefehle von externen Quellen empfangen. In der Media Session werden diese Befehle an den Player der Medien-App delegiert.

Die Media Session ist der Schlüssel zur Steuerung der Wiedergabe. Mit ihrer Hilfe können Sie Befehle von externen Quellen an den Player weiterleiten, der Ihre Medien wiedergibt. Externe Clients können einen Media Controller verwenden, um Wiedergabebefehle an Ihre Medien-App zu senden. Diese werden von Ihrer Media Session empfangen, die Befehle letztendlich an den Mediaplayer weiterleitet.

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

Unterbrechungen in Ihrer App vermeiden

Mit MediaSession können Sie unnötige Unterbrechungen vermeiden, z. B.:

  • Unerwartete und fortgesetzte Wiedergabe beim Ausschalten des Fernsehers oder beim Wechseln der TV-Eingänge. Außerdem führt dies zu einem hohen Stromverbrauch der TV-Hardware. Mit MediaSession kann deine 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 Display des Fernsehers ausschaltest. Mit MediaSession-APIs kann die Wiedergabe in einem Hintergrunddienst fortgesetzt werden.

  • Eingeschränkte Interaktion mit Inhalten, die Nutzer daran hindert, die Wiedergabe zu steuern. Beispiele: Rückkehr zu deiner App, wenn sie im Hintergrund Musik abspielt, oder Unterstützung von Sprachbefehlen. Mit MediaSession in deiner App können Nutzer per Sprachbefehl nach Songs oder Folgen suchen und diese überspringen.

Weitere Gesichtspunkte

Wenn du deine Medien-App auf Android für TV erweiterst, musst du Probleme mit der Barrierefreiheit, die Förderung der Interaktion, die Möglichkeit für Nutzer, Inhalte zu finden, sowie die Entwicklung von Spielen und TV-Eingabediensten berücksichtigen.

Bedienungshilfen für Fernseher

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

Achte beispielsweise besonders darauf, Navigationshinweise bereitzustellen und Elemente richtig zu kennzeichnen, und sorge dafür, dass TV-Apps gut mit Bedienungshilfen wie TalkBack funktionieren. Diese Schritte können die Nutzerfreundlichkeit für Nutzer mit Sehbehinderungen erheblich verbessern.

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

Best Practices zur Steigerung der Interaktion auf Google TV

Alle für Android TV entwickelten Apps funktionieren auf Geräten mit Google TV. Damit Nutzer Google TV optimal verwenden können, empfehlen wir, die folgenden Best Practices zu beachten.

Du musst MediaSession verwenden, um eine universelle Möglichkeit zur Interaktion mit einem Audio- oder Videoplayer bereitzustellen. Weitere Informationen zur Implementierung finden Sie unter Media3 MediaSession verwenden.

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

Außerdem können Sie Nutzern bei Folgendem helfen:

  • Inhalte auf verschiedenen Oberflächen entdecken, indem du einen Feed für Medienaktionen anbietest oder „Empfohlene Videos“ einbindest.

  • Nutze die Vorteile von Sprachsteuerung und Interaktion, indem du die Kontoverknüpfung und die Synchronisierung von Berechtigungen unterstützt, Sprach-Casting anbietest und Cast Connect aktivierst.

  • Einfacher bezahlen: Integriere Google Play Billing und biete reibungslose Abos an.

TV-Eingabe-Framework erstellen

Live-TV-Sendungen und andere fortlaufende, kanalbasierte Inhalte sind ein wichtiger Bestandteil des Fernseherlebnisses. Nutzer sind es gewohnt, Sendungen im Fernsehen durch Durchsuchen der Kanäle auszuwählen und anzusehen. Das TV Input Framework erstellt Kanäle, um Video- oder Musikinhalte im TV-Programmführer zu veröffentlichen.

Das TV Input Framework bietet eine einheitliche Methode für den Empfang und die Wiedergabe von Live-Videoinhalten von Hardwarequellen wie HDMI-Anschlüssen und integrierten Tunern sowie von Softwarequellen wie über das Internet gestreamten Videos. Weitere Informationen findest du unter TV-Eingabedienste erstellen.