1、AAudio的概念介绍:
AAudio 是作为 OpenSL ES 库的轻量级原生 Android 替代项而开发。与 OpenSL ES 相比,AAudio API 不仅较小,而且容易使用。
AAudio 是在 Android O 版本中引入的全新 Android C API。
因此 API 是专为需要低延迟的高性能音频应用而设计。应用通过读取并将数据写入流来与 AAudio 进行通信。
GitHub :AAudio Android demo地址http:// android-audio-high-performance/aaudio at master · googlearchive/android-audio-high-performance · GitHub
使用Android系统底层的OpenSL ES或者AAudio都可以实现一个高性能的音频程序,尤其是AAudio更是简单易用,性能上,功能上都更佳,但是AAudio 是在 Android O 版本中才引入的全新 Android C API,在以前的系统版本中只能使用OpenSL ES。
那么我们需要做的是在新版本系统中使用AAudio
在不支持AAudio的系统版本中使用OpenSL ES,两套 API 同时使用。
不要怕困难,因为这是一个即面向未来,又兼顾现在的优秀方案。不要害怕这有多么困难,Google已经帮我们实现了——Oboe。
2、OpenSL ES 谷歌使用文档介绍如下:
注意:开发者应考虑使用开源 Oboe 库,这个库可在 GitHub 上获得。Oboe 是一个 C++ 封装容器,提供与 AAudio 非常相似的 API。Oboe 在 AAudio 可用时对其进行调用,并在 AAudio 不可用时回退到 OpenSL ES。
OpenSL ES™ API 规范的 Android 专用实现。利用这个库,不论您是编写合成器、数字音频工作站、卡拉 OK 应用、游戏还是其他实时应用,都可以使用 C 或 C++ 实现高性能、低延迟的音频。
OpenSL ES 与 Android Java 框架中的 MediaPlayer 和 MediaRecorder API 提供类似的音频功能。
OpenSL ES 提供 C 语言接口和 C++ 绑定,让您可以从使用任意一种语言编写的代码中调用 API。
OpenSL ES API 可以帮助您开发和提升应用的音频性能。
3、如何使用oboe?
官方指导文档在这里,可以通过两种方式使用oboe,这里是把源码拉下来编译到项目。
\1. 下载oboe库->