diff --git a/conference.js b/conference.js index 6693cf398c..d75b11ec60 100644 --- a/conference.js +++ b/conference.js @@ -663,7 +663,8 @@ export default { APP.desktopsharing.toggleScreenSharing(); }); - APP.UI.addListener(DSEvents.SWITCHING_DONE, (isSharingScreen) => { + APP.desktopsharing.addListener(DSEvents.SWITCHING_DONE, + (isSharingScreen) => { APP.UI.updateDesktopSharingButtons(isSharingScreen); }); @@ -675,22 +676,25 @@ export default { APP.desktopsharing.addListener(DSEvents.NEW_STREAM_CREATED, (track, callback) => { const localCallback = (newTrack) => { - if(!newTrack) + if(!newTrack || !newTrack.isLocal() || + newTrack !== localVideo) return; - if (newTrack.isLocal() && newTrack === localVideo) { - if(localVideo.isMuted() && - localVideo.videoType !== track.videoType) { - localVideo.mute(); - } - callback(); - room.off(ConferenceEvents.TRACK_ADDED, localCallback); + if(localVideo.isMuted() && + localVideo.videoType !== track.videoType) { + localVideo.mute(); } + callback(); + if(room) + room.off(ConferenceEvents.TRACK_ADDED, localCallback); }; - - room.on(ConferenceEvents.TRACK_ADDED, localCallback); + if(room) { + room.on(ConferenceEvents.TRACK_ADDED, localCallback); + } localVideo.stop(); localVideo = track; addTrack(track); + if(!room) + localCallback(); APP.UI.addLocalStream(track); } ); diff --git a/libs/lib-jitsi-meet.js b/libs/lib-jitsi-meet.js index 10d936168a..81c238870b 100644 --- a/libs/lib-jitsi-meet.js +++ b/libs/lib-jitsi-meet.js @@ -1376,7 +1376,8 @@ var LibJitsiMeet = { this._gumFailedHandler.forEach(function (handler) { handler(error); }); - Statistics.sendGetUserMediaFailed(error); + if(!this._gumFailedHandler.length) + Statistics.sendGetUserMediaFailed(error); if(error === JitsiTrackErrors.UNSUPPORTED_RESOLUTION) { var oldResolution = options.resolution || '360'; var newResolution = getLowerResolution(oldResolution); @@ -6589,7 +6590,7 @@ Statistics.prototype.getPeerSSRCAudioLevel = function (peerJid, ssrc) { * /modules/settings/Settings.js */ Statistics.prototype.startCallStats = function (session, settings) { - if(this.callStatsIntegrationEnabled) { + if(this.callStatsIntegrationEnabled && !this.callstats) { this.callstats = new CallStats(session, settings, this.options); } }