Request camera permission before QR scanning
This commit is contained in:
parent
f220800262
commit
e87921b59f
@ -98,6 +98,30 @@ class QRScannerWindowController: NSObject, AVCaptureMetadataOutputObjectsDelegat
|
||||
|
||||
// 在后台线程初始化摄像头
|
||||
private func setupCaptureOnBackground(previewHost: NSView) {
|
||||
// 先检查摄像头权限
|
||||
switch AVCaptureDevice.authorizationStatus(for: .video) {
|
||||
case .notDetermined:
|
||||
AVCaptureDevice.requestAccess(for: .video) { [weak self] granted in
|
||||
if granted {
|
||||
self?.setupCaptureOnBackground(previewHost: previewHost)
|
||||
} else {
|
||||
DispatchQueue.main.async {
|
||||
self?.showError("Camera permission denied")
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
case .denied, .restricted:
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
self?.showError("Camera permission denied")
|
||||
}
|
||||
return
|
||||
case .authorized:
|
||||
break
|
||||
@unknown default:
|
||||
break
|
||||
}
|
||||
|
||||
let session = AVCaptureSession()
|
||||
session.sessionPreset = .high
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user