Özelleştirme

Transformer'ın davranışını kontrol etmek için API yüzeyindeki seçenekleri yapılandırabilir veya arayüzlerin özel uygulamalarını yazıp bunları geçirerek işlevleri tamamen değiştirebilirsiniz. Bu sayfada bazı örnekler açıklanmaktadır.

Codec yapılandırmasını kontrol etme

Cihazın donanım kodlayıcısı, istenen çıkış çözünürlüğünü kabul etmezse dönüştürücü, varsayılan olarak desteklenen bir çözünürlüğe döner. Örneğin, Transformer, çıkış genişliğini ve yüksekliğini 2 veya 16'nın katı olacak şekilde hizalayabilir. Bu, genellikle donanım kodlayıcılarının gerektirdiği şekilde yapılır. Bu davranışı devre dışı bırakabilirsiniz. Böylece Transformer gerekli çıkış çözünürlüğünü üretemezse hata mesajı verir:

Kotlin

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

Java

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

Benzer şekilde DefaultEncoderFactory, setRequestedVideoEncoderSettings seçeneğiyle özel kodlama ayarlarının kullanılmasını da destekler.

Ayrıca, codec'lerin ayarlanma şekli üzerinde tam kontrol elde etmek için kodlayıcı ve kod çözücü fabrikalarını tamamen değiştirebilirsiniz.

Özel muxer'lar

Transformer.setMuxerFactory çağrısı yaparak medya kapsayıcılarını yazmak için özel bir muxer ayarlayabilirsiniz. Örneğin, kendi muxer'ınızı uygulama düzeyinde uygularsanız Muxer arayüzünü uygulayan bir sarmalayıcı yazabilir ve ardından setMuxerFactory kullanarak bunu Transformer'a yerleştirebilirsiniz.