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

栏目: Android · 发布时间: 7年前

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

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

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

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

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(&stream);

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

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

感谢冬雨对本文的审校。


以上所述就是小编给大家介绍的《Oboe,安卓上的低延迟音频应用开发库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

蚂蚁金服

蚂蚁金服

由曦 / 中信出版集团股份有限公司 / 2017-4-7 / CNY 59.00

在中国,支付宝(其母公司为蚂蚁金服)是一个家喻户晓的品牌。我们在用手机扫码支付,或者用余额宝理财的时候,一定会和支付宝发生关系。但是很多人不知道,支付宝的母公司叫作“蚂蚁金服”。蚂蚁金服不仅有支付宝,还有余额宝、网商银行、芝麻信用等一系列产品和服务。成立于2004年、起始于支付宝的蚂蚁金服集团,如今已经是全球估值最高的科技金融企业。然而,在成立之初,它只是淘宝网的结算部门,员工只有区区几人,记账用......一起来看看 《蚂蚁金服》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具