initCamera method
Implementation
Future<void> initCamera() async {
try {
bool isInitialized = controller?.value.isInitialized ?? false;
if (isInitialized) {
return;
}
List<CameraDescription> cameras = await availableCameras();
bool isSelfie = widget.side.isSelfie;
int cameraIndex = isSelfie ? 1 : 0;
CameraDescription cameraDescription = cameras[cameraIndex];
controller = CameraController(
cameraDescription,
ResolutionPreset.max,
enableAudio: false,
imageFormatGroup: Platform.isAndroid
? ImageFormatGroup.nv21
: ImageFormatGroup.bgra8888,
);
await controller!.initialize();
if (!mounted) {
return;
}
await rotateCamera(controller!);
unawaited(controller?.setFlashMode(FlashMode.off));
unawaited(controller?.setFocusMode(FocusMode.auto));
if (!isSelfie) {
unawaited(controller?.setZoomLevel(_currentScale));
}
setState(() {});
} catch (error) {
widget.onError?.call(error);
}
}