音频队列在录制期间接收的总字节数

时间:2015-04-18 18:14:27

标签: ios audio audio-recording audioqueue audioqueueservices

我使用了Apple的SpeakHere示例代码。 这是我的mRecordFormat:

mRecordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
mRecordFormat.mChannelsPerFrame = 1;
mRecordFormat.mBitsPerChannel = 16;
mRecordFormat.mBytesPerPacket = mRecordFormat.mBytesPerFrame = (mRecordFormat.mBitsPerChannel / 8) * mRecordFormat.mChannelsPerFrame;
mRecordFormat.mFramesPerPacket = 1;
mRecordFormat.mSampleRate = 11025.0;

我正在录制7秒钟,我认为我会收到 总信息为7 * 2 * 11025字节(或7 * 11025短)。 实际上我总共收到了一点:154784而不是154350字节(434字节以上)。这个数字有所不同为什么会改变?

有人可以解释为什么我会得到更多的字节然后我期待吗? 我错了还是错过了什么?

顺便说一句:如果有帮助,我会以.wav格式录制。

1 个答案:

答案 0 :(得分:0)

AudioQueue正在为您提供一定大小的音频块。选择尺寸以适应实施。这解释了为什么在停止队列时看到的结果比预期的要多(或少于)。

如果您想准确记录7秒钟的音频,请在收到7秒钟的样品后停止排队,并丢弃任何残留物。