iphone - 相机 View 作为 iOS 中的 subview

标签 iphone ios objective-c xcode cocoa-touch

首先我会说我是 objective-c 和 iOS 编程的新手。

我想做的是将相机显示为 View 的一部分,如屏幕上部的矩形,我应该从哪里开始?

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

最佳答案

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

苹果的example code for AVCam project是一个很好的起点。

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

首先您需要实例化一个捕获 session :

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

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

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 部分)并将其添加到所需的 View 并开始 session 捕获。

关于iphone - 相机 View 作为 iOS 中的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024832/

相关文章:

objective-c - 将 UIImageViews 放在行中

ios - 如何在iOS项目中通过unix shell命令(或命令工具)修改 ".strings"文件?

iphone - UIActionSheet 在单击/点击外部时关闭

ios - SpriteKit 中的运动轨迹效果?

iphone - 加载页面时的 uiactivityindicator

iphone - 如何判断您是否触摸了 CCLabel?

iphone - 系统声音忽略音量级别

android - 居中 GWT DialogBox 不考虑我手机浏览器的 "zoom"因素

iphone - UIWindow 在哪里实例化,storyboard 传入?

objective-c - 基于 View 的 NSTableView 使用绑定(bind)和委托(delegate)产生奇怪的结果