AVAudioRecorder类是专门处理录音操作,可以在你的应用程序提供音频记录功能。录音只能保存到本地文件。它包含在AVFoundation FrameWork库中。
下面是常见的属性和方法:
属性 | 说明 |
@property(readonly, getter=isRecording) BOOL recording | 是否正在录制音频(只读) |
@property(readonly) NSURL *url | 录音文件路径(只读) |
@property(nonatomic, copy) NSArray *channelAssignments | 用录音机相关的AVAudioSessionChannelDescription对象数组 |
@property(readonly) NSTimeInterval currentTime | 录音时长(只读),只能在录音时使用,当录音停止,直为0 |
@property(readonly) NSTimeInterval deviceCurrentTime | 输入设置的时间长度,只读,注意此属性一直可访问 |
@property(readonly) NSDictionary *settings | 音频录音机的音频设置。(只读) |
@property(getter=isMeteringEnabled) BOOL meteringEnabled | 是否启用录音测量,如果启用录音测量可以获得录音分贝等数据信息 |
方法 | 说明 |
- (instancetype)initWithURL:(NSURL *)url settings:(NSDictionary *)settings error:(NSError **)outError | 录音机对象的初始化方法,url必须是本地文件url |
- (BOOL)prepareToRecord | 准备录音,主要用于创建缓存 |
- (BOOL)record | 开始录音 |
- (BOOL)recordAtTime:(NSTimeInterval)time | 在指定的时间开始录音, |
- (BOOL)recordForDuration:(NSTimeInterval)duration | 按照指定的时长,开始录音 |
- (BOOL)recordAtTime:(NSTimeInterval)time forDuration:(NSTimeInterval)duration | 在指定的时间开始录音,并指定录音时长 |
- (void)pause | 暂停录音 |
- (void)stop | 停止录音 |
- (BOOL)deleteRecording | 删除录音,注意要删除录音此时录音机必须处于停止状态 |
代理方法 | 说明 |
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag | 录音结束 |
- (void)audioRecorderEncodeErrorDidOccur:(AVAudioRecorder *)recorder error:(NSError *)error | 录音编码发生错误 |
在创建录音机时除了指定路径外还必须指定录音设置信息,因为录音机必须知道录音文件的格式、采样率、通道数等信息。