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