diff --git a/js/app.js b/js/app.js index a2a89f1ec1a..9a5d5efe4da 100644 --- a/js/app.js +++ b/js/app.js @@ -401,12 +401,17 @@ uiChannel.trigger('document:click', event); }, - initAudioVideoSettings: function() { + initAudioVideoSettings: function(configuration) { if (OCA.SpreedMe.app.audioDisabled) { OCA.SpreedMe.app.disableAudio(); } - if (OCA.SpreedMe.app.videoDisabled) { + if (configuration.video !== false) { + if (OCA.SpreedMe.app.videoDisabled) { + OCA.SpreedMe.app.disableVideo(); + } + } else { + OCA.SpreedMe.app.videoWasEnabledAtLeastOnce = false; OCA.SpreedMe.app.disableVideo(); } }, diff --git a/js/simplewebrtc.js b/js/simplewebrtc.js index 144a4648a43..ac9a78d4d9a 100644 --- a/js/simplewebrtc.js +++ b/js/simplewebrtc.js @@ -5360,7 +5360,7 @@ self.emit('localStream', stream); } else { // Fallback for users without a camera - if (self.config.audioFallback && err.name === 'DevicesNotFoundError' && constraints.video !== false) { + if (self.config.audioFallback && (err.name === 'DevicesNotFoundError' || err.name === 'NotFoundError') && constraints.video !== false) { constraints.video = false; self.start(constraints, cb); return; @@ -14183,7 +14183,7 @@ if (err) { self.emit('localMediaError', err); } else { - self.emit('localMediaStarted'); + self.emit('localMediaStarted', self.config.media); attachMediaStream(stream, self.getLocalVideoContainer(), self.config.localVideo); } }); diff --git a/js/webrtc.js b/js/webrtc.js index 6b69fc46b64..06e8dd5cbca 100644 --- a/js/webrtc.js +++ b/js/webrtc.js @@ -117,6 +117,7 @@ var spreedMappingTable = []; } }, autoAdjustMic: false, + audioFallback: true, detectSpeakingEvents: true, connection: OCA.SpreedMe.XhrConnection, enableDataChannels: true, @@ -267,8 +268,8 @@ var spreedMappingTable = []; }); }); - OCA.SpreedMe.webrtc.on('localMediaStarted', function () { - OCA.SpreedMe.app.initAudioVideoSettings(); + OCA.SpreedMe.webrtc.on('localMediaStarted', function (configuration) { + OCA.SpreedMe.app.initAudioVideoSettings(configuration); }); OCA.SpreedMe.webrtc.on('localMediaError', function(error) {