AVAudioRecorder не работает на iPhone 5S
Поэтому я использую AVAudioRecorder для записи аудио вместе с AVCaptureSession, который записывает видео (я знаю, что это странно, но для моей ситуации мне нужно записать их отдельно).
Все отлично работает на любом устройстве, кроме моего iPhone 5S. Он записывает без ошибок, но файл, сохраненный на диск, поврежден или что-то. Когда я получаю доступ к файловой системе на моем Mac и пытаюсь воспроизвести файл m4a с помощью VLC или Quicktime, я получаю сообщение об ошибке «формат файла не может быть обнаружен». Вот как я инициализирую AVAudioRecorder и записываю аудио:
// Prepare the audio session
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVideoRecording error:nil];
// Setup audio recording
NSDictionary *recordSettings = @{AVFormatIDKey: @(kAudioFormatMPEG4AAC),
AVEncoderAudioQualityKey: @(AVAudioQualityLow),
AVEncoderBitRateKey: @16,
AVNumberOfChannelsKey: @1,
AVSampleRateKey: @22050.0f};
NSError *audioRecorderError;
NSURL *audioFileURL = [[self.outputFileURL URLByDeletingPathExtension] URLByAppendingPathExtension:@"m4a"];
self.audioRecorder = [[AVAudioRecorder alloc] initWithURL:audioFileURL
settings:recordSettings
error:&audioRecorderError];
self.audioRecorder.delegate = self;
if (audioRecorderError) {
CCLog(@"Error while initializing the audio recorder... Skipping sound recording!");
}
else {
if (![self.audioRecorder prepareToRecord]) {
CCLog(@"Error preparing to record");
}
if (![self.audioRecorder record]) {
CCLog(@"Error recording");
}
}
Опять же, это работает на всех устройствах, кроме 5S. Кто-нибудь знает, что может быть причиной этого?