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ı ileterek işlev parçalarını tamamen değiştirebilirsiniz. Bu sayfada bazı örnekler açıklanmaktadır.
Codec yapılandırmasını kontrol etme
Varsayılan olarak, Transformer, cihazın donanım kodlayıcısı istenen çıkış çözünürlüğünü kabul etmezse desteklenen bir çözünürlüğe geri döner. Örneğin, Transformer, çıkış genişliğini ve yüksekliğini genellikle donanım kodlayıcılar tarafından gerekli olduğu şekilde 2 veya 16'nın katı olacak şekilde ayarlayabilir. Transformer'ın gerekli çıkış çözünürlüğünü üretememesi durumunda hata vermesi için bu davranışı devre dışı bırakabilirsiniz:
Kotlin
transformerBuilder.setEncoderFactory( DefaultEncoderFactory.Builder(context).setEnableFallback(false).build() )
Java
transformerBuilder.setEncoderFactory( new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build());
Benzer şekilde, DefaultEncoderFactory seçeneği, setRequestedVideoEncoderSettings seçeneğiyle özel kodlama ayarlarının kullanılmasını da destekler.
Codec'lerin nasıl ayarlandığı üzerinde tam kontrol sahibi olmak için kodlayıcı ve çözücü fabrikalarını tamamen değiştirebilirsiniz.
Özel muxer'lar
Transformer.setMuxerFactory işlevini çağırarak medya kapsayıcılarını yazmak için özel bir muxer ayarlayabilirsiniz. Örneğin, kendi muxer'ınızı uygulama düzeyinde uyguluyorsanız Muxer arayüzünü uygulayan bir sarmalayıcı yazabilir ve ardından bunu Transformer'a yerleştirmek için setMuxerFactory kullanabilirsiniz.
Özel muxer'ınız MP4 düzenleme listelerine negatif zaman damgaları yazmayı destekliyorsa Muxer.Factory#supportsWritingNegativeTimestampsInEditList değerinin true döndürdüğünden emin olmalısınız. Bu sayede Transformer, videoyu yeniden kodlamaya gerek kalmadan MP4 düzenleme listelerini kullanarak yalnızca kırpma gibi düzenlemeler yapabilir. Bu özellik, varsayılan InAppMp4Muxer için zaten desteklenmektedir.