File tree Expand file tree Collapse file tree 5 files changed +36
-9
lines changed Expand file tree Collapse file tree 5 files changed +36
-9
lines changed Original file line number Diff line number Diff line change 1
1
# Changelog
2
2
3
3
--------------------------------------------
4
+ [ 1.4.0] - 2024-04-09
5
+
6
+ * Fixed bug for RTCConfiguration convert.
7
+
4
8
[ 1.3.3] - 2024-04-09
5
9
6
10
* Fix DC data parse.
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import 'media_stream_impl.dart';
11
11
import 'navigator_impl.dart' ;
12
12
import 'rtc_peerconnection_impl.dart' ;
13
13
import 'rtc_rtp_capailities_imp.dart' ;
14
+ import 'utils.dart' ;
14
15
15
16
@JS ('RTCRtpSender' )
16
17
@anonymous
@@ -41,7 +42,7 @@ class RTCFactoryWeb extends RTCFactory {
41
42
],
42
43
};
43
44
final jsRtcPc = web.RTCPeerConnection (
44
- jsify ({...constr, ...configuration}) as web. RTCConfiguration );
45
+ convertRTCConfiguration ({...constr, ...configuration}));
45
46
final _peerConnectionId = base64Encode (jsRtcPc.toString ().codeUnits);
46
47
return RTCPeerConnectionWeb (_peerConnectionId, jsRtcPc);
47
48
}
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ import 'rtc_dtmf_sender_impl.dart';
15
15
import 'rtc_rtp_receiver_impl.dart' ;
16
16
import 'rtc_rtp_sender_impl.dart' ;
17
17
import 'rtc_rtp_transceiver_impl.dart' ;
18
+ import 'utils.dart' ;
18
19
19
20
extension on web.RTCDataChannelInit {
20
21
external set binaryType (String value);
@@ -263,13 +264,7 @@ class RTCPeerConnectionWeb extends RTCPeerConnection {
263
264
@override
264
265
Future <void > setConfiguration (Map <String , dynamic > configuration) {
265
266
_configuration.addAll (configuration);
266
-
267
- final object = jsutil.newObject ();
268
- for (var key in configuration.keys) {
269
- jsutil.setProperty (object, key, configuration[key]);
270
- }
271
-
272
- _jsPc.setConfiguration (object as web.RTCConfiguration );
267
+ _jsPc.setConfiguration (convertRTCConfiguration (configuration));
273
268
return Future .value ();
274
269
}
275
270
Original file line number Diff line number Diff line change
1
+ import 'dart:js_util' as jsutil;
1
2
import 'dart:math' ;
3
+
2
4
import 'package:web/web.dart' as web;
3
5
4
6
bool get isMobile {
@@ -25,3 +27,28 @@ String randomString(int length) {
25
27
}
26
28
return buf.toString ();
27
29
}
30
+
31
+ web.RTCConfiguration convertRTCConfiguration (
32
+ Map <String , dynamic > configuration) {
33
+ final object = jsutil.newObject ();
34
+ for (var key in configuration.keys) {
35
+ if (key == 'iceServers' ) {
36
+ final servers = configuration[key] as List <dynamic >;
37
+ final jsServers = < web.RTCIceServer > [];
38
+ for (var server in servers) {
39
+ var iceServer = web.RTCIceServer (urls: server['urls' ]);
40
+ if (server['username' ] != null ) {
41
+ iceServer.username = server['username' ];
42
+ }
43
+ if (server['credential' ] != null ) {
44
+ iceServer.credential = server['credential' ];
45
+ }
46
+ jsServers.add (iceServer);
47
+ }
48
+ jsutil.setProperty (object, key, jsServers);
49
+ } else {
50
+ jsutil.setProperty (object, key, configuration[key]);
51
+ }
52
+ }
53
+ return object as web.RTCConfiguration ;
54
+ }
Original file line number Diff line number Diff line change 1
1
name : dart_webrtc
2
2
description : Use the dart/js library to re-wrap the webrtc js interface of the browser, to adapted common browsers.
3
- version : 1.3.3
3
+ version : 1.4.0
4
4
homepage : https://github.com/flutter-webrtc/dart-webrtc
5
5
6
6
environment :
You can’t perform that action at this time.
0 commit comments