2

这是一个奇怪的问题。我的项目中没有更改任何涉及此的代码,但我的视频录制随机停止工作。当我尝试将电影保存到文件时,出现以下错误:

错误域=NSOSStatusErrorDomain 代码=-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 *)connections error:(NSError *)error

真正奇怪的是它有时会随机工作。就像,我会编译这个项目,它会在 100% 的时间内工作。下次我编译它将工作 0%。我可能做错了什么?有什么明显的吗?

4

2 回答 2

6

当设备的方向是 UIDeviceOrientationFaceUp、UIDeviceOrientationFaceDown 和 UIDeviceOrientationUnknown 时,我得到了 -12780。由于重新编码的视频的方向必须是纵向或横向,因此您会出错。我必须编写一个快速方法来检查这三个,然后将它们转换为肖像。

于 2012-09-16T17:59:36.827 回答
-3

这似乎是苹果的一个错误。我通过使用 AVAssetWriter 和 AVAssetWriterInput 解决了它

于 2011-09-29T20:56:02.110 回答