Ver código fonte

feat(ScreenObtainer): fix support for old getDisplayMedia

Chrome 71 does not support inline installs, but has navigator.getDisplayMedia
behind a flag. Support this case.
dev1
Saúl Ibarra Corretgé 6 anos atrás
pai
commit
88731cd9dc

+ 10
- 1
modules/RTC/ScreenObtainer.js Ver arquivo

@@ -304,7 +304,16 @@ const ScreenObtainer = {
304 304
      * @param errorCallback - The error callback.
305 305
      */
306 306
     obtainScreenFromGetDisplayMedia(options, callback, errorCallback) {
307
-        navigator.mediaDevices.getDisplayMedia({ video: true })
307
+        let getDisplayMedia;
308
+
309
+        if (navigator.getDisplayMedia) {
310
+            getDisplayMedia = navigator.getDisplayMedia.bind(navigator);
311
+        } else {
312
+            // eslint-disable-next-line max-len
313
+            getDisplayMedia = navigator.mediaDevices.getDisplayMedia.bind(navigator.mediaDevices);
314
+        }
315
+
316
+        getDisplayMedia({ video: true })
308 317
             .then(stream => {
309 318
                 let applyConstraintsPromise;
310 319
 

+ 2
- 2
modules/browser/BrowserCapabilities.js Ver arquivo

@@ -282,8 +282,8 @@ export default class BrowserCapabilities extends BrowserDetection {
282 282
      * @returns {boolean} {@code true} if the browser supposrts getDisplayMedia.
283 283
      */
284 284
     supportsGetDisplayMedia() {
285
-        return navigator.mediaDevices
286
-            && navigator.mediaDevices.getDisplayMedia !== undefined;
285
+        return typeof navigator.getDisplayMedia !== 'undefined'
286
+            || typeof navigator.mediaDevices.getDisplayMedia !== 'undefined';
287 287
     }
288 288
 
289 289
     /**

Carregando…
Cancelar
Salvar