@@ -15,7 +15,7 @@ extension CodeScannerView {
15
15
public class ScannerViewController : UIViewController , UINavigationControllerDelegate {
16
16
private let photoOutput = AVCapturePhotoOutput ( )
17
17
private var isCapturing = false
18
- private var handler : ( ( UIImage ) -> Void ) ?
18
+ private var handler : ( ( UIImage ? ) -> Void ) ?
19
19
var parentView : CodeScannerView !
20
20
var codesFound = Set < String > ( )
21
21
var didFinishScanning = false
@@ -438,12 +438,7 @@ extension CodeScannerView.ScannerViewController: AVCaptureMetadataOutputObjectsD
438
438
if let metadataObject = metadataObjects. first {
439
439
guard let readableObject = metadataObject as? AVMetadataMachineReadableCodeObject else { return }
440
440
guard let stringValue = readableObject. stringValue else { return }
441
-
442
- guard didFinishScanning == false else { return }
443
-
444
- let photoSettings = AVCapturePhotoSettings ( )
445
- guard !isCapturing else { return }
446
- isCapturing = true
441
+ guard !didFinishScanning && !isCapturing else { return }
447
442
448
443
handler = { [ self ] image in
449
444
let result = ScanResult ( string: stringValue, type: readableObject. type, image: image, corners: readableObject. corners)
@@ -472,7 +467,13 @@ extension CodeScannerView.ScannerViewController: AVCaptureMetadataOutputObjectsD
472
467
}
473
468
}
474
469
}
475
- photoOutput. capturePhoto ( with: photoSettings, delegate: self )
470
+
471
+ if parentView. requirePhotoOutput {
472
+ isCapturing = true
473
+ photoOutput. capturePhoto ( with: AVCapturePhotoSettings ( ) , delegate: self )
474
+ } else {
475
+ handler ? ( nil )
476
+ }
476
477
}
477
478
}
478
479
}
0 commit comments