Dodawanie zależności
Biblioteka Media3 zawiera 2 moduły interfejsu oparte na Jetpack Compose. Nie musisz dodawać obu, ponieważ komponent Material3 zależy od komponentu podstawowego.
Kotlin
// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.10.0")
implementation("androidx.media3:media3-ui-compose-material3:1.10.0")
Groovy
// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.10.0"
implementation "androidx.media3:media3-ui-compose-material3:1.10.0"
Zdecydowanie zalecamy tworzenie aplikacji w pierwszej kolejności w Compose lub migrację z używania widoków.
Pełna aplikacja w wersji demonstracyjnej Compose
Biblioteka media3-ui-compose nie zawiera gotowych funkcji kompozycyjnych (takich jak przyciski, wskaźniki, obrazy czy okna dialogowe), ale możesz znaleźć aplikację w wersji demonstracyjnej napisaną w całości w Compose, która nie korzysta z rozwiązań zapewniających interoperacyjność, takich jak umieszczanie PlayerView w AndroidView. Aplikacja w wersji demonstracyjnej korzysta z klas przechowujących zmienne stanu interfejsu z modułu media3-ui-compose i biblioteki Compose Material3.
Której biblioteki potrzebuję?
W zależności od poziomu dostosowania możesz wybrać jedną z 2 bibliotek Media3 Compose. Aby zrozumieć różnicę, warto poznać potok produkcji stanu interfejsu: Business logic → UI logic → UI.
Używaj media3-ui-compose, aby mieć pełną kontrolę nad komponentami interfejsu.
Ta biblioteka zapewnia połączenie Business logic → UI logic. Zawiera podstawowe komponenty, takie jak PlayerSurface i ContentFrame, a także klasy przechowujące stan (np. PlayPauseButtonState), które przekształcają stan Playerw stan interfejsu.
Ta biblioteka nie zawiera gotowych komponentów Material Design. Odpowiadasz za tworzenie własnych komponentów interfejsu i ich stylizowanie. Daje Ci maksymalną kontrolę nad wyglądem i stylem, dzięki czemu idealnie sprawdza się w przypadku wysoce spersonalizowanego systemu projektowania.
Używaj media3-ui-compose-material3, aby szybciej zintegrować usługę z Material Design.
Ta biblioteka stanowi ostatnią część potoku UI. Zależy to od media3-ui-compose i obejmuje gotowe funkcje Composable, które są stylizowane za pomocą komponentów Material3, w tym funkcji Composable Player, która zapewnia kompleksowe odtwarzanie multimediów z filmem, elementami sterującymi i paskiem postępu. Eliminuje to konieczność tworzenia od podstaw własnych przycisków i innych elementów interfejsu. Możesz nadal 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 | Elementy podstawowe, takie jak PlayerSurface i ContentFrame, ale bez wstępnie ostylowanych przycisków ani elementów sterujących. |
Zawiera komponent Player i pełny zestaw gotowych komponentów w stylu Material 3, takich jak PlayPauseButton, SeekBackButton, PositionAndDurationText itp. |
| Zarządzanie stanem | Umożliwia posiadaczom remember...State zarządzanie logiką. |
Zarządza stanem wewnętrznie, ale w razie potrzeby możesz uzyskać dostęp do elementów stanu. |
| Zależności | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3, com.google.android.material |
| Główny przypadek użycia | Tworzenie interfejsu odtwarzacza z użyciem niestandardowego systemu projektowania. Pełna kontrola nad wyglądem i stylem. | szybkie tworzenie interfejsu odtwarzacza zgodnego z wytycznymi Material Design 3; |