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



我使用了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格式录制。

AudioQueue为您提供

一定大小的音频块。选择大小以适合实现。这就解释了为什么您在停止队列时看到的比预期更多(或更少)。

如果要录制恰好 7 秒的

音频,请在收到正好 7 秒的样本后停止队列并丢弃任何剩余的样本。

相关内容

  • 没有找到相关文章