Fix crash: check availableMetadataObjectTypes before setting QR type

This commit is contained in:
yumoqing 2026-06-24 19:22:13 +08:00
parent 32bf49fa0d
commit 8236b586c5

View File

@ -122,7 +122,15 @@ class QRScannerWindowController: NSObject, AVCaptureMetadataOutputObjectsDelegat
if session.canAddOutput(output) {
session.addOutput(output)
output.setMetadataObjectsDelegate(self, queue: .main)
output.metadataObjectTypes = [.qr]
// QR
if output.availableMetadataObjectTypes.contains(.qr) {
output.metadataObjectTypes = [.qr]
} else {
DispatchQueue.main.async { [weak self] in
self?.showError("Camera does not support QR code scanning")
}
return
}
}
let previewLayer = AVCaptureVideoPreviewLayer(session: session)