将背景图像/视图设置为实时摄像机视图?

时间:2013-02-10 01:37:02

标签: ios objective-c cocoa-touch

是否可以为特定视图控制器设置背景以显示实时摄像机视图?如果是这样,是否可以引导我朝着正确的方向努力实现这一目标?

3 个答案:

答案 0 :(得分:9)

是的,绝对有可能。您可以在UIView中嵌入实时摄像头,您可以将其放置在任何您喜欢的位置。

首先阅读:AVFoundation Reference - 这是你的框架

您正在寻找的特定课程是AVCaptureVideoPreviewLayer

AVCaptureSession

一致

这是一个涵盖所需内容的示例项目:AVCam

答案 1 :(得分:8)

导入:

#import <AVFoundation/AVFoundation.h>

要将摄像机视图添加到控制器的视图,请在viewDidLoad中添加此代码:

AVCaptureSession *session = [[AVCaptureSession alloc] init];
session.sessionPreset = AVCaptureSessionPresetHigh;

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

NSError *error = nil;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
[session addInput:input];

AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
newCaptureVideoPreviewLayer.frame = self.view.bounds;

[self.view.layer addSublayer:newCaptureVideoPreviewLayer];

[session startRunning];

答案 2 :(得分:3)

我认为你最好的办法是抓住并理解这个apple sample code, called AVCam。您将在代码中看到如何创建AVCaptureVideoPreviewLayer。你将把它作为你将用作“背景”的UIView的子层插入。

一旦你开始工作,UIView就会像你的视图层次结构中的任何其他部分一样。您可以将其视为背景UIImageView(虽然,它会消耗更多的击球力量。)