Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // ViewController.swift
- // QRCodeTEst
- //
- // Created by Mikael Grön on 2023-03-01.
- //
- import UIKit
- import AVFoundation
- class ViewController: UIViewController {
- var captureSession = AVCaptureSession()
- var videoPreviewLayer:AVCaptureVideoPreviewLayer?
- override func viewDidLoad() {
- super.viewDidLoad()
- print("viewDidLoad")
- let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera, .builtInTelephotoCamera, .builtInTripleCamera, .builtInDualWideCamera, .builtInUltraWideCamera], mediaType: .video, position: .back)
- guard let captureDevice = discoverySession.devices.first else {
- print("No device found")
- return
- }
- do {
- let input = try AVCaptureDeviceInput(device: captureDevice)
- captureSession.addInput(input)
- let videoMetaDataOutput = AVCaptureMetadataOutput()
- captureSession.addOutput(videoMetaDataOutput)
- videoMetaDataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
- videoMetaDataOutput.metadataObjectTypes = [.qr]
- videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
- videoPreviewLayer?.videoGravity = .resizeAspectFill
- videoPreviewLayer?.frame = view.layer.bounds
- view.layer.addSublayer(videoPreviewLayer!)
- captureSession.startRunning()
- print("all done!")
- } catch {
- print(error)
- return
- }
- }
- }
- extension ViewController: AVCaptureMetadataOutputObjectsDelegate {
- func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
- print("Count: \(metadataObjects.count)")
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement