Einführung in Jetpack Media3

Jetpack Media3 ist das neue Zuhause für Mediatheken, mit denen Android-Apps satte Audio- und visuelle Elemente bereitstellen können. Media3 bietet eine einfache Architektur mit leistungsstarker Anpassung, Zuverlässigkeit und Optimierungen basierend auf den Gerätefunktionen, um die Komplexität zu reduzieren, die mit der Fragmentierung einhergeht.

Dieses Dokument bietet eine Einführung in wichtige APIs für die Implementierung von Wiedergabe- und Bearbeitungsanwendungsfällen mit Media3.

Wiedergabekomponenten

Media3 bietet mehrere Schlüsselkomponenten für Wiedergabeanwendungsfälle. Die Klassen, aus denen diese Komponenten bestehen, sind Ihnen vertraut, wenn Sie mit früheren Android-Mediatheken gearbeitet haben.

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

Die verschiedenen Komponenten einer Medien-App, die Media3 verwendet, sind auf verschiedene einfache Weise miteinander verbunden, da sie ihre Schnittstellen und Klassen gemeinsam nutzen.
Abbildung 1: Komponenten einer Medienanwendung

Mediaplayer

Ein Mediaplayer ist eine Komponente Ihrer App, die die Wiedergabe von Mediendateien ermöglicht. In Media3 finden Sie:

Kurs Beschreibung Implementierungshinweis
Player Player ist eine Schnittstelle, die herkömmliche allgemeine Funktionen eines Mediaplayers definiert, z. B. die Möglichkeit zum Abspielen, Pausieren und Suchen. 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-Schnittstelle in Media3.

Weitere Informationen zu Media3 ExoPlayer

Die Mediensitzung

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

Kurs Beschreibung Implementierungshinweis
MediaSession Mithilfe von Mediensitzungen kann Ihre App mit einem Audio- oder Videoplayer interagieren. Sie bewerben die Medienwiedergabe extern und erhalten Wiedergabebefehle von externen Quellen. In Media3 benötigt ein MediaSession eine Player, um Befehle auszuführen und den aktuellen Status abzurufen.
MediaSessionService MediaSessionService enthält eine Mediensitzung und den zugehörigen Player in einem anderen Dienst als dem Haupt-Activity Ihrer App, um die Hintergrundwiedergabe zu ermöglichen.
MediaController Die Klasse MediaController wird im Allgemeinen 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 zugehörigen MediaSession gesendet. Die Klasse MediaController implementiert die Player-Schnittstelle, aber wenn eine Methode aufgerufen wird, wird der Befehl an die verbundene MediaSession gesendet. Client-Apps wie Google Assistant können die Wiedergabe in einer verbundenen Sitzung mithilfe von MediaController steuern.
MediaLibraryService Ein MediaLibraryService ähnelt einem MediaSessionService, enthält jedoch zusätzliche APIs, damit Sie Ihre Inhaltsbibliothek für Clientanwendungen bereitstellen können.
MediaBrowser Mit der Klasse MediaBrowser kann der Nutzer durch die Inhaltsbibliothek einer Medien-App navigieren und auswählen, welche Elemente wiedergegeben werden sollen. Die Klasse MediaBrowser implementiert die Schnittstellen MediaController und Player. Ähnlich wie bei MediaController implementieren Client-Apps wie Android Auto im Allgemeinen MediaBrowser.

Weitere Informationen zu Media3 MediaSession

Die UI-Komponenten

Media3 bietet Standard-UI-Komponenten zum Ansehen von Videos und Steuern der Wiedergabe.

Kurs Beschreibung Implementierungshinweis
PlayerView Ein standardmäßiges View-Element zum Anzeigen der Video- und Wiedergabesteuerung. Stellt eine Verbindung zu ExoPlayer, MediaController oder einer anderen benutzerdefinierten Player her.

Weitere Informationen zur Media3-UI

Komponenten bearbeiten

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

  • Audio- und Videoverarbeitung, z. B. Hinzufügen von Filtern und Effekten
  • Umgang mit Spezialformaten wie HDR- und Zeitlupe
  • Komposition, z. B. das Kombinieren mehrerer Eingabedateien
  • Die Endausgabe in eine Datei exportieren
Kurs Beschreibung Implementierungshinweis
Transformer Verwenden Sie die Klasse Transformer, um Transformationen zu starten und zu stoppen und um den Fortschritt einer laufenden Transformation zu prüfen.
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 Änderungen, die darauf angewendet werden sollen. Sie können ExoPlayer verwenden, um eine Vorschau der einem Medienelement hinzugefügten Effekte anzusehen, bevor Sie den Exportvorgang starten.

Weitere Informationen zu Media3 Transformer

Einführungsvideo

Im folgenden Video erhalten Sie eine Einführung in Media3 von den Entwicklern, die das Tool entwickelt haben.