It is getting very slow to take a picture with Android. It was well working before. I have only updated Flutter and my librairies. I am using the last version of camera 0.10.5+2 (but it is the same issue with the previous ones).
My Code
void initState() {
super.initState();
_cameraController = CameraController(widget.camera, ResolutionPreset.medium, enableAudio: false,);
_cameraController.setFocusMode(FocusMode.locked);
_cameraController.setFlashMode(FlashMode.off);
_initializeControllerFuture = _cameraController.initialize();
}
Future<void> takePhoto({bool? oneShot}) async {
await _initializeControllerFuture;
XFile photo = await _cameraController.takePicture();
}
My Log
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_WAITING_FOCUS | afState: 2 | aeState: 2
This line above appear 50 times
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_WAITING_FOCUS | afState: 2 | aeState: 2
W/CameraCaptureCallback( 5282): Focus timeout, moving on with capture
I/Camera ( 5282): captureStillPicture
D/Camera ( 5282): Updating builder with feature: ExposureLockFeature
D/Camera ( 5282): Updating builder with feature: ExposurePointFeature
D/Camera ( 5282): Updating builder with feature: ZoomLevelFeature
D/Camera ( 5282): Updating builder with feature: AutoFocusFeature
D/Camera ( 5282): Updating builder with feature: NoiseReductionFeature
I/Camera ( 5282): updateNoiseReduction | currentSetting: fast
D/Camera ( 5282): Updating builder with feature: FocusPointFeature
D/Camera ( 5282): Updating builder with feature: ResolutionFeature
D/Camera ( 5282): Updating builder with feature: SensorOrientationFeature
D/Camera ( 5282): Updating builder with feature: FlashFeature
D/Camera ( 5282): Updating builder with feature: ExposureOffsetFeature
D/Camera ( 5282): Updating builder with feature: FpsRangeFeature
I/Camera ( 5282): sending capture request
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
I/Camera ( 5282): unlockAutoFocus
I/Camera ( 5282): refreshPreviewCaptureSession
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
D/CameraCaptureCallback( 5282): CameraCaptureCallback | state: STATE_CAPTURING | afState: 2 | aeState: 2
I/Camera ( 5282): onImageAvailable
I have found the solution here : https://github.com/flutter/flutter/issues/84957
I have used those lines of code :
await _controller!.setFocusMode(FocusMode.locked);
await _controller!.setExposureMode(ExposureMode.locked);
final picture = await _controller!.takePicture();
await _controller!.setFocusMode(FocusMode.auto);
await _controller!.setExposureMode(ExposureMode.auto);