Abhängigkeit hinzufügen
Die Media3-Bibliothek enthält zwei auf Jetpack Compose basierende UI-Module. Sie müssen nicht beide hinzufügen, da die Material3-Version von der Core-Version abhängt.
Kotlin
// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.10.1")
implementation("androidx.media3:media3-ui-compose-material3:1.10.1")
Groovy
// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.10.1"
implementation "androidx.media3:media3-ui-compose-material3:1.10.1"
Wir empfehlen Ihnen dringend, Ihre App in erster Linie mit Compose zu entwickeln oder von der Verwendung von Views zu migrieren.
Vollständig mit Compose erstellte Demo-App
Die media3-ui-compose-Bibliothek enthält keine sofort einsatzbereiten Composables wie Schaltflächen, Anzeigen, Bilder oder Dialogfelder. Sie können jedoch eine Demo-App finden, die vollständig in Compose geschrieben ist und alle Interoperabilitätslösungen wie das Einbetten von PlayerView in AndroidView vermeidet. In der Demo-App werden die UI-State-Holder-Klassen aus dem media3-ui-compose-Modul und der Compose Material3-Bibliothek verwendet.
Welche Bibliothek benötige ich?
Je nach gewünschtem Grad der Anpassung können Sie zwischen zwei Media3 Compose-Bibliotheken wählen. Um den Unterschied zu verstehen, ist es hilfreich, sich die Pipeline zur Erstellung des UI-Zustands vor Augen zu führen: Business logic → UI logic → UI.
Mit media3-ui-compose haben Sie die volle Kontrolle über Ihre UI-Komponenten.
Diese Bibliothek stellt die Business logic → UI logic-Verbindung bereit. Sie enthält grundlegende Komponenten wie PlayerSurface und ContentFrame sowie Status-Holder-Klassen (z.B. PlayPauseButtonState, CurrentMediaItemState, PlaylistState, ErrorState), die den Player-Status in den UI-Status konvertieren.
Diese Bibliothek bietet keine sofort einsatzbereiten Material Design-Komponenten. Sie sind dafür verantwortlich, Ihre eigenen UI-Komponenten zu erstellen und zu gestalten. Damit haben Sie maximale Kontrolle über das Erscheinungsbild und die Bedienung. Das ist ideal, wenn Sie ein stark angepasstes Designsystem haben.
media3-ui-compose-material3 für eine schnellere Integration mit Material Design verwenden:
Diese Bibliothek stellt den letzten UI-Teil der Pipeline bereit. Sie hängt von media3-ui-compose ab und enthält vorgefertigte zusammensetzbare Funktionen, die mit Material3-Komponenten gestaltet sind, einschließlich der zusammensetzbaren Funktionen Player und MiniController. Das Player-Composable bietet eine umfassende Medienwiedergabe mit Video, Steuerelementen und Fortschrittsbalken, die Sie mit PlayerDefaults weiter anpassen können. Das zusammensetzbare Element MiniController bietet eine kompakte Möglichkeit, den Player zu steuern und gleichzeitig Informationen zum aktuellen Media-Element anzuzeigen. Sie müssen keine eigenen Schaltflächen und anderen UI-Elemente von Grund auf neu erstellen. Sie können weiterhin das Design, die Farben und die Symbole dieser Komponenten anpassen, aber die Kernimplementierung wird für Sie bereitgestellt.
Auf einen Blick
| Funktion | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| UI-Komponenten | Grundlegende Elemente wie PlayerSurface und ContentFrame, aber keine vordefinierten Schaltflächen oder Steuerelemente. |
Bietet die Composables Player und MiniController sowie eine vollständige Reihe von vorgefertigten, im Material3-Stil gehaltenen Composables wie PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText usw. |
| Statusverwaltung | Ermöglicht remember...State-Inhabern, die Logik zu verwalten. |
Der Status wird intern verwaltet, aber Sie können bei Bedarf weiterhin auf die Statusinhaber zugreifen. |
| Abhängigkeiten | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3, com.google.android.material |
| Primärer Anwendungsfall | Player-UI mit einem benutzerdefinierten Designsystem erstellen Vollständige Kontrolle über das Erscheinungsbild. | Schnelles Erstellen einer Player-Benutzeroberfläche, die den Material Design 3-Richtlinien entspricht. |