diff --git a/lib/src/voip/call.dart b/lib/src/voip/call.dart index 5b83a731..326cb9f3 100644 --- a/lib/src/voip/call.dart +++ b/lib/src/voip/call.dart @@ -82,13 +82,16 @@ class WrappedMediaStream { Future dispose() async { renderer.srcObject = null; - if (isLocal() && stream != null && isWeb) { - for (final element in stream!.getTracks()) { - await element.stop(); + if (isLocal()) { + if (isWeb) { + await stream?.dispose(); + } else { + if (!isGroupCall) { + await stream?.dispose(); + } } - await stream?.dispose(); - stream = null; } + stream = null; await renderer.dispose(); } diff --git a/lib/src/voip/group_call.dart b/lib/src/voip/group_call.dart index 27fb8c98..f0ab7703 100644 --- a/lib/src/voip/group_call.dart +++ b/lib/src/voip/group_call.dart @@ -1093,12 +1093,10 @@ class GroupCall { onStreamRemoved.add(stream); - stream.stream!.getTracks().forEach((element) { - element.stop(); - }); - - stream.stream!.dispose(); - stream.disposeRenderer(); + if (stream.isLocal()) { + stream?.disposeRenderer(); + stream?.stream?.dispose(); + } onGroupCallEvent.add(GroupCallEvent.UserMediaStreamsChanged); @@ -1188,12 +1186,6 @@ class GroupCall { onStreamRemoved.add(stream); - if (voip.delegate.isWeb) { - stream.stream!.getTracks().forEach((element) { - element.stop(); - }); - } - stream.dispose(); onGroupCallEvent.add(GroupCallEvent.ScreenshareStreamsChanged);