@@ -6,6 +6,8 @@ import 'dart:typed_data';
66import  'package:web/web.dart'  as  web;
77import  'package:webrtc_interface/webrtc_interface.dart' ;
88
9+ import  'utils.dart' ;
10+ 
911class  MediaStreamTrackWeb  extends  MediaStreamTrack  {
1012  MediaStreamTrackWeb (this .jsTrack) {
1113    jsTrack.addEventListener ('ended' , ((event) =>  onEnded? .call ()).toJS);
@@ -64,7 +66,29 @@ class MediaStreamTrackWeb extends MediaStreamTrack {
6466
6567  @override 
6668  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;
6892  }
6993
7094  @override 
0 commit comments