iOS 使用AVAudioRecorder实现音频的录制
来源:互联网 发布:淘宝店铺装修 知乎 编辑:程序博客网 时间:2024/05/17 04:08
和AVAudioPlayer类似,AVAudioRecorder也是AVFoundtion框架的,而且在结构、属性上也挺相似。
1、构建:
使用方法:
- (id)initWithURL:(NSURL *)url settings:(NSDictionary *)settings error:(NSError **)outError参数url是录制的音频文件的路径,注意不是文件存放的文件夹的路径,是包含文件一起的完整路径,如: file:///var/mobile/Applications/2EB555A9-C09B-4269-B0B3-F479A39F6784/Documents/recordedFiles/-2118413987.wav。
settings是一个字典,包含了对于AVAudioRecorder的对象的许多配置信息,关于所包含的键值,文档里有链接。一般的配置如下:
NSDictionary *setting = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithFloat: 44100.0],AVSampleRateKey, [NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey, [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey, [NSNumber numberWithInt: 2], AVNumberOfChannelsKey, [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey, [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,nil];
2、录制:
录制就是调用:
[_audioRecorder prepareToRecord] [_audioRecorder record]
prepareToRecord 这个方法会根据上面构建时提供的路径构建一个音频文件,如果已经有同名文件,会替换掉之前的。然后这个方法会有一个bool的返回值,如果文件路径不可使用,会返回NO;如果音频文件格式是不支持的格式,也会返回NO。所以有必要在这做个判断。
但是在prepareToRecord之前需要调整一个属性,关于应用音频方面的一些性质的调节:
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; [audioSession setActive:YES error:nil];需要把AVAudioSession的category设为AVAudioSessionPlayAndRecord或AVAudioSessionRecord;并且设置active为YES来激活。在播放的时候,需要把category调回AVAudioSessionPlayback,否则会声音特别小。
录制过程中可以使用pause 方法来暂停,使用stop方法来停止。停止之后,一段录音就有了。
对于录音文件的格式也有一定要求,没有全部测试,.caf .wav .aac 是可以的,.mp3是不行的。而且选择特定格式时,构建时用到的settings中的AVFormatIDKey需要响应的更改,这个键的可选枚举值在文档中可以找到。
0 0
- iOS 使用AVAudioRecorder实现音频的录制
- IOS AVAudioRecorder 录制音频
- ios 使用AVAudioRecorder录制音频,然后用AVAudioPlayer进行播放
- 录制音频(AVAudioRecorder)for iOS
- 音频录制之AVAudioRecorder
- 音频录制之AVAudioRecorder
- 音频录制之AVAudioRecorder
- 使用AVAudioRecorder录制声音(Swift)
- iOS 音频录制、播放,使用音频处理框架The Amazing Audio Engine实现音频录制播放 —— HERO博客
- iOS: 使用AVAudioRecorder中遇到的问题
- AVAudioRecorder 音频视图的加载
- AVAudioRecorder 录制
- Android移动开发-使用MediaRecorder录制音频的实现
- 安卓录制音频:使用MediaRecord实现
- ios 录制音频
- iOS录制音频
- iOS 音频录制
- iOS音频录制基础
- Activity有四种加载模式launchMode
- poj2104(函数式线段树/主席树)
- js判断文本框剩余可输入字数
- win7删除ubuntu系统
- MBTI 性格测试
- iOS 使用AVAudioRecorder实现音频的录制
- AJAX
- Git教程:远程仓库
- Git教程:分支管理
- 如何用Octave对GNURadio的数据进行分析
- 如何管理Hyper-V的安全权限?
- If you sleep now,you will have a dream. If you study now,you will achieve your dream.
- 黑马程序员——Java基础_集合框架之Collection
- event.keycode大全(javascript)