Demystifying Low Latency Audio on Android
summary
Explains why low latency audio needs native paths and shows concrete fixes: use the Oboe C++ library (works API16+, switches between OpenSL ES and AAudio), avoid JVM buffering hacks, and test with the provided tester app and samples (WaveMaker, HelloOboe). Gives concrete numbers: device round trips around 6–9 ms on some phones, ~20–22 ms on others, Bluetooth often 200–500 ms, professional target round-trip <10 ms. Covers sample‑rate and buffer probing, managed streams, prefab/Gradle caveats, and that the demos work.
AI-written summary · about
chapters (22)
- 0:00Intro
- 1:24Audio processing on Android/Java
- 3:49High Performance Audio on Android
- 6:02Audio Latency: How?
- 7:30Audio path in Android
- 8:35Types of Audio Latency
- 9:43Audio Latency:Keypoints
- 10:35Audio Latency on mobile platforms
- 11:24Audio Latency on Android
- 12:00Problem on Android
- 13:34OS Level Problems: AAudio
- 14:03OS Level Problems: CPU Scaling
- 15:51Sample rate
- 16:39API Level Problems: Samplerate
- 17:45API Level Problems: Buffer length
- 18:44Audio Latency over Bluetooth
- 20:25Java vs Native Path(C++)
- 22:55Including Oboe
- 24:20compared to OpenSL ES code
- 26:36Oboe: Tester
- 27:31Apps already using Oboe
- 28:22Oboe: Cons
related talks
17mA Brief History of Real Time Audio (or Wasn’t That API Deprecated?)
20mLow latency Audio - because your ears are worth it
40mHigh Performance Audio
38mAndroid Audio: Beyond Winning On It
26mUnderstanding and Implementing Audio on Android
16mUnderstanding and Implementing Audio on Android
33mVisualizing the Human Voice
40mAndroid high performance baby
