الوسائط

رمز HAL لوسائط Android

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

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

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

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

هندسة معمارية

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

بنية وسائط Android

الشكل 1. الوسائط الهندسة المعمارية

إطار عمل التطبيق
على مستوى إطار عمل التطبيق، هناك رمز تطبيق يستخدم android.media واجهات برمجة التطبيقات (APIs) للتفاعل مع أجهزة الوسائط المتعددة.
حماية IPC
تسهِّل خوادم Binder IPC الاتصال عبر حدود العملية. إنها موجودة في دليل frameworks/av/media/libmedia يبدأ بالحرف "I".
إطار عمل الوسائط المتعددة الأصلية
على المستوى الأصلي، يوفر Android إطار عمل وسائط متعددة يستخدم محرّك 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> لبرامج ترميز الوسائط متاحًا.