joh*_*hnm 2 video-capture avfoundation ios4 avcapturesession
这是一个奇怪的问题.我没有更改任何涉及此项目的代码,但我的视频录制已经随机停止工作.当我尝试将电影保存到文件时,我收到以下错误:
错误域= 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];
Run Code Online (Sandbox Code Playgroud)
}
然后我从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];
Run Code Online (Sandbox Code Playgroud)
}
这时我在这个函数中得到了错误.
- (void)captureOutput:(AVCaptureFileOutput*)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL*)outputFileURL fromConnections:(NSArray*)connections error:(NSError*)error
真正奇怪的是,它有时会随机起作用.就像,我将编译项目,它将100%的时间工作.下次我编译它将工作0%.我能做错什么?有什么明显的吗?
当设备的方向是UIDeviceOrientationFaceUp,UIDeviceOrientationFaceDown和UIDeviceOrientationUnknown时,我得到-12780.由于重新编码的视频的方向必须是纵向或横向,因此它会出错.我必须编写一个快速方法来检查这三个,然后将它们翻译成肖像.
| 归档时间: |
|
| 查看次数: |
2145 次 |
| 最近记录: |