3

我首先要说我是 Objective-c 和 iOS 编程的新手。

我想要做的是将相机显示为视图的一部分,就像屏幕上部的矩形一样,我应该从哪里开始?

(“相机视图”的 GUI 组件是什么?AVCamCaptureManagerUIImagePickerController?)

4

1 回答 1

4

您可以使用 AVFoundation 来做到这一点。一个很好的起点是观看与 AVFoundation 和 Camera 相关的 WWDC 视频(自 2011 年以来)。

Apple 的AVCam项目示例代码是一个很好的起点。

这是您可以执行的操作的示例。

首先,您需要实例化一个捕获会话:

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

然后,您必须创建输入并将其添加到会话中,以便从您的设备摄像头获取图像:

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

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

    if (!input) {
        NSLog(@"Couldn't create video capture device");
    }
    [session addInput:input];

然后,您使用 AVCaptureVideoPreviewLayer 将来自设备相机的图像呈现在一个图层中:

AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];

最后,您只需要设置该特定层的框架(您需要的 UI 部分)并将其添加到所需的视图并开始会话捕获。

于 2013-09-26T10:32:27.777 回答