ios录音文件路径_IOS开发之音频--录音

前言:本篇介绍录音。

内容大纲:

1、录音应用场景。

2、录音功能实现。

3、概念补充。

4、开发经验。

正文:

1、录音应用场景

① 语言聊天:在即时通讯APP中,例如即时通讯APP中,例如微信、QQ等等,都有语音发送功能。

②语音备忘录:录一段音频,来记录某件事情。

2、录音功能实现

①导入AVFoundation框架

一些多媒体的处理,基本都使用这个框架。

②使用AVAudioRecorder进行录音

<1>创建录音文件存放路径

<2>设置录音附件设置项(#import )

2-1、 NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] init];

2-2、设置编码格式:

[recordSettings setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey: AVFormatIDKey];

2-3、采样率:

[recordSettings setValue :[NSNumber numberWithFloat:11025.0] forKey: AVSampleRateKey];

2-4、通道数:

[recordSettings setValue :[NSNumber numberWithInt:2] forKey: AVNumberOfChannelsKey];

2-5、音频质量,采样质量:

[recordSettings setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey];

<3>根据路径以及设置项,创建录音对象

_audioRecorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:nil];

<4>准备录音

[self.audioRecorder prepareToRecord];

<5>开始录音

[self.audioRecorder record];

<6>暂停录音

[self.audioRecorder pause];

<7>停止录音

[self.audioRecorder stop];

③代码实现:

<1>首先在storyboard上简单实现三个按钮监听:

<2>实现的代码:

1 #import "ViewController.h"

2 #import

3

4 @interfaceViewController ()5

6 /** 录音对象*/

7 @property(nonatomic ,strong) AVAudioRecorder *recorder;8

9 @end

10

11 @implementationViewController12

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)beginRecord44 {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

在23~32行的代码,这个是对一个属性添加很多值,是可以抽离出来声明一个属性,然后加值的部分写在懒加载中。

<3>通知录音之后,可以通过打印出来的路径,然后找到对应的录音文件,可以自己试听测试一下。

3、概念补充

①编码

概念: 编码是信息从一种形式转换为另一种形式的过程。

编码格式:

> PCM : 脉冲编码调制,是一种非压缩音频数字化技术,是一种未压缩的原音重现, 数字模式下, 音频的初始信号是PCM

> MP3

> AAC: AAC其实是“高级音频编码(advanced audio coding)”的缩写,它是被设计用来取代MP3格式的。

> HE-AAC: HE-AAC是AAC的一个超集,这个“HE”代表的是“High efficiency”。 HE-AAC是专门为低比特率所优化的一种音频编码格式

> AMR: AMR全称是“Adaptive Multi-Rate”,它也是另一个专门为“说话(speech)”所优化的编码格式,也是适合低比特率环境下采用

> ALAC: 它全称是“Apple Lossless”,这是一种没有任何质量损失的音频编码方式,也就是我们说的无损压缩

> IMA4: 这是一个在16-bit音频文件下按照4:1的压缩比来进行压缩的格式。

②文件格式(不同的文件格式,可保存不同的编码格式编码的文件)

>WAV

特点: 音质最好的格式, 对应PCM编码。

适用: 多媒体开发、保存音乐和音效素材。

>MP3

特点: 音质好,压缩比比较高,被大量软件和硬件支持。

适用: 适合用于比较高要求的音乐欣赏。

>caf

特点: 适用于几乎iOS中所有的编码格式。

③参考资料地址:

4、开发经验

caf 文件格式, 因为某些编码设置, 文件有可能会很大, 而且caf, 格式并不是很通用, 所以在开发过程中, 一般会进行压缩转码, MP3。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值