Pierwsze kroki z interfejsem użytkownika opartym na Compose

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.