OpenSL ES

注意:开发者应考虑使用开源 Oboe 库,这个库可在 GitHub 上获得。Oboe 是一个 C++ 封装容器,提供与 AAudio 非常相似的 API。Oboe 在 AAudio 可用时对其进行调用,并在 AAudio 不可用时回退到 OpenSL ES。

NDK 软件包中包含 Khronos Group 开发的 OpenSL ES™ 1.0.1 API 规范的一个Android 专有实现。利用这个库,不论您是编写合成器、数字音频工作站、卡拉 OK、游戏还是其他实时应用,都可以使用 C 或 C++ 实现高性能、短延迟时间音频。

OpenSL ES™ 标准与 Android Java 框架中的 MediaPlayerMediaRecorder API 提供类似的音频功能。OpenSL ES 提供 C 语言接口和 C++ 绑定,让您可以从使用任意一种语言编写的代码中调用 API。

OpenSL ES API 可以帮助您开发和提升应用的音频性能。

标准 OpenSL ES 头文件 <SLES/OpenSLES.h> 和 <SLES/OpenSLES_Platform.h> 允许音频输入和输出。<SLES/OpenSLES_Android.h> 和 <SLES/OpenSLES_AndroidConfiguration.h> 中提供了其他 Android 专用功能。

本部分首先说明如何将 OpenSL ES 整合到您的应用中。然后,介绍您需要了解的 OpenSL ES 的 Android 实现相关信息,其中首先会重点介绍此实现与参考规范之间的差异,然后介绍用于确保 Android 兼容性的其他扩展。最后,本部分提供一些补充性的编程说明,用于确保正确实现 OpenSL ES。