IOS-录音功能

http://blog.csdn.net/like7xiaoben/article/details/9093037

(新版录音机技术支持——by lyywhg)


初始化AVAudioRecorder并设置录音的参数和存储地址:

[cpp]  view plain copy
  1. //录音设置  
  2.     NSMutableDictionary *recordSetting = [[[NSMutableDictionary alloc]init] autorelease];  
  3.     //设置录音格式  AVFormatIDKey==kAudioFormatLinearPCM  
  4.     [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];  
  5.     //设置录音采样率(Hz) 如:AVSampleRateKey==8000/44100/96000(影响音频的质量)  
  6.     [recordSetting setValue:[NSNumber numberWithFloat:44100] forKey:AVSampleRateKey];  
  7.     //录音通道数  1 或 2  
  8.     [recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];  
  9.     //线性采样位数  8、16、24、32  
  10.     [recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];  
  11.     //录音的质量  
  12.     [recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];  
  13.       
  14.     NSString *strUrl = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];  
  15.     NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/lll.aac", strUrl]];  
  16.     urlPlay = url;  
  17.       
  18.     NSError *error;  
  19.     //初始化  
  20.     recorder = [[AVAudioRecorder alloc]initWithURL:url settings:recordSetting error:&error];  
  21.     //开启音量检测  
  22.     recorder.meteringEnabled = YES;  
  23.     recorder.delegate = self;  


识别音量的大小,从而显示不同的图片,来呈现出音量图波动

[cpp]  view plain copy
  1. [recorder updateMeters];//刷新音量数据  
  2.     //获取音量的平均值  [recorder averagePowerForChannel:0];  
  3.     //音量的最大值  [recorder peakPowerForChannel:0];  
  4.       
  5.     double lowPassResults = pow(10, (0.05 * [recorder peakPowerForChannel:0]));  
  6.     NSLog(@"%lf",lowPassResults);  
  7.     //最大50  0  
  8.     //图片 小-》大  
  9.     if (0<lowPassResults<=0.06) {  
  10.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_01.png"]];  
  11.     }else if (0.06<lowPassResults<=0.13) {  
  12.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_02.png"]];  
  13.     }else if (0.13<lowPassResults<=0.20) {  
  14.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_03.png"]];  
  15.     }else if (0.20<lowPassResults<=0.27) {  
  16.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_04.png"]];  
  17.     }else if (0.27<lowPassResults<=0.34) {  
  18.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_05.png"]];  
  19.     }else if (0.34<lowPassResults<=0.41) {  
  20.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_06.png"]];  
  21.     }else if (0.41<lowPassResults<=0.48) {  
  22.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_07.png"]];  
  23.     }else if (0.48<lowPassResults<=0.55) {  
  24.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_08.png"]];  
  25.     }else if (0.55<lowPassResults<=0.62) {  
  26.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_09.png"]];  
  27.     }else if (0.62<lowPassResults<=0.69) {  
  28.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_10.png"]];  
  29.     }else if (0.69<lowPassResults<=0.76) {  
  30.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_11.png"]];  
  31.     }else if (0.76<lowPassResults<=0.83) {  
  32.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_12.png"]];  
  33.     }else if (0.83<lowPassResults<=0.9) {  
  34.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_13.png"]];  
  35.     }else {  
  36.         [self.imageView setImage:[UIImage imageNamed:@"record_animate_14.png"]];  
  37.     }  


demo 的下载地址: 点击去下载。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值