Oboe,安卓上的低延迟音频应用开发库

谷歌已经发布了第一个生产就绪的Oboe版本。Oboe是一个C++库,它用来构建在99%的安卓设备上都有着最低可能延迟的高性能音频应用。

\\

需要构建音乐类游戏,音频应用等的开发者通常不得不处理延迟问题。Oboe的目标是通过提供一个简单的与安卓API 16+(Jelly Bean)版本兼容的API来解决这些延迟问题。在底层,Oboe利用了API 27+(Oreo MR1)里AAudio的性能和特性,在API 16+上使用了OpenSL ES

\\



\\

AAudio是一个安卓上的C语言API,它被设计用来开发要求低延迟的高性能音频应用。在安卓版本O中引入了它。应用通过读写流与AAudio交互。

\\

安卓上的OpenSL ES是Khronos Group的OpenSL ES API规范的一种特定实现。类似AAudio,这个库也被设计用来开发要求低延迟的高性能音频应用。另外,OpenSL ES还暴露了一些与MediaPlayerMediaRecorder API中音频特性类似的特性。

\\

使用Oboe需要安卓NDK版本r17或以上。它可以通过Android Studio SDK管理器安装,或者直接安装

\\

安装安卓NDK版本r17或以上以后,克隆GitHub仓库,添加如下命令到CMakeLists.txt文件的末尾(如果你没有这个文件,那么应该为项目添加C++支持)。

\\
\cmake_minimum_required(VERSION 3.4.1)\\# 构建我们的本地库\add_library (native-lib SHARED src/main/cpp/native-lib.cpp )\\# 指定我们的本地库依赖的库,包含Oboe\target_link_libraries (native-lib log oboe)\\# 构建Oboe库\set (OBOE_DIR ../../../oboe)  \add_subdirectory (${OBOE_DIR} ./oboe) \\# 让Oboe公有头文件对我们的应用可见\include_directories (${OBOE_DIR}/include)\
\\

开发者可以用Oboe的以下几行代码创建一个音频流:

\\
\AudioStreamBuilder builder;\AudioStream *stream = nullptr;\Result result = builder.openStream(\u0026amp;stream);\
\\

可以在文档API指南代码样例上找到更多细节。此外,你可以在codelab上使用Oboe开发一个简单的音乐游戏;这个游戏的目标是通过点击屏幕复制听到的拍手模式。

\\

查看英文原文https://www.infoq.com/news/2018/10/android-oboe  

\\

感谢冬雨对本文的审校。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值