Abhängigkeit hinzufügen
Die Media3-Bibliothek enthält zwei Jetpack Compose-basierte UI-Module. Sie müssen nicht beide hinzufügen, da die Material3-Abhängigkeit von der Core-Abhängigkeit abhängt.
Kotlin
// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.11.1")
implementation("androidx.media3:media3-ui-compose-material3:1.11.1")
Groovy
// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.11.1"
implementation "androidx.media3:media3-ui-compose-material3:1.11.1"
Wir empfehlen Ihnen dringend, Ihre App nach dem Compose-First-Ansatz zu entwickeln oder von der Verwendung von Ansichten zu migrieren.
Demo-App, die vollständig mit Compose erstellt wurde
Die media3-ui-compose-Bibliothek enthält zwar keine vordefinierten Composables (wie Schaltflächen, Indikatoren, Bilder oder Dialogfelder), aber Sie finden eine vollständig in Compose geschriebene Demo-App, die keine Interoperabilitätslösungen wie das Verpacken von PlayerView in AndroidView erfordert. In der Demo-App werden die UI-Zustandshalterklassen aus dem media3-ui-compose-Modul und der Compose Material3-Bibliothek verwendet.
Welche Bibliothek benötige ich?
Je nach gewünschtem Anpassungsgrad können Sie zwischen zwei Media3 Compose-Bibliotheken wählen. Um den Unterschied zu verstehen, ist es hilfreich, sich die Pipeline für die Erstellung des UI-Zustands vorzustellen: Business logic → UI logic → UI.
Verwenden Sie media3-ui-compose, um die vollständige Kontrolle über Ihre UI-Komponenten zu haben.
Diese Bibliothek stellt die Business logic → UI logic-Verbindung bereit. Sie enthält grundlegende Komponenten wie PlayerSurface und ContentFrame sowie State Holder-Klassen (z.B. PlayPauseButtonState, CurrentMediaItemState, PlaylistState, ErrorState), die den Player-Status in den UI-Status konvertieren.
Diese Bibliothek bietet keine einsatzbereiten Material Design-Komponenten. Sie sind dafür verantwortlich, Ihre eigenen UI-Komponenten zu erstellen und zu gestalten. Sie haben damit maximale Kontrolle über das Design und die Bedienung. Das ist ideal, wenn Sie ein stark angepasstes Designsystem haben.
Verwenden Sie media3-ui-compose-material3 für eine schnellere Integration in Material Design.
Diese Bibliothek stellt den letzten UI-Teil der Pipeline bereit. Sie hängt von media3-ui-compose ab und enthält vordefinierte zusammensetzbare Funktionen, die mit Material3-Komponenten formatiert sind, einschließlich der zusammensetzbaren Funktionen Player und MiniController. Das Compose-Element Player bietet eine umfassende Medienwiedergabe mit Video, Steuerelementen und Fortschrittsanzeige, die du mit PlayerDefaults weiter anpassen kannst. Das Compose-Element MiniController bietet eine kompakte Möglichkeit, den Player zu steuern und gleichzeitig Informationen zum aktuellen Medienelement anzuzeigen. Sie müssen keine eigenen Schaltflächen und anderen UI-Elemente von Grund auf neu erstellen. Sie können das Design, die Farben und die Symbole dieser Komponenten weiterhin anpassen, die Kernimplementierung wird jedoch 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. |
Stellt die Composables Player und MiniController sowie eine vollständige Reihe vordefinierter Composables im Material3-Stil wie PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText usw. bereit. |
| Zustandsverwaltung | Stellt remember...State-Inhaber bereit, um die Logik zu verwalten. |
Der Status wird intern verwaltet, aber Sie können bei Bedarf weiterhin auf die State Holder zugreifen. |
| Abhängigkeiten | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3, com.google.android.material |
| Primärer Anwendungsfall | Erstellen einer Player-UI mit einem benutzerdefinierten Designsystem. Volle Kontrolle über das Design. | Schnelles Erstellen einer Player-UI, die den Material Design 3-Richtlinien entspricht. |