Understanding and Implementing Audio on Android
summary
Explains Android audio pipeline from file → resampling/effects/mixer → DAC and why kernel-timed consumption creates strict deadlines that cause dropouts; recommends using SoundPool (preload samples into memory, set max streams — we use 5) for low-latency UI sounds and MediaPlayer for longer or one-off tracks and emergencies (preempt others via audio focus). Notes ExoPlayer is considered but not used. Surprising details: Bluetooth uses a max volume of 15 vs 10 for regular streams, and problems remain — slider overload, wake-from-sleep sounds, and theme-change load latency.
AI-written summary · about
chapters (8)
- 0:00Introduction to audio on Android
- 2:05Audio latency and processing
- 3:08Media Player implementation
- 6:37SoundPool for dynamic sounds
- 9:25ExoPlayer overview
- 10:48Audio focus and multi-app handling
- 13:58Case study and implementation tips
- 15:43Challenges and unresolved issues
related talks
26mUnderstanding and Implementing Audio on Android
42mLet's make some noise with Android
23mAdvanced ExoPlayer
35mControlling Android Sound
38mAndroid Audio: Beyond Winning On It
40mState of Media Playback
39mDemystifying Low Latency Audio on Android
40mAccessible audio: Android hearing aid support and the audio framework
