我设置AVCaptureSession
就像这样:
AVCaptureSession *newSession = [[AVCaptureSession alloc] init];
AVCaptureDevice *camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
AVCaptureDeviceInput *newInput = [[AVCaptureDeviceInput alloc] initWithDevice:camera error:&error];
if(error) {
NSLog([error localizedDescription]);
}
AVCaptureMovieFileOutput *newOutput = [[AVCaptureMovieFileOutput alloc] init];
if([newSession canAddInput:newInput])
[newSession addInput:newInput];
if ([newSession canAddOutput:newOutput])
[newSession addOutput:newOutput];
[self setSession:newSession];
[self setInput:newInput];
[self setOutput:newOutput];
然后我在我的视图中添加了一个预览图层:
AVCaptureVideoPreviewLayer *layer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:[recorder session]];
[layer setBounds:[recordingView bounds]];
[layer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[[recordingView layer] insertSublayer:layer above:[recordingView layer]];
但我不会预览。
我正在IOS 5上使用iPod Touch第4代。
感谢。
答案 0 :(得分:2)
首先,您的recordingView
是如何定义的?
第二,
[[recordingView layer] insertSublayer:layer above:[recordingView layer]];
毫无意义。 (您试图在自己的图层中添加自己图层上方的图层 - > duh?)
请改为[recordingView.layer addSublayer:layer];
。
您在评论中发布的项目使用归零弱指针。标记你的属性强大,一切正常。