diff --git a/lib/src/options.dart b/lib/src/options.dart index b0ac576..0ad042e 100644 --- a/lib/src/options.dart +++ b/lib/src/options.dart @@ -20,11 +20,16 @@ class ConnectOptions { /// defaults to true. final bool optimizeVideo; + /// Set this to false in case you would like to stop the track yourself. + /// defaults to true. + final bool stopLocalTrackOnUnpublish; + const ConnectOptions({ this.autoSubscribe = true, this.defaultVideoPublishOptions = const VideoPublishOptions(), this.defaultAudioPublishOptions = const AudioPublishOptions(), this.optimizeVideo = true, + this.stopLocalTrackOnUnpublish = true, }); } diff --git a/lib/src/participant/local_participant.dart b/lib/src/participant/local_participant.dart index 2053d35..d2c94a3 100644 --- a/lib/src/participant/local_participant.dart +++ b/lib/src/participant/local_participant.dart @@ -188,7 +188,9 @@ class LocalParticipant extends Participant { final track = pub.track; if (track != null) { - await track.stop(); + if (engine.connectOptions.stopLocalTrackOnUnpublish) { + await track.stop(); + } final sender = track.transceiver?.sender; if (sender != null) {