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.