Nội dung nghe nhìn

Biểu tượng HAL (Lớp trừu tượng phần cứng) cho Android Media

Android có Stagefright, một công cụ phát nội dung đa phương tiện ở cấp độ gốc tích hợp sẵn bộ mã hoá và giải mã dựa trên phần mềm cho các định dạng nội dung nghe nhìn phổ biến.

Các tính năng phát âm thanh và video của Stagefright bao gồm cả công cụ tích hợp với Bộ mã hoá và giải mã OpenMAX, quản lý phiên, kết xuất đồng bộ hoá thời gian, truyền tải điều khiển và DRM.

Stagefright cũng hỗ trợ tích hợp với các bộ mã hoá và giải mã phần cứng tuỳ chỉnh được cung cấp bởi bạn. Để đặt đường dẫn phần cứng nhằm mã hoá và giải mã nội dung nghe nhìn, bạn phải triển khai bộ mã hoá và giải mã dựa trên phần cứng dưới dạng thành phần OpenMax IL (Lớp tích hợp).

Lưu ý: Các bản cập nhật lỗi giai đoạn có thể diễn ra thông qua Bảo mật hằng tháng trên Android cập nhật và là một phần của bản phát hành cho Hệ điều hành Android.

Kiến trúc

Các ứng dụng đa phương tiện tương tác với khung đa phương tiện gốc của Android theo cấu trúc sau.

Cấu trúc nội dung đa phương tiện của Android

Hình 1. Nội dung đa phương tiện cấu trúc

Khung ứng dụng
Ở cấp khung ứng dụng là mã ứng dụng sử dụng android.media các API để tương tác với phần cứng đa phương tiện.
IPC Binder
Các proxy Binder IPC hỗ trợ hoạt động giao tiếp vượt qua ranh giới của quy trình. Chúng nằm trong thư mục frameworks/av/media/libmedia và bắt đầu bằng chữ cái "I".
Khung đa phương tiện gốc
Ở cấp độ gốc, Android cung cấp một khung đa phương tiện sử dụng công cụ Stagefright để ghi và phát âm thanh cũng như video. Sân khấu đi kèm với danh sách mặc định các bộ mã hoá và giải mã phần mềm được hỗ trợ và bạn có thể triển khai bộ mã hoá và giải mã phần cứng của riêng bạn bằng cách sử dụng tiêu chuẩn lớp tích hợp OpenMax. Cho để biết thêm thông tin chi tiết về cách triển khai, hãy xem các thành phần MediaPlayer và Stagefright đặt tại frameworks/av/media.
Lớp tích hợp OpenMAX (IL)
OpenMAX IL cung cấp một cách thức chuẩn hoá để Stagefright nhận biết và dùng bộ mã hoá và giải mã đa phương tiện dựa trên phần cứng tuỳ chỉnh được gọi là thành phần. Bạn phải cung cấp trình bổ trợ OpenMAX ở dạng thư viện được chia sẻ có tên libstagefrighthw.so. Trình bổ trợ này liên kết Stagefright với các công cụ tuỳ chỉnh của bạn các thành phần bộ mã hoá và giải mã phải được triển khai theo OpenMAX IL thành phần tiêu chuẩn.

Triển khai bộ mã hoá và giải mã tuỳ chỉnh

Stagefright đi kèm với bộ mã hoá và giải mã phần mềm tích hợp cho các định dạng nội dung đa phương tiện phổ biến, nhưng bạn cũng có thể thêm bộ mã hoá và giải mã phần cứng tuỳ chỉnh của riêng mình làm thành phần OpenMAX. Việc cần làm thao tác này, bạn phải tạo các thành phần OMX và một trình bổ trợ OMX kết nối với nhau bộ mã hoá và giải mã tuỳ chỉnh của bạn bằng khung Stagefright. Để xem ví dụ về các thành phần, hãy xem hardware/ti/omap4xxx/domx/; ví dụ về một trình bổ trợ cho Galaxy Nexus, xem hardware/ti/omap4xx/libstagefrighthw.

Cách thêm bộ mã hoá và giải mã của riêng bạn:

  1. Tạo thành phần theo tiêu chuẩn thành phần OpenMAX IL. Chiến lược phát hành đĩa đơn giao diện thành phần nằm trong Tệp frameworks/native/include/media/OpenMAX/OMX_Component.h. Người nhận để tìm hiểu thêm về thông số kỹ thuật của OpenMAX IL, hãy tham khảo Trang web của OpenMAX.
  2. Tạo một trình bổ trợ OpenMAX liên kết các thành phần của bạn với Stagefright . Đối với các giao diện để tạo trình bổ trợ, hãy xem frameworks/native/include/media/hardware/OMXPluginBase.h và Tệp tiêu đề HardwareAPI.h.
  3. Tạo trình bổ trợ dưới dạng thư viện chia sẻ bằng tên libstagefrighthw.so trong tệp Makefile của sản phẩm. Ví dụ:
    LOCAL_MODULE := libstagefrighthw
    

    Trong Makefile của thiết bị, hãy đảm bảo bạn khai báo mô-đun là sản phẩm gói:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

Hiển thị bộ mã hoá và giải mã vào khung

Dịch vụ Stagefright phân tích cú pháp system/etc/media_codecs.xmlsystem/etc/media_profiles.xml để hiển thị các bộ mã hoá và giải mã được hỗ trợ và hồ sơ trên thiết bị cho nhà phát triển ứng dụng thông qua android.media.MediaCodecListandroid.media.CamcorderProfile. Bạn phải tạo cả hai tệp trong thư mục device/<company>/<device>/ rồi sao chép tệp này vào thư mục system/etc của ảnh hệ thống trong Makefile của thiết bị. Ví dụ:

PRODUCT_COPY_FILES += \
  device/samsung/tuna/media_profiles.xml:system/etc/media_profiles.xml \
  device/samsung/tuna/media_codecs.xml:system/etc/media_codecs.xml \

Để xem các ví dụ đầy đủ, hãy xem device/samsung/tuna/media_codecs.xmldevice/samsung/tuna/media_profiles.xml .

Lưu ý: Kể từ Android 4.1, Phần tử <Quirk> cho bộ mã hoá và giải mã nội dung đa phương tiện không còn được hỗ trợ nữa.