Sfoglia il codice sorgente

feat(rn) support getDisplayMedia

Co-authored-by: Saúl Ibarra Corretgé <s@saghul.net>
dev1
tmoldovan8x8 5 anni fa
parent
commit
2a2405e936
Nessun account collegato all'indirizzo email del committer
1 ha cambiato i file con 23 aggiunte e 0 eliminazioni
  1. 23
    0
      modules/RTC/ScreenObtainer.js

+ 23
- 0
modules/RTC/ScreenObtainer.js Vedi File

@@ -83,6 +83,8 @@ const ScreenObtainer = {
83 83
             };
84 84
         } else if (browser.isElectron()) {
85 85
             return this.obtainScreenOnElectron;
86
+        } else if (browser.isReactNative() && browser.supportsGetDisplayMedia()) {
87
+            return this.obtainScreenFromGetDisplayMediaRN;
86 88
         } else if (browser.supportsGetDisplayMedia()) {
87 89
             return this.obtainScreenFromGetDisplayMedia;
88 90
         }
@@ -207,6 +209,27 @@ const ScreenObtainer = {
207 209
 
208 210
                 errorCallback(new JitsiTrackError(JitsiTrackErrors.SCREENSHARING_USER_CANCELED));
209 211
             });
212
+    },
213
+
214
+    /**
215
+     * Obtains a screen capture stream using getDisplayMedia.
216
+     *
217
+     * @param callback - The success callback.
218
+     * @param errorCallback - The error callback.
219
+     */
220
+    obtainScreenFromGetDisplayMediaRN(options, callback, errorCallback) {
221
+        logger.info('Using getDisplayMedia for screen sharing');
222
+
223
+        navigator.mediaDevices.getDisplayMedia({ video: true })
224
+            .then(stream => {
225
+                callback({
226
+                    stream,
227
+                    sourceId: stream.id });
228
+            })
229
+            .catch(() => {
230
+                errorCallback(new JitsiTrackError(JitsiTrackErrors
231
+                    .SCREENSHARING_USER_CANCELED));
232
+            });
210 233
     }
211 234
 };
212 235
 

Loading…
Annulla
Salva