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.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"
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 contenitore di stato della UI del modulo media3-ui-compose e si avvale
della 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 contenitore di stato (ad es. PlayPauseButtonState) 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 UI finale della pipeline. Dipende da
media3-ui-compose e include funzioni componibili predefinite con stile
con componenti Material3, tra cui il componente componibile Player, che
offre un'esperienza di riproduzione multimediale completa con video, controlli e
barra di avanzamento. 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.
Riepilogo
| Funzionalità | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| Componenti UI | Elementi di base come PlayerSurface e ContentFrame, ma nessun pulsante o controllo predefinito. |
Fornisce il componente componibile Player e un set completo di componenti componibili predefiniti in stile Material3 come PlayPauseButton, SeekBackButton, PositionAndDurationText 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 principale | 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 rispetti le linee guida di Material Design 3. |