Pemecahan masalah


Mengapa saya tidak dapat mengakses file lokal di aplikasi demo?

Penerapan penyimpanan terbatas dari Android 11 (level API 30) mencegah akses sistem file langsung. Untuk pengujian manual selama pengembangan, file lokal dapat diakses dengan menambahkan izin kelola penyimpanan eksternal di manifes aplikasi demo:

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

Kemudian, berikan izin melalui adb:

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

Mengapa ekspor gagal di perangkat tertentu?

Ajukan masalah di Issue Tracker Media3 dengan informasi yang cukup untuk mereproduksi masalah. Solusi untuk masalah khusus perangkat dapat ditambahkan ke library untuk meningkatkan kompatibilitas dari waktu ke waktu.

Apakah Transformer mendukung transformasi (atau perekaman) media jarak jauh?

Transformer mendukung streaming progresif jarak jauh, termasuk penampung file media seperti MP4.

Dalam kondisi jaringan yang sangat buruk, ekspor dapat gagal karena mem-buffer media jarak jauh terlalu lama memicu pemeriksaan di muxer yang dimaksudkan untuk mengidentifikasi bahwa pipeline macet. Anda dapat mengganti perilaku default dengan menyetel maxDelayBetweenMuxerSamplesMs di Transformer.Builder:

Kotlin

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

Java

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

Meneruskan C.TIME_UNSET akan menghapus batas waktu sepenuhnya, tetapi jika aplikasi Anda berjalan di chipset yang dapat mengalami masalah MediaCodec, Anda mungkin ingin menyetel batas waktu yang lebih besar dan tidak nol.

Apakah Transformer mendukung input 8k?

Transformer diimplementasikan dengan cara yang tidak bergantung pada format, sehingga tidak membatasi penanganan video 8k, tetapi kemampuan hardware di perangkat dapat menyebabkan ekspor gagal. Misalnya, meskipun pada perangkat yang dapat merekam video 8k, video 8k mungkin tidak dapat didekode dan dienkode ulang karena melebihi codec hardware atau resource RAM yang tersedia.

Bagaimana kaitan Transformer dengan transcoding media yang kompatibel dengan platform?

Transcoding media yang kompatibel adalah fitur platform Android dari Android 12 (level API 31) yang mengonversi media berdurasi hingga satu menit ke dalam format yang didukung oleh aplikasi. Jika Anda memilih untuk menggunakan fitur ini, membaca file media dalam format yang tidak kompatibel akan menyebabkan file tersebut ditranskode sesuai permintaan, dan hasilnya di-cache untuk operasi baca selanjutnya.

Transformer juga mendukung konversi format, tetapi tersedia sebagai support library dan aplikasi memiliki kontrol penuh atas operasi transkode.

Bagaimana cara mengurangi latensi ekspor atau meningkatkan throughput?

Transformer mengandalkan MediaCodec untuk decoding dan encoding dengan akselerasi hardware, serta OpenGL untuk memproses frame video. Berdasarkan pengukuran kami pada perangkat umum, faktor pembatas dalam throughput Transformer adalah throughput encoder hardware MediaCodec untuk kasus penggunaan tanpa pemrosesan efek berat. Hal ini kemungkinan akan memengaruhi penerapan lain dengan cara yang sama. Misalnya, fitur transcoding yang kompatibel dengan platform memiliki performa yang serupa dengan Transformer.

Pratinjau debug aplikasi demo mengurangi throughput secara signifikan, jadi nonaktifkan fitur pratinjau saat menguji dengan build rilis aplikasi demo untuk mendapatkan gambaran performa yang realistis.