התאמה אישית

כדי לשלוט בהתנהגות של הטרנספורמר, אפשר להגדיר אפשרויות בסביבת ה-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 כדי להחדיר אותו לטרנספורמר.