This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new fdfda5d  [OPENMEETINGS-1649] error while enumerateDevices is handled
fdfda5d is described below

commit fdfda5d0b94877ee3613fa15a188f16ad83195ea
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Thu Oct 11 23:41:47 2018 +0700

    [OPENMEETINGS-1649] error while enumerateDevices is handled
---
 .../apache/openmeetings/web/room/raw-settings.js   | 25 ++++++++++++----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js
index 10e3824..546079a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js
@@ -322,10 +322,12 @@ var VideoSettings = (function() {
                el.append(OmUtil.tmpl('#settings-option-loading'));
                el.iconselectmenu('refresh');
        }
-       function _setDisabled(el) {
-               el.find('option').remove();
-               el.append(OmUtil.tmpl('#settings-option-disabled'));
-               el.iconselectmenu('refresh');
+       function _setDisabled(els) {
+               els.forEach(function(el) {
+                       el.find('option').remove();
+                       el.append(OmUtil.tmpl('#settings-option-disabled'));
+                       el.iconselectmenu('refresh');
+               });
        }
        function _setSelectedDevice(dev, devIdx) {
                let o = dev.find('option[value="' + devIdx + '"]');
@@ -335,9 +337,9 @@ var VideoSettings = (function() {
                o.prop('selected', true);
        }
        function _getDevConstraints(callback) {
+               const devCnts = {audio: false, video: false};
                navigator.mediaDevices.enumerateDevices()
                        .then(function(devices) {
-                               const devCnts = {audio: false, video: false};
                                devices.forEach(function(device) {
                                        if (DEV_AUDIO === device.kind) {
                                                devCnts.audio = true;
@@ -347,6 +349,10 @@ var VideoSettings = (function() {
                                });
                                callback(devCnts);
                        })
+                       .catch(function(err) {
+                               OmUtil.error(err);
+                               callback(devCnts);
+                       });
        }
        function _initDevices() {
                if (!navigator.mediaDevices || 
!navigator.mediaDevices.enumerateDevices) {
@@ -357,8 +363,7 @@ var VideoSettings = (function() {
                _setLoading(mic);
                _getDevConstraints(function(devCnts) {
                        if (!devCnts.audio && !devCnts.video) {
-                               _setDisabled(cam);
-                               _setDisabled(mic);
+                               _setDisabled([cam, mic]);
                                return;
                        }
                        navigator.mediaDevices.getUserMedia(devCnts)
@@ -377,8 +382,7 @@ var VideoSettings = (function() {
                                .then(function(devices) {
                                        let cCount = 0, mCount = 0;
                                        _load();
-                                       _setDisabled(cam);
-                                       _setDisabled(mic);
+                                       _setDisabled([cam, mic]);
                                        devices.forEach(function(device) {
                                                if (DEV_AUDIO === device.kind) {
                                                        const o = 
$('<option></option>').attr('value', mCount).text(device.label)
@@ -406,8 +410,7 @@ var VideoSettings = (function() {
                                        _readValues();
                                })
                                .catch(function(err) {
-                                       _setDisabled(cam);
-                                       _setDisabled(mic);
+                                       _setDisabled([cam, mic]);
                                        OmUtil.error(err);
                                });
                });

Reply via email to