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

Posted

技术标签:

【中文标题】在录制 mac os x sdk 期间检测静音【英文标题】:Detect silence during recording mac os x sdk 【发布时间】:2014-09-05 12:11:16 【问题描述】:

在录制过程中我一直在努力检测静音。

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

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

任何帮助对我来说都是一个福音。

谢谢

【问题讨论】:

【参考方案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];

【讨论】:

以上是关于在录制 mac os x sdk 期间检测静音的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中检测和录制音频

以编程方式录制声音发送到内置输出,Mac OS X

使用 Cocoa 将 OS X 中的音频录制到 FLAC

录音时静音音频 AVAssetWriterInput

Swift 4 - 在 mac os 上使用 AVAssetWriter 进行 avfoundation 屏幕和音频录制 - 视频冻结

Objective-C:在 iOS 上使用 AVFoundation 录制视频时静音/取消静音