所以我使用 AVAudioRecorder 来录制音频以及正在录制视频的 AVCaptureSession (我知道这很奇怪,但对于我的情况,我需要单独录制它们)。
除了我的 iPhone 5S 之外,所有设备都可以正常工作。它记录没有错误,但保存到磁盘的文件已损坏或其他东西。当我在我的 Mac 上访问文件系统并尝试使用 VLC 或 Quicktime 播放 m4a 文件时,我收到“无法检测到文件格式”错误。这是我初始化我的 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 之外的所有设备。有谁知道这可能是什么原因造成的?