fcr-ui-scene 3.4.2 → 3.4.4

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 (215) hide show
  1. package/lib/common/device-store.d.ts +23 -14
  2. package/lib/common/device-store.js +361 -252
  3. package/lib/common/device-stream-store.d.ts +8 -14
  4. package/lib/common/device-stream-store.js +254 -116
  5. package/lib/common/event-store.d.ts +35 -10
  6. package/lib/common/event-store.js +64 -13
  7. package/lib/common/security-store.d.ts +47 -39
  8. package/lib/common/security-store.js +335 -379
  9. package/lib/electron/app.js +1 -0
  10. package/lib/modules/action-bar/action-bar-collapes-items.d.ts +4 -1
  11. package/lib/modules/action-bar/action-bar-collapes-items.js +38 -21
  12. package/lib/modules/action-bar/components/apps/useWidgetList.d.ts +7 -0
  13. package/lib/modules/action-bar/components/apps/useWidgetList.js +43 -0
  14. package/lib/modules/action-bar/components/leave/assign-host.d.ts +8 -1
  15. package/lib/modules/action-bar/components/leave/assign-host.js +1 -1
  16. package/lib/modules/action-bar/components/leave/leave-meeting.d.ts +16 -1
  17. package/lib/modules/action-bar/smaller.js +5 -5
  18. package/lib/modules/chat/chat-bar/index.css +6 -0
  19. package/lib/modules/chat/chat-bar/index.d.ts +3 -3
  20. package/lib/modules/chat/chat-bar/index.js +51 -39
  21. package/lib/modules/chat/chat-select/index.css +27 -7
  22. package/lib/modules/chat/chat-select/index.d.ts +1 -1
  23. package/lib/modules/chat/chat-select/index.js +18 -4
  24. package/lib/modules/chat/chat.d.ts +1 -2
  25. package/lib/modules/chat/chat.js +196 -128
  26. package/lib/modules/chat/components/chat-select/select-input/index.d.ts +7 -0
  27. package/lib/modules/chat/components/chat-select/select-input/index.js +35 -0
  28. package/lib/modules/chat/components/chat-select/select-item/index.d.ts +12 -0
  29. package/lib/modules/chat/components/chat-select/select-item/index.js +153 -0
  30. package/lib/modules/chat/components/chat-tabs/index.d.ts +2 -0
  31. package/lib/modules/chat/components/chat-tabs/index.js +61 -0
  32. package/lib/modules/chat/components/message-list/chat-empty/index.d.ts +2 -0
  33. package/lib/modules/chat/components/message-list/chat-empty/index.js +26 -0
  34. package/lib/modules/chat/components/message-list/history-unread-message-button/index.d.ts +7 -0
  35. package/lib/modules/chat/components/message-list/history-unread-message-button/index.js +55 -0
  36. package/lib/modules/chat/components/message-list/message-item/index.d.ts +15 -0
  37. package/lib/modules/chat/components/message-list/message-item/index.js +279 -0
  38. package/lib/modules/chat/components/message-list/scroll-bottom-button/index.d.ts +9 -0
  39. package/lib/modules/chat/components/message-list/scroll-bottom-button/index.js +67 -0
  40. package/lib/modules/chat/message-list.js +68 -51
  41. package/lib/modules/components/dialog-container/component/body.js +1 -2
  42. package/lib/modules/components/dialog-container/index.d.ts +2 -2
  43. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +6 -0
  44. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +36 -0
  45. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +40 -0
  46. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +170 -0
  47. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +11 -0
  48. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +105 -0
  49. package/lib/modules/components/member-window/components/member-actions/components/layout/index.d.ts +9 -0
  50. package/lib/modules/components/member-window/components/member-actions/components/layout/index.js +42 -0
  51. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +11 -0
  52. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +159 -0
  53. package/lib/modules/components/member-window/components/member-actions/components/share-status.d.ts +2 -0
  54. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +32 -0
  55. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +16 -0
  56. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +130 -0
  57. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +12 -0
  58. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +57 -0
  59. package/lib/modules/components/member-window/components/member-actions/index.d.ts +3 -0
  60. package/lib/modules/components/member-window/components/member-actions/index.js +122 -0
  61. package/lib/modules/components/member-window/components/member-actions/libs/index.d.ts +2 -0
  62. package/lib/modules/components/member-window/components/member-actions/libs/index.js +24 -0
  63. package/lib/modules/components/member-window/components/member-actions/provider.d.ts +21 -0
  64. package/lib/modules/components/member-window/components/member-actions/provider.js +77 -0
  65. package/lib/modules/components/member-window/components/member-actions/store.d.ts +48 -0
  66. package/lib/modules/components/member-window/components/member-actions/store.js +306 -0
  67. package/lib/modules/components/member-window/components/member-board.d.ts +2 -0
  68. package/lib/modules/components/member-window/components/member-board.js +63 -0
  69. package/lib/modules/components/member-window/components/mic-volume.d.ts +2 -0
  70. package/lib/modules/components/member-window/components/mic-volume.js +23 -0
  71. package/lib/modules/components/member-window/components/video-player/components/local-video-player.d.ts +4 -0
  72. package/lib/modules/components/member-window/components/video-player/components/local-video-player.js +40 -0
  73. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +8 -0
  74. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +62 -0
  75. package/lib/modules/components/member-window/components/video-player/index.d.ts +9 -0
  76. package/lib/modules/components/member-window/components/video-player/index.js +38 -0
  77. package/lib/modules/components/member-window/types.d.ts +78 -0
  78. package/lib/modules/components/member-window/types.js +6 -0
  79. package/lib/modules/connection-gateway/components/tabs/index.js +2 -1
  80. package/lib/modules/control-bar/components/meeting-details/index.js +7 -15
  81. package/lib/modules/control-bar/components/more-actions/index.js +5 -15
  82. package/lib/modules/dialog/components/system-preference/assets/bg1.png +0 -0
  83. package/lib/modules/dialog/components/system-preference/assets/bg2.png +0 -0
  84. package/lib/modules/dialog/components/system-preference/assets/fcr_png_host.png +0 -0
  85. package/lib/modules/dialog/components/widget/electron.d.ts +5 -0
  86. package/lib/modules/dialog/components/widget/electron.js +41 -0
  87. package/lib/modules/dialog/components/widget/index.d.ts +6 -0
  88. package/lib/modules/dialog/components/widget/index.js +41 -0
  89. package/lib/modules/dialog/type.d.ts +84 -0
  90. package/lib/modules/dialog/type.js +6 -0
  91. package/lib/modules/invite/components/pstn-invite.js +4 -13
  92. package/lib/modules/invite/pstn-invite.js +7 -9
  93. package/lib/modules/invite/store.d.ts +2 -0
  94. package/lib/modules/invite/store.js +6 -0
  95. package/lib/modules/invite/voip-invite.js +5 -6
  96. package/lib/modules/layout/member-window/index.css +116 -18
  97. package/lib/modules/layout/member-window/index.d.ts +10 -3
  98. package/lib/modules/layout/member-window/index.js +227 -115
  99. package/lib/modules/participant/attendee/index.css +0 -51
  100. package/lib/modules/participant/attendee/index.d.ts +8 -5
  101. package/lib/modules/participant/attendee/index.js +61 -15
  102. package/lib/modules/participant/components/attendee/components/interpreter-tag/index.d.ts +3 -0
  103. package/lib/modules/participant/components/attendee/components/interpreter-tag/index.js +48 -0
  104. package/lib/modules/participant/components/confirm-input/index.d.ts +6 -0
  105. package/lib/modules/participant/components/confirm-input/index.js +49 -0
  106. package/lib/modules/participant/components/drop-menu/util.d.ts +5 -0
  107. package/lib/modules/participant/components/drop-menu/util.js +28 -0
  108. package/lib/modules/participant/components/participants/components/footer/components/buttons.d.ts +6 -0
  109. package/lib/modules/participant/components/participants/components/footer/components/buttons.js +52 -0
  110. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +60 -0
  111. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.d.ts +2 -0
  112. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.js +166 -0
  113. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/util.d.ts +5 -0
  114. package/lib/modules/participant/components/participants/components/footer/components/drop-menu/util.js +28 -0
  115. package/lib/modules/participant/components/participants/components/footer/components/footer/index.css +13 -0
  116. package/lib/modules/participant/components/participants/components/footer/components/footer/index.d.ts +5 -0
  117. package/lib/modules/participant/components/participants/components/footer/components/footer/index.js +242 -0
  118. package/lib/modules/participant/components/participants/components/footer/index.d.ts +5 -0
  119. package/lib/modules/participant/components/participants/components/footer/index.js +47 -0
  120. package/lib/modules/participant/components/participants/components/merge/index.d.ts +11 -0
  121. package/lib/modules/participant/components/participants/components/merge/index.js +49 -0
  122. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.css +191 -0
  123. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.d.ts +4 -0
  124. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +204 -0
  125. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.css +49 -0
  126. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.d.ts +5 -0
  127. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +219 -0
  128. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +5 -0
  129. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +70 -0
  130. package/lib/modules/participant/components/participants/components/participants/index.css +104 -0
  131. package/lib/modules/participant/components/participants/components/participants/index.d.ts +3 -0
  132. package/lib/modules/participant/components/participants/components/participants/index.js +110 -0
  133. package/lib/modules/participant/components/participants/components/render-tab/index.d.ts +2 -0
  134. package/lib/modules/participant/components/participants/components/render-tab/index.js +49 -0
  135. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.d.ts +3 -0
  136. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/interpreter-tag/index.js +48 -0
  137. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/microphone-indicator/index.d.ts +6 -0
  138. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/microphone-indicator/index.js +28 -0
  139. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/user-avatar/index.d.ts +7 -0
  140. package/lib/modules/participant/components/participants/components/render-user/components/attendee/components/user-avatar/index.js +39 -0
  141. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +69 -0
  142. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.d.ts +5 -0
  143. package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.js +135 -0
  144. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/audio-button/index.d.ts +7 -0
  145. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/audio-button/index.js +31 -0
  146. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.d.ts +12 -0
  147. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +82 -0
  148. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-to-mainroom-button/index.d.ts +4 -0
  149. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-to-mainroom-button/index.js +26 -0
  150. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.d.ts +2 -0
  151. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.js +75 -0
  152. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +5 -0
  153. package/lib/modules/participant/components/participants/components/render-user/index.js +21 -0
  154. package/lib/modules/participant/components/participants/render-tab/index.d.ts +2 -0
  155. package/lib/modules/participant/components/participants/render-tab/index.js +49 -0
  156. package/lib/modules/participant/components/participants/render-user/index.d.ts +5 -0
  157. package/lib/modules/participant/components/participants/render-user/index.js +21 -0
  158. package/lib/modules/participant/components/participants/types.d.ts +96 -0
  159. package/lib/modules/participant/components/participants/types.js +37 -0
  160. package/lib/modules/participant/components/user-action/audio-button/index.d.ts +7 -0
  161. package/lib/modules/participant/components/user-action/audio-button/index.js +31 -0
  162. package/lib/modules/participant/components/user-action/move-actions-popover/index.d.ts +12 -0
  163. package/lib/modules/participant/components/user-action/move-actions-popover/index.js +82 -0
  164. package/lib/modules/participant/components/user-action/move-to-mainroom-button/index.d.ts +4 -0
  165. package/lib/modules/participant/components/user-action/move-to-mainroom-button/index.js +26 -0
  166. package/lib/modules/share-screen/selection/index.css +4 -0
  167. package/lib/modules/share-screen/selection/index.js +126 -129
  168. package/lib/modules/share-screen/share-state-bar/index.js +1 -1
  169. package/lib/modules/state-bar/meeting-details.js +29 -34
  170. package/lib/modules/video-window/components/deviceState/index.d.ts +7 -0
  171. package/lib/modules/video-window/components/deviceState/index.js +75 -0
  172. package/lib/modules/video-window/components/members/index.css +51 -0
  173. package/lib/modules/video-window/components/members/index.d.ts +2 -0
  174. package/lib/modules/video-window/components/members/index.js +130 -0
  175. package/lib/modules/video-window/components/speaking/index.css +86 -0
  176. package/lib/modules/video-window/components/speaking/index.d.ts +3 -0
  177. package/lib/modules/video-window/components/speaking/index.js +48 -0
  178. package/lib/modules/video-window/components/topControl/index.css +35 -0
  179. package/lib/modules/video-window/components/topControl/index.d.ts +3 -0
  180. package/lib/modules/video-window/components/topControl/index.js +79 -0
  181. package/lib/modules/widget/index.css +17 -0
  182. package/lib/modules/widget/index.d.ts +10 -0
  183. package/lib/modules/widget/index.js +114 -0
  184. package/lib/modules/widget/sdk.d.ts +30 -0
  185. package/lib/modules/widget/sdk.js +221 -0
  186. package/lib/modules/widget/store.d.ts +14 -0
  187. package/lib/modules/widget/store.js +28 -0
  188. package/lib/modules/widget/type.d.ts +155 -0
  189. package/lib/modules/widget/type.js +6 -0
  190. package/lib/modules/widget/view.d.ts +2 -0
  191. package/lib/modules/widget/view.js +47 -0
  192. package/lib/modules/widget/web-widget.d.ts +29 -0
  193. package/lib/modules/widget/web-widget.js +234 -0
  194. package/lib/providers/ability-provider.d.ts +24 -0
  195. package/lib/providers/ability-provider.js +36 -0
  196. package/lib/providers/widget-provider.d.ts +44 -0
  197. package/lib/providers/widget-provider.js +167 -0
  198. package/lib/schema.d.ts +114 -0
  199. package/lib/schema.js +77 -0
  200. package/lib/shared-data-source/member-data.d.ts +126 -0
  201. package/lib/shared-data-source/member-data.js +465 -0
  202. package/lib/translations/enUS.d.ts +5 -0
  203. package/lib/translations/enUS.js +9 -3
  204. package/lib/translations/zhCN.d.ts +5 -0
  205. package/lib/translations/zhCN.js +13 -7
  206. package/lib/utilities/extract.d.ts +1 -1
  207. package/lib/utilities/logger.d.ts +8 -0
  208. package/lib/utilities/logger.js +42 -0
  209. package/lib/utilities/meeting-detail.d.ts +2 -0
  210. package/lib/utilities/meeting-detail.js +56 -0
  211. package/lib/utilities/validate-params.d.ts +2 -0
  212. package/lib/utilities/validate-params.js +16 -0
  213. package/lib/widget-sdk.d.ts +2 -0
  214. package/lib/widget-sdk.js +13 -0
  215. package/package.json +5 -5
