Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

สื่อ

ไอคอน Android Media HAL

Android ประกอบด้วย Stagefright ซึ่งเป็นเครื่องมือการเล่นสื่อในระดับเนทีฟที่มีตัวแปลงสัญญาณซอฟต์แวร์ในตัวสำหรับรูปแบบสื่อยอดนิยม

คุณสมบัติการเล่นเสียงและวิดีโอ Stagefright รวมถึงการทำงานร่วมกับตัวแปลงสัญญาณ OpenMAX, การจัดการเซสชัน, การแสดงผลแบบซิงโครไนซ์เวลา, การควบคุมการขนส่งและ DRM

Stagefright ยังรองรับการทำงานร่วมกับตัวแปลงสัญญาณฮาร์ดแวร์แบบกำหนดเองที่คุณจัดหาให้ ในการกำหนดเส้นทางฮาร์ดแวร์เพื่อเข้ารหัสและถอดรหัสสื่อคุณต้องใช้ตัวแปลงสัญญาณที่ใช้ฮาร์ดแวร์เป็นส่วนประกอบ OpenMax IL (Integration Layer)

หมายเหตุ: การอัปเดต Stagefright สามารถเกิดขึ้นได้ผ่านกระบวนการ อัปเดตความปลอดภัยรายเดือนของ Android และเป็นส่วนหนึ่งของการเปิดตัวระบบปฏิบัติการ Android

สถาปัตยกรรม

แอปพลิเคชันสื่อโต้ตอบกับเฟรมเวิร์กมัลติมีเดียเนทีฟของ Android ตามสถาปัตยกรรมต่อไปนี้

สถาปัตยกรรมสื่อ Android

รูปที่ 1. สถาปัตยกรรมสื่อ

กรอบการใช้งาน
ในระดับกรอบงานแอปพลิเคชันคือรหัสแอปพลิเคชันที่ใช้ android.media API เพื่อโต้ตอบกับฮาร์ดแวร์มัลติมีเดีย
Binder IPC
พร็อกซี Binder IPC อำนวยความสะดวกในการสื่อสารข้ามขอบเขตของกระบวนการ ซึ่งจะอยู่ในไดเร็กทอรี frameworks/av/media/libmedia และขึ้นต้นด้วยตัวอักษร "I"
กรอบมัลติมีเดียเนทีฟ
ในระดับดั้งเดิม Android มีเฟรมเวิร์กมัลติมีเดียที่ใช้เอ็นจิ้น Stagefright สำหรับการบันทึกและเล่นเสียงและวิดีโอ Stagefright มาพร้อมกับรายการเริ่มต้นของตัวแปลงสัญญาณซอฟต์แวร์ที่รองรับและคุณสามารถใช้ตัวแปลงรหัสฮาร์ดแวร์ของคุณเองได้โดยใช้มาตรฐานเลเยอร์การรวม OpenMax สำหรับรายละเอียดการใช้งานเพิ่มเติมโปรดดูส่วนประกอบ MediaPlayer และ Stagefright ที่อยู่ใน frameworks/av/media
OpenMAX Integration Layer (IL)
OpenMAX IL เป็นวิธีที่เป็นมาตรฐานสำหรับ Stagefright ในการจดจำและใช้ตัวแปลงสัญญาณมัลติมีเดียที่ใช้ฮาร์ดแวร์แบบกำหนดเองที่เรียกว่าส่วนประกอบ คุณต้องจัดเตรียมปลั๊กอิน OpenMAX ในรูปแบบของไลบรารีแบบแบ่งใช้ชื่อ libstagefrighthw.so ปลั๊กอินนี้เชื่อมโยง Stagefright กับส่วนประกอบตัวแปลงสัญญาณที่กำหนดเองของคุณซึ่งจะต้องดำเนินการตามมาตรฐานส่วนประกอบ OpenMAX IL

การใช้งานตัวแปลงสัญญาณที่กำหนดเอง

Stagefright มาพร้อมกับตัวแปลงสัญญาณซอฟต์แวร์ในตัวสำหรับรูปแบบสื่อทั่วไป แต่คุณยังสามารถเพิ่มตัวแปลงรหัสฮาร์ดแวร์ของคุณเองเป็นส่วนประกอบ OpenMAX ในการดำเนินการนี้คุณต้องสร้างคอมโพเนนต์ OMX และปลั๊กอิน OMX ที่เชื่อมต่อตัวแปลงสัญญาณที่กำหนดเองของคุณเข้ากับเฟรมเวิร์ก Stagefright สำหรับตัวอย่างส่วนประกอบโปรดดูที่ hardware/ti/omap4xxx/domx/ ; สำหรับตัวอย่างปลั๊กอินสำหรับ Galaxy Nexus โปรดดู hardware/ti/omap4xx/libstagefrighthw

ในการเพิ่มตัวแปลงสัญญาณของคุณเอง:

  1. สร้างส่วนประกอบของคุณตามมาตรฐานส่วนประกอบ OpenMAX IL อินเทอร์เฟซคอมโพเนนต์จะอยู่ในไฟล์ frameworks/native/include/media/OpenMAX/OMX_Component.h หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับข้อกำหนดของ OpenMAX IL โปรดดูที่ เว็บไซต์ OpenMAX
  2. สร้างปลั๊กอิน OpenMAX ที่เชื่อมโยงคอมโพเนนต์ของคุณกับบริการ Stagefright สำหรับอินเทอร์เฟซในการสร้างปลั๊กอินโปรดดูที่ frameworks/native/include/media/hardware/OMXPluginBase.h และไฟล์ส่วนหัว HardwareAPI.h
  3. สร้างปลั๊กอินของคุณเป็นไลบรารีที่ใช้ร่วมกันโดยใช้ชื่อ libstagefrighthw.so ในผลิตภัณฑ์ Makefile ของคุณ ตัวอย่างเช่น:
    LOCAL_MODULE := libstagefrighthw
    

    ใน Makefile ของอุปกรณ์ของคุณตรวจสอบให้แน่ใจว่าคุณประกาศโมดูลเป็นแพ็คเกจผลิตภัณฑ์:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

แสดงตัวแปลงสัญญาณไปยังเฟรมเวิร์ก

บริการ system/etc/media_codecs.xml จะแยกวิเคราะห์ system/etc/media_codecs.xml และ system/etc/media_profiles.xml เพื่อแสดงตัวแปลงสัญญาณและโปรไฟล์ที่รองรับบนอุปกรณ์ให้กับนักพัฒนาแอปผ่านทาง android.media.MediaCodecList และ android.media.CamcorderProfile คลาส คุณต้องสร้างทั้งสองไฟล์ในไดเร็กทอรี device/<company>/<device>/ และคัดลอกไปยังไดเร็กทอรี system/etc ของอิมเมจ system/etc ใน Makefile ของอุปกรณ์ของคุณ ตัวอย่างเช่น:

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 \

ดูตัวอย่างทั้งหมดได้ที่ device/samsung/tuna/media_codecs.xml และ device/samsung/tuna/media_profiles.xml

หมายเหตุ: สำหรับ Android 4.1 ไม่รองรับองค์ประกอบ <Quirk> สำหรับตัวแปลงสัญญาณสื่ออีกต่อไป