Latensi audio untuk developer aplikasi

Untuk latensi audio serendah mungkin, sebaiknya gunakan Oboe.

Oboe

Oboe menggunakan audio native dan di-build di AAudio untuk Android 8.1+ dan OpenSL ES untuk versi Android yang lebih lama. Untuk mencapai latensi terendah untuk perangkat, tetapkan setPerformanceMode(oboe::PerformanceMode::LowLatency) dan setSharingMode(oboe::SharingMode::Exclusive). Lihat Panduan memulai, README.md, dan Panduan lengkap untuk mengetahui informasi selengkapnya tentang Oboe. Lihat aplikasi Soundboard untuk aplikasi contoh yang menggunakan Oboe.

Catatan: Jika Anda menggunakan AudioTrack untuk membuat streaming audio output di Java untuk aplikasi yang sensitif terhadap latensi, gunakan mode PERFORMANCE_MODE_LOW_LATENCY.

Checklist penerapan

Untuk menggunakan audio native Android:

  1. Download dan instal Android NDK.
  2. Ikuti Panduan memulai untuk Oboe.
  3. Panggil setPerformanceMode(oboe::PerformanceMode::LowLatency) dan setSharingMode(oboe::SharingMode::Exclusive) di builder Oboe.
  4. Gunakan ukuran buffer native dan frekuensi sampel yang direkomendasikan yang ditampilkan oleh android.media.AudioManager.getProperty(java.lang.String).

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

  5. Buat pengendali callback Anda singkat, tanpa penggunaan CPU yang tiba-tiba atau pemblokiran yang tidak terbatas. Hindari inversi prioritas.
  6. Pertimbangkan untuk menggunakan algoritma non-blocking untuk berkomunikasi antara pengendali callback input dan output, dan antara pengendali callback dan seluruh aplikasi Anda.

Referensi lainnya

source.android.com

Situs source.android.com didesain terutama untuk OEM yang mem-build perangkat Android, dan vendor SoC yang memasok komponen ke OEM ini.

Namun, ada banyak informasi berguna tentang latensi di situs ini, jadi Anda dapat meninjaunya. Lihat artikel di Latensi audio.

android-ndk

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

Melaporkan bug di Oboe

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

Video

Mulai menggunakan Oboe
Audio Latensi Rendah - Karena Telinga Anda Layak Mendapatkan yang Terbaik
Android Dev Summit 2018.
Menang di Android - Cara mengoptimalkan aplikasi audio Android
Tantangan Developer Android 2018.
Audio berperforma tinggi di Android (Google I/O 2013)
Seluruh video membahas latensi.
Membuat pengalaman multimedia yang luar biasa di Android (Google I/O 2014)
14 menit pertama membahas audio secara umum dan latensi input secara khusus.
Latensi audio: ukuran buffer (100 Days of Google Dev)
Menjelaskan hubungan antara latensi audio, ukuran buffering, dan penjadwalan tugas.