setCameraFacing method

Future<void> setCameraFacing(
  1. CameraFacing targetFacing
)

Switches camera lens facing direction (mobile_scanner API compatibility).

Implementation

Future<void> setCameraFacing(CameraFacing targetFacing) async {
  if (_availableCameras.isEmpty) return;
  final targetIndex = _availableCameras.indexWhere((c) {
    if (targetFacing == CameraFacing.front) {
      return c.lensDirection == cam.CameraLensDirection.front;
    } else {
      return c.lensDirection == cam.CameraLensDirection.back;
    }
  });

  if (targetIndex != -1 && targetIndex != _selectedCameraIndex) {
    _selectedCameraIndex = targetIndex;
    if (_cameraController != null &&
        _cameraController!.value.isStreamingImages) {
      try {
        await _cameraController!.stopImageStream();
      } catch (_) {}
    }
    await _cameraController?.dispose();
    _cameraController = null;
    _isInitialized = false;
    _safeNotifyListeners();

    await initialize();
  }
}