iOS 录音pcm获取当前音量

本文详细介绍了录音设置参数的配置方法,并阐述了如何通过音量检测来评估录音质量,包括采样率、通道数、采样位数、录音格式及质量选择,以及如何获取并利用音量数据进行反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 //录音设置

    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];

    

    

    //线性采样位数  8162432

    [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"]];

    }

    

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值