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) {
|
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()
|
let session = AVCaptureSession()
|
||||||
session.sessionPreset = .high
|
session.sessionPreset = .high
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user