Personalizzazione

Per controllare il comportamento di Transformer, puoi configurare le opzioni nella superficie API o sostituire completamente parti di funzionalità scrivendo implementazioni personalizzate di interfacce e passandole. Questa pagina descrive alcuni esempi.

Controllare la configurazione del codec

Per impostazione predefinita, Transformer utilizzerà una risoluzione supportata se il codificatore hardware del dispositivo non accetta la risoluzione di output richiesta. Ad esempio, Transformer può allineare la larghezza e l'altezza dell'output in modo che siano un multiplo di 2 o 16, come spesso richiesto dai codificatori hardware. Puoi disattivare questo comportamento in modo che Transformer generi un errore se non riesce a produrre la risoluzione di output richiesta:

Kotlin

transformerBuilder.setEncoderFactory(
  DefaultEncoderFactory.Builder(context).setEnableFallback(false).build()
)

Java

transformerBuilder.setEncoderFactory(
    new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build());

Allo stesso modo, DefaultEncoderFactory supporta anche l'utilizzo di impostazioni di codifica personalizzate con l'opzione setRequestedVideoEncoderSettings.

Puoi anche sostituire completamente le fabbriche di codificatori e decodificatori per avere il pieno controllo sulla configurazione dei codec.

Muxer personalizzati

Puoi impostare un muxer personalizzato per scrivere contenitori multimediali chiamando Transformer.setMuxerFactory. Ad esempio, se implementi il tuo muxer a livello di applicazione, puoi scrivere un wrapper che implementi l'interfaccia Muxer e poi utilizzare setMuxerFactory per inserirlo in Transformer.