注意:开发者应考虑使用在 GitHub 上提供的开源 Oboe 库。Oboe 是一个 C++ 包装器,它提供与 AAudio 非常相似的 API。如果 AAudio 可用,Oboe 会调用 AAudio,如果 AAudio 不可用,则会回退到 OpenSL ES。
NDK 软件包包含来自 Khronos Group 的 OpenSL ES™ 1.0.1 API 规范的 Android 特定实现。这个库允许您使用 C 或 C++ 来实现高性能、低延迟音频,无论您是编写合成器、数字音频工作站、卡拉 OK、游戏还是其他实时应用程序。
OpenSL ES™ 标准公开的音频功能类似于 Android Java 框架中 MediaPlayer
和 MediaRecorder
API 中的功能。OpenSL ES 提供 C 语言接口以及 C++ 绑定,允许您从用这两种语言编写的代码中调用 API。
OpenSL ES API 可帮助您开发和改进应用程序的音频性能。
标准 OpenSL ES 头文件 <SLES/OpenSLES.h> 和 <SLES/OpenSLES_Platform.h> 允许音频输入和输出。其他 Android 特定功能位于 <SLES/OpenSLES_Android.h> 和 <SLES/OpenSLES_AndroidConfiguration.h> 中。
本节首先解释 如何将 OpenSL ES 集成到您的应用程序中。接下来,它解释了您需要了解的有关 OpenSL ES 的 Android 实现的信息,首先重点介绍了该实现与参考规范之间的 差异,然后介绍了 其他扩展 用于 Android 兼容性。本节最后提供了一些补充性的 编程注意事项 以确保 OpenSL ES 的正确实现。