Memulai UI berbasis View

Menambahkan dependensi

Kotlin

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

Groovy

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

PlayerView

Komponen terpenting adalah PlayerView, tampilan untuk pemutaran media. PlayerView menampilkan video, gambar, subtitel, dan album art 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. Render 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 menggambarkan 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 setter ini secara lebih mendetail.

Untuk pengalaman pengguna yang lebih nyaman, pertimbangkan untuk menambahkan atribut keepScreenOnAndroid atau menyetel kunci tetap aktif, jika Anda menggunakan ExoPlayer. Anda dapat menyelidiki tindakan lain yang membuat perangkat tetap aktif di halaman pekerjaan latar belakang.

android:keepScreenOn="true"

Setelah tampilan dideklarasikan dalam file tata letak, tampilan dapat dicari dalam 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. Komponen ini dapat disesuaikan dengan menetapkan atribut pada PlayerView (yang akan diteruskan ke PlayerControlView) atau menyediakan pengontrol kustom dengan android:id="@id/exo_controller.

Pilih 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 (untuk rendering video menggunakan perender ekstensi), dan none (hanya untuk pemutaran audio). Informasi selengkapnya tentang jenis platform yang harus dipilih dapat ditemukan di halaman Platform.