התאמה אישית

כדי לשלוט בהתנהגות של Transformer, אפשר להגדיר אפשרויות בממשק ה-API או להחליף חלקים מהפונקציונליות לחלוטין על ידי כתיבת הטמעות מותאמות אישית של ממשקים והעברתם. בדף הזה מפורטות כמה דוגמאות.

שליטה בהגדרת ה-Codec

כברירת מחדל, אם מקודד החומרה של המכשיר לא מקבל את רזולוציית הפלט המבוקשת, 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.

אפשר גם להחליף לגמרי את המפעלים של המקודדים והמפענחים כדי לקבל שליטה מלאה על אופן ההגדרה של הקודקים.

ממקסרים בהתאמה אישית

אפשר להגדיר muxer מותאם אישית לכתיבת קובצי מדיה על ידי קריאה ל-Transformer.setMuxerFactory. לדוגמה, אם מטמיעים muxer משלכם ברמת האפליקציה, אפשר לכתוב wrapper שמטמיע את הממשק Muxer ואז להשתמש ב-setMuxerFactory כדי להחדיר אותו ל-Transformer.