【问题标题】:Camera view as a subview in iOS相机视图作为 iOS 中的子视图
【发布时间】:2013-09-26 09:46:56
【问题描述】:

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

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

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

【问题讨论】:

  • @user1354603您需要创建相机叠加视图。
  • 我完全不同意“太宽泛”的评价。这是 =EXACTLY= 我的问题(任何尝试过的 iOS 程序员都清楚),答案完美地采用 SO 格式。 (我现在有工作代码。我很乐意将其添加为答案。)请重新打开。

标签: iphone ios objective-c xcode cocoa-touch


【解决方案1】:

您可以使用 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 部分)并将其添加到所需的视图并开始会话捕获。

【讨论】:

  • 感谢您的回复,我会试试这个并返回结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多