我一直试图在Mac OS X上使用音频队列录制声音。现在,我的代码可以工作,我可以将录制的声音存储在文件中,但是当我播放声音时,它会失真,嘈杂而且几乎没用。我已经从Apple发布的官方代码(SpeakHere)中调整了我的代码,但它似乎不起作用。我不知道问题出在哪里,但我想也许这就是格式的设置,它就像:
AudioStreamBasicDescription recordFormat;
memset(&recordFormat, 0, sizeof(recordFormat));
recordFormat.mFormatFlags = kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger;
recordFormat.mFormatID = kAudioFormatALaw; // 2
recordFormat.mSampleRate = 16000.0; // 3
recordFormat.mChannelsPerFrame = 1; // 4
recordFormat.mBitsPerChannel = 16; // 5
recordFormat.mBytesPerPacket = recordFormat.mChannelsPerFrame * sizeof (SInt16); // 6
recordFormat.mBytesPerFrame =
recordFormat.mChannelsPerFrame * sizeof (SInt16);
recordFormat.mFramesPerPacket = 1; // 7
recordFormat.mReserved = 0;
有关此主题的任何线索(录制难以理解,失真和嘈杂的原因)的声音值得赞赏。
修改
我使用CoolEdit Pro打开了文件。它看起来像这样:
答案 0 :(得分:0)
CoolEdit快照看起来像是在读取具有44.1 kHz采样率线性PCM格式的文件。您似乎将16 kHz ALaw格式数据存储到该文件中,这可能是数据或文件的格式错误。