ソースを参照

ref(conference.js): remove global promise

Get rid of global APP.conference.screenSharingPromise.
master
paweldomas 8年前
コミット
e7a4318e8c
2個のファイルの変更28行の追加21行の削除
  1. 13
    7
      conference.js
  2. 15
    14
      modules/remotecontrol/Receiver.js

+ 13
- 7
conference.js ファイルの表示

@@ -1109,26 +1109,32 @@ export default {
1109 1109
     },
1110 1110
 
1111 1111
     videoSwitchInProgress: false,
1112
+
1113
+    /**
1114
+     * Toggles between screensharing and camera video.
1115
+     * @param {boolean} [shareScreen]
1116
+     * @return {Promise.<T>}
1117
+     */
1112 1118
     toggleScreenSharing(shareScreen = !this.isSharingScreen) {
1113 1119
         if (this.videoSwitchInProgress) {
1114
-            logger.warn("Switch in progress.");
1115
-            return;
1120
+            return Promise.reject('Switch in progress.');
1116 1121
         }
1117 1122
         if (!this.isDesktopSharingEnabled) {
1118
-            logger.warn("Cannot toggle screen sharing: not supported.");
1119
-            return;
1123
+            return Promise.reject(
1124
+                'Cannot toggle screen sharing: not supported.');
1120 1125
         }
1121 1126
 
1122 1127
         if (this.isAudioOnly()) {
1123 1128
             this._displayAudioOnlyTooltip('screenShare');
1124
-            return;
1129
+
1130
+            return Promise.reject('No screensharing in audio only mode');
1125 1131
         }
1126 1132
 
1127 1133
         this.videoSwitchInProgress = true;
1128 1134
         let externalInstallation = false;
1129 1135
 
1130 1136
         if (shareScreen) {
1131
-            this.screenSharingPromise = createLocalTracks({
1137
+            return createLocalTracks({
1132 1138
                 devices: ['desktop'],
1133 1139
                 desktopSharingExtensionExternalInstallation: {
1134 1140
                     interval: 500,
@@ -1218,7 +1224,7 @@ export default {
1218 1224
             });
1219 1225
         } else {
1220 1226
             APP.remoteControl.receiver.stop();
1221
-            this.screenSharingPromise = createLocalTracks(
1227
+            return createLocalTracks(
1222 1228
                 { devices: ['video'] })
1223 1229
             .then(
1224 1230
                 ([stream]) => this.useVideoStream(stream)

+ 15
- 14
modules/remotecontrol/Receiver.js ファイルの表示

@@ -261,25 +261,26 @@ export default class Receiver extends RemoteControlParticipant {
261 261
                 action: PERMISSIONS_ACTIONS.grant
262 262
             });
263 263
         } else {
264
-            APP.conference.toggleScreenSharing();
265
-            APP.conference.screenSharingPromise.then(() => {
266
-                if (APP.conference.isSharingScreen) {
267
-                    this.sendRemoteControlEvent(userId, {
268
-                        type: EVENT_TYPES.permissions,
269
-                        action: PERMISSIONS_ACTIONS.grant
270
-                    });
271
-                } else {
264
+            APP.conference.toggleScreenSharing()
265
+                .then(() => {
266
+                    if (APP.conference.isSharingScreen) {
267
+                        this.sendRemoteControlEvent(userId, {
268
+                            type: EVENT_TYPES.permissions,
269
+                            action: PERMISSIONS_ACTIONS.grant
270
+                        });
271
+                    } else {
272
+                        this.sendRemoteControlEvent(userId, {
273
+                            type: EVENT_TYPES.permissions,
274
+                            action: PERMISSIONS_ACTIONS.error
275
+                        });
276
+                    }
277
+                })
278
+                .catch(() => {
272 279
                     this.sendRemoteControlEvent(userId, {
273 280
                         type: EVENT_TYPES.permissions,
274 281
                         action: PERMISSIONS_ACTIONS.error
275 282
                     });
276
-                }
277
-            }).catch(() => {
278
-                this.sendRemoteControlEvent(userId, {
279
-                    type: EVENT_TYPES.permissions,
280
-                    action: PERMISSIONS_ACTIONS.error
281 283
                 });
282
-            });
283 284
         }
284 285
     }
285 286
 

読み込み中…
キャンセル
保存