Medien-App auf Android TV erweitern

Android bietet eine vielfältige Nutzererfahrung, die für Apps optimiert ist, die auf Geräten mit großen Bildschirmen ausgeführt werden, wie zum Beispiel HD-Fernsehern. Du kannst die Zielgruppe deiner App erweitern, indem du sie für Android TV entwickelst. In diesem Dokument erfahren Sie, wie Sie dies effektiv tun können.

TV-Apps entwickeln

TV-Apps haben dieselbe Struktur wie die für Smartphones und Tablets. Dieser Ansatz bedeutet, dass Sie neue TV-Apps basierend auf dem erstellen können, was Sie bereits über die Entwicklung von Apps für Android wissen, oder Ihre vorhandenen Apps so erweitern, dass sie auch auf TV-Geräten ausgeführt werden.

Das Nutzerinteraktionsmodell für das Fernsehen unterscheidet sich jedoch erheblich von Smartphones und Tablets. Damit Ihre App auf Fernsehgeräten erfolgreich ist, müssen Sie neue Layouts entwerfen, die auch aus 3 Metern Entfernung gut verstanden werden können. Außerdem benötigen Sie eine Navigation, die nur mit einer Richtungstasten und einer Auswahltaste funktioniert.

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

Media3 ExoPlayer verwenden

Jetpack Media3 bietet eine Player-Schnittstelle, über die grundlegende Funktionen wie die Wiedergabe, Pause, Suche und Anzeige von Titelinformationen definiert sind. ExoPlayer ist die Standardimplementierung dieser Schnittstelle in Media3.

Im Vergleich zur MediaPlayer API von Android bietet sie zusätzliche praktische Funktionen wie die Unterstützung mehrerer Streaming-Protokolle, standardmäßige Audio- und Video-Renderer sowie Komponenten, die die Medienzwischenspeicherung abwickeln.

Sie können ExoPlayer anpassen und erweitern und über Play Store-Anwendungsupdates aktualisieren. Weitere Informationen finden Sie unter Media3 ExoPlayer.

Media3 MediaSession verwenden

Mediensitzungen bieten dem System eine universelle Möglichkeit, mit dem Audio- oder Videoplayer Ihrer App zu interagieren. Eines der Hauptmerkmale von Media3, die sich von früheren Medien-APIs unterscheiden, besteht darin, dass keine Connectors zwischen den Komponenten mehr erforderlich sind.

Die neue MediaSession-Klasse verwendet jede Klasse, die die Player-Schnittstelle implementiert. Sowohl ExoPlayer als auch MediaController sind Klassen, die diese Schnittstelle implementieren. Dies erleichtert die Interaktion zwischen den Komponenten. Weitere Informationen findest du unter Die Benutzeroberfläche des Players.

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

Sie müssen MediaSession implementieren, um die Endnutzer Ihrer Medien-App optimal zu nutzen. Initialisieren Sie dazu Player und geben Sie es wie folgt an MediaSession.Builder an:

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 Statusbehandlung

Die Media3-Mediathek aktualisiert die Mediensitzung automatisch anhand des Status des Players. So müssen Sie die Zuordnung vom Spieler zur Sitzung nicht manuell vornehmen. So können Nutzer immer die aktuellen Informationen zu den Medien sehen, die gerade abgespielt werden, auch auf der Karte Now Playing (Läuft gerade).

Wiedergabe steuern und anzeigen

In Media3 ist der Standardplayer die ExoPlayer-Klasse, die die Player-Schnittstelle implementiert. Durch das Verbinden der Mediensitzung mit dem Player kann eine App die Medienwiedergabe extern bewerben 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. Damit können Sie Befehle von externen Quellen an den Player weiterleiten, der für die Wiedergabe Ihrer Medien zuständig ist. Externe Clients können einen Mediencontroller verwenden, um Wiedergabebefehle an Ihre Medien-App zu senden. Diese werden von Ihrer Mediensitzung empfangen, die schließlich Befehle an den Mediaplayer delegiert.

