@@ -32,19 +32,12 @@ class MediaDevicesWeb extends MediaDevices {
3232
3333 return MediaStreamWeb (jsStream, 'local' );
3434 } else {
35- final streamCompleter = Completer <web.MediaStream >();
36-
37- web.window.navigator.getUserMedia (
38- web.MediaStreamConstraints (
35+ final jsStream = await web.window.navigator.mediaDevices
36+ .getUserMedia (web.MediaStreamConstraints (
3937 audio: mediaConstraints['audio' ],
4038 video: mediaConstraints['video' ],
41- ),
42- (web.MediaStream stream) {}.toJS,
43- (JSAny err) {
44- streamCompleter.completeError (err);
45- }.toJS);
46-
47- final jsStream = await streamCompleter.future;
39+ ))
40+ .toDart;
4841 return MediaStreamWeb (jsStream, 'local' );
4942 }
5043 } catch (e) {
@@ -64,19 +57,11 @@ class MediaDevicesWeb extends MediaDevices {
6457 jsutil.callMethod (mediaDevices, 'getDisplayMedia' , [arg]));
6558 return MediaStreamWeb (jsStream, 'local' );
6659 } else {
67- final streamCompleter = Completer <web.MediaStream >();
68-
69- web.window.navigator.getUserMedia (
70- web.MediaStreamConstraints (
60+ final jsStream = await web.window.navigator.mediaDevices
61+ .getUserMedia (web.MediaStreamConstraints (
7162 video: jsutil.jsify ({'mediaSource' : 'screen' }),
72- audio: mediaConstraints['audio' ] ?? false ),
73- (web.MediaStream stream) {
74- streamCompleter.complete (stream);
75- }.toJS,
76- (JSAny err) {
77- streamCompleter.completeError (err);
78- }.toJS);
79- final jsStream = await streamCompleter.future;
63+ audio: mediaConstraints['audio' ] ?? false ))
64+ .toDart;
8065 return MediaStreamWeb (jsStream, 'local' );
8166 }
8267 } catch (e) {
0 commit comments