Adicionar a dependência
Kotlin
implementation("androidx.media3:media3-ui:1.6.0")
Groovy
implementation "androidx.media3:media3-ui:1.6.0"
PlayerView
O componente mais importante é PlayerView
, uma visualização para reprodução de mídia.
PlayerView
exibe vídeo, imagens, legendas e capa do álbum durante a reprodução,
bem como os controles de reprodução.
O PlayerView
tem um método setPlayer()
para anexar e desconectar (transmitindo null
) instâncias de Player
.
O PlayerView
pode ser usado para reprodução de vídeo, imagem e áudio. Ele renderiza
vídeo e legendas no caso de reprodução de vídeo, bitmaps para reprodução de imagem
e pode mostrar a arte incluída como metadados em arquivos de áudio. É possível incluí-lo
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
fornece 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 setters correspondentes, que
podem ser usados para personalizar a visualização no momento de execução. A documentação de PlayerView
lista esses atributos e métodos de setter com mais detalhes.
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
PlayerControlView
é uma das subvisualizações de PlayerView
que contém a
barra de progresso e os botões para controlar a reprodução. PlayerControlView
não
foi projetado 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
usado para a 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
(somente para reprodução de áudio). Confira mais informações sobre
qual tipo de plataforma escolher na página Plataforma.