Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Phương tiện truyền thông

Biểu tượng Android Media HAL

Android bao gồm Stagefright, một công cụ phát lại phương tiện ở cấp độ gốc có codec dựa trên phần mềm được tích hợp sẵn cho các định dạng phương tiện phổ biến.

Các tính năng phát lại video và âm thanh của Stagefright bao gồm tích hợp với codec OpenMAX, quản lý phiên, kết xuất đồng bộ hóa thời gian, kiểm soát truyền tải và DRM.

Stagefright cũng hỗ trợ tích hợp với codec phần cứng tùy chỉnh do bạn cung cấp. Để đặt đường dẫn phần cứng để mã hóa và giải mã phương tiện, bạn phải triển khai codec 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 của Stagefright có thể xảy ra thông qua quy trình cập nhật bảo mật hàng tháng của Android và là một phần của bản phát hành hệ điều hành Android.

Ngành kiến ​​trúc

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

Kiến trúc phương tiện Android

Hình 1. Kiến trúc phương tiện

Khung ứng dụng
Ở cấp khung ứng dụng là mã ứng dụng sử dụng các API android.media để tương tác với phần cứng đa phương tiện.
Binder IPC
Các proxy IPC của Binder hỗ trợ giao tiếp qua các ranh giới 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 khuôn khổ đa phương tiện sử dụng công cụ Stagefright để ghi và phát lại âm thanh và video. Stagefright đi kèm với danh sách mặc định các codec phần mềm được hỗ trợ và bạn có thể triển khai codec phần cứng của riêng mình bằng cách sử dụng tiêu chuẩn lớp tích hợp OpenMax. Để biết thêm chi tiết triển khai, hãy xem các thành phần MediaPlayer và Stagefright nằm trong frameworks/av/media .
Lớp tích hợp OpenMAX (IL)
OpenMAX IL cung cấp một cách thức tiêu chuẩn hóa để Stagefright nhận ra và sử dụng các codec đa phương tiện dựa trên phần cứng tùy chỉnh được gọi là các thành phần. Bạn phải cung cấp một plugin OpenMAX ở dạng thư viện được chia sẻ có tên libstagefrighthw.so . Plugin này liên kết Stagefright với các thành phần codec tùy chỉnh của bạn, các thành phần này phải được triển khai theo tiêu chuẩn thành phần OpenMAX IL.

Triển khai codec tùy chỉnh

Stagefright đi kèm với codec phần mềm tích hợp cho các định dạng phương tiện thông thường, nhưng bạn cũng có thể thêm codec phần cứng tùy chỉnh của riêng mình làm thành phần OpenMAX. Để làm điều này, bạn phải tạo các thành phần OMX và một plugin OMX kết nối các codec tùy chỉnh của bạn với nhau với khuôn khổ Stagefright. Ví dụ về các thành phần, hãy xem hardware/ti/omap4xxx/domx/ ; để biết plugin mẫu cho Galaxy Nexus, hãy xem hardware/ti/omap4xx/libstagefrighthw .

Để thêm codec của riêng bạn:

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

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

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

Tiếp xúc codec với khuôn khổ

Dịch vụ Stagefright phân tích cú pháp system/etc/media_codecs.xmlsystem/etc/media_profiles.xml để hiển thị codec và cấu hình được hỗ trợ trên thiết bị cho nhà phát triển ứng dụng thông qua các lớp android.media.MediaCodecListandroid.media.CamcorderProfile . Bạn phải tạo cả hai tệp trong thư mục device/<company>/<device>/ và sao chép tệp này vào thư mục system/etc của ảnh system/etc trong Makefile trên thiết bị của bạn. 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 \

Để có 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 codec phương tiện không còn được hỗ trợ.