call dispose on pub and track

This commit is contained in:
Hiroshi Horie
2021-10-22 23:14:26 +09:00
parent 5efb199379
commit 6a43f3394c
4 changed files with 34 additions and 10 deletions
+6 -1
View File
@@ -157,7 +157,10 @@ class LocalParticipant extends Participant {
Future<void> unpublishTrack(String trackSid, {bool notify = true}) async {
logger.finer('Unpublish track sid: $trackSid, notify: $notify');
final pub = trackPublications.remove(trackSid);
if (pub is! LocalTrackPublication) return;
if (pub is! LocalTrackPublication) {
await pub?.dispose();
return;
}
final track = pub.track;
if (track != null) {
@@ -185,6 +188,8 @@ class LocalParticipant extends Participant {
publication: pub,
));
}
await pub.dispose();
}
/// Publish a new data payload to the room.
+10 -1
View File
@@ -158,7 +158,14 @@ class RemoteParticipant extends Participant {
Future<void> unpublishTrack(String trackSid, {bool notify = true}) async {
logger.finer('Unpublish track sid: $trackSid, notify: $notify');
final pub = trackPublications.remove(trackSid);
if (pub is! RemoteTrackPublication) return;
if (pub is! RemoteTrackPublication) {
// no publication exists for trackSid
// or publication is not RemoteTrackPublication
// logger.warning('pub is not RemoteTrackPublication');
await pub?.dispose();
return;
}
final track = pub.track;
// if has track
@@ -177,5 +184,7 @@ class RemoteParticipant extends Participant {
publication: pub,
));
}
await pub.dispose();
}
}