@@ -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