More strict fixes
authorDavid Négrier <d.negrier@thecodingmachine.com>
Wed, 3 Jun 2020 20:57:00 +0000 (22:57 +0200)
committerDavid Négrier <d.negrier@thecodingmachine.com>
Thu, 4 Jun 2020 16:56:22 +0000 (18:56 +0200)
front/src/WebRtc/MediaManager.ts
front/src/WebRtc/SimplePeer.ts

index a80cb6afd55119b3f1807567d4cc3125ec06cd2c..bb3f0cb942b43ee97bd10de67e5b93d18b3f2233 100644 (file)
@@ -248,7 +248,7 @@ export class MediaManager {
     }
 
     private getElementByIdOrFail<T extends HTMLElement>(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+"'");
         }
index 68925e9caa59fcdccf60fac2cc53d789c2cf6f37..2af0be277f768de5d55b9b9ccd66d069a1768525 100644 (file)
@@ -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);
         }