3

希望这个问题有意义,我完全迷失了......在我的原型应用程序中,我正在记录微输入并保存它,到目前为止完全没有问题。

我现在需要在记录缓冲区时访问缓冲区,以便将数据块传递给另一个类(用 C 编写,而不是由我编写),该类将进行一些分析。

我花了一整天的时间浏览和阅读,看起来我需要使用音频队列才能访问缓冲区。问题是语法是C,我一点都不懂:)

所以我的问题是:

1)还有其他方法可以实现我想要的吗?我不需要深入的解释,只需要一些提示,我会浏览我的方式:) 我问是因为我不是 100% 确定音频队列是唯一的方法

2)关于音频队列的任何好的教程或例子?Apple的aurioTouch 教程不是很有用(同样,我不懂 C)。通过遵循像我这样的菜鸟可以理解的好教程,我可以绕过我在 C 中的问题

非常感谢,您可以提供任何帮助。

4

1 回答 1

3

好问题。您可以使用其他人编写的代码,例如:

Novocaine - 非常简单。(但有一些错误,至少在我 6 个月前使用的旧版本中。单声道和立体声的东西。)

Momu - C++ 中的一件好事(你需要为你的文件使用 .mm 扩展名)

如果您想要一些低级音频编程,这些将节省您的时间。不过,仍然需要一些 C 语言的基本技能。看看这个人。他的解释和热情非常好。

有了上述所有内容,您可以在 1-2 天的工作中准备好掌握 C 语言的良好技能。

编辑

基本上,在处理低级音频的任何地方,您都会处理一个float *audioBuffer;称为音频样本的 C 数字数组(表示为 )。你在一个循环中循环,做一些操作,复制它,发送到某个地方,分析。

要复制它,您必须为其分配空间。缓冲区的实际字节大小可以这样计算:numberOfSamples*sizeof(type)。

于 2013-09-21T17:23:55.893 回答