Adicionar a dependência
Kotlin
implementation("androidx.media3:media3-ui:1.10.0")
Groovy
implementation "androidx.media3:media3-ui:1.10.0"
PlayerView
O componente mais importante é PlayerView, uma visualização para reprodução de mídia.
O PlayerView mostra vídeos, imagens, legendas e a arte do álbum durante a reprodução, além dos controles de reproduçã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. É possível incluí-lo nos arquivos de layout como qualquer outro componente de IU. 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. A maioria desses atributos tem métodos setter correspondentes, que podem ser usados para personalizar a visualização no momento da 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, adicione o keepScreenOn
atributo do Android ou defina um wake lock, se estiver usando o ExoPlayer. Você
pode investigar outras ações que mantêm o dispositivo ativado 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
PlayerControlView é uma das subvisualizações de PlayerView que contém a barra de progresso e os botões para controlar a reprodução. O PlayerControlView não foi projetado para ser usado como um componente independente fora do 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 do PlayerView permite definir o tipo de plataforma usada para reprodução de vídeo. Os valores permitidos são surface_view, texture_view,
spherical_gl_surface_view (que é 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). Mais informações sobre
qual tipo de plataforma escolher podem ser encontradas na página Plataforma.