警告:OpenSL ES 已 **弃用**。开发者应使用开源 Oboe 库,该库可在 GitHub 上获取。Oboe 是一个 C++ 包装器,提供了一个与 AAudio 非常相似的 API。当 AAudio 可用时,Oboe 会调用 AAudio,如果 AAudio 不可用,则回退到 OpenSL ES。
NDK 软件包包含 OpenSL ES™ 1.0.1 API 规范(来自 Khronos Group)的 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 的正确实现。