我使用AudioQueue进行记录,为什么几乎同时调用回调

时间:2015-07-20 08:42:00

标签: ios audioqueue

我正在尝试使用AudioQueue获取原始PCM音频数据,但是当程序运行时,它将首先调用四个回调,间隔为0.001s(似乎同时发生),然后0.5秒它将反复调用接下来的四个回调。有没有人遇到过这种情况?

注意:我参考了一个例子(SpeakHere);

我将缓冲区大小设置为2048字节; 这是我的计划的一部分:

_recordFormat.mSampleRate = 8000;
_recordFormat.mChannelsPerFrame = 1;
_recordFormat.mFormatID = kAudioFormatLinearPCM;
if (inFormatID == kAudioFormatLinearPCM){
    _recordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
    _recordFormat.mBitsPerChannel = 16;

    _recordFormat.mBytesPerPacket = _recordFormat.mBytesPerFrame = (_recordFormat.mBitsPerChannel / 8) * _recordFormat.mChannelsPerFrame;
    _recordFormat.mFramesPerPacket = 1;
}

当我运行APP时,打印显示如下:(记下时间)

2015-07-20 16:45:53.235 HelloWorld [4115:239431] bufferByteSize是:2048

2015-07-20 16:45:53.291 HelloWorld [4115:239431]我们一定会开始录制

2015-07-20 16:45:53.802 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:53.803 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:53.803 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:53.803 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:54.313 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:54.313 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:54.314 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:54.314 HelloWorld [4115:239511]我们正在回调

2015-07-20 16:45:54.824 HelloWorld [4115:239511]我们正在回调

0 个答案:

没有答案