【发布时间】:2012-02-03 02:16:29
【问题描述】:
在使用 remoteIO 对 iphone 音频进行采样时,我遇到了一个真正的误解。
从一方面来说,我可以做这个数学运算:44khz 采样率意味着每 1ms 44 个样本。这意味着如果我将 bufferSize 设置为 0.005 :
float bufferLength = 0.00005;
AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareIOBufferDuration, sizeof(bufferLength), &bufferLength);
这意味着 5ms 缓冲区大小 - 这意味着每个回调的缓冲区中有 44*5=220 个样本。
但是我从 inNumberFrames 每个回调中获得 512 个样本。即使我更改缓冲区长度,它也保持不变。
另一件事,我的回调是每 11 毫秒,并且没有改变!我需要更快的回调。
所以! 这里发生了什么 ? 谁设置了什么?
我需要在 FSK 调制中传递数字信息,并且必须准确地知道样本中的缓冲区大小,以及它所具有的信号的时间,以便知道如何正确地对其进行 FFT。
对此有何解释? 非常感谢。
【问题讨论】:
-
float bufferLength = 0.00005;将是 50 µs,而不是 5 ms - 这太小了。 -
那是我的错误,我已经改了。它应该是 0.005
-
问题中仍然显示 0.00005 - 如果这不正确,那么您需要点击
edit按钮并修复它
标签: objective-c xcode core-audio audio-recording