8000 Fix .ownerTag not defined for web. · flutter-webrtc/flutter-webrtc@6dc377b · GitHub
[go: up one dir, main page]

Skip to content

Commit 6dc377b

Browse files
committed
Fix .ownerTag not defined for web.
1 parent 3751bcf commit 6dc377b

6 files changed

+19
-13
lines changed

lib/media_stream.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ class MediaStream {
1010
List<MediaStreamTrack> _audioTracks = new List<MediaStreamTrack>();
1111
List<MediaStreamTrack> _videoTracks = new List<MediaStreamTrack>();
1212
MediaStream(this._streamId, this._ownerTag);
13-
1413
String get ownerTag => _ownerTag;
1514

1615
void setMediaTracks(List<dynamic> audioTracks, List<dynamic> videoTracks) {

lib/web/get_user_media.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class navigator {
1818
final jsStream = await nav.getUserMedia(
1919
audio: mediaConstraints['audio'] ?? false,
2020
video: mediaConstraints['video'] ?? false);
21-
return MediaStream(jsStream);
21+
return MediaStream(jsStream, 'local');
2222
} catch (e) {
2323
throw 'Unable to getUserMedia: ${e.toString()}';
2424
}
@@ -34,13 +34,13 @@ class navigator {
3434
final HTML.MediaStream jsStream =
3535
await JSUtils.promiseToFuture<HTML.MediaStream>(
3636
JSUtils.callMethod(mediaDevices, 'getDisplayMedia', [arg]));
37-
return MediaStream(jsStream);
37+
return MediaStream(jsStream, 'local');
3838
} else {
3939
final HTML.MediaStream jsStream = await HTML.window.navigator
4040
.getUserMedia(
4141
video: {"mediaSource": 'screen'},
4242
audio: mediaConstraints['audio'] ?? false);
43-
return MediaStream(jsStream);
43+
return MediaStream(jsStream, 'local');
4444
}
4545
} catch (e) {
4646
throw 'Unable to getDisplayMedia: ${e.toString()}';

lib/web/media_stream.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ import 'media_stream_track.dart';
55

66
class MediaStream {
77
final HTML.MediaStream jsStream;
8-
MediaStream(this.jsStream);
8+
String _ownerTag;
9+
MediaStream(this.jsStream, this._ownerTag);
910

1011
Future<void> getMediaTracks() {
1112
return Future.value();
1213
}
1314

1415
String get id => jsStream.id;
16+
17+
String get ownerTag => _ownerTag;
18+
1519
Future<void> addTrack(MediaStreamTrack track, {bool addToNative = true}) {
1620
if (addToNative) {
1721
jsStream.addTrack(track.jsTrack);

lib/web/rtc_peerconnection.dart

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'dart:async';
2+
import 'dart:convert';
23
import 'dart:js' as JS;
34
import 'dart:js_util' as JSUtils;
45
import 'dart:html' as HTML;
@@ -29,6 +30,7 @@ typedef void RTCDataChannelCallback(RTCDataChannel channel);
2930
* PeerConnection
3031
*/
3132
class RTCPeerConnection {
33+
String _peerConnectionId;
3234
final HTML.RtcPeerConnection _jsPc;
3335
RTCSignalingState _signalingState;
3436
RTCIceGatheringState _iceGatheringState;
@@ -61,10 +63,11 @@ class RTCPeerConnection {
6163
RTCIceConnectionState get iceConnectionState => _iceConnectionState;
6264

6365
RTCPeerConnection(this._jsPc) {
66+
_peerConnectionId = base64Encode(this.toString().codeUnits);
6467
_jsPc.onAddStream.listen((mediaStreamEvent) {
6568
final jsStream = mediaStreamEvent.stream;
6669
print("onaddstream argument: $jsStream");
67-
final mediaStream = MediaStream(jsStream);
70+
final mediaStream = MediaStream(jsStream, _peerConnectionId);
6871
if (onAddStream != null) {
6972
onAddStream(mediaStream);
7073
}
@@ -115,7 +118,7 @@ class RTCPeerConnection {
115118
});
116119
_jsPc.onRemoveStream.listen((mediaStreamEvent) {
117120
final jsStream = mediaStreamEvent.stream;
118-
final mediaStream = MediaStream(jsStream);
121+
final mediaStream = MediaStream(jsStream, _peerConnectionId);
119122
if (onRemoveStream != null) {
120123
onRemoveStream(mediaStream);
121124
}
@@ -201,12 +204,14 @@ class RTCPeerConnection {
201204
return report;
202205
}
203206

204-
List<MediaStream> getLocalStreams() =>
205-
_jsPc.getLocalStreams().map((jsStream) => MediaStream(jsStream)).toList();
207+
List<MediaStream> getLocalStreams() => _jsPc
208+
.getLocalStreams()
209+
.map((jsStream) => MediaStream(jsStream, 'local'))
210+
.toList();
206211

207212
List<MediaStream> getRemoteStreams() => _jsPc
208213
.getRemoteStreams()
209-
.map((jsStream) => MediaStream(jsStream))
214+
.map((jsStream) => MediaStream(jsStream, _peerConnectionId))
210215
.toList();
211216

212217
Future<RTCDataChannel> createDataChannel(

lib/web/rtc_peerconnection_factory.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ Future<RTCPeerConnection> createPeerConnection(
2121

2222
Future<MediaStream> createLocalMediaStream(String label) async {
2323
final jsMs = HTML.MediaStream();
24-
return new MediaStream(jsMs);
24+
return new MediaStream(jsMs, 'local');
2525
}

lib/web/rtc_video_view.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ class RTCVideoRenderer {
2020
VideoRotationChangeCallback onVideoRotationChanged;
2121
dynamic onFirstFrameRendered;
2222
var isFirstFrameRendered = false;
23-
2423
dynamic onStateChanged;
25-
2624
HtmlElementView htmlElementView;
2725
HTML.VideoElement _htmlVideoElement;
2826

0 commit comments

Comments
 (0)
0