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. Wenn Sie Ihre App für Android TV entwickeln, können Sie die Zielgruppe Ihrer App erweitern. In diesem Dokument finden Sie Informationen dazu, wie Sie das effektiv tun können.

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 deine App auf TV-Geräten erfolgreich ist, musst du neue Layouts entwerfen, die aus einer Entfernung von 3 Metern gut erkennbar sind, und eine Navigation bereitstellen, die nur mit einem Steuerkreuz und einer Auswahltaste funktioniert.

Weitere Informationen zu Aspekten wie dem Umgang mit TV-Hardwarecontrollern, dem Erstellen von TV-Layouts und der TV-Navigation finden Sie unter TV-Apps entwickeln.

Media3 ExoPlayer verwenden

Jetpack Media3 bietet eine Player-Schnittstelle, die grundlegende Funktionen wie das 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 Funktionen wie die Unterstützung mehrerer Streamingprotokolle, standardmäßige Audio- und Video-Renderer sowie Komponenten, die das Puffern von Media übernehmen.

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

Media3 MediaSession verwenden

Mediensitzungen bieten eine universelle Möglichkeit für das System, mit dem Audio- oder Videoplayer Ihrer App zu interagieren. Eines der wichtigsten Merkmale, das Media3 von früheren Media-APIs unterscheidet, ist, dass keine Connectors mehr zwischen Komponenten erforderlich sind.

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

Weitere Informationen zum Erstellen einer App zur Medienwiedergabe finden Sie unter Einen einfachen Mediaplayer mit ExoPlayer erstellen.

Damit die Endnutzer deiner Media-App optimal damit arbeiten können, musst du MediaSession implementieren. Initialisieren Sie dazu ein Player und übergeben Sie es so 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 Statusverwaltung

Die Media3-Bibliothek aktualisiert die Mediensitzung automatisch anhand des Status des Players. Sie müssen die Zuordnung von Spieler zu Sitzung also nicht manuell vornehmen. So wird sichergestellt, dass Ihre Nutzer immer die aktuellen Informationen zu den wiedergegebenen Medien sehen, auch auf der Now Playing-Karte.

Wiedergabe steuern und bewerben

In Media3 ist der Standard-Player die ExoPlayer-Klasse, die die Player-Schnittstelle implementiert. Durch die Verbindung der Mediensitzung mit dem Player kann eine App die Medienwiedergabe extern bewerben und Wiedergabebefehle von externen Quellen empfangen. Die Media-Sitzung delegiert diese Befehle an den Player der Media-App.

Die Mediensitzung ist der Schlüssel zur Steuerung der Wiedergabe. Damit können Sie Befehle von externen Quellen an den Player weiterleiten, der Ihre Medien wiedergibt. Externe Clients können einen MediaController verwenden, um Wiedergabebefehle an deine Media-App zu senden. Diese werden von deiner MediaSession 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 lassen sich unnötige Unterbrechungen vermeiden, z. B.:

  • Unerwartete und fortgesetzte Wiedergabe beim Ausschalten des Fernsehers oder beim Wechseln der TV-Eingänge. Dies führt auch zu einem hohen Energieverbrauch der TV-Hardware. Mit MediaSession kann Ihre App die Plattform darüber informieren, dass sie Medien wiedergibt, und die Plattform kann die App darüber informieren, dass die Wiedergabe beendet werden kann.

  • Die Musikwiedergabe wird unerwartet beendet, wenn Sie die App verlassen oder das TV-Display ausschalten. Die Verwendung von MediaSession-APIs ermöglicht die fortgesetzte Wiedergabe in einem Hintergrunddienst.

  • Eingeschränkte Interaktion mit Inhalten, die Nutzer daran hindert, die Wiedergabe zu steuern. Das kann beispielsweise das Zurückkehren zu Ihrer App sein, wenn sie Musik im Hintergrund abspielt, oder die Unterstützung von Sprachbefehlen. Mit MediaSession in Ihrer App können Nutzer Sprachbefehle verwenden, um in Songs oder Folgen zu suchen und sie zu überspringen.

Weitere Überlegungen

Wenn Sie Ihre Media-App auf Android TV ausweiten, müssen Sie auf Barrierefreiheit, Nutzerinteraktion, die Möglichkeit für Nutzer, Inhalte zu finden, sowie auf die Entwicklung von Spielen und TV-Eingabediensten achten.

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 für TV-Apps zu unterstützen.

Achten Sie beispielsweise besonders darauf, Navigationsanleitungen bereitzustellen und Elemente richtig zu kennzeichnen. Sorgen Sie außerdem dafür, dass TV-Apps gut mit Bedienungshilfen wie TalkBack funktionieren. Diese Schritte können die Nutzerfreundlichkeit für Nutzer mit eingeschränktem Sehvermögen erheblich verbessern.

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

Best Practices für mehr Interaktion auf Google TV

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

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

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

Außerdem können Sie Nutzern helfen,

  • Inhalte auf verschiedenen Oberflächen präsentieren, indem Sie einen Feed für Media-Aktionen anbieten oder die Funktion „Als Nächstes ansehen“ einbinden.

  • Sprachsteuerung und Interaktionen nutzen: Unterstütze die Kontoverknüpfung und die Synchronisierung von Berechtigungen, biete Voice Casting an und aktiviere Cast Connect.

  • Einfacher bezahlen: Durch die Integration von Google Play Billing können Sie Abos ohne Probleme anbieten.

TV-Eingabe-Framework erstellen

Live-TV-Sendungen und andere kontinuierliche, kanalbasierte Inhalte sind ein wichtiger Bestandteil des Fernsehens. Nutzer sind es gewohnt, sich Sendungen im Fernsehen über das Durchsuchen von Kanälen auszusuchen und anzusehen. Das TV Input Framework erstellt Kanäle für die Veröffentlichung von Video- oder Musikinhalten im TV-Programmführer.

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