From 12035847afb0233f21a09cf3e0cc013361222a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9sz=C3=A1ros=20Mih=C3=A1ly?= Date: Thu, 26 Mar 2020 21:59:49 +0100 Subject: [PATCH] Add some extra checks for video stream and track --- app/src/RoomClient.js | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/app/src/RoomClient.js b/app/src/RoomClient.js index 9b63866..d9f18fd 100644 --- a/app/src/RoomClient.js +++ b/app/src/RoomClient.js @@ -1081,8 +1081,8 @@ export default class RoomClient logger.debug( 'changeWebcam() | new selected webcam [device:%o]', device); - - this._webcamProducer.track.stop(); + if (this._webcamProducer && this._webcamProducer.track) + this._webcamProducer.track.stop(); logger.debug('changeWebcam() | calling getUserMedia()'); @@ -1094,14 +1094,21 @@ export default class RoomClient ...VIDEO_CONSTRAINS[resolution] } }); - - const track = stream.getVideoTracks()[0]; - - await this._webcamProducer.replaceTrack({ track }); - - store.dispatch( - producerActions.setProducerTrack(this._webcamProducer.id, track)); - + if (stream){ + const track = stream.getVideoTracks()[0]; + if (track) { + await this._webcamProducer.replaceTrack({ track }); + + store.dispatch( + producerActions.setProducerTrack(this._webcamProducer.id, track)); + + } else { + logger.warn('getVideoTracks Error: First Video Track is null') + } + + } else { + logger.warn ('getUserMedia Error: Stream is null!') + } store.dispatch(settingsActions.setSelectedWebcamDevice(deviceId)); await this._updateWebcams();