Erste Schritte mit der Compose-basierten Benutzeroberfläche

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.