หากต้องการควบคุมลักษณะการทำงานของ Transformer คุณสามารถกำหนดค่าตัวเลือกใน API Surface หรือแทนที่ฟังก์ชันการทำงานบางส่วนทั้งหมดได้โดยการเขียนการใช้งานที่กำหนดเอง ของอินเทอร์เฟซและส่งผ่านอินเทอร์เฟซเหล่านั้น หน้านี้จะอธิบายตัวอย่างบางส่วน
ควบคุมการกำหนดค่าตัวแปลงรหัส
โดยค่าเริ่มต้น 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
นอกจากนี้ คุณยังแทนที่โรงงานสำหรับตัวเข้ารหัสและตัวถอดรหัสทั้งหมดเพื่อควบคุมวิธีตั้งค่าตัวแปลงรหัสได้อย่างเต็มที่
Custom Muxer
คุณสามารถตั้งค่า Muxer ที่กำหนดเองสำหรับการเขียนคอนเทนเนอร์สื่อได้โดยการเรียกใช้
Transformer.setMuxerFactory เช่น หากคุณใช้มัลติเพล็กเซอร์ของคุณเองที่ระดับแอปพลิเคชัน คุณจะเขียน Wrapper ที่ใช้Muxer
อินเทอร์เฟซ แล้วใช้ setMuxerFactory เพื่อแทรกลงใน Transformer ได้