Memulai UI berbasis View

Menambahkan dependensi

Kotlin

implementation("androidx.media3:media3-ui:1.6.0")

Groovy

implementation "androidx.media3:media3-ui:1.6.0"

PlayerView

Komponen terpenting adalah PlayerView, tampilan untuk pemutaran media. PlayerView menampilkan video, gambar, subtitel, dan sampul album selama pemutaran, serta kontrol pemutaran.

PlayerView memiliki metode setPlayer() untuk melampirkan dan melepaskan (dengan meneruskan null) instance Player.

PlayerView dapat digunakan untuk pemutaran video, gambar, dan audio. Komponen ini merender video dan subtitel dalam kasus pemutaran video, bitmap untuk pemutaran gambar, dan dapat menampilkan poster yang disertakan sebagai metadata dalam file audio. Anda dapat menyertakannya dalam file tata letak seperti komponen UI lainnya. Misalnya, PlayerView dapat disertakan dengan XML berikut:

<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"/>

Cuplikan di atas mengilustrasikan bahwa PlayerView menyediakan beberapa atribut. Atribut ini dapat digunakan untuk menyesuaikan perilaku tampilan, serta tampilan dan nuansanya. Sebagian besar atribut ini memiliki metode penyetel yang sesuai, yang dapat digunakan untuk menyesuaikan tampilan saat runtime. Dokumentasi PlayerView mencantumkan atribut dan metode penyetel ini secara lebih mendetail.

Setelah dideklarasikan dalam file tata letak, tampilan dapat dilihat di metode onCreate aktivitas:

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);
}

Setelah diinisialisasi, pemutar dapat dilampirkan ke tampilan dengan memanggil 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 adalah salah satu sub-Tampilan PlayerView yang berisi status progres dan tombol untuk mengontrol pemutaran. Perhatikan bahwa PlayerControlView tidak dimaksudkan untuk digunakan sebagai komponen mandiri di luar PlayerView. Atribut ini dapat disesuaikan dengan menetapkan atribut di PlayerView (yang akan diteruskan ke PlayerControlView) atau menyediakan pengontrol kustom dengan android:id="@id/exo_controller.

Memilih jenis platform

Atribut surface_type dari PlayerView memungkinkan Anda menetapkan jenis platform yang digunakan untuk pemutaran video. Nilai yang diizinkan adalah surface_view, texture_view, spherical_gl_surface_view (yang merupakan nilai khusus untuk pemutaran video sferis), video_decoder_gl_surface_view (yang digunakan untuk rendering video menggunakan perender ekstensi), dan none (hanya untuk pemutaran audio). Informasi selengkapnya tentang jenis platform yang akan dipilih dapat ditemukan di halaman Platform.