Advertisement
skaramicke

Fungerande QR-kodscanner

Mar 1st, 2023
892
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.98 KB | None | 0 0
  1. //
  2. //  ViewController.swift
  3. //  QRCodeTEst
  4. //
  5. //  Created by Mikael Grön on 2023-03-01.
  6. //
  7.  
  8. import UIKit
  9. import AVFoundation
  10.  
  11. class ViewController: UIViewController {
  12.     var captureSession = AVCaptureSession()
  13.     var videoPreviewLayer:AVCaptureVideoPreviewLayer?
  14.    
  15.     override func viewDidLoad() {
  16.         super.viewDidLoad()
  17.        
  18.         print("viewDidLoad")
  19.        
  20.         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera, .builtInTelephotoCamera, .builtInTripleCamera, .builtInDualWideCamera, .builtInUltraWideCamera], mediaType: .video, position: .back)
  21.        
  22.         guard let captureDevice = discoverySession.devices.first else {
  23.             print("No device found")
  24.             return
  25.         }
  26.        
  27.         do {
  28.             let input = try AVCaptureDeviceInput(device: captureDevice)
  29.             captureSession.addInput(input)
  30.            
  31.             let videoMetaDataOutput = AVCaptureMetadataOutput()
  32.             captureSession.addOutput(videoMetaDataOutput)
  33.            
  34.             videoMetaDataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
  35.            
  36.             videoMetaDataOutput.metadataObjectTypes = [.qr]
  37.            
  38.             videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
  39.             videoPreviewLayer?.videoGravity = .resizeAspectFill
  40.             videoPreviewLayer?.frame = view.layer.bounds
  41.            
  42.             view.layer.addSublayer(videoPreviewLayer!)
  43.            
  44.             captureSession.startRunning()
  45.            
  46.             print("all done!")
  47.            
  48.         } catch {
  49.             print(error)
  50.             return
  51.         }
  52.        
  53.     }
  54.  
  55.  
  56. }
  57.  
  58. extension ViewController: AVCaptureMetadataOutputObjectsDelegate {
  59.     func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
  60.         print("Count: \(metadataObjects.count)")
  61.     }
  62. }
  63.  
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement