iOS 录音pcm获取当前音量

来源:互联网 发布:淘宝网云客服干什么 编辑:程序博客网 时间:2024/05/21 13:34

 //录音设置

    NSMutableDictionary *recordSetting = [[NSMutableDictionaryalloc]init];

    

    

    //设置录音格式  AVFormatIDKey==kAudioFormatLinearPCM

    

    [recordSetting setValue:[NSNumbernumberWithInt:kAudioFormatLinearPCM ]forKey:AVFormatIDKey];

    

    

    //设置录音采样率(Hz)如:AVSampleRateKey==8000/44100/96000(影响音频的质量)

    [recordSetting setValue:[NSNumbernumberWithFloat:8000]forKey:AVSampleRateKey];

    

    //录音通道数  1 2

    [recordSetting setValue:[NSNumbernumberWithInt:1]forKey:AVNumberOfChannelsKey];

    

    

    //线性采样位数  8162432

    [recordSetting setValue:[NSNumbernumberWithInt:16]forKey:AVLinearPCMBitDepthKey];

    

    

    //录音的质量

    [recordSetting setValue:[NSNumbernumberWithInt:AVAudioQualityHigh]forKey:AVEncoderAudioQualityKey];

    

    

    

    NSString *strUrl = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject];

    

    

    NSURL *url = [NSURLfileURLWithPath:[NSStringstringWithFormat:@"%@/Video.pcm", strUrl]];

    

    

   path = [url path];

    

   NSError *error;

    

    

    

    //初始化

   VideoRecorder = [[AVAudioRecorderalloc]initWithURL:urlsettings:recordSetting error:&error];

    

    //开启音量检测

    VideoRecorder.meteringEnabled =YES;

    

    VideoRecorder.delegate =self;

    

    

    //创建录音文件,准备录音

    [VideoRecorderprepareToRecord];

    

}

#pragma mark 获取音量值

- (void)detectionVoice

{

    [VideoRecorderupdateMeters];//刷新音量数据

    //获取音量的平均值  [recorder averagePowerForChannel:0];

    //音量的最大值  [recorder peakPowerForChannel:0];

    

    lowPassResults =pow(10, (0.05 * [VideoRecorderpeakPowerForChannel:0]));

    

    

    //    最大50  0

    //    图片 -》大

    if (0<lowPassResults<=0.27) {

        [showView.VioceImagesetImage:[UIImageimageNamed:@"1.png"]];

    }elseif (0.27<lowPassResults<=0.34) {

        [showView.VioceImagesetImage:[UIImageimageNamed:@"2.png"]];

    }elseif (0.34<lowPassResults<=0.41) {

        [showView.VioceImagesetImage:[UIImageimageNamed:@"3.png"]];

    }elseif (0.41<lowPassResults<=0.48) {

        [showView.VioceImagesetImage:[UIImageimageNamed:@"4.png"]];

    }elseif (0.48<lowPassResults<=0.55) {

        [showView.VioceImagesetImage:[UIImageimageNamed:@"5.png"]];

    }elseif (0.55<lowPassResults) {

        [showView.VioceImagesetImage:[UIImageimageNamed:@"6.png"]];

    }

    

}


0 0
原创粉丝点击