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.
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.
Nützliche Links
- Media Developer Center
ExoPlayer
Dokumente- Migrationsanleitung
- AndroidX Media3 auf GitHub
- Beispiel-App für Media3-Mediensitzung
- Beispiel-App für Universal Android Music Player