diff --git a/app/src/RoomClient.js b/app/src/RoomClient.js index 762c0cf..e133a30 100644 --- a/app/src/RoomClient.js +++ b/app/src/RoomClient.js @@ -1083,8 +1083,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()'); @@ -1096,14 +1096,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();