Untuk latensi audio serendah mungkin, sebaiknya gunakan Oboe.
Oboe
Oboe menggunakan audio native dan dibangun di AAudio untuk Android 8.1 (level API
27) dan yang lebih baru serta OpenSL ES. Untuk mencapai latensi serendah mungkin bagi perangkat, setel setPerformanceMode(oboe::PerformanceMode::LowLatency) dan setSharingMode(oboe::SharingMode::Exclusive). Untuk mengetahui informasi selengkapnya tentang
Oboe, lihat Panduan memulai, README.md, dan Panduan
lengkap. Lihat aplikasi Soundboard untuk aplikasi contoh yang menggunakan Oboe.
Jika Anda menggunakan AudioTrack untuk membuat aliran audio output di Java untuk
aplikasi yang sensitif terhadap latensi, gunakan mode PERFORMANCE_MODE_LOW_LATENCY.
Checklist penerapan
Untuk menggunakan audio native Android:
- Download dan instal Android NDK.
- Ikuti Panduan memulai untuk Oboe.
- Panggil
setPerformanceMode(oboe::PerformanceMode::LowLatency)dansetSharingMode(oboe::SharingMode::Exclusive)di builder Oboe. Gunakan ukuran buffer dan frekuensi sampel native yang direkomendasikan yang ditampilkan oleh
android.media.AudioManager.getProperty(java.lang.String).Buat handler callback Anda tetap singkat, tanpa penggunaan CPU yang berlebihan atau pemblokiran yang tidak terbatas. Hindari inversi prioritas.
Sebaiknya gunakan algoritma non-blocking untuk berkomunikasi antara pengendali callback input dan output, serta antara pengendali callback dan bagian lain aplikasi Anda.
android-ndk
Jika ada pertanyaan tentang cara menggunakan audio native Android, bergabunglah ke grup diskusi android-ndk.
Melaporkan bug di Oboe
Jika Anda mengalami masalah saat menggunakan Oboe, laporkan bug.
Video
- Mulai menggunakan Oboe
- Audio Latensi Rendah - Karena Telinga Anda Berharga (Android Dev Summit 2018)
- Winning on Android - How to optimize an Android audio app (Android Developer Challenge 2018)
- Audio Performa Tinggi di Android (Google I/O 2013)
- Membangun pengalaman multimedia yang hebat di Android (Google I/O 2014)
- Latensi audio: ukuran buffer (100 Hari Google Dev)