Media3 Transformer şu anda geliştirme aşamasındadır ve sizden haber bekliyoruz. Geri bildirimlerinizi, özellik isteklerinizi ve hata raporlarınızı
sorun izleyicide bulabilirsiniz. En son güncellemeler için
ExoPlayer blogunu takip edin.
Özelleştirme
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Transformer'ın davranışını kontrol etmek için API yüzeyindeki seçenekleri yapılandırabilirsiniz.
özel uygulamalar yazarak işlevsellik parçalarını tamamen değiştirmeyi deneyin
ve bunları aktarabilirsiniz. Bu sayfada bazı örnekler açıklanmaktadır.
codec yapılandırmasını kontrol etme
Varsayılan olarak
cihazın donanım kodlayıcısı, istenen çıkış çözünürlüğünü kabul etmiyor. Örneğin,
Örneğin, Dönüştürücü, çıkış genişliğini ve yüksekliğini 2'nin katları olacak şekilde hizalayabilir
veya 16 kodlayıcının gerekli gördüğü şekilde çalışır. Bu davranışı devre dışı bırakabilirsiniz
Bu nedenle, Transformer gerekli olanı üretemezse bunun yerine bir hata verir.
çıkış çözünürlüğü:
Kotlin
transformerBuilder
.setEncoderFactory(
DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build())
Java
transformerBuilder
.setEncoderFactory(
new DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build());
Benzer şekilde, DefaultEncoderFactory
özel kodlamanın kullanılmasını da destekler
setRequestedVideoEncoderSettings
seçeneği ile de ayarlayabilirsiniz.
Kodlayıcıların ve kod çözücülerin fabrikalarını tamamen değiştirebilir,
codec'lerin nasıl ayarlandığı üzerinde tam kontrol sahibidir.
Özel mux'lar
Medya kapsayıcılarını yazmak için özel bir muxer ayarlamak için
Transformer.setMuxerFactory
Örneğin,
isterseniz Muxer
öğesini uygulayan bir sarmalayıcı yazabilirsiniz.
arayüzü ve ardından setMuxerFactory
öğesini kullanarak Transformer'a ekleyin.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# Customization\n\nTo control Transformer's behavior, you can configure options in the API surface\nor replace pieces of functionality completely by writing custom implementations\nof interfaces and passing those in. This page describes some examples.\n\nControl codec configuration\n---------------------------\n\nBy default, Transformer will fall back to a supported resolution if the\ndevice's hardware encoder doesn't accept the requested output resolution. For\nexample, Transformer can align the output width and height to be a multiple of 2\nor 16 as is often required by hardware encoders. You can turn off this behavior\nso that Transformer instead throws an error if it can't produce the required\noutput resolution: \n\n### Kotlin\n\n```kotlin\ntransformerBuilder\n .setEncoderFactory(\n DefaultEncoderFactory.Builder(context)\n .setEnableFallback(false)\n .build())\n```\n\n### Java\n\n```java\ntransformerBuilder\n .setEncoderFactory(\n new DefaultEncoderFactory.Builder(context)\n .setEnableFallback(false)\n .build());\n```\n\n\u003cbr /\u003e\n\nSimilarly, the `DefaultEncoderFactory` also supports using custom encoding\nsettings with the `setRequestedVideoEncoderSettings` option.\n\nYou can also completely replace the factories for encoders and decoders to get\nfull control over how the codecs are set up.\n\nCustom muxers\n-------------\n\nYou can set a custom muxer for writing media containers by calling\n`Transformer.setMuxerFactory`. For example, if you implement your own muxer at\nthe application level, you can write a wrapper that implements the `Muxer`\ninterface and then use `setMuxerFactory` to inject it into Transformer."]]