- Demo uygulamasında yerel dosyalara neden erişemiyorum?
- Dışa aktarma işlemi belirli bir cihazda neden başarısız oluyor?
- Transformer, uzak medyanın dönüştürülmesini (veya kaydedilmesini) destekliyor mu?
- Transformer 8k girişi destekliyor mu?
- Transformer ile platform uyumlu medya kod dönüştürme arasındaki ilişki nedir?
- Dışa aktarma gecikmesini nasıl azaltabilirim veya işleme hızını nasıl artırabilirim?
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.