Weitere Informationen zur Wiedergabe, etwa zum Anpassen des Verhaltens von Wiedergabebefehlen, finden Sie unter Wiedergabe mit MediaSession steuern und anbieten.

Unterbrechungen Ihrer App vermeiden

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

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

  • Die Musikwiedergabe wird unerwartet unterbrochen, wenn Nutzer die App verlassen oder den Fernseher ausschalten. Die Verwendung von MediaSession APIs ermöglicht die kontinuierliche Wiedergabe in einem Hintergrunddienst.

  • Eingeschränkte Interaktion mit Inhalten, bei denen Nutzer die Wiedergabe nicht steuern können Beispielsweise können Sie zu Ihrer App zurückkehren, wenn sie im Hintergrund Musik abspielt oder Sprachbefehle unterstützt. Mit MediaSession in Ihrer App können Nutzer Sprachbefehle verwenden, um Songs oder Folgen zu suchen und zu überspringen.

Weitere Überlegungen

Wenn du deine Medien-App auf Android for TV ausbaust, musst du Probleme mit der Barrierefreiheit berücksichtigen, die Nutzerinteraktion fördern, Nutzern die Suche nach Inhalten ermöglichen sowie Spiele und TV-Eingabedienste entwickeln.

Bedienungshilfen für Fernseher

Obwohl assistive Technologien Nutzern mit eingeschränktem Sehvermögen helfen können und tun, ist es wichtig, die Barrierefreiheit bei der Entdeckung von Inhalten für TV-Apps zu unterstützen.

Achten Sie beispielsweise besonders darauf, Navigationshilfen bereitzustellen, Elemente korrekt zu beschriften und dafür zu sorgen, dass TV-Apps gut mit Bedienungshilfen wie TalkBack funktionieren. Diese Schritte können die User Experience für Nutzende mit Sehbeeinträchtigungen erheblich verbessern.

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

Best Practices für mehr Interaktionen bei Google TV

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

Sie müssen MediaSession verwenden, um eine universelle Art der Interaktion mit einem Audio- oder Videoplayer bereitzustellen. Weitere Informationen zur Implementierung finden Sie unter Media3 MediaSession verwenden.

Deine App muss Google Cast unterstützen. Damit kannst du deine Android-, iOS- und Chrome-Apps so erweitern, dass Audio- und Videostreams auch auf Android-Fernsehern, Chromecast- und Assistant-Geräten verfügbar sind. Weitere Informationen finden Sie in der Google Cast-Dokumentation.

Sie können Nutzern auch bei Folgendem helfen:

  • Inhalte auf verschiedenen Oberflächen entdecken: Biete einen Feed für Mediaaktionen an oder integrieren Sie „Als Nächstes ansehen“.

  • Nutzen Sie Sprachfunktionen und Interaktionen, indem Sie die Kontoverknüpfung und die Synchronisierung von Berechtigungen unterstützen, das Streamen per Sprachbefehl anbieten und Cast Connect aktivieren.

  • Durch die Einbindung der Google Play-Abrechnung und der Bereitstellung reibungsloser Abos können Sie einfacher bezahlen.

Framework für TV-Eingabe erstellen

Das Ansehen von Live-TV-Sendungen und anderen kanalbasierten Inhalten ist ein großer Teil des Fernseherlebnisses. Nutzer sind daran gewöhnt, TV-Sendungen per Kanalsuche auszuwählen und anzusehen. Das TV Input Framework erstellt Kanäle für die Veröffentlichung von Ideen oder Musikinhalten in der Programmübersicht.

Das TV Input Framework bietet eine einheitliche Methode für den Empfang und die Wiedergabe von Live-Videoinhalten von Hardwarequellen wie HDMI-Ports und integrierten Tunern sowie von Softwarequellen wie über das Internet gestreamtes Videostreams. Weitere Informationen finden Sie unter TV-Eingabedienste erstellen.