fcr-ui-scene 3.7.6 → 3.7.7

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 (259) hide show
  1. package/installer/icons/icon.png +0 -0
  2. package/installer/mac/entitlements.mac.plist +1 -5
  3. package/lib/creator/index.js +12 -6
  4. package/lib/creator/provider-initializer.browser.js +0 -3
  5. package/lib/creator/provider-initializer.electron.js +0 -4
  6. package/lib/creator.d.ts +36 -0
  7. package/lib/creator.js +465 -0
  8. package/lib/electron/bootstrap-sdk.js +70 -20
  9. package/lib/electron/struct.d.ts +7 -1
  10. package/lib/electron/struct.js +8 -1
  11. package/lib/electron/until.d.ts +3 -1
  12. package/lib/electron/until.js +7 -2
  13. package/lib/modules/action-bar/components/item/index.js +1 -0
  14. package/lib/modules/action-bar/components/screen-share/submenu.js +1 -1
  15. package/lib/modules/action-bar/index.d.ts +58 -0
  16. package/lib/modules/action-bar/index.dev.d.ts +0 -0
  17. package/lib/modules/action-bar/index.dev.js +94 -0
  18. package/lib/modules/action-bar/index.js +109 -0
  19. package/lib/modules/action-bar/store.d.ts +259 -0
  20. package/lib/modules/action-bar/store.js +1529 -0
  21. package/lib/modules/action-bar/types.d.ts +90 -0
  22. package/lib/modules/action-bar/types.js +6 -0
  23. package/lib/modules/action-bar/view.d.ts +5 -0
  24. package/lib/modules/action-bar/view.js +112 -0
  25. package/lib/modules/annotation/annotation-index.d.ts +2 -0
  26. package/lib/modules/annotation/annotation-index.js +80 -0
  27. package/lib/modules/annotation/annotation-toolbar-store.d.ts +75 -0
  28. package/lib/modules/annotation/annotation-toolbar-store.js +459 -0
  29. package/lib/modules/annotation/board-cursor.css +77 -0
  30. package/lib/modules/annotation/components/color-picker/components/color.d.ts +5 -0
  31. package/lib/modules/annotation/components/color-picker/components/color.js +38 -0
  32. package/lib/modules/annotation/components/color-picker/components/panel.d.ts +1 -0
  33. package/lib/modules/annotation/components/color-picker/components/panel.js +109 -0
  34. package/lib/modules/annotation/components/color-picker/components/picker.d.ts +1 -0
  35. package/lib/modules/annotation/components/color-picker/components/picker.js +75 -0
  36. package/lib/modules/annotation/components/color-picker/index.d.ts +2 -0
  37. package/lib/modules/annotation/components/color-picker/index.js +47 -0
  38. package/lib/modules/annotation/components/eraser-picker.d.ts +4 -0
  39. package/lib/modules/annotation/components/eraser-picker.js +144 -0
  40. package/lib/modules/annotation/components/expansion/index.d.ts +1 -0
  41. package/lib/modules/annotation/components/expansion/index.js +100 -0
  42. package/lib/modules/annotation/components/extra-tool-picker.d.ts +1 -0
  43. package/lib/modules/annotation/components/extra-tool-picker.js +62 -0
  44. package/lib/modules/annotation/components/history.d.ts +2 -0
  45. package/lib/modules/annotation/components/history.js +78 -0
  46. package/lib/modules/annotation/components/icons/fold-icon.d.ts +2 -0
  47. package/lib/modules/annotation/components/icons/fold-icon.js +41 -0
  48. package/lib/modules/annotation/components/icons/move-icon.d.ts +1 -0
  49. package/lib/modules/annotation/components/icons/move-icon.js +66 -0
  50. package/lib/modules/annotation/components/item/index.d.ts +1 -0
  51. package/lib/modules/annotation/components/item/index.js +43 -0
  52. package/lib/modules/annotation/components/move-handle.d.ts +5 -0
  53. package/lib/modules/annotation/components/move-handle.js +134 -0
  54. package/lib/modules/annotation/components/pen-picker.d.ts +4 -0
  55. package/lib/modules/annotation/components/pen-picker.js +155 -0
  56. package/lib/modules/annotation/components/screen-capture-picker.d.ts +4 -0
  57. package/lib/modules/annotation/components/screen-capture-picker.js +85 -0
  58. package/lib/modules/annotation/components/shape-picker.d.ts +4 -0
  59. package/lib/modules/annotation/components/shape-picker.js +210 -0
  60. package/lib/modules/annotation/hooks/index.d.ts +14 -0
  61. package/lib/modules/annotation/hooks/index.js +292 -0
  62. package/lib/modules/annotation/index.d.ts +45 -0
  63. package/lib/modules/annotation/index.js +168 -0
  64. package/lib/modules/annotation/store.d.ts +98 -0
  65. package/lib/modules/annotation/store.js +620 -0
  66. package/lib/modules/annotation/style.css +36 -0
  67. package/lib/modules/annotation/view.d.ts +3 -0
  68. package/lib/modules/annotation/view.js +44 -0
  69. package/lib/modules/chat/index.css +5 -1
  70. package/lib/modules/chat/view.js +6 -1
  71. package/lib/modules/components/control-bar/components/switch-theme/index.css +2 -0
  72. package/lib/modules/components/control-bar/components/switch-theme/index.js +5 -7
  73. package/lib/modules/components/control-bar/index.js +26 -7
  74. package/lib/modules/components/device-control/store.d.ts +42 -0
  75. package/lib/modules/components/device-control/store.js +241 -0
  76. package/lib/modules/components/leave-meeting/store.d.ts +39 -0
  77. package/lib/modules/components/leave-meeting/store.js +270 -0
  78. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +0 -1
  79. package/lib/modules/components/toolbar/components/capture-tool/index.js +1 -2
  80. package/lib/modules/components/toolbar/components/vertical-frame/index.js +2 -2
  81. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +43 -42
  82. package/lib/modules/components/toolbar/index.js +6 -24
  83. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  84. package/lib/modules/control-bar/components/annotation-button/index.js +72 -0
  85. package/lib/modules/control-bar/components/cloud-recording-buttons.d.ts +3 -0
  86. package/lib/modules/control-bar/components/cloud-recording-buttons.js +65 -3
  87. package/lib/modules/control-bar/store.js +11 -6
  88. package/lib/modules/control-bar/types.d.ts +20 -0
  89. package/lib/modules/control-bar/types.js +6 -0
  90. package/lib/modules/dialog/components/dialog-container/component/body.d.ts +1 -0
  91. package/lib/modules/dialog/components/dialog-container/component/body.js +3 -2
  92. package/lib/modules/dialog/components/dialog-container/index.css +1 -1
  93. package/lib/modules/dialog/components/dialog-container/index.d.ts +1 -0
  94. package/lib/modules/dialog/components/dialog-container/index.js +4 -1
  95. package/lib/modules/dialog/components/normal-window/index.d.ts +1 -0
  96. package/lib/modules/dialog/components/normal-window/index.js +3 -1
  97. package/lib/modules/dialog/dialogs/chat/index.js +2 -1
  98. package/lib/modules/dialog/dialogs/control-bar-leave-meeting/index.js +0 -1
  99. package/lib/modules/dialog/dialogs/end-meeting/index.d.ts +1 -0
  100. package/lib/modules/dialog/dialogs/end-meeting/index.js +2 -1
  101. package/lib/modules/dialog/dialogs/participant/index.js +2 -1
  102. package/lib/modules/dialog/dialogs/pre-setting/index.css +26 -0
  103. package/lib/modules/dialog/dialogs/pre-setting/index.d.ts +6 -0
  104. package/lib/modules/dialog/dialogs/pre-setting/index.js +62 -0
  105. package/lib/modules/dialog/dialogs/widget/electron.d.ts +6 -0
  106. package/lib/modules/dialog/dialogs/widget/electron.js +38 -0
  107. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  108. package/lib/modules/dialog/hooks/use-popover-watcher.js +110 -0
  109. package/lib/modules/dialog/hooks/useElectron.d.ts +28 -0
  110. package/lib/modules/dialog/hooks/useElectron.js +277 -0
  111. package/lib/modules/dialog/store.d.ts +135 -0
  112. package/lib/modules/dialog/store.js +616 -0
  113. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  114. package/lib/modules/event-confirm/components/window/index.js +221 -0
  115. package/lib/modules/event-confirm/index.css +24 -0
  116. package/lib/modules/event-confirm/index.d.ts +27 -0
  117. package/lib/modules/event-confirm/index.js +76 -0
  118. package/lib/modules/event-confirm/store.d.ts +50 -0
  119. package/lib/modules/event-confirm/store.js +394 -0
  120. package/lib/modules/event-confirm/view.d.ts +2 -0
  121. package/lib/modules/event-confirm/view.js +55 -0
  122. package/lib/modules/event-toast/store.d.ts +27 -0
  123. package/lib/modules/event-toast/store.js +205 -0
  124. package/lib/modules/layout/store.d.ts +176 -0
  125. package/lib/modules/layout/store.electron.js +1 -1
  126. package/lib/modules/layout/store.js +1452 -0
  127. package/lib/modules/participant/store.d.ts +222 -0
  128. package/lib/modules/participant/store.js +1929 -0
  129. package/lib/modules/pc-audio-connect/index.d.ts +22 -0
  130. package/lib/modules/pc-audio-connect/index.js +67 -0
  131. package/lib/modules/pc-audio-connect/store.d.ts +46 -0
  132. package/lib/modules/pc-audio-connect/store.js +304 -0
  133. package/lib/modules/secondary-window/store.d.ts +0 -1
  134. package/lib/modules/secondary-window/store.js +9 -22
  135. package/lib/modules/secondary-window/view.js +6 -5
  136. package/lib/modules/setting/common/advance-link.d.ts +3 -0
  137. package/lib/modules/setting/common/advance-link.js +27 -0
  138. package/lib/modules/setting/common/index.css +26 -0
  139. package/lib/modules/setting/common/useNamespace.d.ts +15 -0
  140. package/lib/modules/setting/common/useNamespace.js +66 -0
  141. package/lib/modules/setting/dialog-wrapper.d.ts +2 -0
  142. package/lib/modules/setting/dialog-wrapper.js +110 -0
  143. package/lib/modules/setting/index.css +0 -1
  144. package/lib/modules/setting/store.base.js +6 -0
  145. package/lib/modules/setting/store.d.ts +261 -0
  146. package/lib/modules/setting/store.js +1321 -0
  147. package/lib/modules/setting/view.js +0 -3
  148. package/lib/modules/share-screen/store.d.ts +148 -0
  149. package/lib/modules/share-screen/store.electron.js +1 -1
  150. package/lib/modules/share-screen/store.js +960 -0
  151. package/lib/modules/share-screen/types.d.ts +26 -0
  152. package/lib/modules/share-screen/types.js +6 -0
  153. package/lib/modules/state-bar/layout-config.js +6 -0
  154. package/lib/modules/state-bar/main-scene/store.base.d.ts +2 -0
  155. package/lib/modules/state-bar/main-scene/store.base.js +6 -0
  156. package/lib/modules/state-bar/store.d.ts +124 -0
  157. package/lib/modules/state-bar/store.js +664 -0
  158. package/lib/modules/video-window/index.css +6 -0
  159. package/lib/modules/video-window/popover-watcher.d.ts +4 -1
  160. package/lib/modules/video-window/popover-watcher.js +15 -2
  161. package/lib/modules/video-window/store.d.ts +18 -1
  162. package/lib/modules/video-window/store.js +55 -7
  163. package/lib/modules/whiteboard/components/progress/electron.d.ts +1 -0
  164. package/lib/modules/whiteboard/components/progress/electron.js +33 -0
  165. package/lib/modules/whiteboard/store.js +20 -2
  166. package/lib/modules/widget/store.d.ts +14 -0
  167. package/lib/modules/widget/store.js +28 -0
  168. package/lib/object-manager.d.ts +0 -1
  169. package/lib/object-manager.js +0 -1
  170. package/lib/providers/annotation-provider.d.ts +124 -0
  171. package/lib/providers/annotation-provider.js +369 -0
  172. package/lib/providers/board-share/bar-control/base.d.ts +1 -1
  173. package/lib/providers/board-share/bar-control/base.js +37 -28
  174. package/lib/providers/board-share/bar-control/electron.d.ts +1 -1
  175. package/lib/providers/board-share/bar-control/electron.js +19 -16
  176. package/lib/providers/board-share/provider.browser.d.ts +3 -0
  177. package/lib/providers/board-share/provider.browser.js +21 -3
  178. package/lib/providers/device-provider.js +5 -1
  179. package/lib/providers/dialog/provider.electron.js +6 -0
  180. package/lib/providers/dialog-provider.d.ts +137 -0
  181. package/lib/providers/dialog-provider.js +194 -0
  182. package/lib/providers/message-provider.d.ts +69 -0
  183. package/lib/providers/message-provider.js +140 -0
  184. package/lib/providers/mouse-detect/provider.d.ts +5 -0
  185. package/lib/providers/mouse-detect/provider.js +74 -49
  186. package/lib/providers/multi-display-provider.d.ts +3 -5
  187. package/lib/providers/multi-display-provider.js +0 -9
  188. package/lib/providers/room-provider/room-provider.d.ts +3 -14
  189. package/lib/providers/room-provider/room-provider.js +5 -26
  190. package/lib/providers/room-provider.d.ts +194 -0
  191. package/lib/providers/room-provider.js +916 -0
  192. package/lib/providers/screen-share/stream-state-sync.js +19 -12
  193. package/lib/providers/screen-share-provider.d.ts +245 -0
  194. package/lib/providers/screen-share-provider.js +850 -0
  195. package/lib/providers/sharing-provider.d.ts +42 -0
  196. package/lib/providers/sharing-provider.js +228 -0
  197. package/lib/providers/user-setting-storage-provider.d.ts +21 -0
  198. package/lib/providers/user-setting-storage-provider.js +65 -0
  199. package/lib/providers/whiteboard-provider.d.ts +24 -0
  200. package/lib/providers/whiteboard-provider.js +128 -0
  201. package/lib/providers/window/main-window.d.ts +0 -5
  202. package/lib/providers/window/main-window.js +0 -44
  203. package/lib/providers/window/renderer-window.d.ts +1 -0
  204. package/lib/providers/window/renderer-window.js +9 -1
  205. package/lib/scenes/main-scene.js +0 -2
  206. package/lib/shared-data-source/annotation-data.d.ts +17 -0
  207. package/lib/shared-data-source/annotation-data.js +110 -0
  208. package/lib/shared-data-source/app-list-data.d.ts +34 -0
  209. package/lib/shared-data-source/app-list-data.js +133 -0
  210. package/lib/shared-data-source/chat-data.d.ts +25 -0
  211. package/lib/shared-data-source/chat-data.js +139 -0
  212. package/lib/shared-data-source/config.d.ts +35 -0
  213. package/lib/shared-data-source/config.js +40 -0
  214. package/lib/shared-data-source/confirm-data.d.ts +44 -0
  215. package/lib/shared-data-source/confirm-data.js +201 -0
  216. package/lib/shared-data-source/device-privilege-data.d.ts +8 -0
  217. package/lib/shared-data-source/device-privilege-data.js +25 -0
  218. package/lib/shared-data-source/interpreter.d.ts +77 -0
  219. package/lib/shared-data-source/interpreter.js +247 -0
  220. package/lib/shared-data-source/layout-data.d.ts +31 -0
  221. package/lib/shared-data-source/layout-data.js +189 -0
  222. package/lib/shared-data-source/meeting-time.d.ts +90 -0
  223. package/lib/shared-data-source/meeting-time.js +416 -0
  224. package/lib/shared-data-source/member-data.d.ts +139 -0
  225. package/lib/shared-data-source/member-data.js +517 -0
  226. package/lib/shared-data-source/pin-data.d.ts +13 -0
  227. package/lib/shared-data-source/pin-data.js +111 -0
  228. package/lib/shared-data-source/screen-share-data.d.ts +357 -0
  229. package/lib/shared-data-source/screen-share-data.js +513 -0
  230. package/lib/shared-data-source/security-data.d.ts +39 -0
  231. package/lib/shared-data-source/security-data.js +156 -0
  232. package/lib/shared-data-source/setting.d.ts +67 -0
  233. package/lib/shared-data-source/setting.js +220 -0
  234. package/lib/shared-data-source/speaker-spotlight.d.ts +5 -0
  235. package/lib/shared-data-source/speaker-spotlight.js +15 -0
  236. package/lib/shared-data-source/video-window.d.ts +165 -0
  237. package/lib/shared-data-source/video-window.js +1266 -0
  238. package/lib/shared-data-source/waiting-room.d.ts +46 -0
  239. package/lib/shared-data-source/waiting-room.js +222 -0
  240. package/lib/shared-data-source/whiteboard-data.d.ts +70 -0
  241. package/lib/{providers/board-share/bar-control.js → shared-data-source/whiteboard-data.js} +62 -104
  242. package/lib/ui-scene.js +4 -2
  243. package/lib/utilities/board-context.d.ts +4 -0
  244. package/lib/utilities/board-context.js +12 -0
  245. package/lib/utilities/copyText.d.ts +2 -0
  246. package/lib/utilities/copyText.js +48 -0
  247. package/lib/utilities/renderer-event.d.ts +10 -0
  248. package/lib/utilities/renderer-event.js +95 -0
  249. package/lib/utilities/screen-capture-permission.d.ts +2 -0
  250. package/lib/utilities/screen-capture-permission.js +24 -0
  251. package/lib/utilities/screen.d.ts +3 -0
  252. package/lib/utilities/screen.js +53 -0
  253. package/lib/utilities/video-track-render-context.d.ts +6 -0
  254. package/lib/utilities/video-track-render-context.js +9 -0
  255. package/lib/waiting-room-control-manager.d.ts +28 -0
  256. package/lib/waiting-room-control-manager.js +230 -0
  257. package/package.json +5 -5
  258. package/public/index.html +22 -1
  259. package/lib/providers/board-share/bar-control.d.ts +0 -51
