我正在尝试构建一个计算拍手的IOS应用程序.我一直在观看CoreAudio上的WWDC视频,主题看起来很大,我不太确定在哪里看.
我在stackoverflow中发现了类似的问题.这是C#中用于检测门猛击的一个:给定一个音频流,找到一个门猛击 (声压级计算?)
看来我需要这样做:
我不知道如何在Objective-C中实现这一目标.我已经能够弄清楚如何使用SCListener对音频进行采样 这是我的尝试:
- (void)levelTimerCallback:(NSTimer *)timer {
[recorder updateMeters];
const double ALPHA = 0.05;
double peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0]));
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;
if ([recorder peakPowerForChannel:0] == 0)
totalClapsLabel.text = [NSString stringWithFormat:@"%d", total++];
SCListener *listener = [SCListener sharedListener];
if (![listener isListening])
return;
AudioQueueLevelMeterState *levels = [listener levels];
Float32 peak = levels[0].mPeakPower;
Float32 average = levels[0].mAveragePower;
lowPassResultsLabel.text = [NSString …
Run Code Online (Sandbox Code Playgroud)