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