これは奇妙な問題です。プロジェクトでこれに関連するコードを変更していませんが、ビデオ録画がランダムに機能しなくなりました。ムービーをファイルに保存しようとすると、次のエラーが発生します。
エラー Domain=NSOSStatusErrorDomain Code=-12780 「操作を完了できませんでした。(OSStatus エラー -12780.)」
次のコードでキャプチャを開始します。
- (void)initVideoCapture {
self.captureSession = [[AVCaptureSession alloc] init];
AVCaptureDevice *videoCaptureDevice = [self frontFacingCameraIfAvailable];
AVCaptureDeviceInput *videoInput = [AVCaptureDeviceInput deviceInputWithDevice:videoCaptureDevice error:nil];
[self.captureSession addInput:videoInput];
aMovieFileOutput = [[AVCaptureMovieFileOutput alloc] init];
[self.captureSession addOutput:aMovieFileOutput];
[self detectVideoOrientation:aMovieFileOutput];
[self.captureSession setSessionPreset:AVCaptureSessionPresetMedium];
[self.captureSession startRunning];
}
次に、viewController からこのメソッドを呼び出して、記録を開始します。
- (void) startRecord {
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"yyyyMMddHHmmss"];
NSString *newDateString = [outputFormatter stringFromDate:[NSDate date]];
[outputFormatter release];
NSString * fileString = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.mov",newDateString]];
recordFileURL = [[NSURL alloc] initFileURLWithPath:fileString];
[aMovieFileOutput startRecordingToOutputFileURL:recordFileURL recordingDelegate:self];
}
この時点で、この関数でエラーが発生します。
- (void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)接続エラー:(NSError *)エラー
本当に奇妙なのは、時々ランダムに動作することです。同様に、プロジェクトをコンパイルすると、100% の時間で動作します。次回コンパイルすると0%動作します。私は何が間違っているのでしょうか?明らかなことはありますか?