Sfoglia il codice sorgente

Merge pull request #435 from virtuacoplenny/device-picker

New methods to check mutiple mic support and local stats collecting
dev1
yanas 8 anni fa
parent
commit
1dfe736b1d

+ 11
- 0
JitsiMediaDevices.js Vedi File

2
 import * as JitsiMediaDevicesEvents from './JitsiMediaDevicesEvents';
2
 import * as JitsiMediaDevicesEvents from './JitsiMediaDevicesEvents';
3
 import * as MediaType from './service/RTC/MediaType';
3
 import * as MediaType from './service/RTC/MediaType';
4
 import RTC from './modules/RTC/RTC';
4
 import RTC from './modules/RTC/RTC';
5
+import RTCBrowserType from './modules/RTC/RTCBrowserType';
5
 import RTCEvents from './service/RTC/RTCEvents';
6
 import RTCEvents from './service/RTC/RTCEvents';
6
 import Statistics from './modules/statistics/statistics';
7
 import Statistics from './modules/statistics/statistics';
7
 
8
 
72
         }
73
         }
73
     },
74
     },
74
 
75
 
76
+    /**
77
+     * Returns true if it is possible to be simultaneously capturing audio
78
+     * from more than one device.
79
+     *
80
+     * @returns {boolean}
81
+     */
82
+    isMultipleAudioInputSupported() {
83
+        return !RTCBrowserType.isFirefox();
84
+    },
85
+
75
     /**
86
     /**
76
      * Returns currently used audio output device id, 'default' stands
87
      * Returns currently used audio output device id, 'default' stands
77
      * for default device
88
      * for default device

+ 22
- 0
JitsiMeetJS.js Vedi File

15
 import JitsiTrackError from './JitsiTrackError';
15
 import JitsiTrackError from './JitsiTrackError';
16
 import * as JitsiTrackErrors from './JitsiTrackErrors';
16
 import * as JitsiTrackErrors from './JitsiTrackErrors';
17
 import * as JitsiTrackEvents from './JitsiTrackEvents';
17
 import * as JitsiTrackEvents from './JitsiTrackEvents';
18
+import LocalStatsCollector from './modules/statistics/LocalStatsCollector';
18
 import Logger from 'jitsi-meet-logger';
19
 import Logger from 'jitsi-meet-logger';
19
 import * as MediaType from './service/RTC/MediaType';
20
 import * as MediaType from './service/RTC/MediaType';
20
 import Resolutions from './service/RTC/Resolutions';
21
 import Resolutions from './service/RTC/Resolutions';
390
         return this.mediaDevices.isDeviceChangeAvailable(deviceType);
391
         return this.mediaDevices.isDeviceChangeAvailable(deviceType);
391
     },
392
     },
392
 
393
 
394
+
395
+    /**
396
+     * Checks if the current environment supports having multiple audio
397
+     * input devices in use simultaneously.
398
+     *
399
+     * @returns {boolean} True if multiple audio input devices can be used.
400
+     */
401
+    isMultipleAudioInputSupported() {
402
+        return this.mediaDevices.isMultipleAudioInputSupported();
403
+    },
404
+
405
+    /**
406
+     * Checks if local tracks can collect stats and collection is enabled.
407
+     *
408
+     * @param {boolean} True if stats are being collected for local tracks.
409
+     */
410
+    isCollectingLocalStats() {
411
+        return Statistics.audioLevelsEnabled
412
+            && LocalStatsCollector.isLocalStatsSupported();
413
+    },
414
+
393
     /**
415
     /**
394
      * Executes callback with list of media devices connected.
416
      * Executes callback with list of media devices connected.
395
      * @param {function} callback
417
      * @param {function} callback

+ 2
- 0
modules/RTC/JitsiLocalTrack.js Vedi File

237
  */
237
  */
238
 JitsiLocalTrack.prototype._setRealDeviceIdFromDeviceList = function(devices) {
238
 JitsiLocalTrack.prototype._setRealDeviceIdFromDeviceList = function(devices) {
239
     const track = this.getTrack();
239
     const track = this.getTrack();
240
+
241
+    // FIXME for temasys video track, label refers to id not the actual device
240
     const device
242
     const device
241
         = devices.find(
243
         = devices.find(
242
             d => d.kind === `${track.kind}input` && d.label === track.label);
244
             d => d.kind === `${track.kind}input` && d.label === track.label);

+ 11
- 2
modules/statistics/LocalStatsCollector.js Vedi File

96
  * Starts the collecting the statistics.
96
  * Starts the collecting the statistics.
97
  */
97
  */
98
 LocalStatsCollector.prototype.start = function() {
98
 LocalStatsCollector.prototype.start = function() {
99
-    if (!context
100
-        || RTCBrowserType.isTemasysPluginUsed()) {
99
+    if (!LocalStatsCollector.isLocalStatsSupported()) {
101
         return;
100
         return;
102
     }
101
     }
103
     context.resume();
102
     context.resume();
139
     }
138
     }
140
 };
139
 };
141
 
140
 
141
+/**
142
+ * Checks if the environment has the necessary conditions to support
143
+ * collecting stats from local streams.
144
+ *
145
+ * @returns {boolean}
146
+ */
147
+LocalStatsCollector.isLocalStatsSupported = function() {
148
+    return Boolean(context && !RTCBrowserType.isTemasysPluginUsed());
149
+};
150
+
142
 module.exports = LocalStatsCollector;
151
 module.exports = LocalStatsCollector;

Loading…
Annulla
Salva