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 | Playerlà 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 Playerlà 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ưMediaSessionvàMediaController. | 
| ExoPlayer | ExoPlayerlà phương thức triển khai mặc định của giao diệnPlayertrong 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, MediaSessioncầnPlayerđể thực thi các lệnh và lấy trạng thái hiện tại. | 
| MediaSessionService | MediaSessionServicelư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ớiActivitychính của ứng dụng để hỗ trợ phát ở chế độ nền. | |
| MediaController | Lớp MediaControllerthườ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 đếnPlayercơ bản củaMediaSessionđược liên kết. | Lớp MediaControllertriển khai giao diệnPlayer, nhưng khi gọi một phương thức,MediaControllersẽ gửi lệnh được gửi đếnMediaSessionđã kết nối. Các ứng dụng khách như Trợ lý Google có thể dùngMediaControllerđể kiểm soát hoạt động phát trong một phiên kết nối. | 
| MediaLibraryService | MediaLibraryServicetươ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 MediaBrowsercho 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 MediaBrowsertriển khai cả giao diệnMediaControllervàPlayer. Tương tự nhưMediaController, các ứng dụng khách như Android Auto thường triển khaiMediaBrowser. | 
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 Viewmặc định để hiện video và các nút điều khiển chế độ phát. | Kết nối với ExoPlayer,MediaControllerhoặc bất kỳPlayertuỳ 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 Playernhư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 Effectslà 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
- ExoPlayerdocs
- 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
