fcr-ui-scene 3.6.1 → 3.6.3

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 (257) hide show
  1. package/lib/creator.d.ts +6 -0
  2. package/lib/creator.js +125 -24
  3. package/lib/electron/app.js +5 -4
  4. package/lib/electron/bootstrap-dev.js +3 -0
  5. package/lib/electron/bootstrap-sdk.js +4 -0
  6. package/lib/electron/injections.d.ts +5 -0
  7. package/lib/electron/injections.js +36 -8
  8. package/lib/electron/ipc/ipc.d.ts +1 -0
  9. package/lib/electron/ipc/ipc.js +4 -0
  10. package/lib/electron/main.js +16 -8
  11. package/lib/electron/plugins/screenshot.js +4 -2
  12. package/lib/electron/preload.js +7 -2
  13. package/lib/electron/window.js +4 -6
  14. package/lib/fragments/annotation/index.d.ts +11 -0
  15. package/lib/fragments/annotation/index.js +121 -0
  16. package/lib/fragments/annotation/libs.d.ts +55 -0
  17. package/lib/fragments/annotation/libs.js +93 -0
  18. package/lib/fragments/annotation/store.d.ts +30 -0
  19. package/lib/fragments/annotation/store.js +565 -0
  20. package/lib/fragments/annotation/view.d.ts +3 -0
  21. package/lib/fragments/annotation/view.js +31 -0
  22. package/lib/fragments/base.d.ts +10 -0
  23. package/lib/fragments/base.js +44 -0
  24. package/lib/modules/action-bar/components/screen-share/submenu.js +7 -6
  25. package/lib/modules/action-bar/index.css +11 -0
  26. package/lib/modules/action-bar/index.d.ts +2 -0
  27. package/lib/modules/action-bar/index.js +1 -0
  28. package/lib/modules/action-bar/store.d.ts +7 -9
  29. package/lib/modules/action-bar/store.js +49 -90
  30. package/lib/modules/annotation/board-cursor.css +76 -0
  31. package/lib/modules/annotation/components/control-bar/index.css +48 -0
  32. package/lib/modules/annotation/components/control-bar/index.d.ts +3 -0
  33. package/lib/modules/annotation/components/control-bar/index.js +141 -0
  34. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.d.ts +3 -0
  35. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +46 -0
  36. package/lib/modules/annotation/components/toolbar/components/color-tool/index.d.ts +1 -0
  37. package/lib/modules/annotation/components/toolbar/components/color-tool/index.js +52 -0
  38. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +3 -0
  39. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +61 -0
  40. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  41. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  42. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.d.ts +1 -0
  43. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +68 -0
  44. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +18 -0
  45. package/lib/modules/annotation/components/toolbar/components/item/item.js +116 -0
  46. package/lib/modules/annotation/components/toolbar/components/item/style.css +43 -0
  47. package/lib/modules/annotation/components/toolbar/components/panel/index.d.ts +5 -0
  48. package/lib/modules/annotation/components/toolbar/components/panel/index.js +22 -0
  49. package/lib/modules/annotation/components/toolbar/components/panel/style.css +24 -0
  50. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.d.ts +1 -0
  51. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.js +58 -0
  52. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.d.ts +3 -0
  53. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +34 -0
  54. package/lib/modules/annotation/components/toolbar/components/tips/index.d.ts +2 -0
  55. package/lib/modules/annotation/components/toolbar/components/tips/index.js +25 -0
  56. package/lib/modules/annotation/components/toolbar/components/tips/style.css +19 -0
  57. package/lib/modules/annotation/components/toolbar/index.d.ts +0 -0
  58. package/lib/modules/annotation/components/toolbar/index.js +1 -0
  59. package/lib/modules/annotation/components/toolbar/store.d.ts +40 -0
  60. package/lib/modules/annotation/components/toolbar/store.js +279 -0
  61. package/lib/modules/annotation/components/toolbar/style.css +55 -0
  62. package/lib/modules/annotation/components/toolbar/view.d.ts +2 -0
  63. package/lib/modules/annotation/components/toolbar/view.js +120 -0
  64. package/lib/modules/annotation/index.d.ts +38 -0
  65. package/lib/modules/annotation/index.js +169 -0
  66. package/lib/modules/annotation/store.d.ts +93 -0
  67. package/lib/modules/annotation/store.js +673 -0
  68. package/lib/modules/annotation/style.css +26 -0
  69. package/lib/modules/annotation/view.d.ts +3 -0
  70. package/lib/modules/annotation/view.js +49 -0
  71. package/lib/modules/chat/view.js +112 -100
  72. package/lib/modules/components/annotation-menu/index.d.ts +7 -0
  73. package/lib/modules/components/annotation-menu/index.js +119 -0
  74. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -23
  75. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +0 -1
  76. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +10 -4
  77. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +4 -2
  78. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +10 -6
  79. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +0 -2
  80. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +3 -4
  81. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +0 -3
  82. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +6 -32
  83. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +11 -3
  84. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +0 -1
  85. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +7 -10
  86. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +0 -1
  87. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +0 -2
  88. package/lib/modules/components/member-window/components/member-actions/index.js +1 -32
  89. package/lib/modules/components/member-window/components/member-actions/store.d.ts +38 -1
  90. package/lib/modules/components/member-window/components/member-actions/store.js +130 -23
  91. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +2 -1
  92. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +6 -1
  93. package/lib/modules/components/member-window/components/video-player/index.d.ts +1 -0
  94. package/lib/modules/components/member-window/index.css +37 -0
  95. package/lib/modules/components/member-window/index.d.ts +1 -1
  96. package/lib/modules/components/member-window/index.js +8 -5
  97. package/lib/modules/components/member-window/types.d.ts +2 -0
  98. package/lib/modules/components/security-menu/index.js +7 -6
  99. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  100. package/lib/modules/control-bar/components/annotation-button/index.js +59 -0
  101. package/lib/modules/control-bar/index.d.ts +6 -6
  102. package/lib/modules/control-bar/index.js +5 -34
  103. package/lib/modules/control-bar/store.d.ts +27 -13
  104. package/lib/modules/control-bar/store.js +121 -126
  105. package/lib/modules/control-bar/view.js +50 -4
  106. package/lib/modules/dialog/components/annotation-tool/index.d.ts +4 -0
  107. package/lib/modules/dialog/components/annotation-tool/index.js +53 -0
  108. package/lib/modules/dialog/components/chat/index.js +1 -1
  109. package/lib/modules/dialog/components/control-bar/index.d.ts +0 -2
  110. package/lib/modules/dialog/components/control-bar/index.js +1 -3
  111. package/lib/modules/dialog/components/host-area-container/index.d.ts +12 -0
  112. package/lib/modules/dialog/components/host-area-container/index.js +214 -0
  113. package/lib/modules/dialog/components/participant/index.js +1 -1
  114. package/lib/modules/dialog/components/system-preference/index.js +1 -1
  115. package/lib/modules/dialog/components/video-window/index.js +1 -0
  116. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  117. package/lib/modules/dialog/hooks/use-popover-watcher.js +112 -0
  118. package/lib/modules/dialog/hooks/useElectron.d.ts +1 -0
  119. package/lib/modules/dialog/hooks/useElectron.js +13 -3
  120. package/lib/modules/dialog/index.d.ts +2 -3
  121. package/lib/modules/dialog/index.js +3 -26
  122. package/lib/modules/dialog/store.d.ts +14 -9
  123. package/lib/modules/dialog/store.js +56 -50
  124. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  125. package/lib/modules/event-confirm/components/window/index.js +188 -0
  126. package/lib/modules/event-confirm/index.d.ts +4 -4
  127. package/lib/modules/event-confirm/index.js +6 -4
  128. package/lib/modules/event-confirm/store.d.ts +4 -5
  129. package/lib/modules/event-confirm/store.js +35 -26
  130. package/lib/modules/event-confirm/view.js +23 -171
  131. package/lib/modules/event-sound/index.js +1 -1
  132. package/lib/modules/layout/components/CommonVideoRenderer.js +33 -16
  133. package/lib/modules/layout/index.d.ts +4 -0
  134. package/lib/modules/layout/index.js +2 -0
  135. package/lib/modules/layout/store.d.ts +14 -2
  136. package/lib/modules/layout/store.js +77 -45
  137. package/lib/modules/layout/type.d.ts +7 -0
  138. package/lib/modules/participant/index.d.ts +2 -0
  139. package/lib/modules/participant/index.js +2 -1
  140. package/lib/modules/participant/store.d.ts +5 -2
  141. package/lib/modules/participant/store.js +73 -25
  142. package/lib/modules/setting/audio-settings/audio-settings.js +3 -14
  143. package/lib/modules/setting/index.d.ts +2 -0
  144. package/lib/modules/setting/index.js +3 -3
  145. package/lib/modules/setting/store.d.ts +8 -10
  146. package/lib/modules/setting/store.js +22 -20
  147. package/lib/modules/share-screen/components/selection/index.js +18 -42
  148. package/lib/modules/share-screen/index.d.ts +6 -2
  149. package/lib/modules/share-screen/index.js +4 -2
  150. package/lib/modules/share-screen/store.d.ts +41 -46
  151. package/lib/modules/share-screen/store.js +297 -718
  152. package/lib/modules/share-screen/view.js +2 -2
  153. package/lib/modules/state-bar/assets/fcr_grid_big.svg +1 -1
  154. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +1 -1
  155. package/lib/modules/state-bar/index.css +8 -6
  156. package/lib/modules/state-bar/index.d.ts +4 -0
  157. package/lib/modules/state-bar/index.js +3 -1
  158. package/lib/modules/state-bar/layout-config.d.ts +1 -0
  159. package/lib/modules/state-bar/layout-config.js +15 -5
  160. package/lib/modules/state-bar/store.d.ts +9 -1
  161. package/lib/modules/state-bar/store.js +17 -2
  162. package/lib/modules/state-bar/view.js +9 -4
  163. package/lib/modules/video-window/components/members/index.js +2 -1
  164. package/lib/modules/waiting-room-layout/store.js +1 -1
  165. package/lib/modules/whiteboard/components/control-bar/store.d.ts +5 -1
  166. package/lib/modules/whiteboard/components/control-bar/store.js +10 -1
  167. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +16 -5
  168. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +67 -12
  169. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +22 -2
  170. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -14
  171. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +3 -2
  172. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +1 -1
  173. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +58 -16
  174. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +15 -4
  175. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +45 -2
  176. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  177. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +235 -7
  178. package/lib/modules/whiteboard/components/toolbar/index.d.ts +1 -1
  179. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  180. package/lib/modules/whiteboard/components/toolbar/store.d.ts +13 -2
  181. package/lib/modules/whiteboard/components/toolbar/store.js +74 -24
  182. package/lib/modules/whiteboard/components/toolbar/{ style.css → style.css} +1 -0
  183. package/lib/modules/whiteboard/index.d.ts +2 -0
  184. package/lib/modules/whiteboard/index.js +22 -21
  185. package/lib/modules/whiteboard/style.css +0 -4
  186. package/lib/modules/whiteboard/view.js +8 -2
  187. package/lib/plugins/browser-runtime-plugin.js +10 -1
  188. package/lib/providers/annotation-provider.d.ts +128 -0
  189. package/lib/providers/annotation-provider.js +421 -0
  190. package/lib/providers/device-provider.d.ts +3 -3
  191. package/lib/providers/device-provider.js +8 -6
  192. package/lib/providers/event-provider.d.ts +3 -3
  193. package/lib/providers/interpreter-provider.d.ts +1 -0
  194. package/lib/providers/interpreter-provider.js +182 -154
  195. package/lib/providers/privilege-provider.d.ts +35 -6
  196. package/lib/providers/privilege-provider.js +105 -49
  197. package/lib/providers/renderer-provider.js +3 -7
  198. package/lib/providers/room-provider.d.ts +13 -1
  199. package/lib/providers/room-provider.js +21 -7
  200. package/lib/providers/screen-share-provider.d.ts +131 -34
  201. package/lib/providers/screen-share-provider.js +554 -173
  202. package/lib/providers/sharing-provider.d.ts +37 -0
  203. package/lib/{shared-data-source/screen-share-data-source.js → providers/sharing-provider.js} +102 -39
  204. package/lib/providers/user-setting-storage-provider.d.ts +20 -0
  205. package/lib/providers/user-setting-storage-provider.js +74 -0
  206. package/lib/runtime.d.ts +6 -1
  207. package/lib/scenes/main-scene.d.ts +7 -2
  208. package/lib/scenes/main-scene.js +55 -27
  209. package/lib/scenes/waiting-scene.d.ts +6 -0
  210. package/lib/scenes/waiting-scene.js +15 -5
  211. package/lib/shared-data-source/config.d.ts +1 -5
  212. package/lib/shared-data-source/config.js +11 -81
  213. package/lib/shared-data-source/member-data.d.ts +21 -5
  214. package/lib/shared-data-source/member-data.js +69 -17
  215. package/lib/shared-data-source/screen-share-data.d.ts +274 -0
  216. package/lib/shared-data-source/screen-share-data.js +390 -0
  217. package/lib/shared-data-source/security-data.d.ts +4 -1
  218. package/lib/shared-data-source/security-data.js +5 -2
  219. package/lib/shared-data-source/setting.d.ts +13 -13
  220. package/lib/shared-data-source/setting.js +16 -10
  221. package/lib/shared-data-source/video-window.d.ts +2 -1
  222. package/lib/shared-data-source/video-window.js +56 -36
  223. package/lib/translations/enUS.d.ts +8 -0
  224. package/lib/translations/enUS.js +9 -1
  225. package/lib/translations/zhCN.d.ts +8 -0
  226. package/lib/translations/zhCN.js +11 -3
  227. package/lib/type.d.ts +55 -1
  228. package/lib/ui-manager.d.ts +3 -2
  229. package/lib/ui-manager.js +6 -4
  230. package/lib/ui-scene.js +70 -50
  231. package/lib/utilities/constant.d.ts +10 -2
  232. package/lib/utilities/constant.js +8 -0
  233. package/lib/utilities/logger.d.ts +4 -0
  234. package/lib/utilities/logger.js +8 -1
  235. package/lib/utilities/renderer-event.d.ts +3 -0
  236. package/lib/utilities/renderer-event.js +14 -1
  237. package/lib/utilities/screen.js +2 -1
  238. package/lib/utilities/setting-config-storage.d.ts +5 -6
  239. package/lib/utilities/setting-config-storage.js +33 -39
  240. package/lib/utilities/tools.d.ts +19 -1
  241. package/lib/utilities/tools.js +51 -4
  242. package/package.json +9 -7
  243. package/public/assets/cursors/fcr_whiteboard_input.ico +0 -0
  244. package/public/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  245. package/public/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  246. package/public/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  247. package/public/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  248. package/public/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  249. package/public/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  250. package/public/assets/fcr_chat_reddot.svg +3 -3
  251. package/public/assets/fcr_grid_big.svg +1 -1
  252. package/public/assets/fcr_leave2.svg +14 -14
  253. package/public/assets/fcr_listontop_big.svg +1 -1
  254. package/public/assets/step-gradient.svg +1 -1
  255. package/public/fragment.html +10 -0
  256. package/public/index.html +3 -1
  257. package/lib/shared-data-source/screen-share-data-source.d.ts +0 -37