@@ -1,32 +1,24 @@
1
- import { FcrDesktopMediaControl } from 'agora-edu-core';
2
- import { FcrSecurityStore } from './security-store';
3
- import { FcrDeviceStore } from './device-store';
4
- import { FcrUIEventStore } from './event-store';
5
- import { FcrBaseRoomControl } from 'agora-edu-core/lib/room-control/type';
1
+ import { FcrInterpreterRoomControl } from 'fcr-core/lib/room-control/interpreter-control/types';
2
+ import { StoreConfig } from '../type';
6
3
  export declare class FcrDeviceStreamStore {
7
4
  protected logger: import("agora-foundation/lib/logger").Logger;
8
- private _mediaControl;
9
5
  private _roomControl;
10
6
  private _deviceStore;
11
7
  private _securityStore;
12
8
  private _cameraDeviceId;
13
9
  private _microphoneDeviceId;
14
10
  private _uiEventStore;
11
+ private _interpreterControl;
15
12
  private get _localUser();
16
13
  private get _localCameraStream();
17
14
  private get _localLoopbackStream();
18
15
  private get _canStartLocalVideo();
19
16
  private get _canStartLocalAudio();
20
- constructor({ mediaControl, roomControl, securityStore, deviceStore, uiEventStore, }: {
21
- mediaControl: FcrDesktopMediaControl;
22
- roomControl: FcrBaseRoomControl;
23
- securityStore: FcrSecurityStore;
24
- deviceStore: FcrDeviceStore;
25
- uiEventStore: FcrUIEventStore;
26
- });
17
+ private _firstGetMicrophonePrivilege;
18
+ constructor({ roomControl, securityStore, deviceStore, uiEventStore, }: Omit<StoreConfig, 'deviceStreamStore'>);
19
+ checkoutDevicePermission(mediaType: 'camera' | 'microphone'): Promise<boolean>;
27
20
  enableCameraWithStream(enable: boolean): Promise<void>;
28
21
  enableMicrophoneWithStream(enable: boolean, confirmAudioShareWhileMicOff?: boolean): Promise<void>;
29
- private _setMicrophoneEnabled;
30
22
  release(): void;
31
23
  private _initLocalStream;
32
24
  private _handleCameraChanged;
@@ -34,4 +26,6 @@ export declare class FcrDeviceStreamStore {
34
26
  private _bindLocalAudioStream;
35
27
  private _bindLocalVideoStream;
36
28
  private _handleProcessEvent;
29
+ updateStreams(roomControl: FcrInterpreterRoomControl | null, open: boolean): Promise<void>;
30
+ _getInterpreterInfo(): import("fcr-core/lib/room-control/interpreter-control/types").FcrInterpreterUserInfo | null | undefined;
37
31
  }
@@ -42,38 +42,43 @@ Object.defineProperty(exports, "__esModule", {
42
42
  exports.FcrDeviceStreamStore = void 0;
43
43
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
44
44
  require("core-js/modules/es.array.find.js");
45
+ require("core-js/modules/es.array.map.js");
46
+ require("core-js/modules/es.object.keys.js");
45
47
  require("core-js/modules/es.object.to-string.js");
46
48
  require("core-js/modules/esnext.async-iterator.find.js");
49
+ require("core-js/modules/esnext.async-iterator.map.js");
47
50
  require("core-js/modules/esnext.iterator.constructor.js");
48
51
  require("core-js/modules/esnext.iterator.find.js");
52
+ require("core-js/modules/esnext.iterator.map.js");
49
53
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
50
54
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
51
55
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
52
56
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
53
57
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
54
- var _agoraEduCore = require("agora-edu-core");
58
+ var _fcrCore = require("fcr-core");
55
59
  var _decorator = require("agora-foundation/lib/decorator");
56
60
  var _mobx = require("mobx");
57
- var _toast = require("agora-ui-foundation/lib/components/toast");
58
61
  var _type = require("agora-rte-sdk/lib/core/scene/type");
59
62
  var _type2 = require("agora-rte-sdk/lib/core/rtc/type");
60
63
  var _logger = require("agora-foundation/lib/logger");
61
64
  var _i18n = require("agora-ui-foundation/lib/i18n");
62
65
  var _rendererEvent = require("../utilities/renderer-event");
63
66
  var _constant = require("../utilities/constant");
67
+ var _type3 = require("fcr-core/lib/room-control/type");
68
+ var _env = require("agora-foundation/lib/utilities/env");
64
69
  var _FcrDeviceStreamStore;
65
- var _initProto, _enableCameraWithStreamDecs, _enableMicrophoneWithStreamDecs, _ref;
70
+ var _initProto, _checkoutDevicePermissionDecs, _enableCameraWithStreamDecs, _enableMicrophoneWithStreamDecs, _getInterpreterInfoDecs, _ref;
66
71
  function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
67
72
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
68
73
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
69
74
  function _setFunctionName(e, t, n) { "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); try { Object.defineProperty(e, "name", { configurable: !0, value: n ? n + " " + t : t }); } catch (e) {} return e; }
70
75
  function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== e ? _typeof(e) : "null")); return e; }
71
- _ref = (_enableCameraWithStreamDecs = [_mobx.action, _mobx.action.bound], _enableMicrophoneWithStreamDecs = [_mobx.action, _mobx.action.bound], "logger");
76
+ _ref = (_checkoutDevicePermissionDecs = [_mobx.action, _mobx.action.bound], _enableCameraWithStreamDecs = [_mobx.action, _mobx.action.bound], _enableMicrophoneWithStreamDecs = [_mobx.action, _mobx.action.bound], _getInterpreterInfoDecs = [_mobx.action, _mobx.action.bound], "logger");
72
77
  var FcrDeviceStreamStore = exports.FcrDeviceStreamStore = /*#__PURE__*/function () {
73
78
  function FcrDeviceStreamStore(_ref2) {
74
- var _this = this;
75
- var mediaControl = _ref2.mediaControl,
76
- roomControl = _ref2.roomControl,
79
+ var _roomControl$getRoomI,
80
+ _this = this;
81
+ var roomControl = _ref2.roomControl,
77
82
  securityStore = _ref2.securityStore,
78
83
  deviceStore = _ref2.deviceStore,
79
84
  uiEventStore = _ref2.uiEventStore;
@@ -81,11 +86,18 @@ var FcrDeviceStreamStore = exports.FcrDeviceStreamStore = /*#__PURE__*/function
81
86
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.getLogger)()));
82
87
  (0, _defineProperty2["default"])(this, "_cameraDeviceId", '');
