Swift系统自带二维码的扫描使用

Swift系统自带二维码的扫描使用,第1张

概述首先需要:   import AVFoundation // MARK: - 1. 懒加载: 会话,输入设备,输出设备,预览图层 //会话 private lazy var session: AVCaptureSession = AVCaptureSession() //拿到输入设备 private lazy var deviceInput: AVCaptureDeviceInput? = {  

首先需要: import AVFoundation


// MARK: - 1.懒加载: 会,输入设备,输出设备,预览图层

//会

private lazy var session: AVCaptureSession = AVCaptureSession()


//拿到输入设备

private lazy var deviceinput: AVCaptureDeviceinput? = {

//获取摄像头

let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVIDeo)

do {

//创建输入对象

let input = try AVCaptureDeviceinput(device: device)

return input

} catch {

//打印错误信息

print(error)

return nil

}

}()


//拿到输出设备

private lazy var output: AVCaptureMetadataOutput = AVCaptureMetadataOutput()


//创建预览图层

private lazy var prevIEwLayer: AVCaptureVIDeoPrevIEwLayer = {

let layer = AVCaptureVIDeoPrevIEwLayer(session: self.session)

layer.frame = UIScreen.mainScreen().bounds

return layer

}()


//MARK: - 2.扫描二维码

func starScan() {

//先判断是否能将设备添加到回话中

if !session.canAddinput(deviceinput) {

return

}

//判断是否能够将输出添加到回话中

if !session .canAddOutput(output) {

return

}

//将输入和输出添加到回话中

session.addinput(deviceinput)

session.addOutput(output)

//设置输入能够解析的数据类型

//设置能解析的数据类型,一定要在输出对象添加到会员之后设置

output.MetadataObjectTypes = output.availableMetadataObjectTypes

//设置输出对象的代理,只要解析成功,就会通知代理

output.setMetadataObjectsDelegate(self,queue: dispatch_get_main_queue())

//添加预览图层

vIEw.layer.insertSublayer(prevIEwLayer,atIndex: 0)

//告诉session开始扫描

session.startRunning()

}


//MARK: - 3.实现代理 AVCaptureMetadataOutputObjectsDelegate

extension QRCodeVIEwController: AVCaptureMetadataOutputObjectsDelegate {

//只要解析到数据就会调用

func captureOutput(captureOutput: AVCaptureOutput!,dIDOutputMetadataObjects MetadataObjects: [AnyObject]!,fromConnection connection: AVCaptureConnection!) {

//获取扫描结果

//注意是: stringValue

print(MetadataObjects.last?.stringValue)

}

}

总结

以上是内存溢出为你收集整理的Swift系统自带二维码的扫描使用全部内容,希望文章能够帮你解决Swift系统自带二维码的扫描使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1078130.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存