@@ -59,21 +59,12 @@ class MediaDevicesWeb extends MediaDevices {
59
59
60
60
return MediaStreamWeb (jsStream, 'local' );
61
61
} 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 (
66
64
audio: mediaConstraints['audio' ],
67
65
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;
77
68
return MediaStreamWeb (jsStream, 'local' );
78
69
}
79
70
} catch (e) {
@@ -93,19 +84,11 @@ class MediaDevicesWeb extends MediaDevices {
93
84
jsutil.callMethod (mediaDevices, 'getDisplayMedia' , [arg]));
94
85
return MediaStreamWeb (jsStream, 'local' );
95
86
} 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 (
100
89
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;
109
92
return MediaStreamWeb (jsStream, 'local' );
110
93
}
111
94
} catch (e) {
0 commit comments