Latensi audio untuk pengembang aplikasi

Untuk latensi audio serendah mungkin, kami sarankan Anda menggunakan Oboe .

Obo

Oboe menggunakan audio asli dan dibangun di atas AAudio untuk Android 8.1+ dan OpenSL ES untuk versi Android yang lebih lama. Untuk mencapai latensi serendah mungkin pada perangkat, setel setPerformanceMode(oboe::PerformanceMode::LowLatency) dan setSharingMode(oboe::SharingMode::Exclusive) . Lihat Panduan memulai , README.md , dan Panduan lengkap untuk informasi lebih lanjut tentang Oboe. Lihat aplikasi Soundboard untuk contoh aplikasi menggunakan Oboe.

Catatan: Jika Anda menggunakan AudioTrack untuk membuat aliran audio keluaran di Java untuk aplikasi sensitif latensi, gunakan mode PERFORMANCE_MODE_LOW_LATENCY .

Daftar periksa implementasi

Untuk menggunakan audio asli Android:

  1. Unduh dan instal Android NDK .
  2. Ikuti panduan Memulai untuk Oboe.
  3. Panggil setPerformanceMode(oboe::PerformanceMode::LowLatency) dan setSharingMode(oboe::SharingMode::Exclusive) pada pembuat Oboe.
  4. Gunakan ukuran buffer asli dan laju sampel yang direkomendasikan yang ditampilkan oleh android.media.AudioManager.getProperty(java.lang.String) .

    Catatan: Ukuran buffer dan laju sampel yang sama juga harus digunakan untuk input.

  5. Jaga agar penangan panggilan balik Anda tetap singkat, tanpa penggunaan CPU yang berlebihan atau pemblokiran tanpa batas. Hindari inversi prioritas.
  6. Pertimbangkan untuk menggunakan algoritme non-pemblokiran untuk berkomunikasi antara penangan panggilan balik masukan dan keluaran, dan antara penangan panggilan balik dan seluruh aplikasi Anda.

Sumber daya lainnya

sumber.android.com

Situs source.android.com terutama dirancang 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 meninjaunya. Lihat artikel di Latensi audio.

android-ndk

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

Laporkan bug di Oboe

Jika Anda mengalami masalah dalam menggunakan Oboe, Anda dapat melaporkan bug .

Video

Memulai dengan Oboe
Audio Latensi Rendah - Karena Telinga Anda Berharga
KTT Pengembang Android 2018.
Menang di Android - Cara mengoptimalkan aplikasi audio Android
Tantangan Pengembang Android 2018.
Audio performa tinggi di Android (Google I/O 2013)
Keseluruhan video tentang latensi.
Membangun pengalaman multi-media yang luar biasa di Android (Google I/O 2014)
14 menit pertama membahas 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.