@@ -32,19 +32,12 @@ class MediaDevicesWeb extends MediaDevices {
32
32
33
33
return MediaStreamWeb (jsStream, 'local' );
34
34
} 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 (
39
37
audio: mediaConstraints['audio' ],
40
38
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;
48
41
return MediaStreamWeb (jsStream, 'local' );
49
42
}
50
43
} catch (e) {
@@ -64,19 +57,11 @@ class MediaDevicesWeb extends MediaDevices {
64
57
jsutil.callMethod (mediaDevices, 'getDisplayMedia' , [arg]));
65
58
return MediaStreamWeb (jsStream, 'local' );
66
59
} 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 (
71
62
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;
80
65
return MediaStreamWeb (jsStream, 'local' );
81
66
}
82
67
} catch (e) {
0 commit comments