Aggiungi la dipendenza
La libreria Media3 include due moduli UI basati su Jetpack Compose. Non devi aggiungerli entrambi perché quello Material 3 dipende da quello principale.
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")
Alla moda
// 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"
Ti consigliamo vivamente di sviluppare la tua app in modo da dare la priorità a Compose o di eseguire la migrazione dall'utilizzo di View.
App demo Fully Compose
Sebbene la libreria media3-ui-compose non includa composable predefiniti
(come pulsanti, indicatori, immagini o dialoghi), puoi trovare un'app demo
scritta interamente in Compose che evita qualsiasi soluzione di interoperabilità come
il wrapping di PlayerView in AndroidView. L'app demo utilizza le classi di gestione dello stato dell'UI del modulo media3-ui-compose e la libreria Compose Material3.
Di quale libreria ho bisogno?
A seconda del livello di personalizzazione richiesto, puoi scegliere tra due
librerie Media3 Compose. Per capire la differenza, è utile pensare alla
pipeline di produzione dello stato dell'interfaccia utente: Business logic → UI logic → UI.
Utilizza media3-ui-compose per controllare completamente i componenti dell'interfaccia utente.
Questa libreria fornisce la connessione Business logic → UI logic. Contiene
componenti di base come PlayerSurface e ContentFrame, oltre a
classi di gestione dello stato (ad es. PlayPauseButtonState, CurrentMediaItemState,
PlaylistState, ErrorState) che convertono lo stato Player in stato della UI.
Questa libreria non fornisce componenti Material Design pronti all'uso. Sei responsabile della creazione e dello stile dei tuoi componenti UI. Ti offre il massimo controllo sull'aspetto, il che lo rende ideale se hai un sistema di progettazione altamente personalizzato.
Utilizza media3-ui-compose-material3 per un'integrazione più rapida con Material
Design.
Questa libreria fornisce la parte finale UI della pipeline. Dipende da
media3-ui-compose e include funzioni componibili predefinite con stile
con componenti Material 3, inclusi i composable Player e MiniController. Il componente componibile Player offre un'esperienza di riproduzione multimediale completa con video, controlli e barra di avanzamento, che puoi personalizzare ulteriormente utilizzando PlayerDefaults. Il composable MiniController fornisce un
affordance compatto per controllare il player durante la visualizzazione delle informazioni sull'elemento
multimediale corrente. Elimina la necessità di creare da zero pulsanti e
altri elementi dell'interfaccia utente. Puoi comunque personalizzare il tema, i colori e le icone di questi componenti, ma l'implementazione di base viene fornita.
In sintesi
| Funzionalità | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| Componenti UI | Elementi di base come PlayerSurface e ContentFrame, ma nessun pulsante o controllo predefinito. |
Fornisce i composable Player e MiniController e un set completo di composable predefiniti in stile Material3 come PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText e così via. |
| Gestione dello stato | Fornisce i titolari di remember...State per gestire la logica. |
Gestisce lo stato internamente, ma puoi comunque accedere ai titolari dello stato, se necessario. |
| Dipendenze | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3 e com.google.android.material |
| Caso d'uso primario | Creazione di un'interfaccia utente del player con un sistema di progettazione personalizzato. Controllo completo dell'aspetto. | Creare rapidamente un'interfaccia utente del player che segue le linee guida di Material Design 3. |