Media3 Transformer 正在积极开发中,我们期待收到您的反馈意见!欢迎在
问题跟踪器中提供反馈、提交功能请求和错误报告。关注
ExoPlayer 博客,了解最新动态。
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
自定义
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
如需控制 Transformer 的行为,您可以在 API 界面中配置选项,也可以通过编写接口的自定义实现并传入这些实现来完全替换部分功能。本页介绍了一些示例。
控制编解码器配置
默认情况下,如果设备的硬件编码器不接受请求的输出分辨率,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 中。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-05-05。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2026-05-05。"],[],[]]