Per controllare il comportamento di Transformer, puoi configurare le opzioni nell'interfaccia API o sostituire completamente le funzionalità scrivendo implementazioni personalizzate delle interfacce e trasferendole. In questa pagina vengono descritti alcuni esempi.
Controlla la configurazione del codec
Per impostazione predefinita, Transformer ricorrerà a 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 è in grado di 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());
Analogamente, l'DefaultEncoderFactory
supporta anche l'utilizzo di impostazioni
di codifica personalizzate con l'opzione setRequestedVideoEncoderSettings
.
Puoi anche sostituire completamente le fabbriche di encoder e decoder per ottenere il controllo completo sulla configurazione dei codec.
Muxer personalizzati
Puoi impostare un muxer personalizzato per la scrittura di container 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 quindi utilizzare setMuxerFactory
per inserirlo in Transformer.