Giới thiệu về Jetpack Media3

Jetpack Media3 là nơi lưu trữ mới các thư viện nội dung nghe nhìn, giúp các ứng dụng Android mang đến trải nghiệm âm thanh và hình ảnh phong phú. Media3 cung cấp một cấu trúc đơn giản với khả năng tuỳ chỉnh, độ tin cậy và tối ưu hoá mạnh mẽ dựa trên các chức năng của thiết bị để loại bỏ sự phức tạp do tình trạng phân mảnh gây ra.

Tài liệu này giới thiệu các API chính để triển khai các trường hợp sử dụng phát và chỉnh sửa bằng Media3.

Thành phần phát

Media3 cung cấp một số thành phần chính cho các trường hợp sử dụng tính năng phát. Các lớp tạo nên những thành phần này sẽ quen thuộc với bạn nếu bạn đã từng làm việc với các thư viện nội dung nghe nhìn trước đây của Android.

Sơ đồ sau đây minh hoạ cách các thành phần này kết hợp với nhau trong một ứng dụng thông thường.

Các thành phần khác nhau của một ứng dụng đa phương tiện sử dụng Media3 kết nối với nhau theo một số cách đơn giản nhờ việc chia sẻ giao diện và lớp.
Hình 1: Thành phần của ứng dụng đa phương tiện

Trình phát nội dung nghe nhìn

Trình phát nội dung nghe nhìn là một thành phần của ứng dụng cho phép phát các tệp nội dung nghe nhìn. Trong Media3, bạn sẽ thấy:

Lớp học Mô tả Lưu ý khi triển khai
Player Player là một giao diện xác định các chức năng cấp cao truyền thống cho trình phát nội dung nghe nhìn, chẳng hạn như khả năng phát, tạm dừng và tua. Trong Media3, giao diện Player là một API phổ biến được triển khai hoặc sử dụng bởi một số thành phần, chẳng hạn như MediaSession và MediaController.
ExoPlayer ExoPlayer là phương thức triển khai mặc định của giao diện Player trong Media3.

Tìm hiểu thêm về Media3 ExoPlayer

Phiên phát nội dung nghe nhìn

Phiên phát nội dung nghe nhìn là cách thức tương tác phổ biến với trình phát nội dung nghe nhìn. Điều này cho phép ứng dụng quảng cáo chế độ phát nội dung nghe nhìn đến các nguồn bên ngoài và nhận yêu cầu điều khiển chế độ phát từ các nguồn bên ngoài. Trong Media3, bạn sẽ thấy:

Lớp học Mô tả Lưu ý khi triển khai
MediaSession Phiên phát nội dung nghe nhìn cho phép ứng dụng của bạn tương tác với trình phát âm thanh hoặc trình phát video. Các thành phần này quảng cáo việc phát nội dung nghe nhìn ra bên ngoài và nhận lệnh phát từ các nguồn bên ngoài. Trong Media3, MediaSession cần có Player để thực thi các lệnh và lấy trạng thái hiện tại.
MediaSessionService MediaSessionService lưu giữ một phiên phát nội dung nghe nhìn và trình phát liên kết trong một dịch vụ tách biệt với Activity chính của ứng dụng để hỗ trợ tính năng phát trong nền.
MediaController Lớp MediaController thường được dùng để gửi lệnh từ bên ngoài ứng dụng, chẳng hạn như từ các ứng dụng khác hoặc từ chính hệ thống. Các lệnh được gửi đến Player cơ bản của MediaSession được liên kết. Lớp MediaController triển khai giao diện Player, nhưng khi gọi một phương thức, MediaController sẽ gửi lệnh đến MediaSession đã kết nối. Các ứng dụng khách như Trợ lý Google có thể sử dụng MediaController để điều khiển quá trình phát trong một phiên đã kết nối.
MediaLibraryService MediaLibraryService tương tự như MediaSessionService, ngoại trừ việc nó bao gồm các API bổ sung để bạn có thể phân phát thư viện nội dung của mình cho các ứng dụng khách.
MediaBrowser Lớp MediaBrowser cho phép người dùng di chuyển qua thư viện nội dung của ứng dụng đa phương tiện và chọn mục để phát. Lớp MediaBrowser triển khai cả giao diện MediaController và Player. Tương tự như MediaController, các ứng dụng khách như Android Auto thường triển khai MediaBrowser.

Tìm hiểu thêm về Media3 MediaSession

Thành phần giao diện người dùng

Media3 cung cấp các thành phần giao diện người dùng mặc định để xem video và điều khiển chế độ phát.

Lớp Mô tả Lưu ý khi triển khai
PlayerView View mặc định để hiển thị video và bộ điều khiển chế độ phát. Kết nối với ExoPlayer, MediaController hoặc bất kỳ Player tuỳ chỉnh nào khác.
PlayerSurface Một Composable đại diện cho một bản vẽ chuyên dụng Surface để hiển thị video. Kết nối với mọi Player, nhưng không có bộ điều khiển chế độ phát. Chỉ dùng để hiển thị khung và có thể đổi kích thước theo nhiều loại ContentScale. Bạn có thể tìm thấy thành phần kết hợp này và nhiều thành phần kết hợp khác trong Tiện ích giao diện người dùng Compose.

Tìm hiểu thêm về giao diện người dùng Media3

Chỉnh sửa thành phần

Media3 bao gồm các API Transformer cho các trường hợp sử dụng chỉnh sửa nội dung nghe nhìn, bao gồm:

  • Xử lý âm thanh và video, chẳng hạn như thêm bộ lọc và hiệu ứng
  • Xử lý các định dạng đặc biệt, chẳng hạn như video HDR và video chuyển động chậm
  • Kết hợp, chẳng hạn như kết hợp nhiều tệp đầu vào
  • Xuất kết quả cuối cùng sang một tệp
Lớp học Mô tả Lưu ý khi triển khai
Transformer Sử dụng lớp Transformer để bắt đầu và dừng các phép biến đổi, đồng thời kiểm tra thông tin cập nhật về tiến trình của một phép biến đổi đang chạy.
Effects Đối tượng Effects là một tập hợp các hiệu ứng âm thanh và video để áp dụng cho một mục nội dung nghe nhìn. Bạn có thể sử dụng ExoPlayer để xem trước các hiệu ứng được thêm vào một mục nội dung nghe nhìn trước khi bắt đầu quá trình xuất.
EditedMediaItem EditedMediaItem đại diện cho một mục nội dung nghe nhìn cần xử lý và các bản chỉnh sửa cần áp dụng cho mục đó.

Tìm hiểu thêm về Media3 Transformer

Video giới thiệu

Hãy xem video này để biết thông tin giới thiệu về Media3 từ các kỹ sư đã xây dựng thư viện này: