Untuk latensi audio serendah mungkin, kami sarankan Anda menggunakan audio asli Android berdasarkan OpenSL ES 1.0.1.
Daftar periksa implementasi
Untuk menggunakan audio asli Android:
- Unduh dan instal Android NDK . Di sisa dokumen ini, kami akan menganggap
NDKroot
adalah direktori tempat Anda menginstal NDK. - Baca dokumentasi pendukung.
- Periksa API level 9 atau lebih tinggi.
- Periksa fitur android.hardware.audio.low_latency.
- Gunakan ukuran buffer asli yang direkomendasikan dan laju sampel yang dikembalikan oleh android.media.AudioManager.getProperty(java.lang.String)
Catatan : ukuran buffer dan laju sampel yang sama juga harus digunakan untuk input.
- Biasanya jumlah buffer OpenSL ES 1 sudah cukup.
- Buat penangan panggilan balik Anda singkat, tanpa penggunaan CPU yang meledak-ledak atau pemblokiran tanpa batas. Hindari inversi prioritas.
- Pertimbangkan untuk menggunakan algoritme non-pemblokiran untuk berkomunikasi antara penangan panggilan balik input dan output, dan antara penangan panggilan balik dan seluruh aplikasi Anda.
Dokumentasi pendukung
OpenSL ES 1.0.1
Gunakan penampil PDF untuk meninjau Spesifikasi OpenSL 1.0.1. Ini adalah referensi yang agak panjang, dan tidak semuanya relevan bagi Anda; tetapi Anda perlu berkonsultasi dengannya untuk detail tentang API.
Catatan : dokumen ini menjelaskan OpenSL ES 1.0.1 lengkap, tetapi audio asli Android sebenarnya didasarkan pada subset OpenSL ES 1.0.1 dengan beberapa ekstensi khusus Android.
Dokumen yang menjelaskan versi OpenSL ES yang lebih baru, seperti 1.1, tidak relevan dengan Android.
OpenSL ES untuk Android
Dokumen "OpenSL ES for Android" disediakan di penginstalan NDK, dan saat ini tidak tersedia secara online. Buka tautan ini di browser:
NDKroot/docs/Additional_library_docs/opensles/index.html
Anda mungkin ingin membaca sekilas seluruh dokumen, tetapi berikan perhatian khusus pada subbagian "Kinerja" dari bagian "Catatan pemrograman".
Bagian "Fitur yang didukung dari OpenSL ES 1.0.1" menjelaskan subset yang didukung oleh Android.
Bagian "Ekstensi Android" menjelaskan ekstensi khusus Android yang tidak disertakan dalam OpenSL ES 1.0.1 dasar.
Hubungan dengan OpenSL ES 1.0.1
Diagram Venn ini menunjukkan hubungan antara audio asli Android dan OpenSL ES 1.0.1.
Sumber daya lainnya
source.android.com
Situs source.android.com terutama dirancang untuk OEM yang membuat perangkat Android, dan vendor SoC yang memasok komponen ke OEM ini.
Namun, ada banyak informasi berguna tentang latensi di situs ini, jadi Anda mungkin ingin meninjaunya. Lihat artikel di Audio Latency.
android-ndk
Jika Anda memiliki pertanyaan tentang cara menggunakan audio asli Android, Anda dapat bertanya di grup diskusi android-ndk.
Video
- Audio performa tinggi di Android (Google I/O 2013)
- Seluruh video adalah tentang latensi.
- Membangun pengalaman multi-media yang hebat di Android (Google I/O 2014)
- 14 menit pertama adalah tentang audio secara umum dan latensi input pada khususnya.
- Latensi audio: ukuran buffer (100 Hari Google Dev)
- Menjelaskan hubungan antara latensi audio, ukuran buffer, dan penjadwalan tugas.