การปรับแต่ง

หากต้องการควบคุมลักษณะการทำงานของ 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 ได้