そのため、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 以外のすべてのデバイスで機能します。誰がこれを引き起こしているのか知っていますか?