录音之前进行预设(-_-||不预设感觉没啥差别啊)
- (void)initAudioSession {
//录音前对音频进行预设
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *error = nil;
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
if (error) {
NSLog(@"error:'%@'.",[error localizedDescription]);
}
[audioSession setActive:YES error:&error];
if (error) {
NSLog(@"error:'%@'.",[error localizedDescription]);
}
}
保存音频路径:
NSString *documentDirectoty = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@"%@",documentDirectoty);
//导出路径
NSString *outPutPath = [documentDirectoty stringByAppendingPathComponent:@"record.caf"];
NSURL *outPutURL = [NSURL fileURLWithPath:outPutPath];
static NSError *error = nil;
录音初始化:
//初始化录制的路径 settings:包含录音的大量参数
_audioRecorder = [[AVAudioRecorder alloc]initWithURL:outPutURL settings:nil error:&error];
if (error) {
NSLog(@"error:'%@'.",[error localizedDescription]);
}
//预录制
[_audioRecorder prepareToRecord];
//开始录音
[_audioRecorder record];
结束录音:
[_audioRecorder stop];
播放音频:
//判断存在问题(不然点几次就要播放!!!!)
if (_audioPlayer) {
[_audioPlayer play];
}else {
//初始化播放
_audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:_audioRecorder.url error:&error];
if (error) {
NSLog(@"error:'%@'.",[error localizedDescription]);
}
//播放次数
[_audioPlayer setNumberOfLoops:-1];
[_audioPlayer prepareToPlay];
[_audioPlayer play];
停止播放:(貌似iOS的停止不是真的停止,只是停止了预加载的)
[_audioPlayer stop];