capture method

void capture()

Implementation

void capture() async {
  if (!canCapture()) return;
  File? file;
  if (modes[currentModeIndex] == CameraMode.video) {
    if (isRecording) {
      file = await stopVideoRecording();
    } else {
      await startVideoRecording();
    }
  } else {
    if (widget._controller.captureOverlay) {
      setState(() {
        isCropping = true;
      });
      try {
        file = await takeOverlayCapture();
      } on Exception catch (e) {
        print(e);
      } finally {
        setState(() {
          isCropping = false;
        });
      }
    } else {
      file = await takePicture();
    }
  }
  if (file == null) return;
  widget._controller.files.insert(0, file);
  widget._controller.currentFile = file;
  setState(() {});
  widget.onCapture?.call();

  if (widget._controller.instantPreview) {
    if (widget._controller.cameraController != null) {
      widget._controller.cameraController!.pausePreview();
    }
    setState(() {
      currentIndex = widget._controller.files.length;
      showPreviewPage = true;
    });
  }
}