我正在尝试使用声能确定麦克风的每分钟节拍数 (BPM),我想我已经弄清楚了确定 BPM 的部分,但在获取 RAW 数据时遇到了一些麻烦。
该示例基于 Apples SpeakHere 应用程序 - 基于我正在使用的 AudioQueue 回调函数:
SInt16 *buffer = (SInt16*)inBuffer->mAudioData;
for (int i = 0; i < (inBuffer->mAudioDataByteSize)/sizeof(SInt16); i++)
{
printf("before modification %d\n", (int)*buffer);
buffer++;
}
但是我得到了一些有趣的值——任何有机会有人可以指出我出错的正确方向,并让我知道我应该返回的范围。
音频格式设置:
mRecordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
mRecordFormat.mBitsPerChannel = 16;
mRecordFormat.mBytesPerPacket = mRecordFormat.mBytesPerFrame = (mRecordFormat.mBitsPerChannel / 8) * mRecordFormat.mChannelsPerFrame;
mRecordFormat.mFramesPerPacket = 1;
干杯,