Sorun giderme


Demo uygulamasında yerel dosyalara neden erişemiyorum?

Android 11'deki (API düzeyi 30) kapsamlı depolama yaptırımı, doğrudan dosya sistemine erişimi engeller. Geliştirme sırasında manuel test yapmak için demo uygulama manifest dosyasına harici depolama alanını yönetme iznini ekleyerek yerel dosyalara erişmek mümkündür:

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

Daha sonra, adb aracılığıyla izni verin:

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

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

Lütfen sorunu yeniden oluşturmak için yeterli bilgilerle Media3 sorun izleyicisine bir sorun bildirin. Cihaza özgü sorunlar için geçici çözümler, uyumluluğu artırmak için kitaplığa eklenebilir.

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

Dönüştürücü, MP4 gibi medya dosyası kapsayıcıları da dahil olmak üzere uzak progresif akışları destekler.

Çok kötü ağ koşullarında uzak medyanın arabelleğe alınması, muxer'da ardışık düzenin takılıp kaldığına dair bir kontrol gerçekleştirir. Bu nedenle dışa aktarma işlemi başarısız olabilir. Transformer.Builder için maxDelayBetweenMuxerSamplesMs 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 değerini geçirmek, zaman aşımını tamamen kaldırır ancak uygulamanız MediaCodec çip üzerinde çalışıyorsa sıfır olmayan daha büyük bir zaman aşımı ayarlamak isteyebilirsiniz.

Transformer 8k girişi destekliyor mu?

Dönüştürücü, biçimden bağımsız bir şekilde uygulandığında 8K videonun işlenmesini sınırlamaz ancak cihazdaki donanım özellikleri, dışa aktarmanın başarılı olamayacağı anlamına gelebilir. Örneğin, 8K çekim yapabilen cihazlarda bile, mevcut donanım codec'i veya RAM kaynaklarının aşılması nedeniyle 8K videonun kodunu çözmek ve yeniden kodlamak mümkün olmayabilir.

Transformer'ın platform uyumlu medya kodu dönüştürme ile ilgisi nedir?

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

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

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

Transformer, donanım hızlandırmalı kod çözme ve kodlama için MediaCodec, video karelerini işlemek için OpenGL kullanır. Tipik cihazlarla ilgili ölçümlerimize göre, Transformer'ın işleme hızındaki sınırlayıcı faktör, ağır efekt işlemenin olmadığı kullanım alanları için donanım MediaCodec kodlayıcı işleme hızıdır. Bu durumun diğer uygulamaları da aynı şekilde etkilemesi olasıdır. Örneğin, platform uyumlu kod dönüştürme özelliği, Transformer ile benzer bir performansa sahiptir.

Demo uygulamasının hata ayıklama önizlemesi, işleme hızını önemli ölçüde düşürür. Bu nedenle, performansla ilgili gerçekçi bir fikir edinmek için demo uygulamasının sürüm derlemesiyle test yaparken önizleme özelliğini kapatın.