avfoundationНачало работы с avfoundation


замечания

В этом разделе представлен обзор того, что такое аутсорсинг, и почему разработчик может захотеть его использовать.

Следует также упомянуть о любых крупных предметах в рамках обхода, а также ссылки на связанные темы. Поскольку Documentation for avfoundation является новым, вам может потребоваться создать начальные версии этих связанных тем.

Установка или настройка

Минимальная настройка предварительного просмотра камеры (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
    }
}