التخصيص

للتحكم في سلوك المحول، يمكنك تهيئة الخيارات في سطح واجهة برمجة التطبيقات أو استبدال أجزاء من الوظائف بالكامل من خلال كتابة عمليات تنفيذ مخصصة للواجهات وتمريرها. توضّح هذه الصفحة بعض الأمثلة.

التحكّم في إعدادات برنامج الترميز

سيعود المحوِّل تلقائيًا إلى درجة دقة متوافقة إذا لم يقبل برنامج ترميز الجهاز في الجهاز درجة الدقة المطلوبة للإخراج. على سبيل المثال، يمكن للمحوِّل محاذاة عرض وارتفاع الإخراج ليكونا مضاعفات 2 أو 16 كما هو مطلوب غالبًا من خلال برامج الترميز. يمكنك إيقاف هذا السلوك بحيث يعرض المحوِّل خطأ بدلاً من ذلك إذا لم يتمكن من الحصول على دقة البيانات المطلوبة:

Kotlin

transformerBuilder
    .setEncoderFactory(
        DefaultEncoderFactory.Builder(context)
            .setEnableFallback(false)
            .build())

Java

transformerBuilder
    .setEncoderFactory(
        new DefaultEncoderFactory.Builder(context)
            .setEnableFallback(false)
            .build());

وبالمثل، يتيح DefaultEncoderFactory أيضًا استخدام إعدادات الترميز المخصّصة مع الخيار setRequestedVideoEncoderSettings.

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

خلاطات مخصّصة

يمكنك ضبط عامل تمويه مخصّص لكتابة حاويات الوسائط عن طريق طلب الرمز Transformer.setMuxerFactory. على سبيل المثال، إذا نفَّذت دالة الاستبعاد المتبادل الخاصة بك على مستوى التطبيق، يمكنك كتابة برنامج تضمين ينفّذ واجهة Muxer، ثم استخدام setMuxerFactory لإدخاله في Transformer.