fcr-ui-scene 3.8.0-alpha → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/fragments/whiteboard/store.js +1 -1
- package/lib/modules/caption/draggable-container/index.js +34 -12
- package/lib/modules/caption/store.d.ts +1 -4
- package/lib/modules/caption/store.js +10 -18
- package/lib/modules/caption/view.js +16 -27
- package/lib/modules/chat/store.d.ts +1 -0
- package/lib/modules/chat/store.js +2 -2
- package/lib/modules/components/caption-menu/index.d.ts +2 -0
- package/lib/modules/components/caption-menu/index.js +13 -10
- package/lib/modules/components/caption-menu/participants-privilege-control-options.js +5 -19
- package/lib/modules/components/caption-menu/translation-setting-options.js +31 -24
- package/lib/modules/control-bar/components/carmera/index.js +7 -39
- package/lib/modules/control-bar/components/cloud-recording-buttons.js +18 -33
- package/lib/modules/control-bar/components/microphone/index.js +3 -43
- package/lib/modules/control-bar/components/share-audio/index.d.ts +2 -0
- package/lib/modules/control-bar/components/share-audio/index.js +4 -10
- package/lib/modules/control-bar/hooks.d.ts +1 -0
- package/lib/modules/control-bar/hooks.js +140 -1
- package/lib/modules/control-bar/store.d.ts +3 -4
- package/lib/modules/control-bar/store.js +37 -30
- package/lib/modules/control-bar/type.d.ts +3 -0
- package/lib/modules/control-bar/view.js +40 -57
- package/lib/modules/dialog/components/confirm/index.js +0 -1
- package/lib/modules/dialog/components/dialog-container/index.js +1 -0
- package/lib/modules/event-toast/index.js +7 -1
- package/lib/modules/layout/store.base.d.ts +1 -1
- package/lib/modules/layout/store.electron.d.ts +0 -1
- package/lib/modules/layout/store.electron.js +37 -133
- package/lib/modules/participant/store.base.js +8 -10
- package/lib/modules/secondary-window/store.js +1 -3
- package/lib/modules/setting/audio-whiteList/audio-device-adaptation.d.ts +28 -0
- package/lib/modules/setting/audio-whiteList/audio-device-adaptation.js +41 -5
- package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.d.ts +3 -14
- package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.js +45 -24
- package/lib/modules/setting/index.js +4 -2
- package/lib/modules/setting/store.base.d.ts +5 -3
- package/lib/modules/setting/store.base.js +64 -43
- package/lib/modules/setting/store.electron.d.ts +1 -1
- package/lib/modules/setting/store.electron.js +3 -7
- package/lib/modules/setting/view.js +3 -2
- package/lib/modules/share-screen/store.electron.js +51 -23
- package/lib/modules/subtitles-history/components/list-item.js +4 -7
- package/lib/modules/subtitles-history/store.base.d.ts +3 -1
- package/lib/modules/subtitles-history/store.base.js +11 -1
- package/lib/providers/screen-share/provider.base.d.ts +2 -13
- package/lib/providers/screen-share/provider.base.js +5 -12
- package/lib/providers/screen-share/provider.electron.d.ts +0 -5
- package/lib/providers/screen-share/provider.electron.js +31 -18
- package/lib/providers/screen-share/type.d.ts +0 -16
- package/lib/providers/stt-provider/stt-provider.d.ts +3 -4
- package/lib/providers/stt-provider/stt-provider.js +145 -146
- package/lib/providers/stt-provider/type.d.ts +2 -10
- package/lib/providers/stt-provider/type.js +3 -3
- package/package.json +8 -8
|
@@ -135,7 +135,6 @@ var ElectronShareScreenStore = exports["default"] = /*#__PURE__*/function (_Shar
|
|
|
135
135
|
(0, _mobx.runInAction)(function () {
|
|
136
136
|
_this2.selectedShareItem = null;
|
|
137
137
|
_this2.screenShareProvider.setSelectionBounds(null);
|
|
138
|
-
_this2.screenShareProvider.setSelectionIdAndType(null);
|
|
139
138
|
});
|
|
140
139
|
}
|
|
141
140
|
}
|
|
@@ -177,10 +176,6 @@ var ElectronShareScreenStore = exports["default"] = /*#__PURE__*/function (_Shar
|
|
|
177
176
|
var isDisplay = selected.type === _type.FcrUIShareType.DISPLAY;
|
|
178
177
|
if (isWindow || isDisplay) {
|
|
179
178
|
this.screenShareProvider.setSelectionBounds(selected.bounds);
|
|
180
|
-
this.screenShareProvider.setSelectionIdAndType({
|
|
181
|
-
id: selected.id,
|
|
182
|
-
type: isWindow ? _type3.FcrScreenCaptureType.WINDOW : _type3.FcrScreenCaptureType.SCREEN
|
|
183
|
-
});
|
|
184
179
|
}
|
|
185
180
|
}
|
|
186
181
|
}, {
|
|
@@ -321,10 +316,6 @@ var ElectronShareScreenStore = exports["default"] = /*#__PURE__*/function (_Shar
|
|
|
321
316
|
} else {
|
|
322
317
|
_displayList$ = displayList[0], bounds = _displayList$.bounds, id = _displayList$.id;
|
|
323
318
|
this.screenShareProvider.setSelectionBounds(bounds);
|
|
324
|
-
this.screenShareProvider.setSelectionIdAndType({
|
|
325
|
-
id: id,
|
|
326
|
-
type: _type3.FcrScreenCaptureType.SCREEN
|
|
327
|
-
});
|
|
328
319
|
this.screenShareProvider.startShare({
|
|
329
320
|
videoSourceId: id,
|
|
330
321
|
captureType: _type3.FcrScreenCaptureType.SCREEN
|
|
@@ -345,21 +336,22 @@ var ElectronShareScreenStore = exports["default"] = /*#__PURE__*/function (_Shar
|
|
|
345
336
|
key: "_handleDisplayCountUpdated",
|
|
346
337
|
value: function () {
|
|
347
338
|
var _handleDisplayCountUpdated2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(event) {
|
|
348
|
-
var eventAction, _this$selectedShareIt, type, id, windowList,
|
|
339
|
+
var eventAction, _this$selectedShareIt, type, id, sharingTargetBounds, displayList, display, windowList, window, selectionBounds, _t;
|
|
349
340
|
return _regenerator["default"].wrap(function (_context4) {
|
|
350
341
|
while (1) switch (_context4.prev = _context4.next) {
|
|
351
342
|
case 0:
|
|
352
343
|
eventAction = event.action;
|
|
353
|
-
if (!(eventAction === _constant.FcrUIRendererEventAction.SCREEN_DISPLAY_REMOVED
|
|
344
|
+
if (!(eventAction === _constant.FcrUIRendererEventAction.SCREEN_DISPLAY_REMOVED || eventAction === _constant.FcrUIRendererEventAction.SCREEN_DISPLAY_ADDED
|
|
345
|
+
|
|
354
346
|
// ||
|
|
355
347
|
// eventAction === FcrUIRendererEventAction.SCREEN_DISPLAY_METRICS_CHANGED
|
|
356
348
|
)) {
|
|
357
|
-
_context4.next =
|
|
349
|
+
_context4.next = 11;
|
|
358
350
|
break;
|
|
359
351
|
}
|
|
360
352
|
this.logger.info("action: ".concat(eventAction));
|
|
361
353
|
if (!this.screenShareProvider.isLocalUserScreenSharing) {
|
|
362
|
-
_context4.next =
|
|
354
|
+
_context4.next = 11;
|
|
363
355
|
break;
|
|
364
356
|
}
|
|
365
357
|
if (this.selectedShareItem) {
|
|
@@ -370,30 +362,66 @@ var ElectronShareScreenStore = exports["default"] = /*#__PURE__*/function (_Shar
|
|
|
370
362
|
return _context4.abrupt("return");
|
|
371
363
|
case 1:
|
|
372
364
|
_this$selectedShareIt = this.selectedShareItem, type = _this$selectedShareIt.type, id = _this$selectedShareIt.id;
|
|
373
|
-
if (!(type === _type.FcrUIShareType.
|
|
374
|
-
_context4.next =
|
|
365
|
+
if (!(type === _type.FcrUIShareType.DISPLAY)) {
|
|
366
|
+
_context4.next = 5;
|
|
375
367
|
break;
|
|
376
368
|
}
|
|
377
369
|
_context4.next = 2;
|
|
378
|
-
return this.screenShareProvider.
|
|
370
|
+
return this.screenShareProvider.getDisplayList();
|
|
379
371
|
case 2:
|
|
380
|
-
|
|
381
|
-
|
|
372
|
+
displayList = _context4.sent;
|
|
373
|
+
display = displayList.find(function (item) {
|
|
382
374
|
return item.id === id;
|
|
383
375
|
});
|
|
384
|
-
if (
|
|
376
|
+
if (!display) {
|
|
385
377
|
_context4.next = 3;
|
|
386
378
|
break;
|
|
387
379
|
}
|
|
388
|
-
|
|
389
|
-
|
|
380
|
+
sharingTargetBounds = display.bounds;
|
|
381
|
+
_context4.next = 4;
|
|
382
|
+
break;
|
|
390
383
|
case 3:
|
|
391
|
-
this.
|
|
384
|
+
this.logger.warn("can not find display info for shared screen id: ".concat(id));
|
|
385
|
+
return _context4.abrupt("return");
|
|
392
386
|
case 4:
|
|
387
|
+
_context4.next = 10;
|
|
388
|
+
break;
|
|
389
|
+
case 5:
|
|
390
|
+
_context4.next = 6;
|
|
391
|
+
return this.screenShareProvider.getWindowList();
|
|
392
|
+
case 6:
|
|
393
|
+
windowList = _context4.sent;
|
|
394
|
+
window = windowList.find(function (item) {
|
|
395
|
+
return item.id === id;
|
|
396
|
+
});
|
|
397
|
+
if (!window) {
|
|
398
|
+
_context4.next = 7;
|
|
399
|
+
break;
|
|
400
|
+
}
|
|
401
|
+
sharingTargetBounds = window.bounds;
|
|
402
|
+
_context4.next = 10;
|
|
403
|
+
break;
|
|
404
|
+
case 7:
|
|
405
|
+
this.logger.warn("can not find window info for shared window id: ".concat(id));
|
|
406
|
+
|
|
407
|
+
// 共享的窗口被隐藏时,尝试使用 selectionBounds 作为位置依据
|
|
408
|
+
_context4.prev = 8;
|
|
409
|
+
selectionBounds = this.screenShareProvider.selectionBounds;
|
|
410
|
+
sharingTargetBounds = this._renderer.getDisplayMatching(selectionBounds).bounds;
|
|
411
|
+
_context4.next = 10;
|
|
412
|
+
break;
|
|
413
|
+
case 9:
|
|
414
|
+
_context4.prev = 9;
|
|
415
|
+
_t = _context4["catch"](8);
|
|
416
|
+
this.logger.warn("get selection bounds error, can not set video window position: ".concat(_t));
|
|
417
|
+
return _context4.abrupt("return");
|
|
418
|
+
case 10:
|
|
419
|
+
this.screenShareProvider.changeSelectionBounds(sharingTargetBounds, _struct.FcrUISelectionBoundsChangeReason.DISPLAY_CHANGE);
|
|
420
|
+
case 11:
|
|
393
421
|
case "end":
|
|
394
422
|
return _context4.stop();
|
|
395
423
|
}
|
|
396
|
-
}, _callee4, this);
|
|
424
|
+
}, _callee4, this, [[8, 9]]);
|
|
397
425
|
}));
|
|
398
426
|
function _handleDisplayCountUpdated(_x) {
|
|
399
427
|
return _handleDisplayCountUpdated2.apply(this, arguments);
|
|
@@ -22,15 +22,12 @@ var getDateText = function getDateText(time) {
|
|
|
22
22
|
var mm = minute < 10 ? '0' + minute : minute;
|
|
23
23
|
var now = new Date();
|
|
24
24
|
if (year === now.getFullYear()) {
|
|
25
|
-
if (month === now.getMonth() + 1) {
|
|
26
|
-
|
|
27
|
-
return "".concat(hh, ":").concat(mm);
|
|
28
|
-
}
|
|
29
|
-
return "".concat(day, " ").concat(hh, ":").concat(mm);
|
|
25
|
+
if (month === now.getMonth() + 1 && day === now.getDate()) {
|
|
26
|
+
return "".concat(hh, ":").concat(mm);
|
|
30
27
|
}
|
|
31
|
-
return "".concat(month, "
|
|
28
|
+
return "".concat(month, "/").concat(day, " ").concat(hh, ":").concat(mm);
|
|
32
29
|
}
|
|
33
|
-
return "".concat(year, "
|
|
30
|
+
return "".concat(year, "/").concat(month, "/").concat(day, " ").concat(hh, ":").concat(mm);
|
|
34
31
|
};
|
|
35
32
|
var renderSentence = function renderSentence(item, showTwoLine, isTranslateLanguageOpened) {
|
|
36
33
|
/** 没有开启双语显示但是开启了翻译时, 首行要显示的翻译语言 */
|
|
@@ -10,7 +10,7 @@ export type Subtitle = {
|
|
|
10
10
|
headIcon: string;
|
|
11
11
|
};
|
|
12
12
|
export default class SubtitlesHistoryStoreBase {
|
|
13
|
-
protected logger: import("
|
|
13
|
+
protected logger: import("fcr-core/lib/imports").Logger;
|
|
14
14
|
private _disposer;
|
|
15
15
|
private _eventProvider;
|
|
16
16
|
private _messageProvider;
|
|
@@ -26,6 +26,8 @@ export default class SubtitlesHistoryStoreBase {
|
|
|
26
26
|
private _dialogObserver;
|
|
27
27
|
private _requestDialogId;
|
|
28
28
|
private _respondDialogId;
|
|
29
|
+
/** 主持人处理转写请求的时间 */
|
|
30
|
+
private _acceptOrRejectRequestTranscribingTime;
|
|
29
31
|
/** 发起转写请求的用户 */
|
|
30
32
|
private _requestTranscribingUser;
|
|
31
33
|
/** 自己发起转写请求时的 sessionId */
|
|
@@ -72,6 +72,7 @@ var _timer = require("./components/timer");
|
|
|
72
72
|
var _type4 = require("../../type");
|
|
73
73
|
var _i18n = require("agora-ui-foundation/lib/i18n");
|
|
74
74
|
var _respondDialogContent = require("./components/respond-dialog-content");
|
|
75
|
+
var _imports = require("fcr-core/lib/imports");
|
|
75
76
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
76
77
|
var _SubtitlesHistoryStoreBase;
|
|
77
78
|
var _initProto, _init_isLoading, _toggleOpenDecs, _ref;
|
|
@@ -103,6 +104,8 @@ var SubtitlesHistoryStoreBase = exports["default"] = /*#__PURE__*/function () {
|
|
|
103
104
|
});
|
|
104
105
|
(0, _defineProperty2["default"])(this, "_requestDialogId", null);
|
|
105
106
|
(0, _defineProperty2["default"])(this, "_respondDialogId", null);
|
|
107
|
+
/** 主持人处理转写请求的时间 */
|
|
108
|
+
(0, _defineProperty2["default"])(this, "_acceptOrRejectRequestTranscribingTime", 0);
|
|
106
109
|
/** 发起转写请求的用户 */
|
|
107
110
|
(0, _defineProperty2["default"])(this, "_requestTranscribingUser", null);
|
|
108
111
|
/** 自己发起转写请求时的 sessionId */
|
|
@@ -499,6 +502,7 @@ var SubtitlesHistoryStoreBase = exports["default"] = /*#__PURE__*/function () {
|
|
|
499
502
|
case 0:
|
|
500
503
|
_this3._closeRespondDialog(id);
|
|
501
504
|
_context6.prev = 1;
|
|
505
|
+
_this3._acceptOrRejectRequestTranscribingTime = Date.now();
|
|
502
506
|
_context6.next = 2;
|
|
503
507
|
return _this3._sttProvider.rejectOpenTranscribing(session);
|
|
504
508
|
case 2:
|
|
@@ -551,6 +555,7 @@ var SubtitlesHistoryStoreBase = exports["default"] = /*#__PURE__*/function () {
|
|
|
551
555
|
_this3._closeRespondDialog(id);
|
|
552
556
|
_context7.prev = 1;
|
|
553
557
|
_this3._setIsLoading(true);
|
|
558
|
+
_this3._acceptOrRejectRequestTranscribingTime = Date.now();
|
|
554
559
|
_context7.next = 2;
|
|
555
560
|
return _this3._sttProvider.acceptOpenTranscribing(session);
|
|
556
561
|
case 2:
|
|
@@ -691,6 +696,11 @@ var SubtitlesHistoryStoreBase = exports["default"] = /*#__PURE__*/function () {
|
|
|
691
696
|
this.logger.info('_onRoomSessionReceived: have set not to receive transcribing request, ignore this request');
|
|
692
697
|
return;
|
|
693
698
|
}
|
|
699
|
+
if (Date.now() - this._acceptOrRejectRequestTranscribingTime < _imports.Duration.second(3)) {
|
|
700
|
+
// 在刚处理完请求的 3 秒内, 忽略后续请求
|
|
701
|
+
this.logger.info('_onRoomSessionReceived: accept or reject a request in 3 second, ignore this request');
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
694
704
|
if (this._respondDialogId) {
|
|
695
705
|
// 多人一起提交申请时, 只处理第一个请求, 在处理期间忽略后续请求
|
|
696
706
|
this.logger.info('_onRoomSessionReceived: respond dialog is already opened, ignore this request');
|
|
@@ -715,7 +725,7 @@ var SubtitlesHistoryStoreBase = exports["default"] = /*#__PURE__*/function () {
|
|
|
715
725
|
this._showRespondDialog(session);
|
|
716
726
|
}
|
|
717
727
|
if (session.sessionKey === _type2.FcrUISessionKey.REJECT_OPEN_TRANSCRIBING) {
|
|
718
|
-
var isSelfRequest = this._requestTranscribingTimeBySelf && Date.now() - this._requestTranscribingTimeBySelf < _type.
|
|
728
|
+
var isSelfRequest = this._requestTranscribingTimeBySelf && Date.now() - this._requestTranscribingTimeBySelf < _type.FcrUISttConstants.REQUEST_OPEN_TRANSCRIBING_DURATION;
|
|
719
729
|
if (!(isSelfRequest || [_type3.FcrUserRole.HOST, _type3.FcrUserRole.COHOST].includes(localUser.userRole))) {
|
|
720
730
|
// 不是申请开启转写的用户,或者是主持人或联席主持人,无需处理该拒绝通知
|
|
721
731
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AgoraObservable } from 'agora-foundation/lib/utilities/observable';
|
|
2
2
|
import { FcrDesktopMediaControl, FcrStreamControl, FcrStreamObserver } from 'fcr-core';
|
|
3
|
-
import {
|
|
3
|
+
import { FcrSharingControl, FcrUserInfo } from 'fcr-core/lib/type';
|
|
4
4
|
import { FcrUIManagedObject, FcrUIObjectManager } from '../../object-manager';
|
|
5
5
|
import { FcrUISharedScreenShareDataSource } from '../../shared-data/screen-share/type';
|
|
6
6
|
import { FcrUIFacilityProvider } from '../facility/type';
|
|
@@ -48,15 +48,12 @@ export declare abstract class FcrUIScreenShareProviderBase implements FcrUIManag
|
|
|
48
48
|
protected _windowList: FcrUIScreenShareWindowInfo[];
|
|
49
49
|
protected _displayList: FcrUIScreenShareDisplayInfo[];
|
|
50
50
|
protected _localUserId: string;
|
|
51
|
-
protected _selectionIdAndType: {
|
|
52
|
-
id: string;
|
|
53
|
-
type: FcrScreenCaptureType;
|
|
54
|
-
} | null;
|
|
55
51
|
protected _selectionBounds: FcrUI.FcrUIRectangle | null;
|
|
56
52
|
protected _sharingDisplayBounds: FcrUI.FcrUIRectangle | null;
|
|
57
53
|
protected _closeByOther: boolean;
|
|
58
54
|
protected _closeOperator: FcrUserInfo | null;
|
|
59
55
|
protected _localUser: FcrUserInfo;
|
|
56
|
+
protected _abortController: AbortController | null;
|
|
60
57
|
protected accessor _isLocalUserScreenSharing: boolean;
|
|
61
58
|
protected accessor _isRemoteUserScreenSharing: boolean;
|
|
62
59
|
protected accessor _isSharingWithAudio: boolean;
|
|
@@ -65,10 +62,6 @@ export declare abstract class FcrUIScreenShareProviderBase implements FcrUIManag
|
|
|
65
62
|
protected accessor _shareStreamId: string | null;
|
|
66
63
|
protected accessor _sharingUser: FcrUserInfo | null;
|
|
67
64
|
get selectionBounds(): FcrUI.FcrUIRectangle;
|
|
68
|
-
get selectionIdAndType(): {
|
|
69
|
-
id: string;
|
|
70
|
-
type: FcrScreenCaptureType;
|
|
71
|
-
};
|
|
72
65
|
get sharingDisplayBounds(): FcrUI.FcrUIRectangle;
|
|
73
66
|
get isSharingWithAudio(): boolean;
|
|
74
67
|
get isSharingInSmoothMode(): boolean;
|
|
@@ -83,10 +76,6 @@ export declare abstract class FcrUIScreenShareProviderBase implements FcrUIManag
|
|
|
83
76
|
abstract replaceShare(params: FcrUIScreenShareReplaceParams): Promise<void>;
|
|
84
77
|
addObserver(observer: FcrUIScreenShareObserver): void;
|
|
85
78
|
removeObserver(observer: FcrUIScreenShareObserver): void;
|
|
86
|
-
setSelectionIdAndType(idAndType: {
|
|
87
|
-
id: string;
|
|
88
|
-
type: FcrScreenCaptureType;
|
|
89
|
-
} | null): void;
|
|
90
79
|
setSelectionBounds(bounds: FcrUI.FcrUIRectangle | null): void;
|
|
91
80
|
changeSelectionBounds(bounds: FcrUI.FcrUIRectangle, reason: FcrUISelectionBoundsChangeReason): void;
|
|
92
81
|
enableScreenShareAudio(): Promise<void>;
|
|
@@ -122,11 +122,11 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
|
|
|
122
122
|
(0, _defineProperty2["default"])(this, "_isScreenShareStarted", false);
|
|
123
123
|
(0, _defineProperty2["default"])(this, "_windowList", []);
|
|
124
124
|
(0, _defineProperty2["default"])(this, "_displayList", []);
|
|
125
|
-
(0, _defineProperty2["default"])(this, "_selectionIdAndType", null);
|
|
126
125
|
(0, _defineProperty2["default"])(this, "_selectionBounds", null);
|
|
127
126
|
(0, _defineProperty2["default"])(this, "_sharingDisplayBounds", null);
|
|
128
127
|
(0, _defineProperty2["default"])(this, "_closeByOther", false);
|
|
129
128
|
(0, _defineProperty2["default"])(this, "_closeOperator", null);
|
|
129
|
+
(0, _defineProperty2["default"])(this, "_abortController", null);
|
|
130
130
|
_classPrivateFieldInitSpec(this, _A, _init__isLocalUserScreenSharing(this, false));
|
|
131
131
|
_classPrivateFieldInitSpec(this, _B, _init__isRemoteUserScreenSharing(this, false));
|
|
132
132
|
_classPrivateFieldInitSpec(this, _C, _init__isSharingWithAudio(this, false));
|
|
@@ -246,14 +246,6 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
|
|
|
246
246
|
}
|
|
247
247
|
throw new Error('cannot get selection bounds while no selection made');
|
|
248
248
|
}
|
|
249
|
-
}, {
|
|
250
|
-
key: "selectionIdAndType",
|
|
251
|
-
get: function get() {
|
|
252
|
-
if (this._selectionIdAndType) {
|
|
253
|
-
return this._selectionIdAndType;
|
|
254
|
-
}
|
|
255
|
-
throw new Error('can not get selection id and type while no selection made');
|
|
256
|
-
}
|
|
257
249
|
}, {
|
|
258
250
|
key: "sharingDisplayBounds",
|
|
259
251
|
get: function get() {
|
|
@@ -313,9 +305,6 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
|
|
|
313
305
|
value: function removeObserver(observer) {
|
|
314
306
|
this.observable.removeObserver(observer);
|
|
315
307
|
}
|
|
316
|
-
}, {
|
|
317
|
-
key: "setSelectionIdAndType",
|
|
318
|
-
value: function setSelectionIdAndType(idAndType) {}
|
|
319
308
|
}, {
|
|
320
309
|
key: "setSelectionBounds",
|
|
321
310
|
value: function setSelectionBounds(bounds) {}
|
|
@@ -457,6 +446,10 @@ var FcrUIScreenShareProviderBase = exports.FcrUIScreenShareProviderBase = /*#__P
|
|
|
457
446
|
}, {
|
|
458
447
|
key: "_stopDeviceCapture",
|
|
459
448
|
value: function _stopDeviceCapture() {
|
|
449
|
+
if (this._abortController) {
|
|
450
|
+
this._abortController.abort();
|
|
451
|
+
this._abortController = null;
|
|
452
|
+
}
|
|
460
453
|
this.strategy.stopScreenCapture();
|
|
461
454
|
this.strategy.stopLoopbackCapture();
|
|
462
455
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { FcrScreenCaptureType } from 'fcr-core/lib/type';
|
|
2
1
|
import { FcrUIObjectManager } from '../../object-manager';
|
|
3
2
|
import { FcrUIScreenShareProviderBase } from './provider.base';
|
|
4
3
|
import { FcrUIScreenShareStrategy } from './strategy/type';
|
|
@@ -15,10 +14,6 @@ export declare class FcrUIScreenShareProviderImpl extends FcrUIScreenShareProvid
|
|
|
15
14
|
replaceShare({ videoSourceId, captureType }: FcrUIScreenShareReplaceParams): Promise<void>;
|
|
16
15
|
findSharingDisplayBounds(): Electron.Rectangle;
|
|
17
16
|
createStrategy(): FcrUIScreenShareStrategy;
|
|
18
|
-
setSelectionIdAndType(idAndType: {
|
|
19
|
-
id: string;
|
|
20
|
-
type: FcrScreenCaptureType;
|
|
21
|
-
} | null): void;
|
|
22
17
|
setSelectionBounds(bounds: FcrUI.FcrUIRectangle | null): void;
|
|
23
18
|
changeSelectionBounds(bounds: FcrUI.FcrUIRectangle, reason: FcrUISelectionBoundsChangeReason): void;
|
|
24
19
|
private _getExcludeWindows;
|
|
@@ -169,7 +169,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
169
169
|
key: "startShare",
|
|
170
170
|
value: function () {
|
|
171
171
|
var _startShare = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref) {
|
|
172
|
-
var videoSourceId, _ref$captureType, captureType, createConfig, screenTrack, isScreenRecordingGranted, isScreenSharingPermitted, audioSourceId, encoderConfig, excludeWindows, dimensions, frameRate, bitrate, _t, _t2;
|
|
172
|
+
var videoSourceId, _ref$captureType, captureType, createConfig, screenTrack, isScreenRecordingGranted, isScreenSharingPermitted, audioSourceId, encoderConfig, aborted, abortController, excludeWindows, dimensions, frameRate, bitrate, _t, _t2;
|
|
173
173
|
return _regenerator["default"].wrap(function (_context3) {
|
|
174
174
|
while (1) switch (_context3.prev = _context3.next) {
|
|
175
175
|
case 0:
|
|
@@ -217,7 +217,15 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
217
217
|
}
|
|
218
218
|
this._sharingDisplayBounds = this.findSharingDisplayBounds();
|
|
219
219
|
this.observable.notifyObservers('onPrepreScreenCapture');
|
|
220
|
-
encoderConfig = this._getEncoderConfig();
|
|
220
|
+
encoderConfig = this._getEncoderConfig();
|
|
221
|
+
aborted = false;
|
|
222
|
+
abortController = new AbortController();
|
|
223
|
+
this._abortController = abortController;
|
|
224
|
+
abortController.signal.addEventListener('abort', function () {
|
|
225
|
+
aborted = true;
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
// create screen stream
|
|
221
229
|
_context3.prev = 5;
|
|
222
230
|
_context3.next = 6;
|
|
223
231
|
return this._screenStreamSync.startScreenStream(createConfig, encoderConfig);
|
|
@@ -236,7 +244,13 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
236
244
|
case 9:
|
|
237
245
|
excludeWindows = _context3.sent;
|
|
238
246
|
dimensions = encoderConfig.dimensions, frameRate = encoderConfig.frameRate, bitrate = encoderConfig.bitrate;
|
|
239
|
-
|
|
247
|
+
if (!aborted) {
|
|
248
|
+
_context3.next = 10;
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
throw new Error(_constant2.ERROR_MESSAGE_ABORTED);
|
|
252
|
+
case 10:
|
|
253
|
+
_context3.next = 11;
|
|
240
254
|
return this.strategy.startScreenCapture({
|
|
241
255
|
sourceId: videoSourceId,
|
|
242
256
|
captureType: captureType,
|
|
@@ -245,11 +259,11 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
245
259
|
frameRate: frameRate,
|
|
246
260
|
bitrate: bitrate
|
|
247
261
|
});
|
|
248
|
-
case 10:
|
|
249
|
-
_context3.next = 12;
|
|
250
|
-
break;
|
|
251
262
|
case 11:
|
|
252
|
-
_context3.
|
|
263
|
+
_context3.next = 13;
|
|
264
|
+
break;
|
|
265
|
+
case 12:
|
|
266
|
+
_context3.prev = 12;
|
|
253
267
|
_t2 = _context3["catch"](8);
|
|
254
268
|
if (_t2 instanceof Error && _t2.message === _constant2.ERROR_MESSAGE_ABORTED) {
|
|
255
269
|
this.observable.notifyObservers('onScreenShareErrorOccurred', _struct.FcrUIScreenShareErrorCode.ABORT_START_SCREEN_CAPTURE);
|
|
@@ -257,18 +271,18 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
257
271
|
this.observable.notifyObservers('onScreenShareErrorOccurred', _struct.FcrUIScreenShareErrorCode.CANNOT_START_SCREEN_CAPTURE);
|
|
258
272
|
}
|
|
259
273
|
throw new Error("cannot start screen capture, error: ".concat(_t2));
|
|
260
|
-
case
|
|
274
|
+
case 13:
|
|
261
275
|
if (!this._isSharingWithAudio) {
|
|
262
|
-
_context3.next =
|
|
276
|
+
_context3.next = 14;
|
|
263
277
|
break;
|
|
264
278
|
}
|
|
265
|
-
_context3.next =
|
|
279
|
+
_context3.next = 14;
|
|
266
280
|
return this.strategy.startLoopbackCapture({});
|
|
267
|
-
case
|
|
281
|
+
case 14:
|
|
268
282
|
case "end":
|
|
269
283
|
return _context3.stop();
|
|
270
284
|
}
|
|
271
|
-
}, _callee3, this, [[5, 7], [8,
|
|
285
|
+
}, _callee3, this, [[5, 7], [8, 12]]);
|
|
272
286
|
}));
|
|
273
287
|
function startShare(_x) {
|
|
274
288
|
return _startShare.apply(this, arguments);
|
|
@@ -282,6 +296,10 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
282
296
|
return _regenerator["default"].wrap(function (_context4) {
|
|
283
297
|
while (1) switch (_context4.prev = _context4.next) {
|
|
284
298
|
case 0:
|
|
299
|
+
if (this._abortController) {
|
|
300
|
+
this._abortController.abort();
|
|
301
|
+
this._abortController = null;
|
|
302
|
+
}
|
|
285
303
|
this.strategy.stopScreenCapture();
|
|
286
304
|
this.strategy.stopLoopbackCapture();
|
|
287
305
|
_context4.next = 1;
|
|
@@ -383,11 +401,6 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
383
401
|
value: function createStrategy() {
|
|
384
402
|
return new _electron.FcrUIElectronScreenShareStrategy(this.objectManager);
|
|
385
403
|
}
|
|
386
|
-
}, {
|
|
387
|
-
key: "setSelectionIdAndType",
|
|
388
|
-
value: function setSelectionIdAndType(idAndType) {
|
|
389
|
-
this._selectionIdAndType = idAndType;
|
|
390
|
-
}
|
|
391
404
|
}, {
|
|
392
405
|
key: "setSelectionBounds",
|
|
393
406
|
value: function setSelectionBounds(bounds) {
|
|
@@ -474,7 +487,7 @@ var FcrUIScreenShareProviderImpl = exports.FcrUIScreenShareProviderImpl = /*#__P
|
|
|
474
487
|
}]);
|
|
475
488
|
}(_provider.FcrUIScreenShareProviderBase);
|
|
476
489
|
_FcrUIScreenShareProviderImpl = FcrUIScreenShareProviderImpl;
|
|
477
|
-
var _applyDecs$e = _applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.trace, 2, "getDisplayList"], [_decorator.trace, 2, "getWindowList"], [_decorator.trace, 2, "startShare"], [_decorator.trace, 2, "stopShare"], [_decorator.trace, 2, "replaceShare"], [
|
|
490
|
+
var _applyDecs$e = _applyDecs(_FcrUIScreenShareProviderImpl, [[_decorator.trace, 2, "getDisplayList"], [_decorator.trace, 2, "getWindowList"], [_decorator.trace, 2, "startShare"], [_decorator.trace, 2, "stopShare"], [_decorator.trace, 2, "replaceShare"], [[_decorator.trace, _mobx.action], 2, "setSelectionBounds"], [[_decorator.trace, _mobx.action], 2, "changeSelectionBounds"]], [], 0, void 0, _provider.FcrUIScreenShareProviderBase).e;
|
|
478
491
|
var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
|
|
479
492
|
_initProto = _applyDecs$e2[0];
|
|
480
493
|
_applyDecs$e;
|
|
@@ -80,14 +80,6 @@ export interface FcrUIScreenShareProvider {
|
|
|
80
80
|
* @returns 当前选中的共享区域的位置和尺寸信息
|
|
81
81
|
*/
|
|
82
82
|
get selectionBounds(): FcrUI.FcrUIRectangle;
|
|
83
|
-
/**
|
|
84
|
-
* 获取当前选中的共享源的 id 和 类型
|
|
85
|
-
* @returns 选中的共享源的 id 和 类型
|
|
86
|
-
*/
|
|
87
|
-
get selectionIdAndType(): {
|
|
88
|
-
id: string;
|
|
89
|
-
type: FcrScreenCaptureType;
|
|
90
|
-
};
|
|
91
83
|
/**
|
|
92
84
|
* 当前共享源所在的窗口边界信息
|
|
93
85
|
* 例如:
|
|
@@ -169,14 +161,6 @@ export interface FcrUIScreenShareProvider {
|
|
|
169
161
|
* 获取可共享的窗口列表
|
|
170
162
|
*/
|
|
171
163
|
getWindowList(): Promise<FcrUIScreenShareWindowInfo[]>;
|
|
172
|
-
/**
|
|
173
|
-
*设置选中的共享源的 id 和 类型
|
|
174
|
-
* @param source
|
|
175
|
-
*/
|
|
176
|
-
setSelectionIdAndType(idAndType: {
|
|
177
|
-
id: string;
|
|
178
|
-
type: FcrScreenCaptureType;
|
|
179
|
-
} | null): void;
|
|
180
164
|
/**
|
|
181
165
|
* 设置选中的共享源边界信息
|
|
182
166
|
* @param source
|
|
@@ -22,6 +22,7 @@ export declare class FcrUISttProviderImpl implements FcrUISttProvider, FcrUIMana
|
|
|
22
22
|
private _sentenceMap;
|
|
23
23
|
private _privilegeControl;
|
|
24
24
|
private _interpreterDataSource;
|
|
25
|
+
private _effectiveTranslateLanguage;
|
|
25
26
|
private _localUserId;
|
|
26
27
|
private _privilegeObserver;
|
|
27
28
|
private _roomControlObserver;
|
|
@@ -35,7 +36,6 @@ export declare class FcrUISttProviderImpl implements FcrUISttProvider, FcrUIMana
|
|
|
35
36
|
private accessor _translateLanguage;
|
|
36
37
|
private accessor _transcribingList;
|
|
37
38
|
private accessor _captionSentence;
|
|
38
|
-
private accessor _preCaptionSentence;
|
|
39
39
|
private accessor _isCaptionOpening;
|
|
40
40
|
get captionState(): boolean;
|
|
41
41
|
get transcribingState(): boolean;
|
|
@@ -49,7 +49,6 @@ export declare class FcrUISttProviderImpl implements FcrUISttProvider, FcrUIMana
|
|
|
49
49
|
get isCaptionOpening(): boolean;
|
|
50
50
|
get transcribingList(): FcrUISttTranscribingItem[];
|
|
51
51
|
get captionSentence(): FcrUISttSentence | null;
|
|
52
|
-
get preCaptionSentence(): FcrUISttSentence | null;
|
|
53
52
|
constructor({ sttControl, roomSessionControl, roomControl, localUserId, messageProvider, dialogProvider, sharedSecurityDataSource, privilegeProvider, sharedInterpreterDataSource, }: {
|
|
54
53
|
sttControl: FcrSttControl;
|
|
55
54
|
roomSessionControl: FcrRoomSessionControl;
|
|
@@ -64,7 +63,7 @@ export declare class FcrUISttProviderImpl implements FcrUISttProvider, FcrUIMana
|
|
|
64
63
|
release(): void;
|
|
65
64
|
requestOpenTranscribing(): Promise<string>;
|
|
66
65
|
acceptOpenTranscribing(session: FcrRoomSession): Promise<[void, void]>;
|
|
67
|
-
rejectOpenTranscribing(session: FcrRoomSession): Promise<[
|
|
66
|
+
rejectOpenTranscribing(session: FcrRoomSession): Promise<[string]>;
|
|
68
67
|
startCaption(): Promise<void>;
|
|
69
68
|
stopCaption(isCallbackTriggered?: boolean): Promise<void>;
|
|
70
69
|
startTranscribing(): Promise<void>;
|
|
@@ -72,12 +71,12 @@ export declare class FcrUISttProviderImpl implements FcrUISttProvider, FcrUIMana
|
|
|
72
71
|
updateSourceLanguage(language: FcrLanguage): Promise<void>;
|
|
73
72
|
subscribeTranslateLanguage(language: FcrLanguage | null): Promise<void>;
|
|
74
73
|
clearCaptionSentence(): void;
|
|
75
|
-
clearPreCaptionSentence(): void;
|
|
76
74
|
allowStartTranscribe(enable: boolean): void;
|
|
77
75
|
allowStartCaption(enable: boolean): void;
|
|
78
76
|
allowSetSourceLanguage(enable: boolean): void;
|
|
79
77
|
addObserver(observer: FcrUISttObserver): void;
|
|
80
78
|
removeObserver(observer: FcrUISttObserver): void;
|
|
79
|
+
private _updateSourceLanguage;
|
|
81
80
|
private _getTranslation;
|
|
82
81
|
private _handleSttEventReceived;
|
|
83
82
|
private _handleSourceLanguageUpdated;
|