@@ -59,21 +59,12 @@ class MediaDevicesWeb extends MediaDevices {
5959
6060 return MediaStreamWeb (jsStream, 'local' );
6161 } else {
62- final streamCompleter = Completer <web.MediaStream >();
63-
64- web.window.navigator.getUserMedia (
65- web.MediaStreamConstraints (
62+ final jsStream = await web.window.navigator.mediaDevices
63+ .getUserMedia (web.MediaStreamConstraints (
6664 audio: mediaConstraints['audio' ],
6765 video: mediaConstraints['video' ],
68- ),
69- (web.MediaStream stream) {
70- streamCompleter.complete (stream);
71- }.toJS,
72- (JSAny err) {
73- streamCompleter.completeError (err);
74- }.toJS);
75-
76- final jsStream = await streamCompleter.future;
66+ ))
67+ .toDart;
7768 return MediaStreamWeb (jsStream, 'local' );
7869 }
7970 } catch (e) {
@@ -93,19 +84,11 @@ class MediaDevicesWeb extends MediaDevices {
9384 jsutil.callMethod (mediaDevices, 'getDisplayMedia' , [arg]));
9485 return MediaStreamWeb (jsStream, 'local' );
9586 } else {
96- final streamCompleter = Completer <web.MediaStream >();
97-
98- web.window.navigator.getUserMedia (
99- web.MediaStreamConstraints (
87+ final jsStream = await web.window.navigator.mediaDevices
88+ .getUserMedia (web.MediaStreamConstraints (
10089 video: jsutil.jsify ({'mediaSource' : 'screen' }),
101- audio: mediaConstraints['audio' ] ?? false ),
102- (web.MediaStream stream) {
103- streamCompleter.complete (stream);
104- }.toJS,
105- (JSAny err) {
106- streamCompleter.completeError (err);
107- }.toJS);
108- final jsStream = await streamCompleter.future;
90+ audio: mediaConstraints['audio' ] ?? false ))
91+ .toDart;
10992 return MediaStreamWeb (jsStream, 'local' );
11093 }
11194 } catch (e) {
0 commit comments