diff --git a/src/matrix/calls/LocalMedia.ts b/src/matrix/calls/LocalMedia.ts index 7a673ba9..b7a14a9a 100644 --- a/src/matrix/calls/LocalMedia.ts +++ b/src/matrix/calls/LocalMedia.ts @@ -28,22 +28,22 @@ export class LocalMedia { ) {} withUserMedia(stream: Stream) { - return new LocalMedia(stream, this.screenShare, this.dataChannelOptions); + return new LocalMedia(stream, this.screenShare?.clone(), this.dataChannelOptions); } withScreenShare(stream: Stream) { - return new LocalMedia(this.userMedia, stream, this.dataChannelOptions); + return new LocalMedia(this.userMedia?.clone(), stream, this.dataChannelOptions); } withDataChannel(options: RTCDataChannelInit): LocalMedia { - return new LocalMedia(this.userMedia, this.screenShare, options); + return new LocalMedia(this.userMedia?.clone(), this.screenShare?.clone(), options); } /** * Create an instance of LocalMedia without audio track (for user preview) */ asPreview(): LocalMedia { - const media = new LocalMedia(this.userMedia, this.screenShare, this.dataChannelOptions); + const media = this.clone(); const userMedia = media.userMedia; if (userMedia && userMedia.getVideoTracks().length > 0) { const audioTrack = getStreamAudioTrack(userMedia);