У меня странная проблема с AVAudioRecorder. В моем приложении мне нужно записать аудио и воспроизвести его. Я создаю свой плеер как:
if(recorder)
{
if(recorder.recording)
[recorder stop];
[recorder release];
recorder = nil;
}
NSString * filePath = [NSHomeDirectory() stringByAppendingPathComponent: [NSString stringWithFormat:@"Documents/%@.caf",songTitle]];
NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithFloat: 44100.0],AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatAppleIMA4],AVFormatIDKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithInt: AVAudioQualityMax],AVEncoderAudioQualityKey,nil];
recorder = [[AVAudioRecorder alloc] initWithURL: [NSURL fileURLWithPath:filePath] settings: recordSettings error: nil];
recorder.delegate = self;
if ([recorder prepareToRecord] == YES){
[recorder record];
Я выпускаю и создаю плеер каждый раз, когда нажимаю кнопку записи. Но проблема в том, что AVAudiorecorder требуется некоторое время, прежде чем начать запись, и поэтому, если я нажимаю кнопку записи несколько раз непрерывно, мое приложение на некоторое время зависает.
Тот же код работает без проблем, когда к устройству подключены наушники ... запись не задерживается, и приложение не останавливается, даже если я нажимаю кнопку записи несколько раз.
Буду признателен, если кто-нибудь поможет мне решить эту проблему.
Любая помощь в этом отношении будет высоко оценена.
Спасибо заранее.