Я использую следующий код для записи с помощью AVAudioRecorder. Я также получаю доступ к записанному аудио в реальном времени (через 4 секунды). Тем не менее, данные равны NULL до 6 секунд.AVAudioRecorder не записывается в файл достаточно быстро
Есть ли способ принудительно попросить диктофон написать в файл?
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];
Но песня Data равна нулю до 6 секунд.
Я знаю, что это возможно сделать с помощью AudioQueue, однако я не хочу попасть в AudioQueue, потому что, я думаю, это будет излишество.
Спасибо.
Привет, возможно ли здесь захватить аудиосреднюю мощность, например AVAudioRecorder? – moeseth
Нет, вам придется делать это вручную с помощью входящих буферов, но это не сложно. –
Как я могу преобразовать этот буфер в формат wav, который может читать FFMPEG? – moeseth