首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在音频回调中录制音频

在音频回调中录制音频
EN

Stack Overflow用户
提问于 2013-04-29 18:58:04
回答 1查看 476关注 0票数 0

我有一个音频回调,我用它来访问bufferList并分析音频。

我也需要录制这段音频。首先,在同一个回调中进行录音是否明智?

例如memcpy(void *dest, ioData->mBuffers[0].mData, int byteCount);

或者录音应该有它自己的回调?

不管怎样,这个memcpy是正确的方式吗?我该如何将这个音频写到文件中?

一旦音频输入完成并将数据传递给文件写入器,totalByteCount是否应与空* dest上的指针算法一起使用?

在core-audio渲染回调中录制音频的最佳方式是什么?

EN

回答 1

Stack Overflow用户

发布于 2013-04-29 20:02:04

我认为你可以有两个不同的回调,分别用于输入和输出音频流。通常,当您打开一个特定的流时,它可以是输入或输出,您也可以指定回调。在回调中,你可以做所有的音频处理,只要你能满足回调截止日期,否则可能会丢失音频样本。更好的方法是使用某种循环缓冲区,在回调中,您只需填充缓冲区即可。您可以在主线程中执行所有其他处理(以及录制)。我不确定您使用的是哪个音频框架。我在我的项目中使用了portaudio,它工作得很好。Portaudio还提供了一个无锁的循环缓冲区,可以在回调中使用,而不需要线程锁定机制。下面的链接可能会对你有所帮助。

http://portaudio.com/docs/v19-doxydocs/paex__record_8c.html.

http://portaudio.com/docs/v19-doxydocs/paex__shore_8c.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16276933

复制
相关文章

相似问题

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