Giới thiệu về Jetpack Media3

Jetpack Media3 là nơi lưu trữ mới cho các thư viện nội dung đa phương tiện, cho phép ứng dụng Android hiển thị trải nghiệm hình ảnh và âm thanh 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 tính năng của thiết bị để loại bỏ sự phức tạp đi kèm với tình trạng phân mảnh.

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 phát. Bạn sẽ quen thuộc với các lớp tạo nên các thành phần này nếu đã từng làm việc với các thư viện nội dung nghe nhìn Android trước đây.

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: Các thành phần của ứng dụng đa phương tiện

Trình phát nội dung đa phương tiện

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

Lớp Nội dung mô tả Lưu ý 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 đa phương tiệ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ư MediaSessionMediaController.
ExoPlayer ExoPlayer là cách 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 đa phương tiệ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 việc phát nội dung nghe nhìn cho các nguồn bên ngoài và nhận các yêu cầu điều khiển phát từ các nguồn bên ngoài. Trong Media3, bạn sẽ thấy:

Lớp Nội dung mô tả Lưu ý triển khai
MediaSession Phiên phát nội dung nghe nhìn cho phép ứng dụng 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 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 đa phương tiện và trình phát liên kết trong một dịch vụ riêng biệt với Activity chính của ứng dụng để hỗ trợ phát ở chế độ nền.
MediaController Lớp MediaController thường được dùng để gửi lệnh từ bên ngoài ứng dụng, ví dụ: từ các ứng dụng khác hoặc 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 chế độ phát trong một phiên đã kết nối.
MediaLibraryService MediaLibraryService tương tự như MediaSessionService, ngoại trừ việc MediaLibraryService bao gồm các API bổ sung để bạn có thể phân phát thư viện nội dung cho các ứng dụng khách.
MediaBrowser Lớp MediaBrowser cho phép người dùng điều hướng 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 MediaControllerPlayer. 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

Các 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à kiểm soát chế độ phát.

Lớp Nội dung mô tả Lưu ý triển khai
PlayerView View mặc định để hiển thị video và các nút điều khiển phát. Kết nối với ExoPlayer, MediaController hoặc bất kỳ Player tuỳ chỉnh nào khác.

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
  • Cấu trúc, 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 Nội dung mô tả Lưu ý 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.
EditedMediaItem EditedMediaItem đại diện cho một mục nội dung nghe nhìn cần xử lý và các nội dung chỉnh sửa cần áp dụng cho mục đó. 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.

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

Video giới thiệu

Hãy xem video dưới đây để nghe các kỹ sư xây dựng Media3 giới thiệu về công cụ này.