وحدات الوسائط

يتضمّن الإصدار 10 من نظام التشغيل Android أو الإصدارات الأحدث عدة مكوّنات إعلام قابلة للتحديث تتيح تحديث مكوّنات الإطار من خلال بنية "متجر Google Play" أو من خلال آلية تحديث عبر الهواء (OTA) يوفّرها الشريك. يتم تجميع مكوّنات الوسائط معًا في وحدات تتيح توفير تحديثات الأمان وتحديثات الميزات بدون الحاجة إلى تحديث كامل لصورة النظام.

تتوفّر مكونات وسائط قابلة للتحديث في الوحدات التالية.

للحصول على تفاصيل حول إضافة أدوات استخراج وفك ترميز مخصَّصة، راجِع تخصيص مكونات الوسائط.

أدوات استخراج الوسائط

في الإصدار Android 9 والإصدارات الأقدم، يتم تجميع أدوات استخلاص البيانات في ملف libstagefright.so واحد. في الإصدار Android 10 أو الإصدارات الأحدث، تُعد أدوات استخراج الوسائط مكونات منفصلة. يحتوي كلّ مستخرج على ملف .so خاص به يتضمّن نقطة دخول توفّر دالة الاستكشاف لتحديد ما إذا كان المستخرج يمكنه التعامل مع ملف الوسائط المحدّد، ودالة الإنشاء التي تنشئ مثيلًا للمستخرج لملف الوسائط المحدّد. تتم تسمية كل أداة استخراج (للمساعدة في تصحيح الأخطاء) وتحديد نسخة منها للإشارة إلى أحدث أداة استخراج.

يعمل إطار عمل الوسائط تلقائيًا على تحميل جميع ملفات .so المتاحة لأداة الاستخراج، لذا يمكنك إنشاء أدوات استخلاص خاصة بك عن طريق إضافة ملف .so جديد بدون الحاجة إلى تعديل libstagefright أو مكتبات إطارات عمل الوسائط الأخرى. يمكنك أيضًا التأكد من تفضيل أداة استخراج مخصصة على أداة الاستخراج التي توفرها Google.

واجهة برمجة تطبيقات MediaSession2

تسمح واجهة برمجة التطبيقات MediaSession2 لتطبيقات الوسائط بعرض عناصر التحكّم في النقل ومعلومات التشغيل للعمليات الأخرى مثل إطار عمل Android والتطبيقات الأخرى. لا يمكن تخصيص هذا المكوّن.

واجهة برمجة تطبيقات MediaParser

تسمح واجهة برمجة التطبيقات MediaParser API لشركة ExoPlayer بالاستفادة بفعالية من المحللات اللغوية لحاويات وسائط إطار العمل من أجل استخراج عينات الوسائط من حاويات الوسائط. يتضمن MediaParser التغييرات التالية على حدود رمز المصدر:

  • frameworks/base/apex/media/framework/java/android/media/MediaParser.java. تنفيذ واجهة برمجة التطبيقات والطبقة الرقيقة.

  • external/exoplayer/. مصادر Exoplayer الحرفية التي تم بناء MediaParser عليها

لا يمكن تخصيص واجهة برمجة التطبيقات MediaParser API. لاختبار MediaParser، استخدِم الاختبارات في cts/tests/tests/mediaparser/.

برامج ترميز الوسائط

تتضمّن وحدة برامج ترميز الوسائط مكونات برنامج Codec2 القابلة للتحديث. يختلف دعم التخصيص بين الإصدارات:

  • في نظام Android 11 أو الإصدارات الأحدث (وخصوصًا تحديث نظام Google Play الإصدار 292100200)، يمكنك تخصيص المَعلمات لتخصيص الذاكرة في ION (يُرجى الاطّلاع على التفاصيل أدناه).

  • في الإصدار 9 من Android أو الإصدارات الأقدم، لا يمكن تحديث واجهة برمجة التطبيقات OMX codec API، ولكن لا يزال بإمكانك استخدامها في قسم المورّد.

تخصيص ذاكرة ION

في الإصدار 11 من نظام Android أو الإصدارات الأحدث وتحديث نظام Google Play الإصدار 292100200 أو الإصدارات الأحدث، يمكنك تخصيص المَعلمات التالية لتخصيص ذاكرة ION.

المَعلمة القيمة التلقائية الوصف
heapMask 0xFFFFFFFF يُسمح باستخدام كل أنواع المقاطع المتعدّدة.
allocFlags 0 لم يتم ضبط أي علامات.
minAlignment 0 لا يتوفّر تطابق.

لإلغاء المَعلمات:

  1. سجِّل خدمة android.hardware.media.c2 تلقائية وقدِّم مَعلمات استخدام ION مخصّصة.

  2. أضِف الرمز التالي إلى الجهاز manifest.xml.

    <hal format="hidl">
        <name>android.hardware.media.c2</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IComponentStore</name>
            <instance>default</instance>
        </interface>
    </hal>
    

التنسيق والتبعيات

تكون وحدة الوسائط (com.android.media) ووحدة ترميز الوسائط (com.android.media.swcodec) بتنسيق APEX . تعتمد مكوّنات الوسائط المضمّنة على واجهات برمجة التطبيقات NDK فقط.

التحديثات

أثناء إجراء التحديث، تحمِّل مكونات إطار العمل على الجهاز حزمة APEX التي تحتوي على جافا ورمز أصلي.

تعديلات الوسائط

الشكل 1. خطوات تعديل مكوّن الوسائط

بعد أن يُثبِّت إطار العمل حزمة APEX، تتم إعادة تشغيل الجهاز وتثبيت صورة القرص وعمليات نظام الوسائط (media.extractor وmedia.codec) التي تحمِّل الوحدات المعدَّلة من نقطة التثبيت.