Ios 如何通过swift使AVCaptureSession全屏扫描?
我有一个问题,有没有办法在我的图层中的任何地方扫描qrcode/条形码。Ios 如何通过swift使AVCaptureSession全屏扫描?,ios,swift,avfoundation,avcapturesession,Ios,Swift,Avfoundation,Avcapturesession,我有一个问题,有没有办法在我的图层中的任何地方扫描qrcode/条形码。 我只把我的QRCODE /条形码放在中间层,得到值。 当我将qrcode/条形码放在右上方时,无法获得价值。 你有办法修好它吗 private func doInitialSetup() { clipsToBounds = true captureSession = AVCaptureSession() guard let videoCaptureDevice = AVCaptur
我只把我的QRCODE /条形码放在中间层,得到值。 当我将qrcode/条形码放在右上方时,无法获得价值。
你有办法修好它吗
private func doInitialSetup() {
clipsToBounds = true
captureSession = AVCaptureSession()
guard let videoCaptureDevice = AVCaptureDevice.default(for: .video) else { return }
let videoInput: AVCaptureDeviceInput
do {
videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice)
} catch let error {
print(error)
return
}
if (captureSession?.canAddInput(videoInput) ?? false) {
captureSession?.addInput(videoInput)
} else {
scanningDidFail()
return
}
let metadataOutput = AVCaptureMetadataOutput()
if (captureSession?.canAddOutput(metadataOutput) ?? false) {
captureSession?.addOutput(metadataOutput)
metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
metadataOutput.metadataObjectTypes = [.qr, .ean8, .ean13, .pdf417, .code128]
metadataOutput.rectOfInterest = UIScreen.main.bounds
} else {
scanningDidFail()
return
}
self.layer.session = captureSession
self.layer.videoGravity = .resizeAspectFill
captureSession?.startRunning()
}
当然是不正确的,这应该是一个包含规范化(即0.0…1.0
)值的CGRect
只需删除这一行,默认值为“全屏”,如您所需。我删除了,但不工作。
metadataOutput.rectOfInterest = UIScreen.main.bounds