Personalizzazione

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.