83
88
  (0, _defineProperty2["default"])(this, "_microphoneDeviceId", '');
89
+ (0, _defineProperty2["default"])(this, "_interpreterControl", null);
90
+ (0, _defineProperty2["default"])(this, "_firstGetMicrophonePrivilege", true);
84
91
  this._deviceStore = deviceStore;
85
92
  this._roomControl = roomControl;
86
- this._mediaControl = mediaControl;
87
93
  this._securityStore = securityStore;
88
94
  this._uiEventStore = uiEventStore;
95
+ if (((_roomControl$getRoomI = roomControl.getRoomInfo()) === null || _roomControl$getRoomI === void 0 ? void 0 : _roomControl$getRoomI.roomType) === _type3.FcrRoomType.Mainroom) {
96
+ var interpreterControl = roomControl.getInterpreterControl();
97
+ if (interpreterControl) {
98
+ this._interpreterControl = interpreterControl;
99
+ }
100
+ }
89
101
  this._deviceStore.addObserver({
90
102
  onCameraChanged: this._handleCameraChanged,
91
103
  onMicrophoneChanged: this._handleMicrophoneChanged
@@ -103,30 +115,30 @@ var FcrDeviceStreamStore = exports.FcrDeviceStreamStore = /*#__PURE__*/function
103
115
  }
104
116
  },
