Mô-đun nội dung nghe nhìn

Android 10 trở lên bao gồm một số thành phần nội dung đa phương tiện có thể cập nhật cho phép cập nhật các thành phần khung thông qua cơ sở hạ tầng của Cửa hàng Google Play hoặc thông qua cơ chế không dây (OTA) do đối tác cung cấp. Các thành phần nội dung đa phương tiện được đóng gói cùng nhau trong các mô-đun cho phép cung cấp bản cập nhật bảo mật và bản cập nhật tính năng mà không yêu cầu cập nhật toàn bộ ảnh hệ thống.

Thành phần nội dung nghe nhìn có thể cập nhật tồn tại trong những mô-đun sau.

Để biết thông tin chi tiết về cách thêm bộ trích xuất và giải mã tuỳ chỉnh, hãy xem bài viết Tuỳ chỉnh các thành phần nội dung nghe nhìn.

Công cụ trích xuất nội dung nghe nhìn

Trên Android 9 trở xuống, các trình trích xuất được biên dịch thành một tệp libstagefright.so duy nhất. Trên Android 10 trở lên, trình trích xuất nội dung nghe nhìn là các thành phần riêng biệt. Mỗi trình trích xuất có một tệp .so riêng với một điểm truy cập cung cấp hàm trình quan sát để xác định xem trình trích xuất có thể xử lý tệp phương tiện nhất định hay không và hàm nhà máy tạo một thực thể của trình trích xuất cho tệp phương tiện nhất định. Mỗi trình trích xuất được đặt tên (để giúp gỡ lỗi) và được tạo phiên bản để cho biết trình trích xuất nào là trình trích xuất mới nhất.

Khung nội dung đa phương tiện sẽ tự động tải tất cả tệp .so của trình trích xuất nội dung hiện có, vì vậy, bạn có thể tạo các trình trích xuất của riêng mình bằng cách thêm tệp .so mới mà không cần sửa đổi libstagefright hoặc các thư viện khung nội dung đa phương tiện khác. Bạn cũng có thể đảm bảo rằng trình trích xuất tuỳ chỉnh được ưu tiên hơn trình trích xuất do Google cung cấp.

API MediaSession2

API MediaSession2 cho phép các ứng dụng đa phương tiện hiển thị các chế độ điều khiển truyền tải và thông tin phát cho các quy trình khác, chẳng hạn như khung Android và các ứng dụng khác. Không thể tuỳ chỉnh thành phần này.

MediaParser API

API MediaParser cho phép ExoPlayer sử dụng hiệu quả các trình phân tích cú pháp vùng chứa nội dung đa phương tiện của khung để trích xuất các mẫu nội dung đa phương tiện từ vùng chứa nội dung đa phương tiện. MediaParer có những thay đổi sau đây đối với ranh giới của mã nguồn:

  • frameworks/base/apex/media/framework/java/android/media/MediaParser.java. API và triển khai lớp mỏng.

  • external/exoplayer/. Các nguồn nguyên văn của trình phát Exoplayer mà MediaParser được tạo.

Không thể tuỳ chỉnh API MediaParser. Để kiểm thử MediaParer, hãy sử dụng các hoạt động kiểm thử trong cts/tests/tests/mediaparser/.

Bộ mã hoá và giải mã nội dung nghe nhìn

Mô-đun Codec phương tiện bao gồm các thành phần Codec2 của phần mềm có thể cập nhật. Mức độ hỗ trợ tính năng tuỳ chỉnh sẽ khác nhau giữa các bản phát hành:

  • Trong Android 11 trở lên (cụ thể là Bản cập nhật hệ thống Google Play phiên bản 292100200), bạn có thể tuỳ chỉnh các tham số để phân bổ bộ nhớ ION (xem chi tiết bên dưới).

  • Trong Android 9 trở xuống, API bộ mã hoá và giải mã OMX không thể cập nhật nhưng bạn vẫn có thể sử dụng trong phân vùng nhà cung cấp.

Phân bổ bộ nhớ ION

Trong Android 11 trở lên và Bản cập nhật hệ thống Google Play phiên bản 292100200 trở lên, bạn có thể tuỳ chỉnh các thông số sau để phân bổ bộ nhớ ION.

Thông số Giá trị mặc định Mô tả
heapMask 0xFFFFFFFF Cho phép tất cả các loại vùng nhớ khối xếp.
allocFlags 0 Chưa đặt cờ nào.
minAlignment 0 Không căn chỉnh.

Cách ghi đè các thông số:

  1. Đăng ký dịch vụ android.hardware.media.c2 mặc định và cung cấp các thông số sử dụng ION tuỳ chỉnh.

  2. Thêm mã sau vào manifest.xml của thiết bị.

    <hal format="hidl">
        <name>android.hardware.media.c2</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IComponentStore</name>
            <instance>default</instance>
        </interface>
    </hal>
    

Định dạng và sự phụ thuộc

Mô-đun nội dung đa phương tiện (com.android.media) và mô-đun Bộ mã hoá và giải mã nội dung đa phương tiện (com.android.media.swcodec) có định dạng APEX. Các thành phần nội dung nghe nhìn đi kèm chỉ dựa vào API NDK.

Nội dung cập nhật

Trong quá trình cập nhật, các thành phần khung trên thiết bị sẽ tải một gói APEX chứa mã Java và mã gốc.

Cập nhật nội dung nghe nhìn

Hình 1. Quy trình cập nhật thành phần nội dung nghe nhìn

Sau khi khung cài đặt gói APEX, thiết bị sẽ khởi động lại và gắn hình ảnh ổ đĩa và các quy trình hệ thống đa phương tiện (media.extractormedia.codec) tải các mô-đun đã cập nhật từ điểm gắn.