@@ -19,21 +19,29 @@ class RTCRtpSenderWeb extends RTCRtpSender {
19
19
bool _ownsTrack = false ;
20
20
21
21
@override
22
- Future <void > replaceTrack (MediaStreamTrack track) async {
22
+ Future <void > replaceTrack (MediaStreamTrack ? track) async {
23
23
try {
24
- var nativeTrack = track as MediaStreamTrackWeb ;
25
- jsutil.callMethod (_jsRtpSender, 'replaceTrack' , [nativeTrack.jsTrack]);
24
+ if (track != null ) {
25
+ var nativeTrack = track as MediaStreamTrackWeb ;
26
+ jsutil.callMethod (_jsRtpSender, 'replaceTrack' , [nativeTrack.jsTrack]);
27
+ } else {
28
+ jsutil.callMethod (_jsRtpSender, 'replaceTrack' , [null ]);
29
+ }
26
30
} on Exception catch (e) {
27
31
throw 'Unable to RTCRtpSender::replaceTrack: ${e .toString ()}' ;
28
32
}
29
33
}
30
34
31
35
@override
32
- Future <void > setTrack (MediaStreamTrack track,
36
+ Future <void > setTrack (MediaStreamTrack ? track,
33
37
{bool takeOwnership = true }) async {
34
38
try {
35
- var nativeTrack = track as MediaStreamTrackWeb ;
36
- jsutil.callMethod (_jsRtpSender, 'replaceTrack' , [nativeTrack.jsTrack]);
39
+ if (track != null ) {
40
+ var nativeTrack = track as MediaStreamTrackWeb ;
41
+ jsutil.callMethod (_jsRtpSender, 'setTrack' , [nativeTrack.jsTrack]);
42
+ } else {
43
+ jsutil.callMethod (_jsRtpSender, 'setTrack' , [null ]);
44
+ }
37
45
} on Exception catch (e) {
38
46
throw 'Unable to RTCRtpSender::setTrack: ${e .toString ()}' ;
39
47
}
0 commit comments