Media3 Transformer está en desarrollo y esperamos recibir tus comentarios. Agradecemos tus comentarios, solicitudes de funciones e informes de errores en la
herramienta de seguimiento de errores. Sigue el
blog de ExoPlayer para conocer las actualizaciones más recientes.
Personalización
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Para controlar el comportamiento de Transformer, puedes configurar opciones en la plataforma de la API
o reemplazar partes de la funcionalidad por completo escribiendo implementaciones personalizadas
de interfaces y los pasamos. En esta página, se describen algunos ejemplos.
Controla la configuración de códecs
De forma predeterminada, Transformer utilizará una resolución compatible si la
El codificador de hardware del dispositivo no acepta la resolución de salida solicitada. Para
ejemplo, Transformer puede alinear el ancho y la altura del resultado para que sean múltiplos de 2.
o 16 como lo suelen requerir los codificadores de hardware. Puedes desactivar este comportamiento
por lo que Transformer arroja un error si no puede producir
resolución de salida:
Kotlin
transformerBuilder
.setEncoderFactory(
DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build())
Java
transformerBuilder
.setEncoderFactory(
new DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build());
Del mismo modo, DefaultEncoderFactory
también admite el uso de la codificación personalizada.
con la opción setRequestedVideoEncoderSettings
.
También puedes reemplazar completamente las fábricas
para que los codificadores y decodificadores
control total sobre la configuración de los códecs.
Mezcladores personalizados
Puedes configurar un combinador personalizado para escribir contenedores de medios llamando
Transformer.setMuxerFactory
Por ejemplo, si implementas tu propio combinador en
a nivel de la aplicación, puedes escribir un wrapper que implemente el Muxer
y, luego, usa setMuxerFactory
para insertarla en Transformer.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]