כדי לשלוט בהתנהגות של הטרנספורמר, אפשר להגדיר אפשרויות בסביבת ה-API או להחליף חלקים של פונקציונליות לחלוטין על ידי כתיבת יישומים מותאמים אישית של ממשקים והעברתם. בדף הזה מתוארות כמה דוגמאות.
בקרה על הגדרת קודק
כברירת מחדל, הטרנספורמר יחזור לרזולוציה נתמכת אם מקודד החומרה של המכשיר לא מקבל את רזולוציית הפלט המבוקשת. עבור לדוגמה, הטרנספורמר יכול ליישר את הרוחב והגובה של הפלט כך שיהיו כפולה של 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
לדוגמה, אם אתם מיישמים מק"ט משלכם ב-
ברמת האפליקציה, אפשר לכתוב wrapper שמטמיע את Muxer
ואז להשתמש בפונקציה setMuxerFactory
כדי להחדיר אותו לטרנספורמר.