From e0df45630f1641ed8453d41fa25fdaba84db9d35 Mon Sep 17 00:00:00 2001 From: Ruben Rodriguez Date: Wed, 10 Mar 2021 15:47:43 -0500 Subject: [PATCH] Fix failure when no webcam is present --- front/src/WebRtc/MediaManager.ts | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/front/src/WebRtc/MediaManager.ts b/front/src/WebRtc/MediaManager.ts index 9e85c6a..27732ff 100644 --- a/front/src/WebRtc/MediaManager.ts +++ b/front/src/WebRtc/MediaManager.ts @@ -113,22 +113,24 @@ export class MediaManager { getCamera() { let promise = null; try { - promise = navigator.mediaDevices.getUserMedia(this.constraintsMedia) - .then((stream: MediaStream) => { - this.localStream = stream; - this.myCamVideo.srcObject = this.localStream; + promise = navigator.mediaDevices.enumerateDevices() + .then(devices => { + let cams = devices.filter(device => device.kind == "videoinput"); + if (cams.length == 0){ + this.constraintsMedia.video = false; + document.getElementsByClassName("btn-video")[0].style.display = "none"; + document.getElementById("div-myCamVideo").style.display = "none"; + } + return navigator.mediaDevices.getUserMedia(this.constraintsMedia).then((stream: MediaStream) => { + this.localStream = stream; + this.myCamVideo.srcObject = this.localStream; + return stream; + }).catch((err) => { + console.info(`error get media {video: ${this.constraintsMedia.video}},{audio: ${this.constraintsMedia.audio}}`,err); + this.localStream = null; + }) + }) - //TODO resize remote cam - /*console.log(this.localStream.getTracks()); - let videoMediaStreamTrack = this.localStream.getTracks().find((media : MediaStreamTrack) => media.kind === "video"); - let {width, height} = videoMediaStreamTrack.getSettings(); - console.info(`${width}x${height}`); // 6*/ - - return stream; - }).catch((err) => { - console.info(`error get media {video: ${this.constraintsMedia.video}},{audio: ${this.constraintsMedia.audio}}`,err); - this.localStream = null; - }); } catch (e) { promise = Promise.reject(false); } -- 2.25.1