Ios 使用AVFoundation在UIView中显示相机馈送

Ios 使用AVFoundation在UIView中显示相机馈送,ios,swift2,avfoundation,Ios,Swift2,Avfoundation,我试图在一个视图中显示相机的提要。后来我需要能够分析视频帧,所以我需要使用AVFoundation来完成这项工作,据我所知 到目前为止,我所拥有的: import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet weak var camView: UIView! var captureSession:AVCaptureSession? var videoPrev

我试图在一个视图中显示相机的提要。后来我需要能够分析视频帧,所以我需要使用AVFoundation来完成这项工作,据我所知

到目前为止,我所拥有的:

import UIKit
import AVFoundation

class ViewController: UIViewController {

    @IBOutlet weak var camView: UIView!

    var captureSession:AVCaptureSession?
    var videoPreviewLayer:AVCaptureVideoPreviewLayer?
    var videoCaptureDevice: AVCaptureDevice?
    var input: AnyObject?

    override func viewDidLoad() {
        super.viewDidLoad()

        videoCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
        do {
            input = try AVCaptureDeviceInput(device: videoCaptureDevice)
        } catch {
            print("video device error")
        }
        captureSession = AVCaptureSession()
        captureSession?.addInput(input as! AVCaptureInput)
        videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        videoPreviewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
        videoPreviewLayer?.frame = camView.layer.bounds
        captureSession?.startRunning()
    }
}
camView
可见,但不显示任何内容

该应用程序在首次运行时要求获得使用相机的许可,并已获得该许可


设置断点并检查
捕获会话
视频预览层
视频捕获设备
输入
确认它们都已设置。

视频预览层未添加到camView。因此,您无法在camView中看到正在运行的摄像头会话

添加此行:

    camView.layer.addSublayer(videoPreviewLayer) 

你所说的camView是可见的,但不显示任何内容是什么意思?摄像头未显示在camView中?在VIEWDID中启动摄像机不在viewDidload中出现。将行captureSession?.startRunning()移动到VIEWDIDLEASE中。@TejaNandamuri在
camView
上设置背景色,确认视图实际上在屏幕上-它只是不显示摄像机提要。将
captureSession?.starRunning()
移动到
viewdide
不会有任何区别。我希望您在设备上测试它。您是否在设置中检查了您的应用程序是否启用了摄像头权限?尝试将videoPreviewLayer?.frame=camView.layer.bounds和captureSession?.startRunning()移动到ViewDid。是的,成功了。谢谢你的帮助,几个小时来我一直在瞎琢磨这件事。