Adicionar a dependência
Kotlin
implementation("androidx.media3:media3-ui:1.7.1")
Groovy
implementation "androidx.media3:media3-ui:1.7.1"
PlayerView
O componente mais importante é PlayerView
, uma visualização para reprodução de mídia.
O PlayerView
mostra vídeo, imagens, legendas e arte do álbum durante a reprodução, além de controles de reprodução.
O PlayerView
tem um método setPlayer()
para anexar e desanexar (transmitindo null
) instâncias de Player
.
O PlayerView
pode ser usado para reproduções de vídeo, imagem e áudio. Ele renderiza
vídeos e legendas no caso de reprodução de vídeo, bitmaps para reprodução de imagens
e pode mostrar a arte da capa incluída como metadados em arquivos de áudio. Você pode incluir esse elemento
nos arquivos de layout como qualquer outro componente de interface. Por exemplo, um PlayerView
pode ser incluído com o seguinte XML:
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:show_buffering="when_playing"
app:show_shuffle_button="true"/>
O snippet acima ilustra que PlayerView
oferece vários atributos.
Esses atributos podem ser usados para personalizar o comportamento da visualização, bem como a aparência dela. A maioria desses atributos tem métodos setter correspondentes, que podem ser usados para personalizar a visualização durante a execução. A documentação do PlayerView
lista esses atributos e métodos setter com mais detalhes.
Para uma experiência do usuário mais confortável, considere adicionar o atributo keepScreenOn
Android
ou definir um wake lock, se você estiver usando o ExoPlayer. Você pode investigar outras ações que mantêm o dispositivo ativo nas páginas de trabalho em segundo plano.
android:keepScreenOn="true"
Depois que a visualização é declarada no arquivo de layout, ela pode ser pesquisada no método
onCreate
da atividade:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
Quando um player é inicializado, ele pode ser anexado à visualização chamando
setPlayer
:
Kotlin
// Instantiate the player. val player = ExoPlayer.Builder(context).build() // Attach player to the view. playerView.player = player // Set the media item to be played. player.setMediaItem(mediaItem) // Prepare the player. player.prepare()
Java
// Instantiate the player. player = new ExoPlayer.Builder(context).build(); // Attach player to the view. playerView.setPlayer(player); // Set the media item to be played. player.setMediaItem(mediaItem); // Prepare the player. player.prepare();
PlayerControlView
O PlayerControlView
é uma das subvisualizações PlayerView
que contém a
barra de progresso e os botões para controlar a reprodução. Observe que PlayerControlView
não foi criado para ser usado como um componente independente fora de PlayerView
. Ele pode
ser personalizado definindo atributos em PlayerView
(que serão transmitidos para
PlayerControlView
) ou fornecendo um controlador personalizado com
android:id="@id/exo_controller
.
Escolher um tipo de plataforma
O atributo surface_type
de PlayerView
permite definir o tipo de superfície
usada para reprodução de vídeo. Os valores permitidos são surface_view
, texture_view
, spherical_gl_surface_view
(um valor especial para reprodução de vídeo esférico), video_decoder_gl_surface_view
(para renderização de vídeo usando renderizadores de extensão) e none
(para reprodução de áudio apenas). Para mais informações sobre qual tipo de plataforma escolher, acesse a página "Plataforma".