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 các ứng dụng Android hiển thị 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à các điểm 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 do 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 tính năng phát. Bạn sẽ quen thuộc với các lớp tạo nên những 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 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.

Trình phát nội dung nghe nhìn
Trình phát nội dung đa phương tiện là một thành phần trong ứng dụng của bạn, cho phép phát các tệp nội dung đa phương tiện. Trong Media3, bạn sẽ thấy:
Lớp học | Nội dung 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 một 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à tìm kiếm.
|
Trong Media3, giao diện Player là một API phổ biến được nhiều thành phần triển khai hoặc sử dụng, 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 một ứ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 việc phát từ các nguồn bên ngoài. Trong Media3, bạn sẽ thấy:
Lớp học | Nội dung 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 video. Chúng 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 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 nội dung nghe nhìn và trình phát được liên kết của phiên đó 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 các lệnh từ bên ngoài ứng dụng của bạn, chẳng hạn như 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 được gửi đến MediaSession đã kết nối. Các ứng dụng khách như Trợ lý Google có thể dùng MediaController để kiểm soát hoạt động phát trong một phiên kết nối.
|
MediaLibraryService |
MediaLibraryService tương tự như MediaSessionService , ngoại trừ việc có thêm các API để 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 di chuyển qua thư viện nội dung của một ứ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ề MediaSession của Media3
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 học | Nội dung mô tả | Lưu ý khi triển khai |
---|---|---|
PlayerView |
Một View mặc định để hiện video và các nút đ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 Thành phần kết hợp đạ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ó các nút điều khiển chế độ phát.
Chỉ dùng để hiển thị các khung hình 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 các 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
- Thành phần, chẳng hạn như kết hợp nhiều tệp đầu vào
- Xuất đầu ra cuối cùng sang một tệp
Lớp học | Nội dung 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 cũng như kiểm tra tiến trình cập nhật 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ể 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 nội dung 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 dưới đây để biết thông tin giới thiệu về Media3 của các kỹ sư đã tạo ra thư viện này.
Đường liên kết hữu ích
- Trung tâm dành cho nhà phát triển nội dung nghe nhìn
ExoPlayer
docs- Hướng dẫn di chuyển
- AndroidX Media3 trên GitHub
- Ứng dụng mẫu phiên phát nội dung nghe nhìn Media3
- Ứng dụng mẫu Universal Android Music Player