首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谁能提供Android Native的AAudio (Android )写函数的例子?

谁能提供Android Native的AAudio (Android )写函数的例子?
EN

Stack Overflow用户
提问于 2017-10-06 23:41:37
回答 1查看 840关注 0票数 1

由于Android O和AAudio相对较新,除了Android NDK API (实际上不如Android SDK API)和AAudio的good示例示例之外,没有太多的文档或示例。我一直在看谷歌的例子,但是我想使用这个AAudioStream_write()函数,但是他们没有给出任何例子。

有没有人使用过这个写函数,并可以给出一个例子,如何使用它与正弦波或文件(例如。.wav)?目前我刚刚创建了一个流,但我需要数据来输出声音。我已经用AudioTrack在Java层实现了这一点,但它与本机并不完全相同。

EN

Stack Overflow用户

发布于 2018-05-18 03:31:36

AAudio中的write()是一个阻塞I/O函数。这意味着您可以只写入数据,当数据被使用时,它将返回。

如果您在没有指定回调函数的情况下创建AAudio流,那么AAudio将期望您读取()或写入()流。

您可能应该创建一个专门用于生成音频数据和写入流的线程。基本流程是:

代码语言:javascript
运行
复制
timeout = 1000000000; // one second, for example
open_stream
while(result >= 0 && whatever) {
    generate_audio_data()
    result = AAudioStream_write(stream, data, numFrames, timeout)
}
close_stream

generate_audio_data()函数可以是合成器,也可以从文件中读取,等等。

建议对合成器使用回调,因为回调线程具有高优先级,并且合成器往往具有可预测的性能。如果您是从网络或文件进行流式传输,那么阻塞read/write()可能更好。请确保您的缓冲区足够大,以覆盖网络延迟。否则,您将从下溢中获得音频毛刺。

更多信息在这里:https://developer.android.com/ndk/guides/audio/aaudio/aaudio#reading-writing-streams

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46609365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档