105
117
  onStreamsUpdated: function onStreamsUpdated(_, e) {
106
- var _e$find2;
107
- var localCameraStream = (_e$find2 = e.find(function (event) {
118
+ var localCamera = e.find(function (event) {
108
119
  return event.modifiedStream.owner.userId === _this._localUser.userId && event.modifiedStream.videoSourceType === _type2.AgoraRtcVideoSourceType.CAMERA;
109
- })) === null || _e$find2 === void 0 ? void 0 : _e$find2.modifiedStream;
120
+ });
121
+ var localCameraStream = localCamera === null || localCamera === void 0 ? void 0 : localCamera.modifiedStream;
110
122
  if (localCameraStream) {
123
+ var _localCamera$operator;
111
124
  if (localCameraStream.streamType === _type.AgoraRteMediaStreamType.AUDIO || localCameraStream.streamType === _type.AgoraRteMediaStreamType.NONE) {
112
125
  if (_this._deviceStore.cameraEnabled) {
113
126
  _this._deviceStore.setCameraEnabled(false);
114
- _toast.FcrToastApi.open({
115
- toastProps: {
116
- type: 'error',
117
- content: (0, _i18n.transI18n)('fmt_uimanager_tips_urturnedoff')
118
- }
127
+ _this._uiEventStore.showToast({
128
+ type: 'error',
129
+ message: (0, _i18n.transI18n)('fmt_uimanager_tips_urturnedoff')
119
130
  });
120
131
  }
121
132
  }
133
+ if (_this._getInterpreterInfo() && ((_localCamera$operator = localCamera.operatorUser) === null || _localCamera$operator === void 0 ? void 0 : _localCamera$operator.userId) === _this._localUser.userId) {
134
+ return;
135
+ }
122
136
  if (localCameraStream.streamType === _type.AgoraRteMediaStreamType.VIDEO || localCameraStream.streamType === _type.AgoraRteMediaStreamType.NONE) {
123
137
  if (_this._deviceStore.microphoneEnabled) {
124
138
  _this._deviceStore.setMicrophoneEnabled(false);
125
- _toast.FcrToastApi.open({
126
- toastProps: {
127
- type: 'error',
128
- content: (0, _i18n.transI18n)('fmt_uimanager_tips_urmuted')
129
- }
139
+ _this._uiEventStore.showToast({
140
+ type: 'error',
141
+ message: (0, _i18n.transI18n)('fmt_uimanager_tips_urmuted')
130
142
  });
131
143
  }
132
144
  }
@@ -140,7 +152,6 @@ var FcrDeviceStreamStore = exports.FcrDeviceStreamStore = /*#__PURE__*/function
140
152
  microphoneDeviceId = _this$_deviceStore$cu.microphoneDeviceId;
141
153
  this._cameraDeviceId = cameraDeviceId;
142
154
  this._microphoneDeviceId = microphoneDeviceId;
143
- this._mediaControl.enableAudioVolumeIndication(100, 1);
144
155
  this._initLocalStream();
145
156
  (0, _rendererEvent.addEventListener)(this._handleProcessEvent);
146
157
  }
@@ -168,158 +179,226 @@ var FcrDeviceStreamStore = exports.FcrDeviceStreamStore = /*#__PURE__*/function
168
179
  }, {
169
180
  key: "_canStartLocalVideo",
170
181
  get: function get() {
171
- return this._securityStore.hasStartVideoPermission(_agoraEduCore.FcrPrivilegeUserRole.SELF);
182
+ return this._securityStore.hasStartVideoPermission(_fcrCore.FcrPrivilegeUserRole.SELF);
172
183
  }
173
184
  }, {
174
185
  key: "_canStartLocalAudio",
175
186
  get: function get() {
176
- return this._securityStore.hasUnmutePermission(_agoraEduCore.FcrPrivilegeUserRole.SELF);
187
+ return this._securityStore.hasUnmutePermission(_fcrCore.FcrPrivilegeUserRole.SELF);
177
188
  }
178
189
  }, {
179
- key: "enableCameraWithStream",
190
+ key: "checkoutDevicePermission",
180
191
  value: function () {
181
- var _enableCameraWithStream = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(enable) {
192
+ var _checkoutDevicePermission = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(mediaType) {
193
+ var hasSystemPermission;
182
194
  return _regenerator["default"].wrap(function _callee$(_context) {
183
195
  while (1) switch (_context.prev = _context.next) {
184
196
  case 0:
185
- if (this._deviceStore.cameraId) {
186
- _context.next = 2;
187
- break;
188
- }
189
- return _context.abrupt("return");
190
- case 2:
191
- if (!(enable && !this._canStartLocalVideo)) {
197
+ hasSystemPermission = true;
198
+ if (!(0, _env.isElectron)()) {
192
199
  _context.next = 5;
193
200
  break;
194
201
  }
195
- _toast.FcrToastApi.open({
196
- toastProps: {
197
- type: 'warn',
198
- content: (0, _i18n.transI18n)('fmt_uimanager_tips_norightsvideo')
199
- }
200
- });
201
- return _context.abrupt("return");
202
+ _context.next = 4;
203
+ return window.runtime.checkMediaPermission(mediaType);
204
+ case 4:
205
+ hasSystemPermission = _context.sent;
202
206
  case 5:
203
- if (!(this._localCameraStream && enable)) {
204
- _context.next = 9;
205
- break;
207
+ if (!hasSystemPermission) {
208
+ this._uiEventStore.openDialog(_constant.DialogKey.SYSTEM_PREFERENCE, '', mediaType);
206
209
  }
207
- if (!(this._localCameraStream.streamType === _agoraEduCore.FcrStreamType.NONE || this._localCameraStream.streamType === _agoraEduCore.FcrStreamType.AUDIO)) {
208
- _context.next = 9;
209
- break;
210
- }
211
- _context.next = 9;
212
- return this._roomControl.getStreamControl().updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, this._localCameraStream.streamId, {
213
- videoPrivilege: _agoraEduCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE,
214
- audioPrivilege: _agoraEduCore.FcrStreamPrivilegeOperation.NOOPERATION
215
- }));
216
- case 9:
217
- this._deviceStore.setCameraEnabled(enable);
218
- case 10:
210
+ return _context.abrupt("return", hasSystemPermission);
211
+ case 7:
219
212
  case "end":
220
213
  return _context.stop();
221
214
  }
222
215
  }, _callee, this);
223
216
  }));
224
- function enableCameraWithStream(_x) {
225
- return _enableCameraWithStream.apply(this, arguments);
217
+ function checkoutDevicePermission(_x) {
218
+ return _checkoutDevicePermission.apply(this, arguments);
226
219
  }
227
- return enableCameraWithStream;
220
+ return checkoutDevicePermission;
228
221
  }()
229
222
  }, {
230
- key: "enableMicrophoneWithStream",
223
+ key: "enableCameraWithStream",
231
224
  value: function () {
232
- var _enableMicrophoneWithStream = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(enable) {
233
- var _this2 = this;
234
- var confirmAudioShareWhileMicOff,
235
- dialogKey,
236
- _args2 = arguments;
225
+ var _enableCameraWithStream = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(enable) {
226
+ var _this$_roomControl$ge;
227
+ var hasVideoPublishPrivilege, hasNoSecurityPermission, isMainRoom, hasDeivcePermission;
237
228
  return _regenerator["default"].wrap(function _callee2$(_context2) {
238
229
  while (1) switch (_context2.prev = _context2.next) {
239
230
  case 0:
240
- confirmAudioShareWhileMicOff = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;
241
- dialogKey = !enable && confirmAudioShareWhileMicOff && this._uiEventStore.openConfirmDialog({
242
- title: (0, _i18n.transI18n)('fmt_screenshare_tips_share_audio_micon'),
243
- content: (0, _i18n.transI18n)('fmt_screenshare_tips_share_audio_turnonmic'),
244
- onOk: function onOk() {
245
- _this2._setMicrophoneEnabled(true);
246
- dialogKey && _this2._uiEventStore.closeDialog(dialogKey);
247
- },
248
- onCancel: function onCancel() {
249
- _this2._setMicrophoneEnabled(false);
250
- (0, _rendererEvent.sendEvent)({
251
- action: _constant.RendererEventAction.SET_SHARE_WITH_AUDIO_CONTROL_BAR,
252
- payload: {
253
- withAudio: false
254
- }
255
- });
256
- dialogKey && _this2._uiEventStore.closeDialog(dialogKey);
257
- },
258
- okText: (0, _i18n.transI18n)('fmt_screenshare_button_confirm_shareaudio'),
259
- cancelText: (0, _i18n.transI18n)('fmt_screenshare_button_giveup_shareaudio')
231
+ if (this._deviceStore.cameraId) {
232
+ _context2.next = 2;
233
+ break;
234
+ }
235
+ return _context2.abrupt("return");
236
+ case 2:
237
+ hasVideoPublishPrivilege = this._localCameraStream && (this._localCameraStream.streamType === _fcrCore.FcrStreamType.BOTH || this._localCameraStream.streamType === _fcrCore.FcrStreamType.VIDEO);
238
+ hasNoSecurityPermission = !this._canStartLocalVideo;
239
+ isMainRoom = ((_this$_roomControl$ge = this._roomControl.getRoomInfo()) === null || _this$_roomControl$ge === void 0 ? void 0 : _this$_roomControl$ge.roomType) === _type3.FcrRoomType.Mainroom;
240
+ if (!(hasNoSecurityPermission && isMainRoom && enable)) {
241
+ _context2.next = 11;
242
+ break;
243
+ }
244
+ this._uiEventStore.showToast({
245
+ type: 'warn',
246
+ message: (0, _i18n.transI18n)('fmt_uimanager_tips_norightsvideo')
260
247
  });
261
- if (!(!this._deviceStore.microphoneId || dialogKey)) {
262
- _context2.next = 4;
248
+ if (!hasVideoPublishPrivilege) {
249
+ _context2.next = 10;
263
250
  break;
264
251
  }
252
+ _context2.next = 10;
253
+ return this._roomControl.getStreamControl().updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, this._localCameraStream.streamId, {
254
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE,
255
+ audioPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
256
+ }));
257
+ case 10:
265
258
  return _context2.abrupt("return");
266
- case 4:
267
- this._setMicrophoneEnabled(enable);
268
- case 5:
259
+ case 11:
260
+ if (!(this._localCameraStream && enable && isMainRoom)) {
261
+ _context2.next = 15;
262
+ break;
263
+ }
264
+ if (hasVideoPublishPrivilege) {
265
+ _context2.next = 15;
266
+ break;
267
+ }
268
+ _context2.next = 15;
269
+ return this._roomControl.getStreamControl().updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, this._localCameraStream.streamId, {
270
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE,
271
+ audioPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION
272
+ }));
273
+ case 15:
274
+ _context2.next = 17;
275
+ return this.checkoutDevicePermission('camera');
276
+ case 17:
277
+ hasDeivcePermission = _context2.sent;
278
+ if (hasDeivcePermission) {
279
+ this._deviceStore.setCameraEnabled(enable);
280
+ }
281
+ case 19:
269
282
  case "end":
270
283
  return _context2.stop();
271
284
  }
272
285
  }, _callee2, this);
273
286
  }));
274
- function enableMicrophoneWithStream(_x2) {
275
- return _enableMicrophoneWithStream.apply(this, arguments);
287
+ function enableCameraWithStream(_x2) {
288
+ return _enableCameraWithStream.apply(this, arguments);
276
289
  }
277
- return enableMicrophoneWithStream;
290
+ return enableCameraWithStream;
278
291
  }()
279
292
  }, {
280
- key: "_setMicrophoneEnabled",
293
+ key: "enableMicrophoneWithStream",
281
294
  value: function () {
282
- var _setMicrophoneEnabled2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(enable) {
295
+ var _enableMicrophoneWithStream = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(enable) {
296
+ var _this$_roomControl$ge4;
297
+ var confirmAudioShareWhileMicOff,
298
+ hasAudioPublishPrivilege,
299
+ hasNoSecurityPermission,
300
+ isMainRoom,
301
+ hasDeivcePermission,
302
+ _args3 = arguments;
283
303
  return _regenerator["default"].wrap(function _callee3$(_context3) {
284
304
  while (1) switch (_context3.prev = _context3.next) {
285
305
  case 0:
286
- if (!(enable && !this._canStartLocalAudio)) {
287
- _context3.next = 3;
306
+ confirmAudioShareWhileMicOff = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : false;
307
+ // const dialogKey =
308
+ // !enable &&
309
+ // confirmAudioShareWhileMicOff &&
310
+ // this._uiEventStore.openConfirmDialog({
311
+ // title: transI18n('fmt_screenshare_tips_share_audio_micon'),
312
+ // content: transI18n('fmt_screenshare_tips_share_audio_turnonmic'),
313
+ // onOk: () => {
314
+ // this._setMicrophoneEnabled(true);
315
+ // dialogKey && this._uiEventStore.closeDialog(dialogKey);
316
+ // },
317
+ // onCancel: () => {
318
+ // this._setMicrophoneEnabled(false);
319
+ // sendEvent({
320
+ // action: RendererEventAction.SET_SHARE_WITH_AUDIO_CONTROL_BAR,
321
+ // payload: { withAudio: false },
322
+ // });
323
+ // dialogKey && this._uiEventStore.closeDialog(dialogKey);
324
+ // },
325
+ // okText: transI18n('fmt_screenshare_button_confirm_shareaudio'),
326
+ // cancelText: transI18n('fmt_screenshare_button_giveup_shareaudio'),
327
+ // });
328
+ // if (!this._deviceStore.microphoneId || dialogKey) return;
329
+ hasAudioPublishPrivilege = this._localCameraStream && (this._localCameraStream.streamType === _fcrCore.FcrStreamType.BOTH || this._localCameraStream.streamType === _fcrCore.FcrStreamType.AUDIO);
330
+ hasNoSecurityPermission = !this._canStartLocalAudio;
331
+ isMainRoom = ((_this$_roomControl$ge4 = this._roomControl.getRoomInfo()) === null || _this$_roomControl$ge4 === void 0 ? void 0 : _this$_roomControl$ge4.roomType) === _type3.FcrRoomType.Mainroom;
332
+ if (!this._firstGetMicrophonePrivilege) {
333
+ _context3.next = 9;
288
334
  break;
289
335
  }
290
- _toast.FcrToastApi.open({
291
- toastProps: {
292
- type: 'warn',
293
- content: (0, _i18n.transI18n)('fmt_uimanager_tips_norightsaudio')
294
- }
336
+ this._firstGetMicrophonePrivilege = false;
337
+ if (hasAudioPublishPrivilege) {
338
+ this._deviceStore.setMicrophoneEnabled(enable);
339
+ }
340
+ _context3.next = 25;
341
+ break;
342
+ case 9:
343
+ if (!(enable && hasNoSecurityPermission && isMainRoom && !this._getInterpreterInfo())) {
344
+ _context3.next = 15;
345
+ break;
346
+ }
347
+ this._uiEventStore.showToast({
348
+ type: 'warn',
349
+ message: (0, _i18n.transI18n)('fmt_uimanager_tips_norightsaudio')
295
350
  });
351
+ if (!hasAudioPublishPrivilege) {
352
+ _context3.next = 14;
353
+ break;
354
+ }
355
+ _context3.next = 14;
356
+ return this._roomControl.getStreamControl().updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, this._localCameraStream.streamId, {
357
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION,
358
+ audioPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE
359
+ }));
360
+ case 14:
296
361
  return _context3.abrupt("return");
297
- case 3:
298
- if (!(this._localCameraStream && enable)) {
299
- _context3.next = 7;
362
+ case 15:
363
+ if (!(isMainRoom && this._localCameraStream)) {
364
+ _context3.next = 21;
365
+ break;
366
+ }
367
+ if (hasAudioPublishPrivilege) {
368
+ _context3.next = 21;
369
+ break;
370
+ }
371
+ if (!enable) {
372
+ _context3.next = 21;
300
373
  break;
301
374
  }
302
- if (!(this._localCameraStream.streamType === _agoraEduCore.FcrStreamType.NONE || this._localCameraStream.streamType === _agoraEduCore.FcrStreamType.VIDEO)) {
303
- _context3.next = 7;
375
+ if (this._getInterpreterInfo()) {
376
+ _context3.next = 21;
304
377
  break;
305
378
  }
306
- _context3.next = 7;
379
+ _context3.next = 21;
307
380
  return this._roomControl.getStreamControl().updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, this._localCameraStream.streamId, {
308
- videoPrivilege: _agoraEduCore.FcrStreamPrivilegeOperation.NOOPERATION,
309
- audioPrivilege: _agoraEduCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE
381
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION,
382
+ audioPrivilege: _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE
310
383
  }));
311
- case 7:
312
- this._deviceStore.setMicrophoneEnabled(enable);
313
- case 8:
384
+ case 21:
385
+ _context3.next = 23;
386
+ return this.checkoutDevicePermission('microphone');
387
+ case 23:
388
+ hasDeivcePermission = _context3.sent;
389
+ if (hasDeivcePermission) {
390
+ this._deviceStore.setMicrophoneEnabled(enable);
391
+ }
392
+ case 25:
314
393
  case "end":
315
394
  return _context3.stop();
316
395
  }
317
396
  }, _callee3, this);
318
397
  }));
319
- function _setMicrophoneEnabled(_x3) {
320
- return _setMicrophoneEnabled2.apply(this, arguments);
398
+ function enableMicrophoneWithStream(_x3) {
399
+ return _enableMicrophoneWithStream.apply(this, arguments);
321
400
  }
322
- return _setMicrophoneEnabled;
401
+ return enableMicrophoneWithStream;
323
402
  }()
324
403
  }, {
325
404
  key: "release",
@@ -385,10 +464,69 @@ var FcrDeviceStreamStore = exports.FcrDeviceStreamStore = /*#__PURE__*/function
385
464
  break;
386
465
  }
387
466
  }
467
+
468
+ // 控制翻译房间输出流权限
469
+ }, {
470
+ key: "updateStreams",
471
+ value: function () {
472
+ var _updateStreams = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(roomControl, open) {
473
+ var streamControl, streamMap, streamList, stream;
474
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
475
+ while (1) switch (_context4.prev = _context4.next) {
476
+ case 0:
477
+ if (!roomControl) {
478
+ _context4.next = 9;
479
+ break;
480
+ }
481
+ streamControl = roomControl.getStreamControl();
482
+ streamMap = streamControl.getStreams();
483
+ streamList = Object.keys(streamMap).map(function (key) {
484
+ return streamMap[key];
485
+ });
486
+ if (!(streamList.length > 0)) {
487
+ _context4.next = 9;
488
+ break;
489
+ }
490
+ stream = streamList[0][0];
491
+ _context4.next = 8;
492
+ return streamControl.updatePublishPrivilegeOfStreams((0, _defineProperty2["default"])({}, stream.streamId, {
493
+ videoPrivilege: _fcrCore.FcrStreamPrivilegeOperation.NOOPERATION,
494
+ audioPrivilege: open ? _fcrCore.FcrStreamPrivilegeOperation.HAS_PRIVILEGE : _fcrCore.FcrStreamPrivilegeOperation.NOPRIVILEGE
495
+ }));
496
+ case 8:
497
+ this.logger.info("interpreterLog- ".concat(open ? 'ON' : 'OFF', " interpreterRoom input streams"), stream.streamId);
498
+ case 9:
499
+ case "end":
500
+ return _context4.stop();
501
+ }
502
+ }, _callee4, this);
503
+ }));
504
+ function updateStreams(_x4, _x5) {
505
+ return _updateStreams.apply(this, arguments);
506
+ }
507
+ return updateStreams;
508
+ }()
509
+ }, {
510
+ key: "_getInterpreterInfo",
511
+ value: function
512
+ // 获取本地用户关联的翻译官信息
513
+ _getInterpreterInfo() {
514
+ var _this2 = this;
515
+ if (this._interpreterControl) {
516
+ var interpreterUsers = this._interpreterControl.getInterpreterUserList(); //翻译官列表
517
+ if (interpreterUsers) {
518
+ var interpreter = interpreterUsers.find(function (ele) {
519
+ return ele.userId === _this2._localUser.userId;
520
+ }); //本地用户关联的翻译官信息
521
+ return interpreter;
522
+ }
523
+ }
524
+ return null;
525
+ }
388
526
  }]);
