我首先要说的是我不熟悉objective-c和iOS编程。
我想要做的是将相机显示为视图的一部分,就像屏幕上方的矩形一样,我应该从哪里开始?
(“相机视图”的哪个GUI组件?AVCamCaptureManager
或UIImagePickerController
?)
答案 0 :(得分:4)
您可以使用AVFoundation来执行此操作。一个很好的起点是看到与AVFoundation和Camera相关的WWDC视频(自2011年起)。
Apple的example code for AVCam project是一个非常好的起点。
以下是您可以做的一个例子。
首先,您需要实例化捕获会话:
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部分),并将其添加到所需视图并开始会话捕获。