|
|
@@ -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)
|