setCamera method

Future<void> setCamera({
  1. CameraDescription? cameraDescription,
})

Implementation

Future<void> setCamera({CameraDescription? cameraDescription}) async {
  // If a camera controller has already been initialized, dispose it.
  if (widget._controller.cameraController != null) {
    await widget._controller.cameraController!.dispose();
    widget._controller.cameraController = null;
  }

  CameraDescription targetCamera = cameraDescription ?? cameras[0];

  widget._controller.cameraController = CameraController(
    targetCamera,
    kIsWeb? ResolutionPreset.high : ResolutionPreset.veryHigh,
    enableAudio: widget._controller.enableMicrophone,
  );

  try {
    await widget._controller.cameraController!.initialize();
    if (!mounted) return;
    setState(() {});
  } catch (e) {
    // Handle camera initialization errors, e.g., log them or show a user-friendly message.
    debugPrint("Camera initialization error: $e");
  }
}