@@ -115,7 +115,7 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
115
115
  return _context2.abrupt("return");
116
116
  case 1:
117
117
  if (!true) {
118
- _context2.next = 8;
118
+ _context2.next = 9;
119
119
  break;
120
120
  }
121
121
  if (!this._released) {
@@ -128,34 +128,41 @@ var FcrUIScreenStreamSync = exports.FcrUIScreenStreamSync = /*#__PURE__*/functio
128
128
  _context2.next = 3;
129
129
  return this._sharingControl.stop();
130
130
  case 3:
131
- return _context2.abrupt("continue", 8);
131
+ return _context2.abrupt("continue", 9);
132
132
  case 4:
133
133
  _context2.prev = 4;
134
134
  _t2 = _context2["catch"](2);
135
+ if (!(_t2 instanceof _type.FcrError && _t2.code === 720404300)) {
136
+ _context2.next = 5;
137
+ break;
138
+ }
139
+ this.logger.error("the screen share stream does not exist,");
140
+ return _context2.abrupt("continue", 9);
141
+ case 5:
135
142
  this.logger.error("failed to stop screen share stream, error: ".concat(_t2, ", retry in 1000ms"), _t2);
136
- _context2.next = 5;
143
+ _context2.next = 6;
137
144
  return new Promise(function (resolve) {
138
145
  return setTimeout(resolve, 1000);
139
146
  });
140
- case 5:
141
- _context2.prev = 5;
147
+ case 6:
148
+ _context2.prev = 6;
142
149
  if (this._myCurrentScreenShareStreamId) {
143
- _context2.next = 6;
150
+ _context2.next = 7;
144
151
  break;
145
152
  }
146
- return _context2.abrupt("continue", 8);
147
- case 6:
148
- return _context2.finish(5);
153
+ return _context2.abrupt("continue", 9);
149
154
  case 7:
155
+ return _context2.finish(6);
156
+ case 8:
150
157
  _context2.next = 1;
151
158
  break;
152
- case 8:
153
- this._myCurrentScreenShareStreamId = null;
154
159
  case 9:
160
+ this._myCurrentScreenShareStreamId = null;
161
+ case 10:
155
162
  case "end":
156
163
  return _context2.stop();
157
164
  }
