Ajouter la dépendance
La bibliothèque Media3 inclut deux modules d'UI basés sur Jetpack Compose. Vous n'avez pas besoin d'ajouter les deux, car la bibliothèque Material3 dépend de la bibliothèque principale.
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")
Groovy
// 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"
Nous vous encourageons vivement à développer votre application en privilégiant Compose ou à migrer depuis les vues.
Application de démonstration entièrement Compose
Bien que la bibliothèque media3-ui-compose n'inclue pas de composables prêts à l'emploi (tels que des boutons, des indicateurs, des images ou des boîtes de dialogue), vous pouvez trouver une application de démonstration entièrement écrite dans Compose qui évite les solutions d'interopérabilité telles que l'encapsulation de PlayerView dans AndroidView. L'application de démonstration utilise les classes de conteneur d'état de l'UI du module media3-ui-compose et de la bibliothèque Compose Material3.
De quelle bibliothèque ai-je besoin ?
Selon le niveau de personnalisation dont vous avez besoin, vous pouvez choisir entre deux bibliothèques Media3 Compose. Pour comprendre la différence, il est utile de penser au pipeline de production de l'état de l'UI : Business logic → UI logic → UI.
Utilisez media3-ui-compose pour contrôler entièrement vos composants d'interface utilisateur.
Cette bibliothèque fournit la connexion Business logic → UI logic. Il contient des composants de base tels que PlayerSurface et ContentFrame, ainsi que des classes de conteneur d'état (par exemple, PlayPauseButtonState, CurrentMediaItemState, PlaylistState, ErrorState) qui convertissent l'état Player en état d'UI.
Cette bibliothèque ne fournit pas de composants Material Design prêts à l'emploi. Vous êtes responsable de la création de vos propres composants d'interface utilisateur et de leur style. Il vous offre un contrôle maximal sur l'apparence, ce qui est idéal si vous disposez d'un système de conception hautement personnalisé.
Utilisez media3-ui-compose-material3 pour une intégration plus rapide avec Material Design.
Cette bibliothèque fournit la dernière partie UI du pipeline. Il dépend de media3-ui-compose et inclut des fonctions composables prédéfinies stylisées avec des composants Material3, y compris les composables Player et MiniController. Le composable Player offre une expérience de lecture multimédia complète avec une vidéo, des commandes et une barre de progression, que vous pouvez personnaliser davantage à l'aide de PlayerDefaults. Le composable MiniController fournit un affordance compact pour contrôler le lecteur tout en affichant des informations sur l'élément multimédia actuel. Vous n'avez donc pas besoin de créer vos propres boutons et autres éléments d'interface utilisateur à partir de zéro. Vous pouvez toujours personnaliser le thème, les couleurs et les icônes de ces composants, mais l'implémentation de base est fournie.
En bref
| Fonctionnalité | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| Composants d'interface utilisateur | Des éléments de base comme PlayerSurface et ContentFrame, mais aucun bouton ni commande préstylisés. |
Fournit les composables Player et MiniController, ainsi qu'un ensemble complet de composables prédéfinis de style Material 3, tels que PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText, etc. |
| Gestion de l'état | Fournit des conteneurs remember...State pour gérer la logique. |
Gère l'état en interne, mais vous pouvez toujours accéder aux conteneurs d'état si nécessaire. |
| Dépendances | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3, com.google.android.material |
| Cas d'utilisation principal | Créer une UI de lecteur avec un système de conception personnalisé. Contrôle total sur l'apparence. | Créer rapidement une UI de lecteur conforme aux consignes Material Design 3 |