@@ -6,6 +6,8 @@ import 'dart:typed_data';
6
6
import 'package:web/web.dart' as web;
7
7
import 'package:webrtc_interface/webrtc_interface.dart' ;
8
8
9
+ import 'utils.dart' ;
10
+
9
11
class MediaStreamTrackWeb extends MediaStreamTrack {
10
12
MediaStreamTrackWeb (this .jsTrack) {
11
13
jsTrack.addEventListener ('ended' , ((event) => onEnded? .call ()).toJS);
@@ -64,7 +66,29 @@ class MediaStreamTrackWeb extends MediaStreamTrack {
64
66
65
67
@override
66
68
Map <String , dynamic > getSettings () {
67
- return jsTrack.getSettings () as Map <String , dynamic >;
69
+ var settings = jsTrack.getSettings ();
70
+ var _converted = < String , dynamic > {};
71
+ if (kind == 'audio' ) {
72
+ _converted['sampleRate' ] = settings.sampleRate;
73
+ _converted['sampleSize' ] = settings.sampleSize;
74
+ _converted['echoCancellation' ] = settings.echoCancellation;
75
+ _converted['autoGainControl' ] = settings.autoGainControl;
76
+ _converted['noiseSuppression' ] = settings.noiseSuppression;
77
+ _converted['latency' ] = settings.latency;
78
+ _converted['channelCount' ] = settings.channelCount;
79
+ } else {
80
+ _converted['width' ] = settings.width;
81
+ _converted['height' ] = settings.height;
82
+ _converted['aspectRatio' ] = settings.aspectRatio;
83
+ _converted['frameRate' ] = settings.frameRate;
84
+ if (isMobile) {
85
+ _converted['facingMode' ] = settings.facingMode;
86
+ }
87
+ _converted['resizeMode' ] = settings.resizeMode;
88
+ }
89
+ _converted['deviceId' ] = settings.deviceId;
90
+ _converted['groupId' ] = settings.groupId;
91
+ return _converted;
68
92
}
69
93
70
94
@override
0 commit comments