从AVAudioRecorder获取持续录制数据段

时间:2012-03-02 10:34:35

标签: cocoa-touch audio nsdata avaudiorecorder

我的问题如下:

我需要捕获每个 320字节的原始音频数据 我通过使用每0.02秒触发一次方法的NSTimer来做到这一点 - 这是因为我需要记录8000Hz和16bit单声道音频,并且我已经计算出它应该是每秒50x(8000 * 16/320/8)。

因此,知道AVAudioRecorder保存到文件,我可以通过[[NSData dataWithContentsOfURL:[audioRecorder url]] subdataWithRange:NSMakeRange(bytesUsed, 320)]从该文件中获取每个 320字节,但是让我困惑的是,在我开始录制的那一刻,数据文件大小 4096字节然后在0.5秒之后,它是 9424字节并且每半秒增加大约5,3k字节

所以我很困惑,如果我得到正确的数据,并认为设置可能是错误的。 AVAudioRecorder的当前设置为:

[NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,  
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,  
[NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey,  
[NSNumber numberWithInt:16], AVEncoderBitRateKey,  
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,  
[NSNumber numberWithFloat:8000.0], AVSampleRateKey,

所以主要问题是:
我应该使用哪些设置?
这是从正在进行的录音中获取片段的正确方法吗?

我为糟糕的解释道歉,请提出问题以帮助我让它变得更容易理解。

0 个答案:

没有答案