Demystifying Low Latency Audio on Android
summary
Android historically ships high audio latency (400+ ms on old devices) but modern flagships hit ~15–20 ms; professional-grade round-trip is <10 ms professional-grade. Native paths (NDK, JNI) beat JVM APIs (AudioRecord/AudioTrack) by avoiding bytecode and scheduling overhead. Oboe is the recommended C++ library (API 16+, picks OpenSL ES or AAudio automatically, works around OEM bugs, manages sample-rate and buffer-length probing) and simplifies native streams though it is not thread-safe. Expect Bluetooth to add large overheads (tests show ~200–300 ms with AAC).
AI-written summary · about
chapters (18)
- 0:00Introduction to low latency audio
- 1:53High performance audio needs
- 3:17OpenSL ES and AAudio overview
- 4:19Understanding audio latency
- 6:03Audio path in Android
- 9:53Types of audio latency
- 11:42Minimizing latency on Android
- 13:03Latency comparison with iOS
- 14:50History of Android latency issues
- 17:22Root causes of Android latency
- 20:35Sample rate and buffer length issues
- 25:07Bluetooth audio latency challenges
- 26:32Java vs native audio processing
- 27:33Introducing Oboe library
- 30:20Setting up Oboe in projects
- 31:45Oboe pros and cons
- 33:10Oboe resources and next steps
- 34:41Q&A session
