initCamera method

Future<void> initCamera()

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);
  }
}