博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
录音回放
阅读量:6655 次
发布时间:2019-06-25

本文共 2521 字,大约阅读时间需要 8 分钟。

1 - (IBAction) record:(id)sender  2 {
3 4 NSError *error = nil; 5 BOOL b = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:&error]; 6 [[AVAudioSession sharedInstance] setDelegate:self]; 7 if(b){
8 NSLog(@"set audio session category record victory%d",b); 9 }else {
10 NSLog(@"error=================%@",error); 11 } 12 b = [[AVAudioSession sharedInstance] setActive:YES error:&error]; 13 if(b){
14 NSLog(@"set active yes %d",b); 15 }else {
16 NSLog(@"error=================%@",error); 17 } 18 NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"voice.caf"]; 19 //NSLog(@"filePath=========================%@",filePath); 20 self.recordFileName = filePath; 21 NSURL *url = [NSURL fileURLWithPath:filePath]; 22 23 AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error]; 24 mRecorder = recorder; 25 [recorder setDelegate:self]; 26 [recorder prepareToRecord]; 27 28 recorder.meteringEnabled = YES; 29 30 BOOL audioHWAvailable = [[AVAudioSession sharedInstance] inputIsAvailable]; 31 32 // start recording 33 [recorder recordForDuration:(NSTimeInterval) 3]; 34 }

播放相对简单:

1 - (IBAction) play:(id)sender  2 {
3 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 4 AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 5 [[AVAudioSession sharedInstance] setDelegate:self]; 6 NSError *error = nil; 7 BOOL b = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&error]; 8 // if(b){
9 // NSLog(@"====================%d",b); 10 // }else {
11 // NSLog(@"error=================%@",error); 12 // } 13 14 b = [audioSession setActive:YES error:&error]; 15 // if(b){
16 // NSLog(@"====================%d",b); 17 // }else {
18 // NSLog(@"error=================%@",error); 19 // } 20 21 NSURL *url = [NSURL fileURLWithPath:self.recordFileName]; 22 //NSLog(@"url============================%@",url); 23 AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 24 player.meteringEnabled = YES; 25 player.volume = 1.0; 26 player.delegate = self; 27 [player prepareToPlay]; 28 [player play]; 29 [pool release]; 30 }

转载于:https://www.cnblogs.com/pengyingh/articles/2340999.html

你可能感兴趣的文章
C# DataTable常用方法总结
查看>>
leaflet入门(二)GeoJson
查看>>
HDU Problem 5631 Rikka with Graph【并查集】
查看>>
HDU Problem 5773 The All-purpose Zero 【LIS】
查看>>
【++】 MySQL5.7.10二进制方式的安装(glibc2.5 版本)
查看>>
【读书笔记】【物联网】《物物连起大世界---物联网的应用与前景》
查看>>
MyBaits开发入门一:一对一连表查询
查看>>
博弈总结
查看>>
PS 之图片中抠出大树
查看>>
Flutter-BLoC-第一讲
查看>>
ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作
查看>>
找到多个与名为“Home”的控制器匹配的类型。解决方法
查看>>
JavaScript对象
查看>>
CSS--宽度与高度
查看>>
使用openvswitch实现跨主机docker容器互联
查看>>
swift 移除控制器中的已经存在的VC 注意
查看>>
c++——const
查看>>
古老的加密技术
查看>>
自学两周,轻松利用C语言实现黑客数码雨(内附源码)
查看>>
iOS 13 上手体验
查看>>