所有
我无法解决我的问题,我想当应用程序启动它会检测声音,如果录音声音峰值功率大于0.9那么它会记录该声音,如果它的峰值水平低于0.9那么它会停下来。
如何计算录音的峰值电平。
答案 0 :(得分:0)
http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html
Apple有一个名为SpeakHere的演示版。在里面,您将找到一个如何从音频框架中读取“电平表”的示例。
或此代码段
[soundRecorder updateMeters];
//NSLog(@"Average input: %f Peak input: %f", [soundRecorder averagePowerForChannel:0], [soundRecorder peakPowerForChannel:0]);
decibelLabel.text = [[NSString alloc] initWithFormat:@"Decibel %f db", [soundRecorder averagePowerForChannel:0]];
编辑#2
以上链接清楚地了解-160的含义。它是最小值,而0是最大值。
在您的情况下,您正在寻找(平均功率或峰值功率,最高可达)大于0.9的任何值,然后您可以继续以下两个选项:
1)看看(输出+ 160)> (0.9 * 160))//也许你想将0.9调到其他值
或 2)看是否(输出+160)> 144 //硬编码
或 3)看看(输出> -16)//硬编码