【发布时间】:2019-10-11 08:36:49
【问题描述】:
我正在尝试构建一个简单的应用程序,它可以扫描条形码并拥有这段代码
var captureSession: AVCaptureSession?
var videoPreviewLayer: AVCaptureVideoPreviewLayer?
var codeView: UIView?
override func viewDidLoad() {
super.viewDidLoad()
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera], mediaType: AVMediaType.video, position: .back)
guard let captureDevice = discoverySession.devices.first else {
print("Camre initialization faild.")
return
}
do {
let input = try AVCaptureDeviceInput(device: captureDevice)
captureSession?.addInput(input)
let captureMetadataOutput = AVCaptureMetadataOutput()
captureSession?.addOutput(captureMetadataOutput)
captureMetadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
captureMetadataOutput.metadataObjectTypes = [AVMetadataObject.ObjectType.qr]
videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession!)
videoPreviewLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill
videoPreviewLayer?.frame = view.layer.bounds
view.layer.addSublayer(videoPreviewLayer!)
captureSession?.startRunning()
} catch let error as NSError {
print("Error \(error.localizedDescription)")
}
}
我在装有 iOS 12.3.1 的物理设备 Xs Max 上运行应用程序,结果意外崩溃了
captureMetadataOutput.metadataObjectTypes = [AVMetadataObject.ObjectType.qr]
出现错误“libc++abi.dylib:以 NSException 类型的未捕获异常终止”
【问题讨论】: