ios5.0之后有录音启动慢的问题,就是当你录制音频的时候启动时间往往会比较慢,播放的时候立刻切换到录制的时候非常明显。
解决方案是有两张。
一、
audio recorder 初始化的完成的时候调用prepareToRecord,
如果效果还不行在prepareToRecord插入下面代码
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
if(err) {
NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
return;
}
[audioSession setActive:YES error:&err];
if(err){
NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
return;
}
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
方法二、
1.在音频队列的初始化方法中加入代码
OSStatus error = AudioSessionInitialize(NULL, NULL, NULL, NULL);
UInt32 category = kAudioSessionCategory_PlayAndRecord;
error = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, NULL, self);
UInt32 inputAvailable = 0;
UInt32 size = sizeof(inputAvailable);
AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable, &size, &inputAvailable);
AudioSessionAddPropertyListener(kAudioSessionProperty_AudioInputAvailable, NULL, self);
AudioSessionSetActive(true);
2.在录制声音开始的时候先把播放声音stop,加入
UInt32 category = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
这样做应该会让你的录制启动速度显著加快的。