Dodaj zależność
Biblioteka Media3 zawiera 2 moduły interfejsu oparte na Jetpack Compose. Nie musisz dodawać obu, ponieważ Material3 zależy od podstawowej.
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")
Dynamiczny
// 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"
Zdecydowanie zalecamy tworzenie aplikacji z wykorzystaniem Compose lub migrację z widoków.
Aplikacja demonstracyjna w pełni oparta na Compose
Biblioteka media3-ui-compose nie zawiera gotowych funkcji kompozycyjnych (takich jak przyciski, wskaźniki, obrazy czy okna), ale możesz znaleźć aplikację demonstracyjną napisaną w całości w Compose, która nie wymaga żadnych rozwiązań zapewniających interoperacyjność, takich jak opakowanie PlayerView w AndroidView. Aplikacja demonstracyjna używa klas zmiennych stanu interfejsu z modułu media3-ui-compose i biblioteki Compose Material3.
Której biblioteki potrzebuję?
W zależności od wymaganego poziomu dostosowania możesz wybrać jedną z 2 bibliotek Media3 Compose. Aby zrozumieć różnicę, warto pomyśleć o potoku produkcji stanu interfejsu: Business logic → UI logic → UI.
Użyj media3-ui-compose, aby uzyskać pełną kontrolę nad komponentami interfejsu.
Ta biblioteka zapewnia połączenie Business logic → UI logic. Zawiera podstawowe komponenty, takie jak PlayerSurface i ContentFrame, oraz klasy zmiennych stanu (np. PlayPauseButtonState, CurrentMediaItemState, PlaylistState, ErrorState), które konwertują stan Player na stan interfejsu.
Ta biblioteka nie zawiera gotowych do użycia komponentów Material Design. Odpowiadasz za tworzenie i stylizowanie własnych komponentów interfejsu. Zapewnia maksymalną kontrolę nad wyglądem i stylem, dzięki czemu idealnie nadaje się do wysoce spersonalizowanych systemów projektowania.
Użyj media3-ui-compose-material3, aby szybciej zintegrować aplikację z Material Design.
Ta biblioteka zapewnia ostatnią część potoku (UI). Zależy od media3-ui-compose i zawiera gotowe funkcje typu „composable”, które są stylizowane za pomocą komponentów Material3, w tym komponentów Player i MiniController. Element kompozycyjny Player zapewnia kompleksowe odtwarzanie multimediów z filmem, elementami sterującymi i paskiem postępu, które możesz dodatkowo dostosować za pomocą PlayerDefaults. Funkcja kompozycyjna MiniController zapewnia kompaktową afordancję do sterowania odtwarzaczem i wyświetlania informacji o bieżącym elemencie multimedialnym. Dzięki temu nie musisz tworzyć od podstaw własnych przycisków i innych elementów interfejsu. Nadal możesz dostosowywać motyw, kolory i ikony tych komponentów, ale podstawowa implementacja jest już gotowa.
W skrócie
| Funkcja | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| Komponenty interfejsu | Podstawowe elementy, takie jak PlayerSurface i ContentFrame, ale bez wstępnie sformatowanych przycisków i elementów sterujących. |
Zapewnia funkcje kompozycyjne Player i MiniController oraz pełny zestaw gotowych funkcji kompozycyjnych w stylu Material3, takich jak PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText itp. |
| Zarządzanie stanem | Zapewnia remember...State obiektów do zarządzania logiką. |
Zarządza stanem wewnętrznie, ale w razie potrzeby nadal możesz uzyskać dostęp do zmiennych stanu. |
| Zależności | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3, com.google.android.material |
| Primary Use Case | tworzenie interfejsu odtwarzacza z niestandardowym systemem projektowania; Pełna kontrola nad wyglądem i stylem. | Szybkie tworzenie interfejsu odtwarzacza zgodnego ze wskazówkami Material Design 3. |