Implementation
Future<void> unsubscribe() async {
if (!super.subscribed || !_subscriptionAllowed) {
logger.fine('ignoring unsubscribe() request...');
return;
}
_sendUpdateSubscription(subscribed: false);
if (track != null) {
// Ideally, we should wait for WebRTC's onRemoveTrack event
// but it does not work reliably across platforms.
// So for now we will assume remove track succeeded.
[participant.events, participant.room.events].emit(TrackUnsubscribedEvent(
participant: participant,
track: track!,
publication: this,
));
// Simply set to null for now
await updateTrack(null);
}
}