我有这些代码,并且两个方法调用均成功。
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory: AVAudioSessionCategoryPlayAndRecord error: NULL];
[audioSession setActive: YES error: NULL];
然后这些代码开始记录:
[self.recorder prepareToRecord];
[self.recorder recordForDuration: 60];
我有一个计时器功能来更新仪表
- (void)updateMeters
{
[self.recorder updateMeters];
float peakPower = [self.recorder averagePowerForChannel: 0];
double ALPHA = 0.05;
double peakPowerForChannel = pow(10, (ALPHA * peakPower));
self.recordView.progress = peakPowerForChannel;
NSLog(@"%f", peakPower);
}
但是我不知道为什么peakPower总是160。我有另一个演示(来自Web)可以很好地工作,但是我发现它们之间没有任何区别。
最佳答案
只需尝试设置:
recorder.meteringEnabled = YES;
关于ios - 为什么averagePowerForChannel总是返回-160?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24991908/