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

بدءًا من الإصدار 10 من نظام التشغيل Android (المستوى 29 من واجهة برمجة التطبيقات) والإصدارات الأحدث، تتوفّر طرق في MediaCodecInfo تكشف عن مزيد من المعلومات حول برنامج الترميز:

isSoftwareOnly()
تعرض هذه الدالة القيمة "صحيح" إذا كان برنامج الترميز يعمل في البرنامج فقط. ولا تضمن برامج الترميز أداء العرض.
isHardwareAccelerated()
تعرض هذه الدالة القيمة "صحيح" إذا تم تسريع برنامج الترميز بواسطة الأجهزة.
isVendor()
يتم عرض القيمة "صحيح" إذا كان برنامج الترميز مقدَّمًا من مورّد الجهاز، أو القيمة "خطأ" إذا كان مقدَّمًا من نظام Android الأساسي.
isAlias()
قد يحتوي
MediaCodecList على إدخالات إضافية لبرنامج الترميز الأساسي نفسه باستخدام أسماء بديلة لبرنامج الترميز (أسماء مستعارة). تُعرِض هذه الطريقة القيمة "صحيح" إذا كان برنامج الترميز في هذا الإدخال هو اسم مستعار لبرنامج ترميز آخر.

بالإضافة إلى ذلك، MediaCodec.getCanonicalName() تعرض اسم برنامج الترميز الأساسي لبرامج الترميز التي تم إنشاؤها من خلال اسم مستعار.

نقاط الأداء

تمثّل نقطة الأداء قدرة برنامج الترميز على عرض الفيديو بارتفاع وعرض وعدد لقطات في الثانية محدّدة. على سبيل المثال، تمثّل نقطة الأداء UHD_60 فيديو بدقة فائقة (3840×2160 بكسل) يتم عرضه بمعدّل 60 لقطة في الثانية.

تعرض الطريقة MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() قائمة بإدخالات PerformancePoint التي يمكن لبرنامج الترميز عرضها أو تسجيلها.

يمكنك التحقّق مما إذا كان PerformancePoint معيّن يغطي آخر من خلال استدعاء PerformancePoint.covers(PerformancePoint). على سبيل المثال، تعرض الدالة UHD_60.covers(UHD_50) القيمة "صحيح".

يتم توفير قائمة بنقاط الأداء لجميع برامج الترميز التي تستخدم ميزة تسريع الأجهزة. قد تكون هذه القائمة فارغة إذا لم يستوفِ برنامج الترميز حتى أدنى نقطة أداء قياسية.

يُرجى العِلم أنّ الأجهزة التي تمت ترقيتها إلى الإصدار 10 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 29) والإصدارات الأحدث بدون تحديث نسخة المورّد لن تتضمّن بيانات نقاط الأداء، لأنّ هذه البيانات تأتي من طبقة تجريد الأجهزة (HAL) الخاصة بالمورّد. في هذه الحالة، تعرض الدالة getSupportedPerformancePoints() قيمة فارغة.