للتحكّم في سلوك Transformer، يمكنك ضبط الخيارات في مساحة واجهة برمجة التطبيقات أو استبدال أجزاء من الوظائف تمامًا من خلال كتابة عمليات تنفيذ مخصّصة للوظائف وتمريرها. توضّح هذه الصفحة بعض الأمثلة.
ضبط برامج الترميز
بشكل تلقائي، سيعود Transformer إلى دقة متوافقة إذا لم يقبل برنامج الترميز المضمّن في الجهاز دقة الإخراج المطلوبة. على سبيل المثال، يمكن أن يضبط Transformer عرض وارتفاع الناتج ليكون مضاعفًا للرقم 2 أو 16، كما هو مطلوب غالبًا من برامج الترميز المضمّنة في الأجهزة. يمكنك إيقاف هذا السلوك ليعرض Transformer بدلاً من ذلك رسالة خطأ إذا تعذّر عليه إنتاج دقة الإخراج المطلوبة:
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.