希望这个问题有道理,我完全迷失了...... 在我的proto-app中,我正在记录微输入并保存它,到目前为止还没有任何问题。
我现在需要在录制时访问缓冲区,以便将数据块传递给另一个类(用C编写,而不是我用)进行一些分析。
我花了一整天浏览和阅读,看起来我需要使用音频队列才能访问缓冲区。 问题是语法是C,我根本不理解它:)
所以我的问题是:
1)有没有其他方法可以实现我正在寻找的东西?我不需要深入解释,只是一些提示,我将浏览我的方式:)我问,因为我不是100%确定音频队列是唯一的方法去
2)关于音频队列的任何好的教程或示例? aurioTouch tutorial by Apple不是很有用(再次,我不知道C)。我可以通过一个像我这样的菜鸟可以理解的好教程来绕过我在C中遇到的问题
非常感谢,并提供任何帮助。
答案 0 :(得分:3)
好问题。 您可以使用其他人编写的代码,如:
Novocaine - 非常简单明了。 (但是有一些错误,至少在我6个月前使用的旧版本中。有单声道和立体声的东西。)
Momu - 在C ++中相当不错(你需要为你的文件使用.mm扩展名)
如果您想要一些低级音频编程,那些将节省您的时间。但是仍然需要C语言的一些基本技能。查看this guy。他的解释和热情非常好。
如上所述,你可以在1-2天的工作中做好准备,带走C语言的优秀技能。
编辑
基本上,在处理低级音频的任何地方,你都会处理一个名为音频样本的C数组(表示为float *audioBuffer;
)。你循环遍历它,做一些操作,复制它,发送到某个地方,分析。
要复制它,你必须为它分配空间。缓冲区的实际字节大小可以这样计算:numberOfSamples * sizeof(type)。