1.录音的介绍:
关于录音,这里提供更为详细的讲解网址:http://www.cnblogs.com/kenshincui/p/4186022.html#audioRecord ,并且该博客有更完整的详述和代码实现哦。
还有一个人的博客必须要看就是雷霄骅,博客的地址为:http://blog.csdn.net/leixiaohua1020/article/details/18893769
内容大纲:
1.录音的应用场景
2.录音功能实现
3.概念补充
4.开发经验
2.录音应用场景:
1.语音聊天: 在即时通信App中,例如即时通信的app中,例如微信,QQ等,都有发送语音的功能
2语音备忘录:录一段音频,来记录某件事情
3.录音功能实现:
1.导入AVFoundation框架
一些多媒体的处理,基本使用这个框架.
2.使用AVAudioRecorder进行录音
<1>创建录音文件存放的路径
<2>设置录音附件设文件(#import <AVFoundation/AVAudioSettings.h>)
3.代码实功能:
![效果图.png](https://img.haomeiwen.com/i2182103/605d0ce0bc527d15.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
代码实现如下:
1 #import "ViewController.h"
2 #import <AVFoundation/AVFoundation.h>
3
4 @interface ViewController ()
5
6 /** 录音对象*/
7 @property(nonatomic ,strong) AVAudioRecorder *recorder;
8
9 @end
10
11 @implementation ViewController
12
13 -(void)viewDidLoad{
14 [self createRecord];
15 }
16
17 - (void)createRecord{
18 // 0.1 创建录音文件存放路径
19 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"test.caf"];
20 NSLog(@"%@", path);
21 NSURL *url = [NSURL URLWithString:path];
22
23 // 0.2 创建录音设置
24 NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] init];
25 // 设置编码格式
26 [recordSettings setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey: AVFormatIDKey];
27 // 采样率
28 [recordSettings setValue :[NSNumber numberWithFloat:11025.0] forKey: AVSampleRateKey];
29 // 通道数
30 [recordSettings setValue :[NSNumber numberWithInt:2] forKey: AVNumberOfChannelsKey];
31 //音频质量,采样质量
32 [recordSettings setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey];
33
34
35 // 1. 创建录音对象
36 self.recorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:nil];
37
38
39 // 2. 准备录音(系统会分配一些录音资源)
40 [self.recorder prepareToRecord];
41 }
42
43 - (IBAction)beginRecord
44 {
45 NSLog(@"开始录音");
46 [self.recorder record]; // 直接录音, 需要手动停止
47 // [self.recorder recordForDuration:3]; // 从当前执行这行代码开始录音, 录音5秒
48 // [recorder recordAtTime:recorder.deviceCurrentTime + 2]; // 2s, 需要手动停止
49 // [self.recorder recordAtTime:self.recorder.deviceCurrentTime + 2 forDuration:3]; // 2s 3s
50 }
51
52 - (IBAction)pauseRecord:(id)sender {
53 NSLog(@"暂停录音");
54 [self.recorder pause];
55 }
56
57 - (IBAction)stopRecord {
58 NSLog(@"停止录音");
59 [self.recorder stop];
60 }
61
62 @end
#4.概念的补充:
1.编码:
概念:编码是信息从一种形式转换成另外一种形式的过程
编码格式:
<1>.PCM :脉冲编码调制,是一种非压缩音频数字化技术,是一个未压缩的原音重现,数字模式下,音频的初始信号是PCM.
<2>.MP3
<3>.AAC:AAC其实是“高级音频编码(advanced audio coding)” 的缩写,它是被设计用来取代mp3格式的
<4>.HE-AAC:HE-AAC是AAC的一个超集,这个"HE"代表的就是"High efficiency".HE-AAC是专门为低比特率所优化的一个音频编码格式
<5>.AMR:AMR"Adaptive Multi-Rate",它也是一个专门为"说话(speech)"所优化的编码格式,也是适用低比特率的环境下采用
<6>.ALAC: 全称是“Apple Lossless”,这是一种没有任何质量损坏的音频编码,也是我们说的无损压缩
< 7>.IMA4:这是一个在16-bit音频文件下按照4:1压缩比来进行压缩的格式
2.文件格式:(不同的文件格式,可保存不同的编码格式编码的文件)
<1>.wav
特点:音质量最好的格式,对应的PCM编码
适用:多媒体开发,保存音乐和音效素材
<2>MP3
特点:音质好,压缩比比较高,被大量的软件和硬件支持
适用:用于比较搞要求的音乐欣赏
<3>caf:
特点:适用于几乎所有的ios的所有的编码格式
#5.开发经验:
caf文件格式,因为某些编码设置,文件可能会很大,而且caf,格式并不是很通用,所以在开发过程中一般会进行压缩成MP3
相关学习资料:http://blog.csdn.net/ysy441088327/article/details/7392842
网友评论