avfoundationEmpezando con la avfundación


Observaciones

Esta sección proporciona una descripción general de lo que es una explicación y por qué un desarrollador puede querer usarla.

También debe mencionar cualquier tema importante dentro de una a fi rmación y vincular a los temas relacionados. Dado que la Documentación para la avifundación es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.

Instalación o configuración

Una configuración mínima para la vista previa de la salida de la cámara (Swift 2, Swift 3)

import UIKit
import AVFoundation

class ViewController: UIViewController {
    var session: AVCaptureSession?
    var cameraPreviewLayer: AVCaptureVideoPreviewLayer?

    override func viewDidLoad() {
        super.viewDidLoad()
        setupSession()
        if let cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: session) {
            view.layer.addSublayer(cameraPreviewLayer)
            self.cameraPreviewLayer = cameraPreviewLayer
            session?.startRunning()
        }
    }

    func setupSession() {
        session = AVCaptureSession()
        //setup input
        let device =  AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo)
        do {
            let input = try AVCaptureDeviceInput(device: device)
            if session?.canAddInput(input) == true {
                session?.addInput(input)
            }
        } catch {
            print("An error occured: \(error.localizedDescription)")
        }


        //setup output
        let output = AVCaptureVideoDataOutput()
        output.videoSettings = [kCVPixelBufferPixelFormatTypeKey as AnyHashable: kCVPixelFormatType_32BGRA]
        if session?.canAddOutput(output) == true {
            session?.addOutput(output)
        }
    
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        self.cameraPreviewLayer?.frame = self.view.layer.bounds
    }
}