Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Latensi Audio untuk Pengembang Aplikasi

Untuk latensi audio serendah mungkin, kami menyarankan Anda menggunakan audio native Android berdasarkan OpenSL ES 1.0.1.

Daftar periksa implementasi

Untuk menggunakan audio asli Android:

  1. Unduh dan pasang Android NDK . Di bagian lain dokumen ini, kami akan menganggap NDKroot adalah direktori tempat Anda menginstal NDK.
  2. Baca dokumentasi pendukung.
  3. Periksa API level 9 atau lebih tinggi.
  4. Periksa fitur android.hardware.audio.low_latency.
  5. Gunakan ukuran buffer native yang direkomendasikan dan frekuensi sampel yang dikembalikan oleh android.media.AudioManager.getProperty (java.lang.String)

    Catatan : ukuran buffer dan sample rate yang sama juga harus digunakan untuk input.

  6. Biasanya jumlah buffer OpenSL ES 1 sudah cukup.
  7. Pertahankan agar penangan panggilan balik Anda tetap singkat, tanpa penggunaan CPU yang membengkak atau pemblokiran tanpa batas. Hindari pembalikan prioritas.
  8. Pertimbangkan untuk menggunakan algoritme non-pemblokiran untuk berkomunikasi antara penangan callback masukan dan keluaran, dan antara penangan callback dan seluruh aplikasi Anda.

Dokumentasi pendukung

OpenSL ES 1.0.1

Gunakan PDF viewer untuk meninjau Spesifikasi OpenSL 1.0.1. Ini adalah referensi yang agak panjang, dan tidak semuanya relevan bagi Anda; tetapi Anda perlu memeriksanya 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 untuk Android.

OpenSL ES untuk Android

Dokumen "OpenSL ES untuk Android" disediakan dalam 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 sub-bagian "Performa" 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 basis OpenSL ES 1.0.1.

Hubungan dengan OpenSL ES 1.0.1

Diagram Venn ini menunjukkan hubungan antara audio native Android dan OpenSL ES 1.0.1.

diagram Venn

Gambar 1. Diagram Venn

Sumber daya lainnya

source.android.com

Situs source.android.com dirancang terutama untuk OEM yang membuat perangkat Android, dan vendor SoC yang memasok komponen ke OEM tersebut.

Namun, ada banyak informasi berguna tentang latensi di situs ini, jadi Anda mungkin ingin memeriksanya. Lihat artikel di Audio Latency.

android-ndk

Jika Anda memiliki pertanyaan tentang cara menggunakan audio native Android, Anda dapat bertanya di grup diskusi android-ndk.

Video

Audio berperforma tinggi di Android (Google I / O 2013)
Seluruh video tentang latensi.
Membangun pengalaman multi-media yang luar biasa 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.