在录制mac os x sdk期间检测静音

时间:2014-09-05 12:11:17

标签: objective-c macos core-audio audio-recording

我一直在努力在录音期间发现沉默。

我成功录制和播放录制的音频,但却不知道静音检测。

录音时,我使用过:https://github.com/darcyliu/CocoaSampleCode/tree/master/AVCaptureToAudioUnitOSX 适用于核心音频api。

任何帮助都对我有利。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用AVAudioRecorder,但这不是解决问题的完美方式。

NSDictionary *settings =@{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];