158
- }, _callee2, this, [[2, 4, 5, 7]]);
165
+ }, _callee2, this, [[2, 4, 6, 8]]);
159
166
  }));
160
167
  function stopScreenStream() {
161
168
  return _stopScreenStream.apply(this, arguments);
@@ -0,0 +1,245 @@
1
+ import { FcrUIDeviceProvider } from './device-provider';
2
+ import { FcrUIRoomProvider } from './room-provider';
3
+ import { FcrScreenScenarioType } from 'fcr-core/lib/imports';
4
+ import { FcrScreenTrack } from 'fcr-core/lib/media-control/type';
5
+ import { FcrScreenCaptureType } from 'fcr-core/lib/type';
6
+ import { FcrUISharingProvider } from './sharing-provider';
7
+ import { FcrUIScreenShareSharedDataSource } from '../shared-data-source/screen-share-data';
8
+ import { FcrUIEventProvider } from './event-provider';
9
+ import { FcrUIMemberSharedDataSourceImpl } from '../shared-data-source/member-data';
10
+ import { CurrentShareBounds } from '../modules/control-bar/types';
11
+ import { FcrUserInfo } from 'fcr-core/lib/type';
12
+ import { FcrUIPrivilegeProvider } from './privilege-provider';
13
+ export interface FcrUIScreenShareObserver {
14
+ /**
15
+ * 本地屏幕开启采集
16
+ * @returns
17
+ */
18
+ onScreenCaptureStarted?: () => void;
19
+ /**
20
+ * 本地屏幕停止采集
21
+ * @returns
22
+ */
23
+ onScreenCaptureStopped?: () => void;
24
+ /**
25
+ * 本地屏幕替换开始
26
+ * @returns
27
+ */
28
+ onScreenShareReplaceBegin?: (id: string, type: FcrScreenCaptureType, bounds: CurrentShareBounds) => void;
29
+ /**
30
+ * 本地屏幕替换开始
31
+ * @returns
32
+ */
33
+ onScreenShareSeize?: () => void;
34
+ }
35
+ export interface FcrUIScreenShareProvider {
36
+ /**
37
+ * 获取当前屏幕共享是否被锁定
38
+ * @returns 如果屏幕共享被锁定(仅允许特定用户共享)返回 true,否则返回 false
39
+ */
40
+ get shareLock(): boolean;
41
+ /** 获取当前屏幕共享是否已等比缩放
42
+ * @returns 返回 true,否则返回 false
43
+ */
44
+ get isAspectRatioPreserved(): boolean;
45
+ /**
46
+ * 获取正在屏幕共享的用户
47
+ * @returns FcrUserInfo
48
+ */
49
+ get currentScreenSharingOwner(): FcrUserInfo | null;
50
+ /**
51
+ * 判断正在屏幕共享的用户是否是当前用户
52
+ * @returns FcrUserInfo
53
+ */
54
+ get currentScreenSharingOwnerIsMySelf(): boolean;
55
+ /**
56
+ * 设置单词屏幕共享的流程状态
57
+ * @param isInReplace - 布尔值,true 表示开始,false 表示已结束
58
+ */
59
+ setSharingInReplace(isInReplace: boolean): void;
60
+ /**
61
+ * 设置屏幕共享锁定状态
62
+ * @param lock - 布尔值,true 表示锁定屏幕共享(仅允许特定用户共享),false 表示解锁
63
+ */
64
+ setShareLock(lock: boolean): void;
65
+ /**
66
+ * 根据指定的选择ID创建屏幕共享流
67
+ * @param selectionId - 要共享的内容ID(如窗口ID或屏幕ID)
68
+ * @returns 返回一个Promise,成功时解析为共享流ID,失败时返回undefined
69
+ */
70
+ createScreenShareWithSelectionId(selectionId: string, currentBounds: CurrentShareBounds): Promise<string | undefined>;
71
+ /**
72
+ * 启动屏幕共享
73
+ */
74
+ bootstrap(): void;
75
+ /**
76
+ * 关闭屏幕共享
77
+ */
78
+ stop(): void;
79
+ /**
80
+ * 开始屏幕共享
81
+ * @param id - 要共享的内容ID(如窗口ID或屏幕ID)
82
+ * @param type - 共享内容的类型(屏幕或窗口)
83
+ * @param withAudio - 是否同时共享音频
84
+ * @param isReplace - 是否替换当前已有的共享
85
+ * @returns 返回一个Promise,成功时解析为屏幕共享轨道对象,失败时返回null
86
+ */
87
+ startShareScreen(id: string, type: FcrScreenCaptureType, withAudio: boolean, isReplace: boolean): Promise<void>;
88
+ /**
89
+ * 停止屏幕共享
90
+ * @param targetScreenTrack - 可选参数,要停止的屏幕共享轨道对象,默认停止当前活动的共享
91
+ */
92
+ stopShareScreen(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
93
+ /**
94
+ * 停止屏幕共享,用于离开房间
95
+ * @param targetScreenTrack - 可选参数,要移除的屏幕共享轨道对象,默认移除当前活动的轨道
96
+ * @returns 如果成功移除返回 true,否则返回 false
97
+ */
98
+ stopShareScreenByExitRoom(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
99
+ /**
100
+ * 开始白板共享
101
+ * 此方法将启动白板共享功能,使其他用户可以看到当前用户的白板操作
102
+ */
103
+ startShareWhiteboard(): void;
104
+ /**
105
+ * 开始渲染屏幕共享预览画面
106
+ * @param dom - 用于渲染预览画面的DOM元素
107
+ * @param targetScreenTrack - 可选参数,要渲染预览的屏幕共享轨道对象,默认使用当前活动的轨道
108
+ */
109
+ startRenderSharePreview(dom: HTMLElement, targetScreenTrack?: FcrScreenTrack | null | undefined): void;
110
+ /**
111
+ * 停止渲染屏幕共享预览画面
112
+ * @param targetScreenTrack - 可选参数,要停止渲染预览的屏幕共享轨道对象,默认使用当前活动的轨道
113
+ */
114
+ stopRenderSharePreview(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
115
+ /**
116
+ * 切换屏幕共享的音频状态
117
+ * @param withAudio - 布尔值,true 表示启用音频共享,false 表示禁用
118
+ */
119
+ toggleScreenshareWithAudio(withAudio: boolean): void;
120
+ /**
121
+ * 手动移除屏幕共享流
122
+ * @param targetScreenTrack - 可选参数,要移除的屏幕共享轨道对象,默认移除当前活动的轨道
123
+ * @returns 如果成功移除返回 true,否则返回 false
124
+ */
125
+ removeScreenStream(targetScreenTrack?: FcrScreenTrack | null | undefined): boolean;
126
+ /**
127
+ * 替换当前的屏幕共享内容
128
+ * @param id - 新的共享内容ID
129
+ * @param type - 新的共享内容类型
130
+ * @param withAudio - 是否包含音频
131
+ * @param bounds - 共享区域的边界信息
132
+ */
133
+ replaceScreenShare(id: string, type: FcrScreenCaptureType, withAudio: boolean, bounds: CurrentShareBounds): void;
134
+ /**
135
+ * 屏幕共享缩小窗口
136
+ */
137
+ zoomIn(): void;
138
+ /**
139
+ * 屏幕共享放大窗口
140
+ */
141
+ zoomOut(): void;
142
+ /**
143
+ * 接收端方法,用于设置标注窗口的缩放比例
144
+ */
145
+ fullContainer(): void;
146
+ /**
147
+ * 接收端方法,用于设置标注窗口的缩放比例
148
+ */
149
+ setOriginScalc(): void;
150
+ /**
151
+ * 添加屏幕共享事件观察者
152
+ * @param observer - 实现了 FcrUIScreenShareObserver 接口的观察者对象
153
+ */
154
+ addObserver(observer: FcrUIScreenShareObserver): void;
155
+ /**
156
+ * 移除屏幕共享事件观察者
157
+ * @param observer - 要移除的观察者对象
158
+ */
159
+ removeObserver(observer: FcrUIScreenShareObserver): void;
160
+ /**
161
+ * 释放屏幕共享提供者资源
162
+ * 清理所有订阅和资源,通常在组件卸载时调用
163
+ */
164
+ release(): void;
165
+ }
166
+ export declare class FcrUIScreenShareProviderImpl implements FcrUIScreenShareProvider {
167
+ private _deviceProvider;
168
+ private _eventProvider;
169
+ private _roomProvider;
170
+ private _sharingProvider;
171
+ private _sharedScreenShareSharedDataSource;
172
+ private _sharedMemberDataSource;
173
+ private _privilegeProvider;
174
+ protected logger: import("agora-foundation/lib/logger").Logger;
175
+ shareLock: boolean;
176
+ private _sharingControl;
177
+ private _previewDom;
178
+ private _prevFullScalc;
179
+ private _observable;
180
+ private _streamObserver;
181
+ private _screenCaptureObserver;
182
+ private _streamControl;
183
+ private _maxScalcValue;
184
+ private _minScalcValue;
185
+ private _diffScalcValue;
186
+ private _hasStop;
187
+ private _isReplaceScreen;
188
+ get shareWithAudio(): boolean;
189
+ get audioSourceId(): string;
190
+ get screenShareScalcValue(): number;
191
+ get screenShareVideoRatio(): number;
192
+ get screenShareSpeakerViewSize(): {
193
+ width: number;
194
+ height: number;
195
+ };
196
+ get screenShareScenarioType(): FcrScreenScenarioType;
197
+ private get _currentRoomControl();
198
+ constructor(_deviceProvider: FcrUIDeviceProvider, _eventProvider: FcrUIEventProvider, _roomProvider: FcrUIRoomProvider, _sharingProvider: FcrUISharingProvider, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _sharedMemberDataSource: FcrUIMemberSharedDataSourceImpl, _privilegeProvider: FcrUIPrivilegeProvider);
199
+ setSharingInReplace(isInReplace: boolean): void;
200
+ zoomOut(): void;
201
+ zoomIn(): void;
202
+ fullContainer(): void;
203
+ get isAspectRatioPreserved(): boolean;
204
+ setOriginScalc(): void;
205
+ get currentScreenSharingOwner(): FcrUserInfo | null;
206
+ get currentScreenSharingOwnerIsMySelf(): boolean;
207
+ stop(): void;
208
+ bootstrap(): void;
209
+ private _handleWebScreenCaptureStateUpdated;
210
+ private _handleScreenCaptureStateUpdated;
211
+ replaceScreenShare(id: string, type: FcrScreenCaptureType, withAudio: boolean, bounds: CurrentShareBounds): void;
212
+ private _handleRemoteVideoStatsUpdated;
213
+ get localUserId(): string;
214
+ get shareAudioTrack(): import("fcr-core/lib/media-control/type").FcrLoopbackTrack | null;
215
+ get currentShareId(): string;
216
+ get screenTrack(): FcrScreenTrack | null;
217
+ get currentShareStreamId(): string | undefined;
218
+ get currentSelectionBounds(): CurrentShareBounds;
219
+ setShareLock(lock: boolean): void;
220
+ createScreenShareWithSelectionId(videoSourceId: string, bounds: CurrentShareBounds): Promise<string>;
221
+ private _isStoppedFor;
222
+ private _addEventListeners;
223
+ private _removeEventListeners;
224
+ private _syncShareStreamState;
225
+ private _handleStreamUpdate;
226
+ startRenderSharePreview(dom: HTMLElement, targetScreenTrack?: FcrScreenTrack | null | undefined): void;
227
+ stopRenderSharePreview(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
228
+ private _syncScreenShareStreamInfos;
229
+ setScreenTrack(screenTrack: FcrScreenTrack | null): void;
230
+ addObserver(observer: FcrUIScreenShareObserver): void;
231
+ removeObserver(observer: FcrUIScreenShareObserver): void;
232
+ startShareWhiteboard(): void;
233
+ release(): void;
234
+ startShareScreen(id: string, type: FcrScreenCaptureType, withAudio: boolean, isReplace: boolean): Promise<void>;
235
+ stopShareScreen(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
236
+ stopShareScreenByExitRoom(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
237
+ private _updateShareAudioPrivilege;
238
+ private _handleShareStopWithAudio;
239
+ private _handleShareStartWithAudio;
240
+ toggleScreenshareWithAudio(withAudio: boolean): void;
241
+ private _getExcludeWindows;
242
+ removeScreenStream(): boolean;
243
+ private _stopScreenTrack;
244
+ private _cleanShareWithAudioDataSource;
245
+ }