Adicionar a dependência
A biblioteca Media3 inclui dois módulos de interface baseados no Jetpack Compose. Não é necessário adicionar os dois, porque o Material3 depende do principal.
Kotlin
// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.9.2")
implementation("androidx.media3:media3-ui-compose-material3:1.9.2")
Groovy
// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.9.2"
implementation "androidx.media3:media3-ui-compose-material3:1.9.2"
Recomendamos que você desenvolva seu app com o Compose ou migre do uso de visualizações.
App de demonstração totalmente do Compose
Embora a biblioteca media3-ui-compose não inclua elementos combináveis prontos para uso (como botões, indicadores, imagens ou caixas de diálogo), você pode encontrar um
app de demonstração totalmente escrito no Compose que evita soluções de interoperabilidade
, como o encapsulamento de PlayerView em AndroidView. O app de demonstração
usa as classes de detentor de estado da interface do módulo media3-ui-compose e faz
uso da biblioteca Compose Material3.
De qual biblioteca eu preciso?
Dependendo do nível de personalização necessário, você pode escolher entre duas
bibliotecas do Media3 Compose. Para entender a diferença, pense em
o pipeline de produção do estado da interface: Business logic → UI logic → UI.
Use media3-ui-compose para ter controle total sobre os componentes da interface.
Essa biblioteca fornece a conexão Business logic → UI logic. Ela contém
componentes básicos, como PlayerSurface e ContentFrame, além de
classes de detentor de estado (por exemplo, PlayPauseButtonState) que convertem o estado Player
em estado da interface.
Essa biblioteca não fornece componentes do Material Design prontos para uso. Você é responsável por criar seus próprios componentes de interface e estilizar. Ela oferece controle máximo sobre a aparência, o que é ideal se você tiver um sistema de design altamente personalizado.
Use media3-ui-compose-material3 para uma integração mais rápida com o Material
Design.
Essa biblioteca fornece a parte UI final do pipeline. Ela depende de
media3-ui-compose e inclui funções combináveis pré-criadas que são estilizadas
com componentes do Material3. Ela elimina a necessidade de criar seus próprios
botões e outros elementos da interface do zero. Você ainda pode personalizar o tema,
as cores e os ícones desses componentes, mas a implementação principal é fornecida
para você.
Resumo
| Recurso | media3-ui-compose |
media3-ui-compose-material3 |
|---|---|---|
| Componentes da interface | Elementos básicos, como PlayerSurface e ContentFrame, mas sem botões ou controles pré-estilizados. |
Fornece um conjunto completo de pré-criados, Material3-styled Composables como PlayPauseButton, SeekBackButton, PositionAndDurationText, etc. |
| Gerenciamento de estado | Fornece detentores remember...State para gerenciar a lógica. |
Gerencia o estado internamente, mas você ainda pode acessar os detentores de estado, se necessário. |
| Dependências | androidx.compose.foundation |
media3-ui-compose, androidx.compose.material3, com.google.android.material |
| Caso de uso principal | Criar uma interface de player com um sistema de design personalizado. Controle total sobre a aparência. | Criar rapidamente uma interface de player que siga as diretrizes do Material Design 3. |