Sorun giderme


Demo uygulamasında yerel dosyalara neden erişemiyorum?

Android 11'den (API düzeyi 30) itibaren kapsamlı depolama zorunluluğu, doğrudan dosya sistemi erişimini engeller. Geliştirme sırasında manuel test için, demo uygulama manifestine harici depolama alanını yönetme izni ekleyerek yerel dosyalara erişebilirsiniz:

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

Ardından, adb üzerinden izni verin:

adb shell appops set --uid androidx.media3.demo.transformer \
    MANAGE_EXTERNAL_STORAGE allow

Dışa aktarma işlemi neden belirli bir cihazda başarısız oluyor?

Lütfen Media3 sorun izleyicisinde sorunu yeniden oluşturmak için yeterli bilgi içeren bir sorun kaydı oluşturun. Cihaza özgü sorunlar için geçici çözümler kitaplığa eklenebilir. Böylece zaman içinde uyumluluk iyileştirilir.

Transformer, uzak medyayı dönüştürmeyi (veya kaydetmeyi) destekliyor mu?

Transformer, MP4 gibi medya dosyası kapsayıcıları da dahil olmak üzere uzaktan ilerleyici akışları destekler.

Ağ koşullarının çok kötü olduğu durumlarda, uzak medyayı çok uzun süre arabelleğe alma işlemi, ardışık düzenin takıldığını belirlemek için tasarlanan muxer'daki kontrolleri tetiklediğinden dışa aktarma işlemi başarısız olabilir. maxDelayBetweenMuxerSamplesMs öğesini Transformer.Builder olarak ayarlayarak varsayılan davranışı geçersiz kılabilirsiniz:

Kotlin

Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build()

Java

new Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build();

C.TIME_UNSET iletildiğinde zaman aşımı tamamen kaldırılır ancak uygulamanız MediaCodec'nin takılabileceği yonga setlerinde çalışıyorsa daha büyük bir sıfır olmayan zaman aşımı ayarlamak isteyebilirsiniz.

Transformer, 8k girişini destekliyor mu?

Transformer, biçimden bağımsız bir şekilde uygulanır. Bu nedenle, 8K videoların işlenmesini sınırlamaz ancak cihazdaki donanım özellikleri nedeniyle dışa aktarma işlemi başarılı olmayabilir. Örneğin, 8K video çekebilen cihazlarda bile, mevcut donanım codec'i veya RAM kaynakları aşıldığı için 8K videoların kodu çözülüp yeniden kodlanamayabilir.

Transformer'ın, platform uyumlu medya kodlama dönüştürme ile ilişkisi nedir?

Uyumlu medya kodlama dönüştürme, Android 12'den (API düzeyi 31) itibaren Android platformunda bulunan bir özelliktir. Bu özellik, bir dakikaya kadar olan medyaları uygulama tarafından desteklenen biçimlere dönüştürür. Bu özelliği kullanmayı etkinleştirirseniz uyumsuz biçimdeki bir medya dosyasını okumak, dosyanın isteğe bağlı olarak kod dönüştürülmesine neden olur ve sonuç daha sonraki okuma işlemleri için önbelleğe alınır.

Transformer, biçim dönüştürmeyi de destekler ancak destek kitaplığı olarak sunulur ve uygulama, kod dönüştürme işlemi üzerinde tam kontrole sahiptir.

Dışa aktarma gecikmesini nasıl azaltabilir veya işleme hızını nasıl artırabilirim?

Transformer, donanım hızlandırmalı kod çözme ve kodlama için MediaCodec'ya, video karelerini işlemek için ise OpenGL'ye dayanır. Normal cihazlarda yaptığımız ölçümlere göre, Transformer'ın işleme hızındaki sınırlayıcı faktör, ağır efektler işlenmeyen kullanım alanları için donanım MediaCodec kodlayıcı işleme hızıdır. Bu durum, aynı şekilde diğer uygulamaları da etkileyecektir. Örneğin, platform uyumlu kod dönüştürme özelliği, Transformer ile benzer performansa sahiptir.

Demo uygulamasının hata ayıklama önizlemesi, işleme hızını önemli ölçüde düşürür. Bu nedenle, performans hakkında gerçekçi bir fikir edinmek için demo uygulamasının yayınlanan derlemesiyle test yaparken önizleme özelliğini devre dışı bırakın.