@@ -1,9 +1,14 @@
1
1
  import { FcrUIDeviceProvider } from './device-provider';
2
- import { FcrUIDisplayCaptureSource, FcrUIWindowCaptureSource } from '../modules/share-screen/types';
3
- import { FcrUIDialogProvider } from './dialog-provider';
4
2
  import { FcrUIRoomProvider } from './room-provider';
3
+ import { FcrScreenTrack } from 'fcr-core/lib/media-control/type';
4
+ import { AgoraRtcScreenCaptureType } from 'agora-rte-sdk/lib/core/rtc/type';
5
+ import { FcrUISharingProvider } from './sharing-provider';
6
+ import { FcrUIScreenShareSharedDataSource } from '../shared-data-source/screen-share-data';
7
+ import { FcrUIEventProvider } from './event-provider';
8
+ import { FcrUIMemberSharedDataSourceImpl } from '../shared-data-source/member-data';
9
+ import { CurrentShareBounds } from '../modules/control-bar/types';
5
10
  import { FcrUserInfo } from 'fcr-core/lib/type';
6
- interface FcrUIScreenShareObserver {
11
+ export interface FcrUIScreenShareObserver {
7
12
  /**
8
13
  * 本地屏幕开启采集
9
14
  * @returns
@@ -14,75 +19,167 @@ interface FcrUIScreenShareObserver {
14
19
  * @returns
15
20
  */
16
21
  onScreenCaptureStopped?: () => void;
22
+ /**
23
+ * 本地屏幕抢占 开始
24
+ * @returns
25
+ */
26
+ onScreenShareReplaceBegin?: (id: string, type: AgoraRtcScreenCaptureType, bounds: CurrentShareBounds) => void;
17
27
  }
18
28
  export interface FcrUIScreenShareProvider {
19
29
  /**
20
- * 可共享应用列表
30
+ * 获取当前屏幕共享是否被锁定
31
+ * @returns 如果屏幕共享被锁定(仅允许特定用户共享)返回 true,否则返回 false
21
32
  */
22
- get applicationCaptureSources(): FcrUIWindowCaptureSource[];
33
+ get shareLock(): boolean;
23
34
  /**
24
- * 可共享屏幕列表
35
+ * 设置屏幕共享锁定状态
36
+ * @param lock - 布尔值,true 表示锁定屏幕共享(仅允许特定用户共享),false 表示解锁
25
37
  */
26
- get screenCaptureSources(): FcrUIDisplayCaptureSource[];
38
+ setShareLock(lock: boolean): void;
27
39
  /**
28
- * 是否正在共享屏幕
40
+ * 根据指定的选择ID创建屏幕共享流
41
+ * @param selectionId - 要共享的内容ID(如窗口ID或屏幕ID)
42
+ * @returns 返回一个Promise,成功时解析为共享流ID,失败时返回undefined
29
43
  */
30
- get isSharingScreen(): boolean;
44
+ createScreenShareWithSelectionId(selectionId: string, currentBounds: CurrentShareBounds): Promise<string | undefined>;
31
45
  /**
32
- * 是否是抢占流
46
+ * 启动屏幕共享
33
47
  */
34
- get isSeizeStream(): boolean;
35
- get screenSharingOwner(): FcrUserInfo | undefined;
48
+ bootstrap(): void;
36
49
  /**
37
- * 设置共享的用户
50
+ * 关闭屏幕共享
38
51
  */
39
- set screenSharingOwner(owner: FcrUserInfo | undefined);
52
+ stop(): void;
40
53
  /**
41
54
  * 开始屏幕共享
55
+ * @param id - 要共享的内容ID(如窗口ID或屏幕ID)
56
+ * @param type - 共享内容的类型(屏幕或窗口)
57
+ * @param withAudio - 是否同时共享音频
58
+ * @param isReplace - 是否替换当前已有的共享
59
+ * @returns 返回一个Promise,成功时解析为屏幕共享轨道对象,失败时返回null
42
60
  */
43
- startShareScreen(): void;
61
+ startShareScreen(id: string, type: AgoraRtcScreenCaptureType, withAudio: boolean, isReplace: boolean): Promise<FcrScreenTrack | null>;
44
62
  /**
45
63
  * 停止屏幕共享
64
+ * @param targetScreenTrack - 可选参数,要停止的屏幕共享轨道对象,默认停止当前活动的共享
46
65
  */
47
- stopShareScreen(): void;
66
+ stopShareScreen(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
48
67
  /**
49
68
  * 开始白板共享
69
+ * 此方法将启动白板共享功能,使其他用户可以看到当前用户的白板操作
50
70
  */
51
71
  startShareWhiteboard(): void;
52
72
  /**
53
73
  * 停止白板共享
74
+ * 此方法将停止当前的白板共享,其他用户将无法继续查看白板内容
54
75
  */
55
76
  stopShareWhiteboard(): void;
77
+ /**
78
+ * 开始渲染屏幕共享预览画面
79
+ * @param dom - 用于渲染预览画面的DOM元素
80
+ * @param targetScreenTrack - 可选参数,要渲染预览的屏幕共享轨道对象,默认使用当前活动的轨道
81
+ */
82
+ startRenderSharePreview(dom: HTMLElement, targetScreenTrack?: FcrScreenTrack | null | undefined): void;
83
+ /**
84
+ * 停止渲染屏幕共享预览画面
85
+ * @param targetScreenTrack - 可选参数,要停止渲染预览的屏幕共享轨道对象,默认使用当前活动的轨道
86
+ */
87
+ stopRenderSharePreview(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
88
+ /**
89
+ * 切换屏幕共享的音频状态
90
+ * @param withAudio - 布尔值,true 表示启用音频共享,false 表示禁用
91
+ */
92
+ toggleScreenshareWithAudio(withAudio: boolean): void;
93
+ /**
94
+ * 手动移除屏幕共享流
95
+ * @param targetScreenTrack - 可选参数,要移除的屏幕共享轨道对象,默认移除当前活动的轨道
96
+ * @returns 如果成功移除返回 true,否则返回 false
97
+ */
98
+ removeScreenStream(targetScreenTrack?: FcrScreenTrack | null | undefined): boolean;
99
+ /**
100
+ * 获取正在屏幕共享的用户
101
+ * @returns FcrUserInfo
102
+ */
103
+ getCurrentScreenSharingOwner(): FcrUserInfo | null;
104
+ /**
105
+ * 替换当前的屏幕共享内容
106
+ * @param id - 新的共享内容ID
107
+ * @param type - 新的共享内容类型
108
+ * @param withAudio - 是否包含音频
109
+ * @param bounds - 共享区域的边界信息
110
+ */
111
+ replaceScreenShare(id: string, type: AgoraRtcScreenCaptureType, withAudio: boolean, bounds: CurrentShareBounds): void;
112
+ /**
113
+ * 添加屏幕共享事件观察者
114
+ * @param observer - 实现了 FcrUIScreenShareObserver 接口的观察者对象
115
+ */
56
116
  addObserver(observer: FcrUIScreenShareObserver): void;
117
+ /**
118
+ * 移除屏幕共享事件观察者
119
+ * @param observer - 要移除的观察者对象
120
+ */
57
121
  removeObserver(observer: FcrUIScreenShareObserver): void;
122
+ /**
123
+ * 释放屏幕共享提供者资源
124
+ * 清理所有订阅和资源,通常在组件卸载时调用
125
+ */
126
+ release(): void;
58
127
  }
59
128
  export declare class FcrUIScreenShareProviderImpl implements FcrUIScreenShareProvider {
60
129
  private _deviceProvider;
61
- private _dialogProvider;
130
+ private _eventProvider;
62
131
  private _roomProvider;
132
+ private _sharingProvider;
133
+ private _sharedScreenShareSharedDataSource;
134
+ private _sharedMemberDataSource;
63
135
  protected logger: import("agora-foundation/lib/logger").Logger;
136
+ shareLock: boolean;
137
+ private _sharingControl?;
138
+ private _previewDom;
64
139
  private _observable;
65
- private _controlBarDialogId;
66
- private _streamControlObserver;
67
- accessor applicationCaptureSources: FcrUIWindowCaptureSource[];
68
- accessor screenCaptureSources: FcrUIDisplayCaptureSource[];
69
- accessor shareSelectionDialogId: string;
70
- accessor isSharingScreen: boolean;
71
- accessor isSeizeStream: boolean;
72
- accessor screenSharingOwner: FcrUserInfo | undefined;
73
- constructor(_deviceProvider: FcrUIDeviceProvider, _dialogProvider: FcrUIDialogProvider, _roomProvider: FcrUIRoomProvider);
74
- private _handleStreamAdded;
75
- private _handleStreamUpdated;
76
- private _handleStreamRemoved;
140
+ private _streamObserver;
141
+ private _screenCaptureObserver;
142
+ private _streamControl?;
143
+ get shareWithAudio(): boolean;
144
+ get audioSourceId(): string;
145
+ constructor(_deviceProvider: FcrUIDeviceProvider, _eventProvider: FcrUIEventProvider, _roomProvider: FcrUIRoomProvider, _sharingProvider: FcrUISharingProvider, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _sharedMemberDataSource: FcrUIMemberSharedDataSourceImpl);
146
+ getCurrentScreenSharingOwner(): FcrUserInfo | null;
147
+ stop(): void;
148
+ bootstrap(): void;
149
+ private _handleWebScreenCaptureStateUpdated;
150
+ private _handleScreenCaptureStateUpdated;
151
+ private _handleShareStopWithAudio;
152
+ replaceScreenShare(id: string, type: AgoraRtcScreenCaptureType, withAudio: boolean, bounds: CurrentShareBounds): void;
153
+ private _setIsReplaceScreen;
154
+ get isReplaceScreen(): boolean;
155
+ get localUserId(): string;
156
+ get shareAudioTrack(): import("fcr-core/lib/media-control/type").FcrLoopbackTrack | null;
157
+ get loopbackAudioSourceId(): string;
158
+ get currentShareId(): string;
159
+ get screenTrack(): FcrScreenTrack | null;
160
+ get currentShareStreamId(): string;
161
+ get currentSelectionBounds(): CurrentShareBounds;
162
+ setShareLock(lock: boolean): void;
163
+ createScreenShareWithSelectionId(videoSourceId: string, bounds: CurrentShareBounds): Promise<string>;
164
+ private _isStoppedFor;
165
+ private _addEventListeners;
166
+ private _removeEventListeners;
167
+ private _syncShareStreamState;
168
+ private _handleStreamUpdate;
169
+ startRenderSharePreview(dom: HTMLElement, targetScreenTrack?: FcrScreenTrack | null | undefined): void;
170
+ stopRenderSharePreview(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
77
171
  private _handleStreamPublic;
172
+ setScreenTrack(screenTrack: FcrScreenTrack | null): void;
78
173
  addObserver(observer: FcrUIScreenShareObserver): void;
79
174
  removeObserver(observer: FcrUIScreenShareObserver): void;
80
175
  startShareWhiteboard(): void;
81
176
  stopShareWhiteboard(): void;
82
177
  release(): void;
83
- startShareScreen(): void;
84
- stopShareScreen(): void;
85
- private _closeControlBar;
86
- private _openShareScreenSelection;
178
+ startShareScreen(id: string, type: AgoraRtcScreenCaptureType, withAudio: boolean, isReplace: boolean): Promise<FcrScreenTrack | null>;
179
+ stopShareScreen(targetScreenTrack?: FcrScreenTrack | null | undefined): void;
180
+ private _handleShareStartWithAudio;
181
+ toggleScreenshareWithAudio(withAudio: boolean): void;
182
+ private _getExcludeWindows;
183
+ removeScreenStream(): boolean;
184
+ private _screenTrackStop;
87
185
  }
88
- export {};