8000 FIX - Unused import · wer-mathurin/flutter-webrtc@17d5f33 · GitHub 8000
[go: up one dir, main page]

Skip to content

Commit 17d5f33

Browse files
committed
FIX - Unused import
Add local and remote stream maps FIX - Remove unused variable ADD - Configuration map Move logic of peerconnectionId to factory
1 parent c50255a commit 17d5f33

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

lib/web/rtc_peerconnection.dart

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'rtc_data_channel.dart';
1010
import 'rtc_ice_candidate.dart';
1111
import 'rtc_session_description.dart';
1212
import '../rtc_stats_report.dart';
13-
import '../utils.dart';
1413
import '../enums.dart';
1514

1615
/*
@@ -30,12 +29,15 @@ typedef void RTCDataChannelCallback(RTCDataChannel channel);
3029
* PeerConnection
3130
*/
3231
class RTCPeerConnection {
33-
String _peerConnectionId;
32+
final String _peerConnectionId;
3433
final HTML.RtcPeerConnection _jsPc;
34+
final _localStreams = Map<String, MediaStream>();
35+
final _remoteStreams = Map<String, MediaStream>();
36+
final _configuration = Map<String, dynamic>();
37+
3538
RTCSignalingState _signalingState;
3639
RTCIceGatheringState _iceGatheringState;
3740
RTCIceConnectionState _iceConnectionState;
38-
MediaStream _mediaStream;
3941

4042
// public: delegate
4143
SignalingStateCallback onSignalingState;
@@ -49,43 +51,35 @@ class RTCPeerConnection {
4951
RTCDataChannelCallback onDataChannel;
5052
dynamic onRenegotiationNeeded;
5153

52-
final Map<String, dynamic> defaultSdpConstraints = {
53-
"mandatory": {
54-
"OfferToReceiveAudio": true,
55-
"OfferToReceiveVideo": true,
56-
},
57-
"optional": [],
58-
};
59-
6054
RTCSignalingState get signalingState => _signalingState;
6155

6256
RTCIceGatheringState get iceGatheringState => _iceGatheringState;
6357

6458
RTCIceConnectionState get iceConnectionState => _iceConnectionState;
6559

66-
RTCPeerConnection(this._jsPc) {
67-
_peerConnectionId = base64Encode(this.toString().codeUnits);
68-
60+
RTCPeerConnection(this._peerConnectionId, this._jsPc) {
6961
_jsPc.onAddStream.listen((mediaStreamEvent) {
7062
final jsStream = mediaStreamEvent.stream;
71-
this._mediaStream = MediaStream(jsStream, _peerConnectionId);
72-
onAddStream?.call(_mediaStream);
63+
final _remoteStream = _remoteStreams.putIfAbsent(
64+
jsStream.id, () => MediaStream(jsStream, _peerConnectionId));
65+
66+
onAddStream?.call(_remoteStream);
7367

7468
jsStream.onAddTrack.listen((mediaStreamTrackEvent) {
7569
final jsTrack =
7670
(mediaStreamTrackEvent as HTML.MediaStreamTrackEvent).track;
77-
final MediaStreamTrack track = MediaStreamTrack(jsTrack);
78-
_mediaStream.addTrack(track, addToNative: false).then((_) {
79-
onAddTrack?.call(_mediaStream, track);
71+
final track = MediaStreamTrack(jsTrack);
72+
_remoteStream.addTrack(track, addToNative: false).then((_) {
73+
onAddTrack?.call(_remoteStream, track);
8074
});
8175
});
8276

8377
jsStream.onRemoveTrack.listen((mediaStreamTrackEvent) {
8478
final jsTrack =
8579
(mediaStreamTrackEvent as HTML.MediaStreamTrackEvent).track;
86-
final MediaStreamTrack track = MediaStreamTrack(jsTrack);
87-
_mediaStream.removeTrack(track, removeFromNative: false).then((_) {
88-
onRemoveTrack?.call(_mediaStream, track);
80+
final track = MediaStreamTrack(jsTrack);
81+
_remoteStream.removeTrack(track, removeFromNative: false).then((_) {
82+
onRemoveTrack?.call(_remoteStream, track);
8983
});
9084
});
9185
});
@@ -114,7 +108,8 @@ class RTCPeerConnection {
114108
});
115109

116110
_jsPc.onRemoveStream.listen((mediaStreamEvent) {
117-
onRemoveStream?.call(_mediaStream);
111+
final _remoteStream = _remoteStreams.remove(mediaStreamEvent.stream.id);
112+
onRemoveStream?.call(_remoteStream);
118113
});
119114

120115
_jsPc.onSignalingStateChange.listen((_) {
@@ -136,10 +131,11 @@ class RTCPeerConnection {
136131
return Future.value();
137132
}
138133

139-
Map<String, dynamic> get getConfiguration =>
140-
throw "Not implemented"; // TODO(rostopira)
134+
Map<String, dynamic> get getConfiguration => _configuration;
141135

142136
Future<void> setConfiguration(Map<String, dynamic> configuration) {
137+
this._configuration.addAll(configuration);
138+
143139
_jsPc.setConfiguration(configuration);
144140
return Future.value();
145141
}
@@ -157,11 +153,14 @@ class RTCPeerConnection {
157153
}
158154

159155
Future<void> addStream(MediaStream stream) {
156+
_localStreams.putIfAbsent(stream.jsStream.id,
157+
() => MediaStream(stream.jsStream, _peerConnectionId));
160158
_jsPc.addStream(stream.jsStream);
161159
return Future.value();
162160
}
163161

164162
Future<void> removeStream(MediaStream stream) async {
163+
_localStreams.remove(stream.jsStream.id);
165164
_jsPc.removeStream(stream.jsStream);
166165
return Future.value();
167166
}
@@ -199,12 +198,12 @@ class RTCPeerConnection {
199198

200199
List<MediaStream> getLocalStreams() => _jsPc
201200
.getLocalStreams()
202-
.map((jsStream) => MediaStream(jsStream, 'local'))
201+
.map((jsStream) => _localStreams[jsStream.id])
203202
.toList();
204203

205204
List<MediaStream> getRemoteStreams() => _jsPc
206205
.getRemoteStreams()
207-
.map((jsStream) => MediaStream(jsStream, _peerConnectionId))
206+
.map((jsStream) => _remoteStreams[jsStream.id])
208207
.toList();
209208

210209
Future<RTCDataChannel> createDataChannel(

lib/web/rtc_peerconnection_factory.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'dart:async';
2+
import 'dart:convert';
23
import 'dart:html' as HTML;
34

45
import 'rtc_peerconnection.dart';
@@ -16,7 +17,8 @@ Future<RTCPeerConnection> createPeerConnection(
1617
],
1718
};
1819
final jsRtcPc = HTML.RtcPeerConnection(configuration, constr);
19-
return RTCPeerConnection(jsRtcPc);
20+
final _peerConnectionId = base64Encode(jsRtcPc.toString().codeUnits);
21+
return RTCPeerConnection(_peerConnectionId, jsRtcPc);
2022
}
2123

2224
Future<MediaStream> createLocalMediaStream(String label) async {

0 commit comments

Comments
 (0)
0