我使用了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格式录制。
答案 0 :(得分:0)
AudioQueue
正在为您提供一定大小的音频块。选择尺寸以适应实施。这解释了为什么在停止队列时看到的结果比预期的要多(或少于)。
如果您想准确记录7秒钟的音频,请在收到7秒钟的样品后停止排队,并丢弃任何残留物。