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.
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:
Đường liên kết hữu ích
- Trung tâm nhà phát triển nội dung nghe nhìn
ExoPlayertài liệu- 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