الوسائط

رمز Android Media HAL

يشتمل Android على Stagefright، وهو محرك تشغيل الوسائط على المستوى الأصلي الذي يحتوي على برامج ترميز مدمجة قائمة على البرامج لتنسيقات الوسائط الشائعة.

تشتمل ميزات تشغيل الصوت والفيديو Stagefright على التكامل مع برامج ترميز OpenMAX وإدارة الجلسة والعرض المتزامن مع الوقت والتحكم في النقل وإدارة الحقوق الرقمية.

يدعم Stagefright أيضًا التكامل مع برامج ترميز الأجهزة المخصصة التي توفرها لك. لتعيين مسار جهاز لترميز الوسائط وفك تشفيرها، يجب عليك تنفيذ برنامج ترميز يستند إلى الأجهزة كمكون OpenMax IL (طبقة التكامل).

ملاحظة: يمكن إجراء تحديثات Stagefright من خلال عملية التحديث الأمني ​​الشهرية لنظام Android وكجزء من إصدار نظام التشغيل Android.

بنيان

تتفاعل تطبيقات الوسائط مع إطار عمل الوسائط المتعددة الأصلي لنظام Android وفقًا للبنية التالية.

بنية وسائط أندرويد

الشكل 1. هندسة وسائل الإعلام

إطار تطبيق
على مستوى إطار عمل التطبيق، يوجد رمز التطبيق الذي يستخدم واجهات برمجة التطبيقات android.media للتفاعل مع أجهزة الوسائط المتعددة.
الموثق IPC
تعمل وكلاء Binder IPC على تسهيل الاتصال عبر حدود العملية. وهي موجودة في دليل frameworks/av/media/libmedia وتبدأ بالحرف "I".
إطار الوسائط المتعددة الأصلي
على المستوى الأصلي، يوفر Android إطارًا للوسائط المتعددة يستخدم محرك Stagefright لتسجيل وتشغيل الصوت والفيديو. يأتي Stagefright مزودًا بقائمة افتراضية من برامج الترميز المدعومة ويمكنك تنفيذ برنامج ترميز الأجهزة الخاص بك باستخدام معيار طبقة التكامل OpenMax. لمزيد من تفاصيل التنفيذ، راجع مكونات MediaPlayer وStagefright الموجودة في frameworks/av/media .
طبقة التكامل OpenMAX (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 \
      ...
    

فضح برامج الترميز إلى الإطار

تقوم خدمة Stagefright بتوزيع system/etc/media_codecs.xml و system/etc/media_profiles.xml لعرض برامج الترميز وملفات التعريف المدعومة على الجهاز لمطوري التطبيقات عبر فئتي android.media.MediaCodecList و android.media.CamcorderProfile . يجب عليك إنشاء كلا الملفين في دليل device/<company>/<device>/ ونسخهما إلى دليل 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> لبرامج ترميز الوسائط مدعومًا.