使用AVFoundation在UIView中显示相机进纸

hen*_*oem 1 avfoundation ios swift2

我试图在UIView中显示相机的输入.后来我需要能够分析视频帧,所以我需要使用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()
    }
}
Run Code Online (Sandbox Code Playgroud)

camView是可见的,但它没有显示任何内容.

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

设置断点和检查captureSession,videoPreviewLayer,videoCaptureDeviceinput证实他们都被设定.

Tej*_*uri 5

视频预览图层未添加到camView.因此,您无法在camView中看到相机会话正在运行.

添加此行:

    camView.layer.addSublayer(videoPreviewLayer) 
Run Code Online (Sandbox Code Playgroud)