如需控制 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
选项进行设置。
您也可以完全替换编码器和解码器的工厂, 能够完全控制编解码器的设置方式
自定义多路复用器
您可以通过调用
Transformer.setMuxerFactory
。例如,如果您在
在应用级别,您可以编写一个封装容器来实现 Muxer
接口,然后使用 setMuxerFactory
将其注入 Transformer。