diff --git a/front/src/WebRtc/MediaManager.ts b/front/src/WebRtc/MediaManager.ts index a80cb6af..bb3f0cb9 100644 --- a/front/src/WebRtc/MediaManager.ts +++ b/front/src/WebRtc/MediaManager.ts @@ -248,7 +248,7 @@ export class MediaManager { } private getElementByIdOrFail(id: string): T { - let elem = document.getElementById("activeCam"); + let elem = document.getElementById(id); if (elem === null) { throw new Error("Cannot find HTML element with id '"+id+"'"); } diff --git a/front/src/WebRtc/SimplePeer.ts b/front/src/WebRtc/SimplePeer.ts index 68925e9c..2af0be27 100644 --- a/front/src/WebRtc/SimplePeer.ts +++ b/front/src/WebRtc/SimplePeer.ts @@ -232,20 +232,25 @@ export class SimplePeer { private addMedia (userId : any = null) { try { let transceiver : any = null; - if(!this.MediaManager.localStream){ + let localStream: MediaStream|null = this.MediaManager.localStream; + let peer = this.PeerConnectionArray.get(userId); + if(localStream === null) { //send fake signal - if(!this.PeerConnectionArray.has(userId)){ + if(peer === undefined){ return; } - this.PeerConnectionArray.get(userId).write(new Buffer(JSON.stringify({ + peer.write(new Buffer(JSON.stringify({ type: "stream", stream: null }))); return; } - this.MediaManager.localStream.getTracks().forEach( - transceiver = (track: MediaStreamTrack) => this.PeerConnectionArray.get(userId).addTrack(track, this.MediaManager.localStream) - ) + if (peer === undefined) { + throw new Error('While adding media, cannot find user with ID '+userId); + } + for (const track of localStream.getTracks()) { + peer.addTrack(track, localStream); + } }catch (e) { console.error(`addMedia => addMedia => ${userId}`, e); }