Я использую AVAudioRecorder для захвата звука с микрофона. Проблема, с которой я сталкиваюсь, заключается в следующем: в первый раз, когда я начинаю запись, между передачей диктофона и его фактическим запуском задержка составляет 2 секунды. Последующие записи звонков выполняются намного быстрее. Здесь есть какие-то очевидные ошибки? Что я могу сделать, чтобы ускорить время, необходимое для начала начальной записи.
Я инициализировал рекордер в viewDidLoad:
- (void)viewDidLoad
{
NSString *fileName = @"test.aiff";
[super viewDidLoad];
NSString *docsDir = [NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *soundFile = [docsDir
stringByAppendingPathComponent:fileName];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFile];
NSDictionary *recordSettings = [NSDictionary
dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:44100.0],
AVSampleRateKey,
nil];
NSError *error = nil;
audioRecorder = [[AVAudioRecorder alloc]
initWithURL:soundFileURL
settings:recordSettings
error:&error];
}
Затем, когда я готов, я запускаю рекордер, вызывая мой метод startRecoring:
-(void) startRecording{
NSLog(@"Trying to start Recording");
[audioRecorder record];
NSLog(@"Recording started");
}
Вот вывод журнала, и вы можете видеть, что между двумя вызовами NSLog примерно 2,5 секунды. В первый раз нажал, но не в другой раз:
First recorder call
2011-04-13 15:41:47.495 AudioRecorderTest[6570:207] Trying to start Recording
2011-04-13 15:41:49.869 AudioRecorderTest[6570:207] Recording started
Next Recorder Call
2011-04-13 15:42:49.236 AudioRecorderTest[6570:207] Trying to start Recording
2011-04-13 15:42:49.246 AudioRecorderTest[6570:207] Recording started