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.1")
implementation("androidx.media3:media3-ui-compose-material3:1.10.1")
Dynamiczny
// 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"
Zdecydowanie zalecamy tworzenie aplikacji w pierwszej kolejności w Compose lub migrację z używania widoków.
Pełna aplikacja demonstracyjna Compose
Biblioteka media3-ui-compose nie zawiera gotowych komponentów (takich jak przyciski, wskaźniki, obrazy czy okna), ale możesz znaleźć aplikację demonstracyjną napisaną w całości w Compose, która nie korzysta z rozwiązań zapewniających interoperacyjność, takich jak otaczanie PlayerView elementem AndroidView. Aplikacja demonstracyjna korzysta z klas przechowujących stan 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, CurrentMediaItemState, PlaylistState, ErrorState), które przekształcają stan Player w stan interfejsu.
Ta biblioteka nie zawiera gotowych komponentów Material Design. Odpowiadasz za tworzenie własnych komponentów interfejsu i ich stylizowanie. Zapewnia maksymalną kontrolę nad wyglądem i stylem, dzięki czemu idealnie sprawdza się w przypadku wysoce spersonalizowanego systemu projektowania.
Użyj media3-ui-compose-material3, aby szybciej zintegrować usługę z Material Design.
Ta biblioteka zapewnia ostatnią część potoku UI. Zależy od media3-ui-compose i zawiera gotowe funkcje kompozycyjne, które są stylizowane za pomocą komponentów Material3, w tym funkcji kompozycyjnych Player i MiniController. Kompozycja Player zapewnia kompleksowe odtwarzanie multimediów z filmem, elementami sterującymi i paskiem postępu, które możesz dodatkowo dostosować za pomocą PlayerDefaults. Kompozycja MiniController zapewnia kompaktowy interfejs do sterowania odtwarzaczem podczas wyświetlania informacji o bieżącym elemencie multimedialnym. Eliminuje to konieczność tworzenia od podstaw własnych przycisków i innych elementów interfejsu. Możesz dostosować 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 lub elementów sterujących. |
Zawiera komponenty Player i MiniController oraz pełny zestaw gotowych komponentów w stylu Material 3, takich jak PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText 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; |