startImageStream method

Future<void> startImageStream({
  1. required void onImageStream(
    1. CameraImage image,
    2. int sensorOrientation,
    3. DeviceOrientation deviceOrientation,
    4. CameraLensDirection cameraLensDirection,
    ),
})

Starts streaming the camera image data and triggers onImageStream every two seconds.

  • onImageStream is called with the camera image at regular intervals.

Implementation

Future<void> startImageStream({
  required void Function(
    CameraImage image,
    int sensorOrientation,
    DeviceOrientation deviceOrientation,
    CameraLensDirection cameraLensDirection,
  ) onImageStream,
}) async {
  if (cameraController == null) {
    log("unable to startImageStream, cameraController missing");
    return;
  }

  if (_isStreamingImage) {
    log("unable to startImageStream, already startImageStream");
    return;
  }

  cameraController?.startImageStream((image) {
    _isStreamingImage = true;

    if (_streamImageTimer != null) return;
    _streamImageTimer = Timer(const Duration(seconds: 2), () {
      onImageStream(
        image,
        _cameraDescription.sensorOrientation,
        cameraController?.value.deviceOrientation ?? DeviceOrientation.portraitUp,
        cameraLensDirection,
      );
      _streamImageTimer?.cancel();
      _streamImageTimer = null;
    });
  });
  log("successfully startImageStream");
}