自定义

如需控制 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。