2014-09-05 37 views

回答

1

您可以使用AVAudioRecorder但是這並不是解決您的問題一個完美的方式。

NSDictionary *settings [email protected]{AVSampleRateKey:@(22050.0), 
          AVFormatIDKey:@(kAudioFormatLinearPCM), 
          AVNumberOfChannelsKey:@(1), 
          AVEncoderAudioQualityKey:@(AVAudioQualityMax), 
          AVLinearPCMBitDepthKey:@(32), 
          AVLinearPCMIsBigEndianKey:@(NO), 
          AVLinearPCMIsFloatKey:@(NO)}; 
AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:[NSURL fileURLWithPath:@"/dev/null"] settings:setting error:nil]; 
[recorder prepareToRecord]; 
[recorder setMeteringEnabled:YES]; 
[recorder record]; 
NSTimer *levelTimer = [NSTimer scheduledTimerWithTimeInterval:0.3f target:self selector:@selector(levelTimerCallback:) userInfo:nil repeats:YES]; 

然後在levelTimerCallback:方法

[recorder updateMeters]; 
CGFloat peak = [recorder peakPowerForChannel:0] 
CGFloat average = [recorder averagePowerForChannel:0];