Latensi Audio untuk Pengembang Aplikasi

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:

  1. Unduh dan instal Android NDK . Di sisa 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 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.

  6. Biasanya jumlah buffer OpenSL ES 1 sudah cukup.
  7. Buat penangan panggilan balik Anda singkat, tanpa penggunaan CPU yang meledak-ledak atau pemblokiran tanpa batas. Hindari inversi prioritas.
  8. 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.

diagram Venn

Gambar 1. Diagram Venn

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.