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.
Files changed (54) hide show
  1. package/lib/fragments/whiteboard/store.js +1 -1
  2. package/lib/modules/caption/draggable-container/index.js +34 -12
  3. package/lib/modules/caption/store.d.ts +1 -4
  4. package/lib/modules/caption/store.js +10 -18
  5. package/lib/modules/caption/view.js +16 -27
  6. package/lib/modules/chat/store.d.ts +1 -0
  7. package/lib/modules/chat/store.js +2 -2
  8. package/lib/modules/components/caption-menu/index.d.ts +2 -0
  9. package/lib/modules/components/caption-menu/index.js +13 -10
  10. package/lib/modules/components/caption-menu/participants-privilege-control-options.js +5 -19
  11. package/lib/modules/components/caption-menu/translation-setting-options.js +31 -24
  12. package/lib/modules/control-bar/components/carmera/index.js +7 -39
  13. package/lib/modules/control-bar/components/cloud-recording-buttons.js +18 -33
  14. package/lib/modules/control-bar/components/microphone/index.js +3 -43
  15. package/lib/modules/control-bar/components/share-audio/index.d.ts +2 -0
  16. package/lib/modules/control-bar/components/share-audio/index.js +4 -10
  17. package/lib/modules/control-bar/hooks.d.ts +1 -0
  18. package/lib/modules/control-bar/hooks.js +140 -1
  19. package/lib/modules/control-bar/store.d.ts +3 -4
  20. package/lib/modules/control-bar/store.js +37 -30
  21. package/lib/modules/control-bar/type.d.ts +3 -0
  22. package/lib/modules/control-bar/view.js +40 -57
  23. package/lib/modules/dialog/components/confirm/index.js +0 -1
  24. package/lib/modules/dialog/components/dialog-container/index.js +1 -0
  25. package/lib/modules/event-toast/index.js +7 -1
  26. package/lib/modules/layout/store.base.d.ts +1 -1
  27. package/lib/modules/layout/store.electron.d.ts +0 -1
  28. package/lib/modules/layout/store.electron.js +37 -133
  29. package/lib/modules/participant/store.base.js +8 -10
  30. package/lib/modules/secondary-window/store.js +1 -3
  31. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.d.ts +28 -0
  32. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.js +41 -5
  33. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.d.ts +3 -14
  34. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.js +45 -24
  35. package/lib/modules/setting/index.js +4 -2
  36. package/lib/modules/setting/store.base.d.ts +5 -3
  37. package/lib/modules/setting/store.base.js +64 -43
  38. package/lib/modules/setting/store.electron.d.ts +1 -1
  39. package/lib/modules/setting/store.electron.js +3 -7
  40. package/lib/modules/setting/view.js +3 -2
  41. package/lib/modules/share-screen/store.electron.js +51 -23
  42. package/lib/modules/subtitles-history/components/list-item.js +4 -7
  43. package/lib/modules/subtitles-history/store.base.d.ts +3 -1
  44. package/lib/modules/subtitles-history/store.base.js +11 -1
  45. package/lib/providers/screen-share/provider.base.d.ts +2 -13
  46. package/lib/providers/screen-share/provider.base.js +5 -12
  47. package/lib/providers/screen-share/provider.electron.d.ts +0 -5
  48. package/lib/providers/screen-share/provider.electron.js +31 -18
  49. package/lib/providers/screen-share/type.d.ts +0 -16
  50. package/lib/providers/stt-provider/stt-provider.d.ts +3 -4
  51. package/lib/providers/stt-provider/stt-provider.js +145 -146
  52. package/lib/providers/stt-provider/type.d.ts +2 -10
  53. package/lib/providers/stt-provider/type.js +3 -3
  54. 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, sharingTarget;
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 = 4;
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 = 4;
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.WINDOW)) {
374
- _context4.next = 4;
365
+ if (!(type === _type.FcrUIShareType.DISPLAY)) {
366
+ _context4.next = 5;
375
367
  break;
376
368
  }
377
369
  _context4.next = 2;
378
- return this.screenShareProvider.getWindowList();
370
+ return this.screenShareProvider.getDisplayList();
379
371
  case 2:
380
- windowList = _context4.sent;
381
- sharingTarget = windowList.find(function (item) {
372
+ displayList = _context4.sent;
373
+ display = displayList.find(function (item) {
382
374
  return item.id === id;
383
375
  });
384
- if (sharingTarget) {
376
+ if (!display) {
385
377
  _context4.next = 3;
386
378
  break;
387
379
  }
388
- this.logger.warn('sharing target is missing when display changed');
389
- return _context4.abrupt("return");
380
+ sharingTargetBounds = display.bounds;
381
+ _context4.next = 4;
382
+ break;
390
383
  case 3:
391
- this.screenShareProvider.changeSelectionBounds(sharingTarget.bounds, _struct.FcrUISelectionBoundsChangeReason.DISPLAY_CHANGE);
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
- if (day === now.getDate()) {
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, "-").concat(day, " ").concat(hh, ":").concat(mm);
28
+ return "".concat(month, "/").concat(day, " ").concat(hh, ":").concat(mm);
32
29
  }
33
- return "".concat(year, "-").concat(month, "-").concat(day, " ").concat(hh, ":").concat(mm);
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("agora-foundation/lib/logger").Logger;
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.FcrUiSttConstants.REQUEST_OPEN_TRANSCRIBING_DURATION;
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 { FcrScreenCaptureType, FcrSharingControl, FcrUserInfo } from 'fcr-core/lib/type';
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(); // create screen stream
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
- _context3.next = 10;
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.prev = 11;
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 12:
274
+ case 13:
261
275
  if (!this._isSharingWithAudio) {
262
- _context3.next = 13;
276
+ _context3.next = 14;
263
277
  break;
264
278
  }
265
- _context3.next = 13;
279
+ _context3.next = 14;
266
280
  return this.strategy.startLoopbackCapture({});
267
- case 13:
281
+ case 14:
268
282
  case "end":
269
283
  return _context3.stop();
270
284
  }
271
- }, _callee3, this, [[5, 7], [8, 11]]);
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"], [_decorator.trace, 2, "setSelectionIdAndType"], [[_decorator.trace, _mobx.action], 2, "setSelectionBounds"], [[_decorator.trace, _mobx.action], 2, "changeSelectionBounds"]], [], 0, void 0, _provider.FcrUIScreenShareProviderBase).e;
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<[void, string]>;
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;