High performance audio apps typically require more functionality than the simple ability to play or record sound. They demand responsive realtime system behavior. Some typical use cases include:
- Digital audio workstations
- Synthesizers
- Drum machines
- Music learning apps
- Karaoke apps
- DJ mixing
- Audio effects
- Video/audio conferencing
This section explains the general principles of minimizing audio latency. It also provides advice about audio sampling, to help you choose the optimal sample rate and consider the pros and cons of using floating-point numbers to represent your audio data.
The rest of the section describes the two libraries that are available for writing high-performance audio applications:
- OpenSL ES is an Android-specific implementation of the OpenSL ES™ API specification from the Khronos Group. OpenSL ES is not recommended for new designs. App developers and middleware providers should target either Oboe or AAudio as the native audio interface.
- AAudio was developed as a lightweight, native Android alternative to the OpenSL ES library. The AAudio API is smaller and easier to use than OpenSL ES.
Additional resources
To learn more, take advantage of the following resources:
Sample
Codelabs
- Making Waves Part 1 - Build a Synthesizer
- Making More Waves - Sampler
- Build a Musical Game using Oboe