@@ -163,17 +163,17 @@ static FlashMode getFlashModeForString(NSString *mode) {
163
163
}
164
164
165
165
static AVCaptureFlashMode getAVCaptureFlashModeForFlashMode (FlashMode mode) {
166
- switch (mode) {
167
- case FlashModeOff:
168
- return AVCaptureFlashModeOff;
169
- case FlashModeAuto:
170
- return AVCaptureFlashModeAuto;
171
- case FlashModeAlways:
172
- return AVCaptureFlashModeOn;
173
- case FlashModeTorch:
174
- default :
175
- return -1 ;
176
- }
166
+ switch (mode) {
167
+ case FlashModeOff:
168
+ return AVCaptureFlashModeOff;
169
+ case FlashModeAuto:
170
+ return AVCaptureFlashModeAuto;
171
+ case FlashModeAlways:
172
+ return AVCaptureFlashModeOn;
173
+ case FlashModeTorch:
174
+ default :
175
+ return -1 ;
176
+ }
177
177
}
178
178
179
179
// Mirrors ExposureMode in camera.dart
@@ -372,6 +372,7 @@ - (void)captureToFile:(FlutterResult)result API_AVAILABLE(ios(10)) {
372
372
[settings setHighResolutionPhotoEnabled: YES ];
373
373
}
374
374
375
+
375
376
AVCaptureFlashMode avFlashMode = getAVCaptureFlashModeForFlashMode (_flashMode);
376
377
if (avFlashMode != -1 ) {
377
378
[settings setFlashMode: avFlashMode];
@@ -773,6 +774,7 @@ - (void)setFlashModeWithResult:(FlutterResult)result mode:(NSString *)modeStr {
773
774
result (getFlutterError (e));
774
775
return ;
775
776
}
777
+
776
778
if (mode == FlashModeTorch) {
777
779
if (!_captureDevice.hasTorch ) {
778
780
result ([FlutterError errorWithCode: @" setFlashModeFailed"
@@ -793,26 +795,26 @@ - (void)setFlashModeWithResult:(FlutterResult)result mode:(NSString *)modeStr {
793
795
}
794
796
}
795
797
else {
796
- if (!_captureDevice.hasFlash ) {
797
- result ([FlutterError errorWithCode: @" setFlashModeFailed"
798
- message: @" Device does not have flash capabilities"
799
- details: nil ]);
800
- return ;
801
- }
802
- AVCaptureFlashMode avFlashMode = getAVCaptureFlashModeForFlashMode (mode);
803
- if (![_capturePhotoOutput.supportedFlashModes
804
- containsObject: [NSNumber numberWithInt: ((int )avFlashMode)]]) {
805
- result ([FlutterError errorWithCode: @" setFlashModeFailed"
806
- message: @" Device does not support this specific flash mode"
807
- details: nil ]);
808
- return ;
809
- }
810
- if (_captureDevice.torchMode != AVCaptureTorchModeOff) {
811
- [_captureDevice lockForConfiguration: nil ];
812
- [_captureDevice setTorchMode: AVCaptureTorchModeOff];
813
- [_captureDevice unlockForConfiguration ];
814
- }
798
+ if (!_captureDevice.hasFlash ) {
799
+ result ([FlutterError errorWithCode: @" setFlashModeFailed"
800
+ message: @" Device does not have flash capabilities"
801
+ details: nil ]);
802
+ return ;
803
+ }
804
+ AVCaptureFlashMode avFlashMode = getAVCaptureFlashModeForFlashMode (mode);
805
+ if (![_capturePhotoOutput.supportedFlashModes
806
+ containsObject: [NSNumber numberWithInt: ((int )avFlashMode)]]) {
807
+ result ([FlutterError errorWithCode: @" setFlashModeFailed"
808
+ message: @" Device does not support this specific flash mode"
809
+ details: nil ]);
810
+ return ;
811
+ }
812
+ if (_captureDevice.torchMode != AVCaptureTorchModeOff) {
813
+ [_captureDevice lockForConfiguration: nil ];
814
+ [_captureDevice setTorchMode: AVCaptureTorchModeOff];
815
+ [_captureDevice unlockForConfiguration ];
815
816
}
817
+ }
816
818
_flashMode = mode;
817
819
result (nil );
818
820
}
@@ -1003,11 +1005,11 @@ - (BOOL)setupWriterForPath:(NSString *)path {
1003
1005
[_audioOutput setSampleBufferDelegate: self queue: _dispatchQueue];
1004
1006
}
1005
1007
1006
- if (_flashMode == FlashModeTorch) {
1007
- [self .captureDevice lockForConfiguration: nil ];
1008
- [self .captureDevice setTorchMode: AVCaptureTorchModeOn];
1009
- [self .captureDevice unlockForConfiguration ];
1010
- }
1008
+ if (_flashMode == FlashModeTorch) {
1009
+ [self .captureDevice lockForConfiguration: nil ];
1010
+ [self .captureDevice setTorchMode: AVCaptureTorchModeOn];
1011
+ [self .captureDevice unlockForConfiguration ];
1012
+ }
1011
1013
1012
1014
[_videoWriter addInput: _videoWriterInput];
1013
1015
[_captureVideoOutput setSampleBufferDelegate: self queue: _dispatchQueue];
0 commit comments