389
527
  }();
390
528
  _FcrDeviceStreamStore = FcrDeviceStreamStore;
391
- var _applyDecs$e = _applyDecs(_FcrDeviceStreamStore, [[_enableCameraWithStreamDecs, 18, "enableCameraWithStream"], [_enableMicrophoneWithStreamDecs, 18, "enableMicrophoneWithStream"], [_decorator.bound, 2, "_handleCameraChanged"], [_decorator.bound, 2, "_handleMicrophoneChanged"], [_decorator.bound, 2, "_bindLocalAudioStream"], [_decorator.bound, 2, "_bindLocalVideoStream"], [_decorator.bound, 2, "_handleProcessEvent"]], []).e;
529
+ var _applyDecs$e = _applyDecs(_FcrDeviceStreamStore, [[_checkoutDevicePermissionDecs, 18, "checkoutDevicePermission"], [_enableCameraWithStreamDecs, 18, "enableCameraWithStream"], [_enableMicrophoneWithStreamDecs, 18, "enableMicrophoneWithStream"], [_decorator.bound, 2, "_handleCameraChanged"], [_decorator.bound, 2, "_handleMicrophoneChanged"], [_decorator.bound, 2, "_bindLocalAudioStream"], [_decorator.bound, 2, "_bindLocalVideoStream"], [_decorator.bound, 2, "_handleProcessEvent"], [_decorator.bound, 2, "updateStreams"], [_getInterpreterInfoDecs, 18, "_getInterpreterInfo"]], []).e;
392
530
  var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
393
531
  _initProto = _applyDecs$e2[0];
394
532
  _applyDecs$e;