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

Android 10 trở lên có một số thành phần nội dung nghe nhì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 hàng Google Play hoặc thông qua cơ chế cập nhật qua mạng (OTA) do đối tác cung cấp. Các thành phần nội dung nghe nhìn được đóng gói cùng nhau trong các mô-đun cho phép cung cấp các bản cập nhật bảo mật và bản cập nhật tính năng mà không cần cập nhật toàn bộ hình ảnh hệ thống.

Các thành phần nội dung nghe nhìn có thể cập nhật có trong các mô-đun sau.

Để biết thông tin chi tiết về cách thêm trình trích xuất và bộ 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.

Trình trích xuất nội dung nghe nhìn

Trong 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. Trong Android 10 trở lên, các 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ó tệp .so riêng với một điểm truy cập cung cấp hàm sniffer để xác định xem trình trích xuất có thể xử lý tệp nội dung nghe nhìn đã cho hay không và hàm factory tạo một thực thể của trình trích xuất cho tệp nội dung nghe nhìn đã cho. Mỗi trình trích xuất được đặt tên (để giúp gỡ lỗi) và được gắn phiên bản để cho biết trình trích xuất nào là mới nhất.

Khung nội dung nghe nhìn sẽ tự động tải tất cả các tệp .so trình trích xuất có sẵn, vì vậy, bạn có thể tạo 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 nghe nhì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 nội dung nghe nhìn hiển thị các nút điều khiển truyền tải và thông tin phát lại cho các quy trình khác, chẳng hạn như khung Android và các ứng dụng khác. Bạn không thể tuỳ chỉnh thành phần này.

API MediaParser

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 nghe nhìn của khung để trích xuất các mẫu nội dung nghe nhìn từ vùng chứa nội dung nghe nhìn. MediaParser bao gồm các thay đổi sau đối với ranh giới mã nguồn:

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

  • external/exoplayer/. Các nguồn theo đúng nghĩa đen của Exoplayer mà MediaParser được xây dựng trên đó.

Bạn không thể tuỳ chỉnh API MediaParser. Để kiểm thử MediaParser, hãy sử dụng các bài kiểm thử trong cts/tests/tests/mediaparser/.

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

Mô-đun Bộ mã hoá và giải mã nội dung nghe nhìn bao gồm các thành phần Codec2 phần mềm có thể cập nhật. Hỗ trợ tuỳ chỉnh 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 v292100200), bạn có thể tuỳ chỉnh các tham số cho việc phân bổ bộ nhớ ION (xem thông tin 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 API này 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 v292100200 hoặc trở lên, bạn có thể tuỳ chỉnh các tham số sau cho việc phân bổ bộ nhớ ION.

Tham số Giá trị mặc định Mô tả
heapMask 0xFFFFFFFF Cho phép tất cả các loại vùng nhớ.
allocFlags 0 Không đặt cờ.
minAlignment 0 Không căn chỉnh.

Cách ghi đè các tham số:

  1. Đăng ký dịch vụ android.hardware.media.c2 mặc định và cung cấp các tham 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à phần phụ thuộc

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

Thông tin 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.

Thông tin cập nhật về 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. Các quy trình hệ thống nội dung nghe nhìn (media.extractormedia.codec) sẽ tải các mô-đun đã cập nhật từ điểm gắn kết.