create static method

Future<MediaStream?> create(
  1. StreamMode mode, {
  2. VideoParams? videoParams,
})

Implementation

static Future<MediaStream?> create(
  StreamMode mode, {
  VideoParams? videoParams,
}) async {
  if (_stream != null) await _stream!.dispose();
  _mode = mode;
  _videoParams = videoParams ?? VideoParams.middle;

  if (_mode == StreamMode.screen) {
    _stream = await navigator.mediaDevices.getDisplayMedia({
      "audio": true,
      "video": true,
    });
  } else {
    final video = _mode == StreamMode.audio
        ? false
        : {
            "width": _videoParams!.width,
            "height": _videoParams!.height,
            "frameRate": _videoParams!.frameRate,
            "facingMode": _mode == StreamMode.frontCamera ? "user" : null,
          };

    _stream = await navigator.mediaDevices.getUserMedia({
      "audio": true,
      "video": video,
    });
  }

  return _stream;
}