Skip to content

Commit 7c11f62

Browse files
authored
Merge pull request #45 from flutter-webrtc/release/1.5.0
fix: MediaStreamTrack.getSettings.
2 parents 937f43c + 1047d10 commit 7c11f62

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Changelog
22

33
--------------------------------------------
4+
[1.4.7] - 2024-07-12
5+
6+
* fix: MediaStreamTrack.getSettings.
7+
8+
[1.4.6+hotfix.2] - 2024-06-07
9+
410
[1.4.6+hotfix.1] - 2024-06-07
511

612
* Wider version dependencies for js/http.

lib/src/media_stream_track_impl.dart

+25-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import 'dart:typed_data';
66
import 'package:web/web.dart' as web;
77
import 'package:webrtc_interface/webrtc_interface.dart';
88

9+
import 'utils.dart';
10+
911
class 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

pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: dart_webrtc
22
description: Use the dart/js library to re-wrap the webrtc js interface of the browser, to adapted common browsers.
3-
version: 1.4.6+hotfix.1
3+
version: 1.4.7
44
homepage: https://github.com/flutter-webrtc/dart-webrtc
55

66
environment:

0 commit comments

Comments
 (0)