@@ -18,9 +18,12 @@ class RTCRtpSenderNative extends RTCRtpSender {
18
18
19
19
factory RTCRtpSenderNative .fromMap (Map <dynamic , dynamic > map,
20
20
{required String peerConnectionId}) {
21
+ Map <dynamic , dynamic > trackMap = map['track' ];
21
22
return RTCRtpSenderNative (
22
23
map['senderId' ],
23
- MediaStreamTrackNative .fromMap (map['track' ]),
24
+ (trackMap.isNotEmpty)
25
+ ? MediaStreamTrackNative .fromMap (map['track' ])
26
+ : null ,
24
27
RTCDTMFSenderNative (peerConnectionId, map['senderId' ]),
25
28
RTCRtpParameters .fromMap (map['rtpParameters' ]),
26
29
map['ownsTrack' ],
@@ -38,18 +41,18 @@ class RTCRtpSenderNative extends RTCRtpSender {
38
41
final MethodChannel _channel = WebRTC .methodChannel ();
39
42
String _peerConnectionId;
40
43
String _id;
41
- MediaStreamTrack _track;
44
+ MediaStreamTrack ? _track;
42
45
RTCDTMFSender _dtmf;
43
46
RTCRtpParameters _parameters;
44
47
bool _ownsTrack = false ;
45
48
46
49
@override
47
50
Future <List <StatsReport >> getStats () async {
48
51
try {
49
- final response = await _channel. invokeMethod < Map < dynamic , dynamic >>(
50
- 'getStats' , < String , dynamic > {
52
+ final response = await _channel
53
+ . invokeMethod < Map < dynamic , dynamic >>( 'getStats' , < String , dynamic > {
51
54
'peerConnectionId' : _peerConnectionId,
52
- 'track' : track.id
55
+ if (track != null ) 'track' : track! .id,
53
56
});
54
57
var stats = < StatsReport > [];
55
58
if (response != null ) {
@@ -113,7 +116,7 @@ class RTCRtpSenderNative extends RTCRtpSender {
113
116
RTCRtpParameters get parameters => _parameters;
114
117
115
118
@override
116
- MediaStreamTrack get track => _track;
119
+ MediaStreamTrack ? get track => _track;
117
120
118
121
@override
119
122
String get senderId => _id;
0 commit comments