diff --git a/modules/camera/lib/camera.dart b/modules/camera/lib/camera.dart index f5ec79644..7ef681c69 100644 --- a/modules/camera/lib/camera.dart +++ b/modules/camera/lib/camera.dart @@ -351,6 +351,12 @@ class CameraState extends EWidgetState with WidgetsBindingObserver { } Future 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(