Skip to content

Most visited

Recently visited


High-Performance Audio

The NDK package includes an Android-specific implementation of the OpenSL ES™ API specification from the Khronos Group. This library allows you to use C or C++ to implement high-performance, low-latency audio, whether you are writing a synthesizer, digital audio workstation, karaoke, game, or other real-time app.

The OpenSL ES™ standard exposes audio features similar to those in the MediaPlayer and MediaRecorder APIs in the Android Java framework. OpenSL ES provides a C language interface as well as C++ bindings, allowing you to call the API from code written in either language.

Building Great Audio Apps

The OpenSL ES APIs are available to help you develop and improve your app's audio performance. Some typical use cases include the following:

This section begins by explaining how to incorporate OpenSL ES into your app. It then explains what you need to know about the Android implementation of OpenSL ES, focusing first on the differences between this implementation and the reference specification and then additional extensions for Android compatibility. Next, you'll learn how to minimze 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. This section concludes with some supplemental programming notes to ensure proper implementation of OpenSL ES.

This site uses cookies to store your preferences for site-specific language and display options.


This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.