以前都没接触过音频的播放以及录制,这几天刚好帮同事写一个录音的界面,刚好记录下,增强记忆,如有什么错误请指出,thx~
1、录音
录音按钮需要定义多种状态
//按钮按下-->录音
[self.voiceBtn addTarget:self action:@selector(startRecordVoice) forControlEvents:UIControlEventTouchDown];
//先按下然后拖动到控件之外
[self.voiceBtn addTarget:self action:@selector(confirmRecordVoice) forControlEvents:UIControlEventTouchUpOutside];
//控件范围内抬起,前提先得按下
[self.voiceBtn addTarget:self action:@selector(confirmRecordVoice) forControlEvents:UIControlEventTouchUpInside];
//拖动动作中,从控件边界内到外时产生的事件。
[self.voiceBtn addTarget:self action:@selector(confirmRecordVoice) forControlEvents:UIControlEventTouchDragExit];
//指拖动动作中,从控件边界外到内时产生的事件。
[self.voiceBtn addTarget:self action:@selector(confirmRecordVoice) forControlEvents:(UIControlEventTouchDragEnter)];
这里我为了省事。所以除了按下是开始录音的状态,后面的几种都是取消录音。你也可以自定义这一步需要有什么其他的响应动作
我用了AVAudioSession这个类来实现录音以及播放的功能
1.在plist文件里面添加对应的字段Privacy - Microphone Usage Description 后面的内容自己定义,不过因为现在的审核比较严格,所以一定要具体说明用麦克风的权限去做什么事情,不然苹果爸爸一定会把你拒掉的
2.引入对应的头文件 #import <AVFoundation/AVFoundation>
3.初始化AVAudioSession对象。
4.在沙盒中创建一个文件夹用来装录音文件
5.初始化录音类AVAudioRecorder
2.播放
播放的比较简单。初始化AVAudioPlayer,遵循协议,在播放完成的代理方法里实现自己的代码
具体代码可以看我github:https://github.com/Xxxxi/RecordAndPlay ,如果觉得对你有帮助的话,麻烦给个Star。thx~