Aggiungi la dipendenza
La libreria Media3 include due moduli UI basati su Jetpack Compose. Non è necessario aggiungere entrambe le dipendenze perché quella di Material3 dipende da quella di base.
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")
Alla moda
// 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"
Ti consigliamo vivamente di sviluppare la tua app in modalità Compose-first o di eseguire la migrazione dall'utilizzo delle visualizzazioni.
App demo completamente in Compose
Sebbene la libreria media3-ui-compose non includa componenti componibili pronti all'uso (come pulsanti, indicatori, immagini o finestre di dialogo), puoi trovare un'app demo scritta interamente in Compose che evita soluzioni di interoperabilità come il wrapping di PlayerView in AndroidView. L'app demo utilizza le classi del contenitore di stato della UI del modulo media3-ui-compose e della libreria Compose Material3.
Quale libreria mi serve?
A seconda del livello di personalizzazione richiesto, puoi scegliere tra due librerie Media3 Compose. Per comprendere la differenza, è utile pensare alla pipeline di produzione dello stato della UI: Business logic → UI logic → UI.
Utilizza media3-ui-compose per avere il controllo completo sui componenti della UI.
Questa libreria fornisce la connessione Business logic → UI logic. Contiene componenti di base come PlayerSurface e ContentFrame, oltre a classi di contenitori di stato (ad es. PlayPauseButtonState, CurrentMediaItemState, PlaylistState, ErrorState) che convertono lo stato Player nello 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 lo stile dei componenti Material3, inclusi i componibili Player e MiniController. Il composable 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 mentre vengono visualizzate le informazioni sull'elemento multimediale corrente. In questo modo non devi creare da zero i tuoi pulsanti e altri elementi UI. Puoi comunque personalizzare il tema, i colori e le icone di questi componenti, ma l'implementazione di base è già 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 con stile predefinito. |
Fornisce i composabili Player e MiniController e un set completo di composabili predefiniti con stile Material3 come PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText e così via. |
| Gestione dello stato | Fornisce remember...State titolari per gestire la logica. |
Gestisce lo stato internamente, ma puoi comunque accedere ai contenitori di stato, se necessario. |
| Dipendenze | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3 e com.google.android.material |
| Caso d'uso primario | Creazione di una UI del player con un sistema di progettazione personalizzato. Controllo completo sull'aspetto. | Creare rapidamente una UI del player che segua le linee guida di Material Design 3. |