//录音设置
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc]init];
//设置录音格式 AVFormatIDKey==kAudioFormatLinearPCM
[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM ] forKey:AVFormatIDKey];
//设置录音采样率(Hz) 如:AVSampleRateKey==8000/44100/96000(影响音频的质量)
[recordSetting setValue:[NSNumber numberWithFloat:8000] forKey:AVSampleRateKey];
//录音通道数 1 或 2
[recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
//线性采样位数 8、16、24、32
[recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
//录音的质量
[recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];
NSString *strUrl = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Video.pcm", strUrl]];
path = [url path];
NSError *error;
//初始化
VideoRecorder = [[AVAudioRecorder alloc]initWithURL:url settings:recordSetting error:&error];
//开启音量检测
VideoRecorder.meteringEnabled = YES;
VideoRecorder.delegate = self;
//创建录音文件,准备录音
[VideoRecorder prepareToRecord];
}
#pragma mark 获取音量值
- (void)detectionVoice
{
[VideoRecorder updateMeters];//刷新音量数据
//获取音量的平均值 [recorder averagePowerForChannel:0];
//音量的最大值 [recorder peakPowerForChannel:0];
lowPassResults = pow(10, (0.05 * [VideoRecorder peakPowerForChannel:0]));
// 最大50 0
// 图片 小-》大
if (0<lowPassResults<=0.27) {
[showView.VioceImage setImage:[UIImage imageNamed:@"1.png"]];
}else if (0.27<lowPassResults<=0.34) {
[showView.VioceImage setImage:[UIImage imageNamed:@"2.png"]];
}else if (0.34<lowPassResults<=0.41) {
[showView.VioceImage setImage:[UIImage imageNamed:@"3.png"]];
}else if (0.41<lowPassResults<=0.48) {
[showView.VioceImage setImage:[UIImage imageNamed:@"4.png"]];
}else if (0.48<lowPassResults<=0.55) {
[showView.VioceImage setImage:[UIImage imageNamed:@"5.png"]];
}else if (0.55<lowPassResults) {
[showView.VioceImage setImage:[UIImage imageNamed:@"6.png"]];
}
}