カメラ読取
iOS標準のカメラにはバーコード読取機能が搭載されている
import AVFoundation
class BarcodeReaderViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate {
let captureSession = AVCaptureSession()
var metadataOutput = AVCaptureMetadataOutput()
override func viewDidLoad() {
self.captureSession.addInput(try! AVCaptureDeviceInput(device: .default(for: AVMediaType.video)!))
self.captureSession.addOutput(self.metadataOutput)
self.metadataOutput.metadataObjectTypes = [.code128, .qr]
self.metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
self.captureSession.startRunning()
}
func metadataOutput(_ output: AVCaptureMetadataOutput,
didOutput metadataObjects: [AVMetadataObject],
from connection: AVCaptureConnection) {
print(metadataObjects.compactMap({ $0 as? AVMetadataMachineReadableCodeObject }).first?.stringValue ?? "")
}
}