create static method
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;
}