Итак, я использую 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. Кто-нибудь знает, что может быть причиной этого?