Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios4 使用AVFoundation录制到电影文件时出错_Ios4_Avfoundation_Video Capture_Avcapturesession - Fatal编程技术网

Ios4 使用AVFoundation录制到电影文件时出错

Ios4 使用AVFoundation录制到电影文件时出错,ios4,avfoundation,video-capture,avcapturesession,Ios4,Avfoundation,Video Capture,Avcapturesession,这是一个奇怪的问题。我没有在我的项目中更改任何涉及此的代码,但我的视频录制已随机停止工作。当我尝试将电影保存到文件时,出现以下错误: Error Domain=NSOSStatusErrorDomain Code=-12780“操作无法完成。(OSStatus Error-12780)。” 我使用以下代码开始捕获: - (void)initVideoCapture { self.captureSession = [[AVCaptureSession alloc] init]; AVCaptur

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

Error Domain=NSOSStatusErrorDomain Code=-12780“操作无法完成。(OSStatus Error-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 DIDFINISHERDINGTOOUTPUTFILEATURL:(NSURL*)outputFileURL fromConnections:(NSArray*)连接错误:(NSError*)错误

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

这似乎是苹果的一个缺陷。我通过使用AVAssetWriter和AVAssetWriterInput解决了这个问题,当设备的方向为UIDeviceOrientationFaceUp、UIDeviceOrientationFaceDown和UIDeviceOrientationUnknown时,我得到了-12780。由于重新编码的视频的方向必须是纵向的或横向的,所以你会出错。我必须写一个快速的方法来检查这三个问题,然后把它们转换成肖像。

你能提供更多关于如何解决这个问题的细节吗?谢谢你说得对。我也遇到了这个问题。你能告诉我你是如何翻译这个方向的吗?我不知道如何更改它。它是只读的。谢谢~~