O Media3 Transformer está em desenvolvimento ativo. Queremos saber sua opinião. Seu feedback, solicitações de recursos e relatórios de bugs são bem-vindos no
Issue Tracker. Siga o
blog do ExoPlayer (em inglês) para ver as atualizações mais recentes.
Personalização
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Para controlar o comportamento do Transformer, configure opções na superfície da API
ou substituir completamente partes da funcionalidade escrevendo implementações personalizadas
de interfaces e transmiti-las. Nesta página, descrevemos alguns exemplos.
Controlar configuração do codec
Por padrão, o Transformer voltará a uma resolução compatível se o
o codificador de hardware do dispositivo não aceita a resolução de saída solicitada. Para
exemplo, o transformador pode alinhar a largura e a altura da saída para ser um múltiplo de 2
ou 16, como é exigido dos codificadores de hardware. É possível desativar esse comportamento
de modo que o Transformer, em vez disso, emita um erro se não for possível produzir o
resolução de saída:
Kotlin
transformerBuilder
.setEncoderFactory(
DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build())
Java
transformerBuilder
.setEncoderFactory(
new DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build());
Da mesma forma, o DefaultEncoderFactory
também oferece suporte ao uso de codificação personalizada
com a opção setRequestedVideoEncoderSettings
.
Também é possível substituir completamente as fábricas por codificadores e decodificadores para
controle total sobre a configuração dos codecs.
Muxers personalizados
É possível definir um multiplexador personalizado para criar contêineres de mídia chamando
Transformer.setMuxerFactory
: Por exemplo, se você implementar seu próprio multiplexador
no nível do aplicativo, crie um wrapper que implemente a classe Muxer
interface de usuário e, em seguida, usar setMuxerFactory
para injetá-la no Transformer.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Customization\n\nTo control Transformer's behavior, you can configure options in the API surface\nor replace pieces of functionality completely by writing custom implementations\nof interfaces and passing those in. This page describes some examples.\n\nControl codec configuration\n---------------------------\n\nBy default, Transformer will fall back to a supported resolution if the\ndevice's hardware encoder doesn't accept the requested output resolution. For\nexample, Transformer can align the output width and height to be a multiple of 2\nor 16 as is often required by hardware encoders. You can turn off this behavior\nso that Transformer instead throws an error if it can't produce the required\noutput resolution: \n\n### Kotlin\n\n```kotlin\ntransformerBuilder\n .setEncoderFactory(\n DefaultEncoderFactory.Builder(context)\n .setEnableFallback(false)\n .build())\n```\n\n### Java\n\n```java\ntransformerBuilder\n .setEncoderFactory(\n new DefaultEncoderFactory.Builder(context)\n .setEnableFallback(false)\n .build());\n```\n\n\u003cbr /\u003e\n\nSimilarly, the `DefaultEncoderFactory` also supports using custom encoding\nsettings with the `setRequestedVideoEncoderSettings` option.\n\nYou can also completely replace the factories for encoders and decoders to get\nfull control over how the codecs are set up.\n\nCustom muxers\n-------------\n\nYou can set a custom muxer for writing media containers by calling\n`Transformer.setMuxerFactory`. For example, if you implement your own muxer at\nthe application level, you can write a wrapper that implements the `Muxer`\ninterface and then use `setMuxerFactory` to inject it into Transformer."]]