Untuk mengontrol perilaku Transformer, Anda dapat mengonfigurasi opsi di platform API atau mengganti bagian-bagian fungsi sepenuhnya dengan menulis implementasi kustom antarmuka dan meneruskannya. Halaman ini menjelaskan beberapa contohnya.
Mengontrol konfigurasi codec
Secara default, Transformer akan kembali ke resolusi yang didukung jika encoder hardware perangkat tidak menerima resolusi output yang diminta. Misalnya, Transformer dapat menyelaraskan lebar dan tinggi output dengan kelipatan 2 atau 16 seperti yang sering diperlukan oleh encoder hardware. Anda dapat menonaktifkan perilaku ini sehingga Transformer akan menampilkan error jika tidak dapat menghasilkan resolusi output yang diperlukan:
Kotlin
transformerBuilder .setEncoderFactory( DefaultEncoderFactory.Builder(context) .setEnableFallback(false) .build())
Java
transformerBuilder .setEncoderFactory( new DefaultEncoderFactory.Builder(context) .setEnableFallback(false) .build());
Demikian pula, DefaultEncoderFactory
juga mendukung penggunaan setelan encoding kustom
dengan opsi setRequestedVideoEncoderSettings
.
Anda juga dapat mengganti factory sepenuhnya untuk encoder dan decoder guna mendapatkan kontrol penuh terkait cara penyiapan codec.
Muxer kustom
Anda dapat menetapkan muxer kustom untuk menulis container media dengan memanggil Transformer.setMuxerFactory
. Misalnya, jika mengimplementasikan muxer Anda sendiri pada level aplikasi, Anda dapat menulis wrapper yang mengimplementasikan antarmuka Muxer
, lalu menggunakan setMuxerFactory
untuk memasukkannya ke dalam Transformer.