我首先要说我是 Objective-c 和 iOS 编程的新手。
我想要做的是将相机显示为视图的一部分,就像屏幕上部的矩形一样,我应该从哪里开始?
(“相机视图”的 GUI 组件是什么?AVCamCaptureManager
或UIImagePickerController
?)
我首先要说我是 Objective-c 和 iOS 编程的新手。
我想要做的是将相机显示为视图的一部分,就像屏幕上部的矩形一样,我应该从哪里开始?
(“相机视图”的 GUI 组件是什么?AVCamCaptureManager
或UIImagePickerController
?)
您可以使用 AVFoundation 来做到这一点。一个很好的起点是观看与 AVFoundation 和 Camera 相关的 WWDC 视频(自 2011 年以来)。
这是您可以执行的操作的示例。
首先,您需要实例化一个捕获会话:
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 部分)并将其添加到所需的视图并开始会话捕获。