Einführung in Jetpack Media3

Jetpack Media3 ist die neue Heimat für Medienbibliotheken, mit denen Android-Apps umfangreiche Audio- und visuelle Inhalte anzeigen können. Media3 bietet eine einfache Architektur mit leistungsstarker Anpassung, Zuverlässigkeit und Optimierungen basierend auf den Gerätefunktionen, um die Komplexität der Fragmentierung zu abstrahieren.

In diesem Dokument werden die wichtigsten APIs für die Implementierung von Wiedergabe- und Bearbeitungsanwendungsfällen mit Media3 vorgestellt.

Wiedergabekomponenten

Media3 bietet mehrere wichtige Komponenten für Anwendungsfälle der Wiedergabe. Die Klassen, aus denen diese Komponenten bestehen, sind Ihnen vertraut, wenn Sie schon einmal mit früheren Android-Medienbibliotheken gearbeitet haben.

Das folgende Diagramm zeigt, wie diese Komponenten in einer typischen App zusammenwirken.

Die verschiedenen Komponenten einer Media-App, die Media3 verwendet, können aufgrund der gemeinsamen Verwendung von Schnittstellen und Klassen auf mehrere einfache Arten miteinander verbunden werden.
Abbildung 1: Komponenten einer Medien-App

Der Mediaplayer

Ein Mediaplayer ist eine Komponente Ihrer App, mit der die Wiedergabe von Mediendateien möglich ist. In Media3 finden Sie:

Kurs Beschreibung Implementierungsanmerkung
Player Player ist eine Schnittstelle, die traditionelle Funktionen für einen Mediaplayer auf hoher Ebene definiert, z. B. die Wiedergabe, Pause und Suche. In Media3 ist die Player-Schnittstelle eine gängige API, die von mehreren Komponenten implementiert oder verwendet wird, z. B. MediaSession und MediaController.
ExoPlayer ExoPlayer ist die Standardimplementierung der Player-Oberfläche in Media3.

Weitere Informationen zu Media3 ExoPlayer

Die Mediensitzung

Eine Mediensitzung bietet eine universelle Möglichkeit, mit einem Mediaplayer zu interagieren. So kann eine App die Medienwiedergabe für externe Quellen anbieten und Anfragen zur Wiedergabesteuerung von externen Quellen erhalten. In Media3 finden Sie:

Kurs Beschreibung Implementierungsanmerkung
MediaSession Mit Mediensitzungen kann Ihre App mit einem Audio- oder Videoplayer interagieren. Sie werben extern für die Medienwiedergabe und erhalten Wiedergabebefehle von externen Quellen. In Media3 benötigt ein MediaSession ein Player, um Befehle auszuführen und den aktuellen Status abzurufen.
MediaSessionService Der MediaSessionService speichert eine Mediensitzung und den zugehörigen Player in einem Dienst, der vom HauptActivity Ihrer App getrennt ist, um die Hintergrundwiedergabe zu ermöglichen.
MediaController Die MediaController-Klasse wird in der Regel verwendet, um Befehle von außerhalb Ihrer App zu senden, z. B. von anderen Apps oder dem System selbst. Die Befehle werden an die zugrunde liegende Player der verknüpften MediaSession gesendet. Die MediaController-Klasse implementiert die Player-Schnittstelle. Beim Aufrufen einer Methode sendet die MediaController den Befehl an die verbundene MediaSession. Client-Apps wie Google Assistant können MediaController verwenden, um die Wiedergabe in einer verbundenen Sitzung zu steuern.
MediaLibraryService Eine MediaLibraryService ähnelt einer MediaSessionService, enthält aber zusätzliche APIs, mit denen du deine Inhaltsbibliothek für Client-Apps bereitstellen kannst.
MediaBrowser Mit der Klasse MediaBrowser können Nutzer die Inhaltsbibliothek einer Medien-App durchsuchen und auswählen, welche Elemente abgespielt werden sollen. Die Klasse MediaBrowser implementiert sowohl die Schnittstellen MediaController als auch Player. Ähnlich wie bei MediaController implementieren Client-Apps wie Android Auto in der Regel MediaBrowser.

Weitere Informationen zu Media3 MediaSession

UI-Komponenten

Media3 bietet standardmäßige UI-Komponenten zum Ansehen von Videos und zum Steuern der Wiedergabe.

Kurs Beschreibung Implementierungshinweis
PlayerView Ein Standard-View, um Video- und Wiedergabesteuerungen anzuzeigen. Stellt eine Verbindung zu ExoPlayer, MediaController oder einer anderen benutzerdefinierten Player her.

Weitere Informationen zur Media3-Benutzeroberfläche

Komponenten bearbeiten

Media3 umfasst die Transformer APIs für Anwendungsfälle der Medienbearbeitung, darunter:

  • Audio- und Videoverarbeitung, z. B. das Hinzufügen von Filtern und Effekten
  • Umgang mit speziellen Formaten wie HDR-Videos und Zeitlupenvideos
  • Zusammensetzung, z. B. Kombination mehrerer Eingabedateien
  • Endgültige Ausgabe in eine Datei exportieren
Kurs Beschreibung Implementierungshinweis
Transformer Mit der Klasse Transformer können Sie Transformationen starten und beenden und nach Fortschrittsaktualisierungen für eine laufende Transformation suchen.
Effects Ein Effects-Objekt ist eine Sammlung von Audio- und Videoeffekten, die auf ein Medienelement angewendet werden können.
EditedMediaItem Ein EditedMediaItem steht für ein zu verarbeitendes Medienelement und die darauf anzuwendenden Änderungen. Mit ExoPlayer kannst du dir eine Vorschau der Effekte ansehen, die einem Medienelement hinzugefügt wurden, bevor du mit dem Export beginnst.

Weitere Informationen zu Media3 Transformer

Einführungsvideo

Im Video unten erhalten Sie eine Einführung in Media3 von den Entwicklern, die es entwickelt haben.