Я использую следующий код для записи с помощью AVAudioRecorder. Я также получаю доступ к записанному звуку в прямом эфире (через 4 секунды). Однако данные равны NULL до 6 секунд.
Есть ли способ принудительно попросить рекордер записать в файл?
NSDictionary * recordSetting;
recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:11025] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
self.fileURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/recorded.aac", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]]];
self.recorder = [[AVAudioRecorder alloc] initWithURL:self.fileURL settings:recordSetting error:nil];
self.recorder.meteringEnabled = YES;
self.recorder.delegate = self;
[self.recorder record];
А потом через 4 секунды я попытался прочитать файл с помощью NSDate.
NSData *songData = [NSData dataWithContentsOfURL:self.recorder.url];
Но songData равен нулю до тех пор, пока не пройдет 6 секунд.
Я знаю, что это можно сделать с помощью AudioQueue, однако я не хочу входить в AudioQueue, потому что думаю, что это было бы излишним.
Спасибо.