stopImageStream method Null safety

Future<void> stopImageStream()

Stop streaming images from platform camera.

Throws a CameraException if image streaming was not started or video recording was started.

The stopImageStream method is only available on Android and iOS (other platforms won't be supported in current setup).

Implementation

Future<void> stopImageStream() async {
  assert(defaultTargetPlatform == TargetPlatform.android ||
      defaultTargetPlatform == TargetPlatform.iOS);
  _throwIfNotInitialized('stopImageStream');
  if (value.isRecordingVideo) {
    throw CameraException(
      'A video recording is already started.',
      'stopImageStream was called while a video is being recorded.',
    );
  }
  if (!value.isStreamingImages) {
    throw CameraException(
      'No camera is streaming images',
      'stopImageStream was called when no camera is streaming images.',
    );
  }

  try {
    value = value.copyWith(isStreamingImages: false);
    await _imageStreamSubscription?.cancel();
    _imageStreamSubscription = null;
  } on PlatformException catch (e) {
    throw CameraException(e.code, e.message);
  }
}