Bắt đầu sử dụng giao diện người dùng dựa trên Khung hiển thị

Thêm phần phụ thuộc

Kotlin

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

Groovy

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

PlayerView

Thành phần quan trọng nhất là PlayerView, một thành phần hiển thị để phát nội dung nghe nhìn. PlayerView hiển thị video, hình ảnh, phụ đề và ảnh bìa đĩa nhạc trong khi phát, cũng như các nút điều khiển phát.

PlayerView có phương thức setPlayer() để đính kèm và tách rời (bằng cách truyền null) các thực thể Player.

Bạn có thể sử dụng PlayerView cho cả chế độ phát video, hình ảnh và âm thanh. Thành phần này hiển thị video và phụ đề trong trường hợp phát video, bitmap để phát hình ảnh và có thể hiển thị hình minh hoạ được đưa vào dưới dạng siêu dữ liệu trong tệp âm thanh. Bạn có thể đưa thành phần này vào tệp bố cục như mọi thành phần giao diện người dùng khác. Ví dụ: bạn có thể đưa PlayerView vào XML sau:

<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ạn mã ở trên minh hoạ rằng PlayerView cung cấp một số thuộc tính. Bạn có thể sử dụng các thuộc tính này để tuỳ chỉnh hành vi của thành phần hiển thị, cũng như giao diện của thành phần hiển thị đó. Hầu hết các thuộc tính này đều có phương thức setter tương ứng, có thể dùng để tuỳ chỉnh thành phần hiển thị trong thời gian chạy. Tài liệu về PlayerView liệt kê các thuộc tính và phương thức setter này một cách chi tiết hơn.

Sau khi thành phần hiển thị được khai báo trong tệp bố cục, bạn có thể tra cứu thành phần hiển thị đó trong phương thức onCreate của hoạt động:

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

Khi một trình phát đã được khởi chạy, bạn có thể đính kèm trình phát đó vào thành phần hiển thị bằng cách gọi 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 là một trong các Khung hiển thị phụ PlayerView chứa thanh tiến trình và các nút để điều khiển chế độ phát. Xin lưu ý rằng PlayerControlView không được dùng làm thành phần độc lập bên ngoài PlayerView. Bạn có thể tuỳ chỉnh bằng cách đặt thuộc tính trên PlayerView (sẽ được chuyển vào PlayerControlView) hoặc cung cấp trình điều khiển tuỳ chỉnh bằng android:id="@id/exo_controller.

Chọn loại nền tảng

Thuộc tính surface_type của PlayerView cho phép bạn đặt loại nền tảng dùng để phát video. Các giá trị được phép là surface_view, texture_view, spherical_gl_surface_view (là giá trị đặc biệt để phát video hình cầu), video_decoder_gl_surface_view (dùng để kết xuất video bằng trình kết xuất tiện ích) và none (chỉ dùng để phát âm thanh). Bạn có thể xem thêm thông tin về loại nền tảng cần chọn trên trang Nền tảng.