different streams never have the same id, even for same devices
This commit is contained in:
parent
2f08cd8984
commit
e9649ec7c2
2 changed files with 4 additions and 15 deletions
|
@ -40,8 +40,6 @@ export class LocalMedia {
|
|||
|
||||
/** @internal */
|
||||
replaceClone(oldClone: LocalMedia | undefined, oldOriginal: LocalMedia | undefined): LocalMedia {
|
||||
let userMedia;
|
||||
let screenShare;
|
||||
const cloneOrAdoptStream = (oldOriginalStream: Stream | undefined, oldCloneStream: Stream | undefined, newStream: Stream | undefined): Stream | undefined => {
|
||||
let stream;
|
||||
if (oldOriginalStream?.id === newStream?.id) {
|
||||
|
@ -63,16 +61,8 @@ export class LocalMedia {
|
|||
}
|
||||
|
||||
dispose() {
|
||||
this.stopExcept(undefined);
|
||||
}
|
||||
|
||||
stopExcept(newMedia: LocalMedia | undefined) {
|
||||
if(newMedia?.userMedia?.id !== this.userMedia?.id) {
|
||||
getStreamAudioTrack(this.userMedia)?.stop();
|
||||
getStreamVideoTrack(this.userMedia)?.stop();
|
||||
}
|
||||
if(newMedia?.screenShare?.id !== this.screenShare?.id) {
|
||||
getStreamVideoTrack(this.screenShare)?.stop();
|
||||
}
|
||||
getStreamAudioTrack(this.userMedia)?.stop();
|
||||
getStreamVideoTrack(this.userMedia)?.stop();
|
||||
getStreamVideoTrack(this.screenShare)?.stop();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -175,8 +175,7 @@ export class GroupCall extends EventEmitter<{change: never}> {
|
|||
await Promise.all(Array.from(this._members.values()).map(m => {
|
||||
return m.setMedia(localMedia, oldMedia);
|
||||
}));
|
||||
|
||||
oldMedia?.stopExcept(localMedia);
|
||||
oldMedia?.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue