fcr-ui-scene 3.6.1 → 3.6.2

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 (292) hide show
  1. package/dist/132.js +2 -0
  2. package/dist/132.js.LICENSE.txt +311 -0
  3. package/dist/317.js +2 -0
  4. package/dist/317.js.LICENSE.txt +20 -0
  5. package/dist/651.js +2 -0
  6. package/dist/651.js.LICENSE.txt +1 -0
  7. package/dist/689343b64b60bfb7ffff.png +0 -0
  8. package/dist/73.js +1 -0
  9. package/dist/885f9369ea05a8ac0e56.png +0 -0
  10. package/dist/90f383876a6e93e7c7ca.png +0 -0
  11. package/dist/9b37584780995fc5df8c.gif +0 -0
  12. package/dist/annotation.e5cbd3a70b6d42361872.css +1274 -0
  13. package/dist/annotation.html +1 -0
  14. package/dist/annotation.js +2 -0
  15. package/dist/annotation.js.LICENSE.txt +252 -0
  16. package/dist/assets/browser/images/default1.jpg +0 -0
  17. package/dist/assets/browser/images/default2.jpg +0 -0
  18. package/dist/assets/browser/images/default3.jpg +0 -0
  19. package/dist/assets/browser/images/default4.jpg +0 -0
  20. package/dist/assets/browser/images/default5.jpg +0 -0
  21. package/dist/assets/browser/images/default6.jpg +0 -0
  22. package/dist/assets/browser/images/default7.jpg +0 -0
  23. package/dist/assets/browser/sound_effects/pretest.mp3 +0 -0
  24. package/dist/assets/browser/sound_effects/recording_started.mp3 +0 -0
  25. package/dist/assets/browser/sound_effects/remote_user_joined.mp3 +0 -0
  26. package/dist/assets/browser/sound_effects/speaker_test.mp3 +0 -0
  27. package/dist/assets/browser/videos/default8.mp4 +0 -0
  28. package/dist/assets/browser/videos/default9.mp4 +0 -0
  29. package/dist/assets/cursors/fcr_whiteboard_input.ico +0 -0
  30. package/dist/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  31. package/dist/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  32. package/dist/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  33. package/dist/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  34. package/dist/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  35. package/dist/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  36. package/dist/assets/electron/images/default1.jpg +0 -0
  37. package/dist/assets/electron/images/default2.jpg +0 -0
  38. package/dist/assets/electron/sound_effects/pretest.mp3 +0 -0
  39. package/dist/assets/electron/videos/default8.mp4 +0 -0
  40. package/dist/assets/fcr_chat_reddot.svg +5 -0
  41. package/dist/assets/fcr_defaultpage.png +0 -0
  42. package/dist/assets/fcr_grid_big.svg +3 -0
  43. package/dist/assets/fcr_leave2.svg +58 -0
  44. package/dist/assets/fcr_listontop_big.svg +3 -0
  45. package/dist/assets/full-screen-error-boundary-img.png +0 -0
  46. package/dist/assets/leave-meeting.png +0 -0
  47. package/dist/assets/loading.gif +0 -0
  48. package/dist/assets/login_confirm.png +0 -0
  49. package/dist/assets/pretest.mp3 +0 -0
  50. package/dist/assets/state-bar-logo.png +0 -0
  51. package/dist/assets/step-gradient.svg +10 -0
  52. package/dist/b74b002687a3a3346bec.png +0 -0
  53. package/dist/b94869094481702f949b.png +0 -0
  54. package/dist/ebeace75fd46b90d890e.png +0 -0
  55. package/dist/electron/app.js +194 -0
  56. package/dist/electron/bootstrap-dev.js +46 -0
  57. package/dist/electron/bootstrap-sdk.js +211 -0
  58. package/dist/electron/default-options.js +25 -0
  59. package/dist/electron/env.js +13 -0
  60. package/dist/electron/index.js +20 -0
  61. package/dist/electron/injections.js +903 -0
  62. package/dist/electron/ipc/ipc.js +141 -0
  63. package/dist/electron/ipc/type.js +19 -0
  64. package/dist/electron/logger.js +65 -0
  65. package/dist/electron/main.js +94 -0
  66. package/dist/electron/plugins/devtool-shortcut.js +33 -0
  67. package/dist/electron/plugins/meeting-state.js +39 -0
  68. package/dist/electron/plugins/screenshot.js +54 -0
  69. package/dist/electron/preload.js +108 -0
  70. package/dist/electron/tools.js +66 -0
  71. package/dist/electron/window.js +123 -0
  72. package/dist/extensions/agora-extension-virtual-background/agora-wasm.wasm +0 -0
  73. package/dist/extensions/ai-denoiser/denoiser-wasm-simd.wasm +0 -0
  74. package/dist/extensions/ai-denoiser/denoiser-wasm.js +1 -0
  75. package/dist/extensions/ai-denoiser/denoiser-wasm.wasm +0 -0
  76. package/dist/fad688b9135b15d6c405.png +0 -0
  77. package/dist/index.html +224 -0
  78. package/dist/main.393a2a91ab7fc05ffce6.css +15403 -0
  79. package/dist/main.js +2 -0
  80. package/dist/main.js.LICENSE.txt +272 -0
  81. package/dist/worker-entry.worker.js.LICENSE.txt +13 -0
  82. package/lib/creator.d.ts +5 -0
  83. package/lib/creator.js +106 -17
  84. package/lib/electron/bootstrap-sdk.js +4 -0
  85. package/lib/electron/injections.d.ts +4 -0
  86. package/lib/electron/injections.js +37 -8
  87. package/lib/electron/ipc/ipc.d.ts +1 -0
  88. package/lib/electron/ipc/ipc.js +4 -0
  89. package/lib/electron/main.js +6 -2
  90. package/lib/electron/plugins/screenshot.js +4 -2
  91. package/lib/electron/preload.js +7 -2
  92. package/lib/electron/window.js +4 -3
  93. package/lib/fragments/annotation/index.d.ts +10 -0
  94. package/lib/fragments/annotation/index.js +106 -0
  95. package/lib/fragments/annotation/libs.d.ts +55 -0
  96. package/lib/fragments/annotation/libs.js +93 -0
  97. package/lib/fragments/annotation/store.d.ts +25 -0
  98. package/lib/fragments/annotation/store.js +485 -0
  99. package/lib/fragments/annotation/view.d.ts +2 -0
  100. package/lib/fragments/annotation/view.js +23 -0
  101. package/lib/fragments/base.d.ts +10 -0
  102. package/lib/fragments/base.js +44 -0
  103. package/lib/modules/action-bar/components/screen-share/submenu.js +7 -6
  104. package/lib/modules/action-bar/index.css +7 -0
  105. package/lib/modules/action-bar/index.d.ts +2 -0
  106. package/lib/modules/action-bar/index.js +1 -0
  107. package/lib/modules/action-bar/store.d.ts +6 -2
  108. package/lib/modules/action-bar/store.js +15 -9
  109. package/lib/modules/annotation/components/control-bar/index.css +48 -0
  110. package/lib/modules/annotation/components/control-bar/index.d.ts +3 -0
  111. package/lib/modules/annotation/components/control-bar/index.js +101 -0
  112. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.d.ts +3 -0
  113. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +46 -0
  114. package/lib/modules/annotation/components/toolbar/components/color-tool/index.d.ts +1 -0
  115. package/lib/modules/annotation/components/toolbar/components/color-tool/index.js +52 -0
  116. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +3 -0
  117. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +59 -0
  118. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +11 -0
  119. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +59 -0
  120. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.d.ts +1 -0
  121. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +68 -0
  122. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +17 -0
  123. package/lib/modules/annotation/components/toolbar/components/item/item.js +115 -0
  124. package/lib/modules/annotation/components/toolbar/components/item/style.css +43 -0
  125. package/lib/modules/annotation/components/toolbar/components/panel/index.d.ts +5 -0
  126. package/lib/modules/annotation/components/toolbar/components/panel/index.js +22 -0
  127. package/lib/modules/annotation/components/toolbar/components/panel/style.css +24 -0
  128. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.d.ts +1 -0
  129. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.js +58 -0
  130. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.d.ts +3 -0
  131. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +34 -0
  132. package/lib/modules/annotation/components/toolbar/components/tips/index.d.ts +2 -0
  133. package/lib/modules/annotation/components/toolbar/components/tips/index.js +25 -0
  134. package/lib/modules/annotation/components/toolbar/components/tips/style.css +19 -0
  135. package/lib/modules/annotation/components/toolbar/index.d.ts +0 -0
  136. package/lib/modules/annotation/components/toolbar/index.js +1 -0
  137. package/lib/modules/annotation/components/toolbar/store.d.ts +40 -0
  138. package/lib/modules/annotation/components/toolbar/store.js +279 -0
  139. package/lib/modules/annotation/components/toolbar/style.css +55 -0
  140. package/lib/modules/annotation/components/toolbar/view.d.ts +2 -0
  141. package/lib/modules/annotation/components/toolbar/view.js +120 -0
  142. package/lib/modules/annotation/index.d.ts +36 -0
  143. package/lib/modules/annotation/index.js +168 -0
  144. package/lib/modules/annotation/store.d.ts +85 -0
  145. package/lib/modules/annotation/store.js +648 -0
  146. package/lib/modules/annotation/style.css +26 -0
  147. package/lib/modules/annotation/view.d.ts +2 -0
  148. package/lib/modules/annotation/view.js +32 -0
  149. package/lib/modules/chat/view.js +112 -100
  150. package/lib/modules/components/annotation-menu/index.d.ts +7 -0
  151. package/lib/modules/components/annotation-menu/index.js +119 -0
  152. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -23
  153. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +2 -0
  154. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +6 -2
  155. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +2 -1
  156. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +6 -1
  157. package/lib/modules/components/member-window/components/video-player/index.d.ts +1 -0
  158. package/lib/modules/components/member-window/index.d.ts +1 -1
  159. package/lib/modules/components/member-window/index.js +8 -5
  160. package/lib/modules/components/member-window/types.d.ts +2 -0
  161. package/lib/modules/components/security-menu/index.js +7 -6
  162. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  163. package/lib/modules/control-bar/components/annotation-button/index.js +59 -0
  164. package/lib/modules/control-bar/index.d.ts +6 -2
  165. package/lib/modules/control-bar/index.js +5 -2
  166. package/lib/modules/control-bar/store.d.ts +23 -7
  167. package/lib/modules/control-bar/store.js +112 -77
  168. package/lib/modules/control-bar/view.js +7 -3
  169. package/lib/modules/dialog/components/annotation-tool/index.d.ts +4 -0
  170. package/lib/modules/dialog/components/annotation-tool/index.js +53 -0
  171. package/lib/modules/dialog/components/chat/index.js +1 -1
  172. package/lib/modules/dialog/components/host-area-container/index.d.ts +12 -0
  173. package/lib/modules/dialog/components/host-area-container/index.js +214 -0
  174. package/lib/modules/dialog/components/participant/index.js +1 -1
  175. package/lib/modules/dialog/components/system-preference/index.js +1 -1
  176. package/lib/modules/dialog/components/video-window/index.js +1 -0
  177. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  178. package/lib/modules/dialog/hooks/use-popover-watcher.js +112 -0
  179. package/lib/modules/dialog/hooks/useElectron.d.ts +1 -0
  180. package/lib/modules/dialog/hooks/useElectron.js +11 -2
  181. package/lib/modules/dialog/index.d.ts +2 -0
  182. package/lib/modules/dialog/index.js +2 -1
  183. package/lib/modules/dialog/store.d.ts +9 -2
  184. package/lib/modules/dialog/store.js +46 -6
  185. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  186. package/lib/modules/event-confirm/components/window/index.js +188 -0
  187. package/lib/modules/event-confirm/index.d.ts +4 -4
  188. package/lib/modules/event-confirm/index.js +6 -4
  189. package/lib/modules/event-confirm/store.d.ts +4 -5
  190. package/lib/modules/event-confirm/store.js +35 -26
  191. package/lib/modules/event-confirm/view.js +23 -171
  192. package/lib/modules/event-sound/index.js +1 -1
  193. package/lib/modules/layout/components/CommonVideoRenderer.js +30 -16
  194. package/lib/modules/layout/index.d.ts +4 -0
  195. package/lib/modules/layout/index.js +2 -0
  196. package/lib/modules/layout/store.d.ts +14 -2
  197. package/lib/modules/layout/store.js +77 -45
  198. package/lib/modules/participant/index.d.ts +2 -0
  199. package/lib/modules/participant/index.js +2 -1
  200. package/lib/modules/participant/store.d.ts +5 -2
  201. package/lib/modules/participant/store.js +45 -28
  202. package/lib/modules/setting/audio-settings/audio-settings.js +3 -14
  203. package/lib/modules/share-screen/components/selection/index.js +18 -42
  204. package/lib/modules/share-screen/index.d.ts +6 -2
  205. package/lib/modules/share-screen/index.js +4 -2
  206. package/lib/modules/share-screen/store.d.ts +38 -46
  207. package/lib/modules/share-screen/store.js +263 -693
  208. package/lib/modules/share-screen/view.js +2 -2
  209. package/lib/modules/state-bar/assets/fcr_grid_big.svg +1 -1
  210. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +1 -1
  211. package/lib/modules/state-bar/index.d.ts +2 -0
  212. package/lib/modules/state-bar/index.js +1 -0
  213. package/lib/modules/state-bar/store.d.ts +5 -1
  214. package/lib/modules/state-bar/store.js +9 -1
  215. package/lib/modules/state-bar/view.js +3 -2
  216. package/lib/modules/video-window/components/members/index.js +2 -1
  217. package/lib/modules/waiting-room-layout/store.js +1 -1
  218. package/lib/modules/whiteboard/components/control-bar/store.d.ts +5 -1
  219. package/lib/modules/whiteboard/components/control-bar/store.js +8 -1
  220. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +16 -5
  221. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +67 -12
  222. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +22 -2
  223. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -14
  224. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +3 -2
  225. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +1 -1
  226. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +58 -16
  227. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +15 -4
  228. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +45 -2
  229. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  230. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +235 -7
  231. package/lib/modules/whiteboard/components/toolbar/index.d.ts +1 -1
  232. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  233. package/lib/modules/whiteboard/components/toolbar/store.d.ts +9 -2
  234. package/lib/modules/whiteboard/components/toolbar/store.js +30 -6
  235. package/lib/modules/whiteboard/components/toolbar/{ style.css → style.css} +1 -0
  236. package/lib/modules/whiteboard/index.d.ts +2 -0
  237. package/lib/modules/whiteboard/index.js +20 -20
  238. package/lib/plugins/browser-runtime-plugin.js +10 -1
  239. package/lib/providers/annotation-provider.d.ts +77 -0
  240. package/lib/providers/annotation-provider.js +411 -0
  241. package/lib/providers/interpreter-provider.d.ts +1 -0
  242. package/lib/providers/interpreter-provider.js +182 -154
  243. package/lib/providers/privilege-provider.d.ts +35 -6
  244. package/lib/providers/privilege-provider.js +105 -49
  245. package/lib/providers/renderer-provider.js +3 -7
  246. package/lib/providers/room-provider.d.ts +13 -1
  247. package/lib/providers/room-provider.js +21 -7
  248. package/lib/providers/screen-share-provider.d.ts +131 -34
  249. package/lib/providers/screen-share-provider.js +561 -173
  250. package/lib/providers/sharing-provider.d.ts +33 -0
  251. package/lib/{shared-data-source/screen-share-data-source.js → providers/sharing-provider.js} +87 -39
  252. package/lib/runtime.d.ts +6 -1
  253. package/lib/scenes/main-scene.d.ts +7 -2
  254. package/lib/scenes/main-scene.js +54 -25
  255. package/lib/scenes/waiting-scene.d.ts +6 -0
  256. package/lib/scenes/waiting-scene.js +15 -5
  257. package/lib/shared-data-source/member-data.d.ts +21 -5
  258. package/lib/shared-data-source/member-data.js +69 -17
  259. package/lib/shared-data-source/screen-share-data.d.ts +270 -0
  260. package/lib/shared-data-source/screen-share-data.js +389 -0
  261. package/lib/shared-data-source/security-data.d.ts +4 -1
  262. package/lib/shared-data-source/security-data.js +5 -2
  263. package/lib/shared-data-source/setting.js +6 -4
  264. package/lib/type.d.ts +53 -0
  265. package/lib/ui-manager.d.ts +3 -2
  266. package/lib/ui-manager.js +6 -4
  267. package/lib/ui-scene.js +59 -44
  268. package/lib/utilities/constant.d.ts +8 -1
  269. package/lib/utilities/constant.js +7 -0
  270. package/lib/utilities/logger.d.ts +4 -0
  271. package/lib/utilities/logger.js +8 -1
  272. package/lib/utilities/renderer-event.d.ts +3 -0
  273. package/lib/utilities/renderer-event.js +14 -1
  274. package/lib/utilities/screen.js +2 -1
  275. package/lib/utilities/tools.d.ts +18 -1
  276. package/lib/utilities/tools.js +48 -2
  277. package/package.json +6 -6
  278. package/public/assets/cursors/fcr_whiteboard_input.ico +0 -0
  279. package/public/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  280. package/public/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  281. package/public/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  282. package/public/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  283. package/public/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  284. package/public/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  285. package/public/assets/fcr_chat_reddot.svg +3 -3
  286. package/public/assets/fcr_grid_big.svg +1 -1
  287. package/public/assets/fcr_leave2.svg +14 -14
  288. package/public/assets/fcr_listontop_big.svg +1 -1
  289. package/public/assets/step-gradient.svg +1 -1
  290. package/public/fragment.html +10 -0
  291. package/public/index.html +3 -1
  292. package/lib/shared-data-source/screen-share-data-source.d.ts +0 -37
@@ -1,10 +1,11 @@
1
1
  import { FcrUIMemberDataImpl } from '../modules/participant/member-list-data-source';
2
2
  import { FcrStreamControl, FcrUserRole } from 'fcr-core';
3
3
  import { FcrUserControl } from 'fcr-core/lib/room-control/user-control/type';
4
+ import { FcrRemoteVideoStats } from 'fcr-core/lib/room-control/stream-control/type';
4
5
  import { FcrLanguage } from 'fcr-core/lib/room-control/interpreter-control/types';
5
- import { FcrWhiteboardControl } from 'fcr-core/lib/room-control/whiteboard-control/types';
6
6
  import { FcrUserInfo } from 'fcr-core/lib/type';
7
- import { FcrUIScreenShareProvider } from '../providers/screen-share-provider';
7
+ import { FcrWhiteboardControl } from 'fcr-core/lib/room-control/whiteboard-control-v2/whiteboard-control/type';
8
+ import { FcrUIScreenShareSharedDataSource } from './screen-share-data';
8
9
  export interface FcrUIMemberSharedDataSource {
9
10
  /**
10
11
  * 整个房间的人数。
@@ -62,6 +63,16 @@ export interface FcrUIMemberSharedDataSource {
62
63
  * @returns 音频音量映射,类型为 Map<string, number>。
63
64
  */
64
65
  get audioVolumeMap(): Map<string, number>;
66
+ /**
67
+ * 获取共享屏幕视频的宽高比。
68
+ * @returns 共享屏幕视频的宽高比,类型为 number。
69
+ */
70
+ get shareScreenVideoRatio(): number;
71
+ /**
72
+ * 获取共享屏幕视频的宽高。
73
+ * @returns 共享屏幕视频的宽高,类型为 FcrRemoteVideoStats['dimensions'] | null。
74
+ */
75
+ get shareScreenVideoSize(): FcrRemoteVideoStats['dimensions'] | null;
65
76
  /**
66
77
  * 根据白板状态更新主房间参与者列表。
67
78
  * 此方法用于同步参与者列表与白板状态。
@@ -76,7 +87,7 @@ export interface FcrUIMemberSharedDataSource {
76
87
  export declare class FcrUIMemberSharedDataSourceImpl implements FcrUIMemberSharedDataSource {
77
88
  private _mainRoomUserControl;
78
89
  private _streamControl;
79
- private _screenShareProvider;
90
+ private _sharedScreenShareSharedDataSource;
80
91
  private _whiteBoardControl?;
81
92
  protected logger: import("agora-foundation/lib/logger").Logger;
82
93
  private _dataSource;
@@ -88,8 +99,12 @@ export declare class FcrUIMemberSharedDataSourceImpl implements FcrUIMemberShare
88
99
  private accessor _localUser;
89
100
  private _userObserver;
90
101
  private _streamsObserver;
102
+ private accessor serverPushTotalUserCount;
103
+ private accessor _shareScreenVideoRatio;
91
104
  accessor totalUserCount: number;
92
- private get localUserId();
105
+ accessor shareScreenVideoSize: FcrRemoteVideoStats['dimensions'] | null;
106
+ get localUserId(): string;
107
+ get shareScreenVideoRatio(): number;
93
108
  get hasOwnPstnStream(): boolean;
94
109
  get interpreterInputLanguageList(): {
95
110
  userId: string;
@@ -104,7 +119,7 @@ export declare class FcrUIMemberSharedDataSourceImpl implements FcrUIMemberShare
104
119
  get remoteMembersUserInfosList(): FcrUserInfo[];
105
120
  get memberList(): FcrUIMemberDataImpl[];
106
121
  get memberUserInfoList(): FcrUserInfo[];
107
- constructor(_mainRoomUserControl: FcrUserControl, _streamControl: FcrStreamControl, _screenShareProvider: FcrUIScreenShareProvider, _whiteBoardControl?: FcrWhiteboardControl | undefined);
122
+ constructor(_mainRoomUserControl: FcrUserControl, _streamControl: FcrStreamControl, _sharedScreenShareSharedDataSource: FcrUIScreenShareSharedDataSource, _whiteBoardControl?: FcrWhiteboardControl | undefined);
108
123
  updateMemberListWithBoardState(): void;
109
124
  release(): void;
110
125
  private _setIsLocalUserInPstn;
@@ -115,6 +130,7 @@ export declare class FcrUIMemberSharedDataSourceImpl implements FcrUIMemberShare
115
130
  private _syncParticipants;
116
131
  private _onAudioVolumeUpdated;
117
132
  private _handleRemoteUserJoined;
133
+ private _handleRemoteVideoStatsUpdated;
118
134
  private _handleRemoteUserLeft;
119
135
  private _handleStreamsAdded;
120
136
  private _handleStreamsUpdated;
@@ -103,7 +103,7 @@ var _type = require("fcr-core/lib/type");
103
103
  var _decorator = require("agora-foundation/lib/decorator");
104
104
  var _logger = require("../utilities/logger");
105
105
  var _FcrUIMemberSharedDataSourceImpl;
106
- var _initProto, _init__serverPushTotalUserCount, _init__audioVolumeMap, _init__isLocalUserInPstn, _init__interpreterInputLanguageList, _init__localUser, _init_totalUserCount, _updateMemberListWithBoardStateDecs, _setIsLocalUserInPstnDecs, _handleAllUserCountUpdatedDecs, _setTotalUserCountDecs, _handleUserInfoUpdatedDecs, _syncParticipantsDecs, _onAudioVolumeUpdatedDecs, _handleRemoteUserJoinedDecs, _handleRemoteUserLeftDecs, _handleStreamsAddedDecs, _handleStreamsUpdatedDecs, _handleStreamsRemovedDecs, _ref;
106
+ var _initProto, _init__serverPushTotalUserCount, _init__audioVolumeMap, _init__isLocalUserInPstn, _init__interpreterInputLanguageList, _init__localUser, _init_serverPushTotalUserCount, _init__shareScreenVideoRatio, _init_totalUserCount, _init_shareScreenVideoSize, _updateMemberListWithBoardStateDecs, _setIsLocalUserInPstnDecs, _handleAllUserCountUpdatedDecs, _setTotalUserCountDecs, _handleUserInfoUpdatedDecs, _syncParticipantsDecs, _onAudioVolumeUpdatedDecs, _handleRemoteUserJoinedDecs, _handleRemoteVideoStatsUpdatedDecs, _handleRemoteUserLeftDecs, _handleStreamsAddedDecs, _handleStreamsUpdatedDecs, _handleStreamsRemovedDecs, _ref;
107
107
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
108
108
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
109
109
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
@@ -122,9 +122,12 @@ var _C = /*#__PURE__*/new WeakMap();
122
122
  var _D = /*#__PURE__*/new WeakMap();
123
123
  var _E = /*#__PURE__*/new WeakMap();
124
124
  var _F = /*#__PURE__*/new WeakMap();
125
- _ref = (_updateMemberListWithBoardStateDecs = [_mobx.action, _mobx.action.bound], _setIsLocalUserInPstnDecs = [_mobx.action, _mobx.action.bound], _handleAllUserCountUpdatedDecs = [_mobx.action, _mobx.action.bound], _setTotalUserCountDecs = [_mobx.action, _mobx.action.bound], _handleUserInfoUpdatedDecs = [_mobx.action, _mobx.action.bound], _syncParticipantsDecs = (0, _decorator.debounced)(800), _onAudioVolumeUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleRemoteUserJoinedDecs = [_mobx.action, _mobx.action.bound], _handleRemoteUserLeftDecs = [_mobx.action, _mobx.action.bound], _handleStreamsAddedDecs = [_mobx.action, _mobx.action.bound], _handleStreamsUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleStreamsRemovedDecs = [_mobx.action, _mobx.action.bound], "logger");
125
+ var _G = /*#__PURE__*/new WeakMap();
126
+ var _H = /*#__PURE__*/new WeakMap();
127
+ var _I = /*#__PURE__*/new WeakMap();
128
+ _ref = (_updateMemberListWithBoardStateDecs = [_mobx.action, _mobx.action.bound], _setIsLocalUserInPstnDecs = [_mobx.action, _mobx.action.bound], _handleAllUserCountUpdatedDecs = [_mobx.action, _mobx.action.bound], _setTotalUserCountDecs = [_mobx.action, _mobx.action.bound], _handleUserInfoUpdatedDecs = [_mobx.action, _mobx.action.bound], _syncParticipantsDecs = (0, _decorator.debounced)(800), _onAudioVolumeUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleRemoteUserJoinedDecs = [_mobx.action, _mobx.action.bound], _handleRemoteVideoStatsUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleRemoteUserLeftDecs = [_mobx.action, _mobx.action.bound], _handleStreamsAddedDecs = [_mobx.action, _mobx.action.bound], _handleStreamsUpdatedDecs = [_mobx.action, _mobx.action.bound], _handleStreamsRemovedDecs = [_mobx.action, _mobx.action.bound], "logger");
126
129
  var FcrUIMemberSharedDataSourceImpl = exports.FcrUIMemberSharedDataSourceImpl = /*#__PURE__*/function () {
127
- function FcrUIMemberSharedDataSourceImpl(_mainRoomUserControl, _streamControl, _screenShareProvider, _whiteBoardControl) {
130
+ function FcrUIMemberSharedDataSourceImpl(_mainRoomUserControl, _streamControl, _sharedScreenShareSharedDataSource, _whiteBoardControl) {
128
131
  var _this = this;
129
132
  (0, _classCallCheck2["default"])(this, FcrUIMemberSharedDataSourceImpl);
130
133
  (0, _defineProperty2["default"])(this, _ref, (_initProto(this), (0, _logger.createLogger)({
@@ -147,12 +150,16 @@ var FcrUIMemberSharedDataSourceImpl = exports.FcrUIMemberSharedDataSourceImpl =
147
150
  onStreamsAdded: this._handleStreamsAdded,
148
151
  onStreamsUpdated: this._handleStreamsUpdated,
149
152
  onStreamVolumeIndicationUpdated: this._onAudioVolumeUpdated,
150
- onStreamsRemoved: this._handleStreamsRemoved
153
+ onStreamsRemoved: this._handleStreamsRemoved,
154
+ onRemoteVideoStatsUpdated: this._handleRemoteVideoStatsUpdated
151
155
  });
152
- _classPrivateFieldInitSpec(this, _F, _init_totalUserCount(this, 1));
156
+ _classPrivateFieldInitSpec(this, _F, _init_serverPushTotalUserCount(this, 1));
157
+ _classPrivateFieldInitSpec(this, _G, _init__shareScreenVideoRatio(this, 0));
158
+ _classPrivateFieldInitSpec(this, _H, _init_totalUserCount(this, 1));
159
+ _classPrivateFieldInitSpec(this, _I, _init_shareScreenVideoSize(this, null));
153
160
  this._mainRoomUserControl = _mainRoomUserControl;
154
161
  this._streamControl = _streamControl;
155
- this._screenShareProvider = _screenShareProvider;
162
+ this._sharedScreenShareSharedDataSource = _sharedScreenShareSharedDataSource;
156
163
  this._whiteBoardControl = _whiteBoardControl;
157
164
  this._mainRoomUserControl.addObserver(this._userObserver);
158
165
  this._streamControl.addObserver(this._streamsObserver);
@@ -208,17 +215,46 @@ var FcrUIMemberSharedDataSourceImpl = exports.FcrUIMemberSharedDataSourceImpl =
208
215
  _classPrivateFieldSet(_E, this, v);
209
216
  }
210
217
  }, {
211
- key: "totalUserCount",
218
+ key: "serverPushTotalUserCount",
212
219
  get: function get() {
213
220
  return _classPrivateFieldGet(_F, this);
214
221
  },
215
222
  set: function set(v) {
216
223
  _classPrivateFieldSet(_F, this, v);
217
224
  }
225
+ }, {
226
+ key: "_shareScreenVideoRatio",
227
+ get: function get() {
228
+ return _classPrivateFieldGet(_G, this);
229
+ },
230
+ set: function set(v) {
231
+ _classPrivateFieldSet(_G, this, v);
232
+ }
233
+ }, {
234
+ key: "totalUserCount",
235
+ get: function get() {
236
+ return _classPrivateFieldGet(_H, this);
237
+ },
238
+ set: function set(v) {
239
+ _classPrivateFieldSet(_H, this, v);
240
+ }
241
+ }, {
242
+ key: "shareScreenVideoSize",
243
+ get: function get() {
244
+ return _classPrivateFieldGet(_I, this);
245
+ },
246
+ set: function set(v) {
247
+ _classPrivateFieldSet(_I, this, v);
248
+ }
218
249
  }, {
219
250
  key: "localUserId",
220
251
  get: function get() {
221
- return this.localUser.userId;
252
+ return this._localUser.userId;
253
+ }
254
+ }, {
255
+ key: "shareScreenVideoRatio",
256
+ get: function get() {
257
+ return this._shareScreenVideoRatio;
222
258
  }
223
259
  }, {
224
260
  key: "hasOwnPstnStream",
@@ -289,9 +325,8 @@ var FcrUIMemberSharedDataSourceImpl = exports.FcrUIMemberSharedDataSourceImpl =
289
325
  var _this3 = this;
290
326
  (0, _mobx.runInAction)(function () {
291
327
  if (_this3._whiteBoardControl) {
292
- var boardInfo = _this3._whiteBoardControl.getBoardActiveInfo();
293
- var isActive = boardInfo.isActive,
294
- ownerUserId = boardInfo.ownerUserId;
328
+ var isActive = _this3._whiteBoardControl.getActivity();
329
+ var ownerUserId = _this3._whiteBoardControl.getOwnerId();
295
330
  _this3._dataSource.list.forEach(function (user) {
296
331
  var isBoardActive = isActive && user.userId === ownerUserId;
297
332
  user.setUserInfo(_objectSpread(_objectSpread({}, user.userInfo), {}, {
@@ -346,16 +381,16 @@ var FcrUIMemberSharedDataSourceImpl = exports.FcrUIMemberSharedDataSourceImpl =
346
381
  }, {
347
382
  key: "_handleUserInfoUpdated",
348
383
  value: function _handleUserInfoUpdated(roomId, event) {
349
- var _this$_screenSharePro;
384
+ var _this$_sharedScreenSh;
350
385
  var targetUser = event.modifiedUser;
351
386
  if (event.modifiedUser.userId === this.localUserId) {
352
387
  this._localUser = this._mainRoomUserControl.getLocalUser();
353
388
  }
354
389
  this._dataSource.updateUserInfo(targetUser, true);
355
390
  // 共享屏幕
356
- var isModifiySharingScreenUser = this._screenShareProvider.isSharingScreen && ((_this$_screenSharePro = this._screenShareProvider.screenSharingOwner) === null || _this$_screenSharePro === void 0 ? void 0 : _this$_screenSharePro.userId) === targetUser.userId;
391
+ var isModifiySharingScreenUser = this._sharedScreenShareSharedDataSource.isSharingScreen && ((_this$_sharedScreenSh = this._sharedScreenShareSharedDataSource.screenSharingOwner) === null || _this$_sharedScreenSh === void 0 ? void 0 : _this$_sharedScreenSh.userId) === targetUser.userId;
357
392
  if (isModifiySharingScreenUser) {
358
- this._screenShareProvider.screenSharingOwner = targetUser;
393
+ this._sharedScreenShareSharedDataSource.setScreenSharingOwner(targetUser);
359
394
  }
360
395
  this.updateMemberListWithBoardState();
361
396
  }
@@ -402,6 +437,20 @@ var FcrUIMemberSharedDataSourceImpl = exports.FcrUIMemberSharedDataSourceImpl =
402
437
  });
403
438
  this.updateMemberListWithBoardState();
404
439
  }
440
+ }, {
441
+ key: "_handleRemoteVideoStatsUpdated",
442
+ value: function _handleRemoteVideoStatsUpdated(roomId, streamId, videoStats) {
443
+ var stream = this._streamControl.getStreamByStreamId(streamId);
444
+ if ((stream === null || stream === void 0 ? void 0 : stream.videoSourceType) === _fcrCore.FcrVideoSourceType.SCREEN) {
445
+ var _videoStats$dimension = videoStats.dimensions,
446
+ width = _videoStats$dimension.width,
447
+ height = _videoStats$dimension.height;
448
+ if (width !== 0 && height !== 0) {
449
+ this._shareScreenVideoRatio = width / height;
450
+ this.shareScreenVideoSize = videoStats.dimensions;
451
+ }
452
+ }
453
+ }
405
454
  }, {
406
455
  key: "_handleRemoteUserLeft",
407
456
  value: function _handleRemoteUserLeft(roomId, events) {
@@ -451,12 +500,15 @@ var FcrUIMemberSharedDataSourceImpl = exports.FcrUIMemberSharedDataSourceImpl =
451
500
  }]);
452
501
  }();
453
502
  _FcrUIMemberSharedDataSourceImpl = FcrUIMemberSharedDataSourceImpl;
454
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIMemberSharedDataSourceImpl, [[_mobx.observable, 1, "_serverPushTotalUserCount"], [_mobx.observable, 1, "_audioVolumeMap"], [_mobx.observable, 1, "_isLocalUserInPstn"], [_mobx.observable, 1, "_interpreterInputLanguageList"], [_mobx.observable, 1, "_localUser"], [_mobx.observable, 1, "totalUserCount"], [_mobx.computed, 3, "hasOwnPstnStream"], [_mobx.computed, 3, "interpreterInputLanguageList"], [_mobx.computed, 3, "audioVolumeMap"], [_mobx.computed, 3, "isLocalUserHost"], [_mobx.computed, 3, "remoteMembers"], [_mobx.computed, 3, "remoteMembersUserInfosList"], [_mobx.computed, 3, "memberUserInfoList"], [_updateMemberListWithBoardStateDecs, 18, "updateMemberListWithBoardState"], [_setIsLocalUserInPstnDecs, 18, "_setIsLocalUserInPstn"], [_handleAllUserCountUpdatedDecs, 18, "_handleAllUserCountUpdated"], [_setTotalUserCountDecs, 18, "_setTotalUserCount"], [_handleUserInfoUpdatedDecs, 18, "_handleUserInfoUpdated"], [_syncParticipantsDecs, 2, "_syncParticipants"], [_onAudioVolumeUpdatedDecs, 18, "_onAudioVolumeUpdated"], [_handleRemoteUserJoinedDecs, 18, "_handleRemoteUserJoined"], [_handleRemoteUserLeftDecs, 18, "_handleRemoteUserLeft"], [_handleStreamsAddedDecs, 18, "_handleStreamsAdded"], [_handleStreamsUpdatedDecs, 18, "_handleStreamsUpdated"], [_handleStreamsRemovedDecs, 18, "_handleStreamsRemoved"]], []).e, 7);
503
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_FcrUIMemberSharedDataSourceImpl, [[_mobx.observable, 1, "_serverPushTotalUserCount"], [_mobx.observable, 1, "_audioVolumeMap"], [_mobx.observable, 1, "_isLocalUserInPstn"], [_mobx.observable, 1, "_interpreterInputLanguageList"], [_mobx.observable, 1, "_localUser"], [_mobx.observable, 1, "serverPushTotalUserCount"], [_mobx.observable, 1, "_shareScreenVideoRatio"], [_mobx.observable, 1, "totalUserCount"], [_mobx.observable, 1, "shareScreenVideoSize"], [_mobx.computed, 3, "shareScreenVideoRatio"], [_mobx.computed, 3, "hasOwnPstnStream"], [_mobx.computed, 3, "interpreterInputLanguageList"], [_mobx.computed, 3, "audioVolumeMap"], [_mobx.computed, 3, "isLocalUserHost"], [_mobx.computed, 3, "remoteMembers"], [_mobx.computed, 3, "remoteMembersUserInfosList"], [_mobx.computed, 3, "memberUserInfoList"], [_updateMemberListWithBoardStateDecs, 18, "updateMemberListWithBoardState"], [_setIsLocalUserInPstnDecs, 18, "_setIsLocalUserInPstn"], [_handleAllUserCountUpdatedDecs, 18, "_handleAllUserCountUpdated"], [_setTotalUserCountDecs, 18, "_setTotalUserCount"], [_handleUserInfoUpdatedDecs, 18, "_handleUserInfoUpdated"], [_syncParticipantsDecs, 2, "_syncParticipants"], [_onAudioVolumeUpdatedDecs, 18, "_onAudioVolumeUpdated"], [_handleRemoteUserJoinedDecs, 18, "_handleRemoteUserJoined"], [_handleRemoteVideoStatsUpdatedDecs, 18, "_handleRemoteVideoStatsUpdated"], [_handleRemoteUserLeftDecs, 18, "_handleRemoteUserLeft"], [_handleStreamsAddedDecs, 18, "_handleStreamsAdded"], [_handleStreamsUpdatedDecs, 18, "_handleStreamsUpdated"], [_handleStreamsRemovedDecs, 18, "_handleStreamsRemoved"]], []).e, 10);
455
504
  _init__serverPushTotalUserCount = _applyDecs$e[0];
456
505
  _init__audioVolumeMap = _applyDecs$e[1];
457
506
  _init__isLocalUserInPstn = _applyDecs$e[2];
458
507
  _init__interpreterInputLanguageList = _applyDecs$e[3];
459
508
  _init__localUser = _applyDecs$e[4];
460
- _init_totalUserCount = _applyDecs$e[5];
461
- _initProto = _applyDecs$e[6];
509
+ _init_serverPushTotalUserCount = _applyDecs$e[5];
510
+ _init__shareScreenVideoRatio = _applyDecs$e[6];
511
+ _init_totalUserCount = _applyDecs$e[7];
512
+ _init_shareScreenVideoSize = _applyDecs$e[8];
513
+ _initProto = _applyDecs$e[9];
462
514
  (0, _base.registerDependency)('sharedMemberDataSource');
@@ -0,0 +1,270 @@
1
+ import { FcrConnectionState, FcrMediaSourceState } from 'fcr-core';
2
+ import { FcrUserInfo } from 'fcr-core/lib/type';
3
+ import { AgoraRtcWindowInfo } from 'fcr-core/lib/imports';
4
+ import { FcrUIDisplayCaptureSource } from '../modules/share-screen/types';
5
+ import { AudioProcessingChannel } from 'agora-ui-foundation/lib/components/room-screen-share-state-bar/share-audio';
6
+ import { AgoraRtcDisplayInfo, AgoraRtcScreenCaptureType } from 'agora-rte-sdk/lib/core/rtc/type';
7
+ import { CurrentShareBounds } from '../modules/control-bar/types';
8
+ import { FcrUIConnectionProvider } from '../providers/room-provider';
9
+ import { FcrLoopbackTrack, FcrScreenTrack } from 'fcr-core/lib/media-control/type';
10
+ import { FcrUIDeviceProvider } from '../providers/device-provider';
11
+ export interface FcrUIScreenShareSharedDataSource {
12
+ /**
13
+ * 获取当前屏幕共享的媒体流状态
14
+ * @returns 当前屏幕共享的媒体流状态,枚举类型 FcrMediaSourceState
15
+ */
16
+ get screenSharingState(): FcrMediaSourceState;
17
+ /**
18
+ * 获取可用于应用窗口捕获的源列表
19
+ * @returns 本地用户可用于应用窗口捕获的源列表,每个元素包含窗口信息
20
+ */
21
+ get applicationCaptureSources(): AgoraRtcWindowInfo[];
22
+ /**
23
+ * 获取可用于屏幕捕获的源列表
24
+ * @returns 本地用户可用于屏幕捕获的源列表,每个元素包含显示设备信息
25
+ */
26
+ get screenCaptureSources(): FcrUIDisplayCaptureSource[];
27
+ /**
28
+ * 获取当前屏幕共享的音频处理声道模式
29
+ * @returns 当前设置的音频声道模式:MONO(单声道)或 STEREO(立体声)
30
+ */
31
+ get currentShareAudioProcessingChannel(): AudioProcessingChannel;
32
+ /**
33
+ * 获取当前选中的共享内容标识符
34
+ * @returns 当前选中的共享内容唯一标识符(如窗口ID或屏幕ID)
35
+ */
36
+ get currentSelectionId(): string;
37
+ /**
38
+ * 获取当前选中的共享内容类型
39
+ * @returns 当前选中的共享内容类型:SCREEN(1) 表示整个屏幕,WINDOW(2) 表示应用窗口
40
+ */
41
+ get currentSelectionType(): AgoraRtcScreenCaptureType;
42
+ /**
43
+ * 检查当前屏幕共享是否包含音频
44
+ * @returns 如果屏幕共享包含音频流则返回 true,否则返回 false
45
+ */
46
+ get shareWithAudio(): boolean;
47
+ /**
48
+ * 获取当前选中的共享区域边界信息
49
+ * @returns 当前选中的共享区域的位置和尺寸信息
50
+ */
51
+ get currentSelectionBounds(): CurrentShareBounds;
52
+ /**
53
+ * 获取当前屏幕共享的连接状态
54
+ * @returns 当前屏幕共享的连接状态,枚举类型 FcrConnectionState
55
+ */
56
+ get connectionState(): FcrConnectionState;
57
+ /**
58
+ * 获取当前屏幕共享会话的唯一标识符
59
+ * @returns 当前屏幕共享会话的唯一标识符
60
+ */
61
+ get currentShareId(): string;
62
+ /**
63
+ * 获取当前屏幕共享内容的类型
64
+ * @returns 当前屏幕共享内容的类型:SCREEN(1) 或 WINDOW(2)
65
+ */
66
+ get currentShareType(): AgoraRtcScreenCaptureType;
67
+ /**
68
+ * 获取当前屏幕共享流的唯一标识符
69
+ * @returns 当前屏幕共享流的唯一标识符
70
+ */
71
+ get currentShareStreamId(): string;
72
+ /**
73
+ * 获取当前屏幕共享的媒体轨道对象
74
+ * @returns 当前屏幕共享的媒体轨道对象,如果未开始共享则返回 null
75
+ */
76
+ get screenTrack(): FcrScreenTrack | null;
77
+ /**
78
+ * 异步获取可用的应用窗口列表
79
+ * @returns 返回一个 Promise,解析为可用的应用窗口信息列表
80
+ */
81
+ get appWindowList(): Promise<AgoraRtcWindowInfo[]>;
82
+ /**
83
+ * 异步获取可用的显示设备列表
84
+ * @returns 返回一个 Promise,解析为可用的显示设备信息列表
85
+ */
86
+ get displayList(): Promise<AgoraRtcDisplayInfo[]>;
87
+ /**
88
+ * 获取当前环路back音频源的标识符, 用于设置屏幕共享开启共享音频时的音频源
89
+ * @returns 当前环路back音频源的唯一标识符
90
+ */
91
+ get loopbackAudioSourceId(): string;
92
+ /**
93
+ * 获取当前屏幕共享的音频轨道对象
94
+ * @returns 当前屏幕共享的音频轨道对象,如果未共享音频则返回 null
95
+ */
96
+ get shareWithAudioTrack(): FcrLoopbackTrack | null;
97
+ /**
98
+ * 检查当前是否处于替换屏幕共享状态
99
+ * @returns 如果正在替换屏幕共享内容则返回 true,否则返回 false
100
+ */
101
+ get isReplaceScreen(): boolean;
102
+ get isSeizeStream(): boolean;
103
+ /**
104
+ * 检查当前是否正在进行屏幕共享
105
+ * @returns 如果有用户正在进行屏幕共享则返回 true,否则返回 false
106
+ */
107
+ get isSharingScreen(): boolean;
108
+ /**
109
+ * 获取当前屏幕共享的所有者信息
110
+ * @returns 当前屏幕共享的所有者用户信息,如果没有正在进行的共享则返回 undefined
111
+ */
112
+ get screenSharingOwner(): FcrUserInfo | undefined;
113
+ setIsSeizeStream(seize: boolean): void;
114
+ /**
115
+ * 设置当前是否正在进行屏幕共享的状态
116
+ * @param isSharing - 布尔值,表示是否正在进行屏幕共享
117
+ */
118
+ setIsSharingScreen(isSharing: boolean): void;
119
+ /**
120
+ * 设置当前是否处于替换屏幕共享内容的状态
121
+ * @param isReplace - 布尔值,表示是否正在替换屏幕共享内容
122
+ */
123
+ setIsReplaceScreen(isReplace: boolean): void;
124
+ /**
125
+ * 设置当前屏幕共享的所有者信息
126
+ * @param owner - 用户信息对象,表示屏幕共享的所有者,传入 undefined 表示停止共享
127
+ */
128
+ setScreenSharingOwner(owner: FcrUserInfo | undefined): void;
129
+ /**
130
+ * 设置当前屏幕共享的音频轨道
131
+ * @param shareAudioTrack - 音频轨道对象,表示屏幕共享的音频轨道,传入 null 表示不共享音频
132
+ */
133
+ setShareWithAudioTrack(shareWithAudioTrack: FcrLoopbackTrack | null): void;
134
+ /**
135
+ * 设置当前环路back音频源的标识符
136
+ * @param sourceId - 音频源的唯一标识符
137
+ */
138
+ setLoopbackAudioSourceId(sourceId: string): void;
139
+ /**
140
+ * 设置当前屏幕共享的媒体轨道
141
+ * @param screenTrack - 屏幕共享的媒体轨道对象,传入 null 表示停止共享屏幕
142
+ */
143
+ setScreenTrack(screenTrack: FcrScreenTrack | null): void;
144
+ /**
145
+ * 设置当前屏幕共享会话的唯一标识符
146
+ * @param id - 屏幕共享会话的唯一标识符
147
+ */
148
+ setCurrentShareId(id: string): void;
149
+ /**
150
+ * 设置当前屏幕共享内容的类型
151
+ * @param type - 屏幕共享内容的类型:SCREEN(1) 或 WINDOW(2)
152
+ */
153
+ setCurrentShareType(type: AgoraRtcScreenCaptureType): void;
154
+ /**
155
+ * 设置当前屏幕共享流的唯一标识符
156
+ * @param streamId - 屏幕共享流的唯一标识符
157
+ */
158
+ setCurrentShareStreamId(streamId: string): void;
159
+ /**
160
+ * 设置屏幕共享是否包含音频
161
+ * @param status - 布尔值,表示是否在屏幕共享中包含音频
162
+ */
163
+ setShareWithAudio(status: boolean): void;
164
+ /**
165
+ * 设置当前选中的共享内容标识符
166
+ * @param id - 共享内容的唯一标识符(如窗口ID或屏幕ID)
167
+ */
168
+ setCurrentSelectionId(id: string): void;
169
+ /**
170
+ * 设置当前选中的共享内容类型
171
+ * @param type - 共享内容的类型:SCREEN(1) 或 WINDOW(2)
172
+ */
173
+ setCurrentSelectionType(type: AgoraRtcScreenCaptureType): void;
174
+ /**
175
+ * 设置当前选中的共享区域边界信息
176
+ * @param bounds - 共享区域的位置和尺寸信息
177
+ */
178
+ setCurrentSelectionBounds(bounds: CurrentShareBounds): void;
179
+ /**
180
+ * 一次性设置当前选中的共享内容信息
181
+ * @param id - 共享内容的唯一标识符
182
+ * @param type - 共享内容的类型
183
+ * @param bounds - 共享区域的边界信息
184
+ */
185
+ setCurrentSelection(id: string, type: AgoraRtcScreenCaptureType, bounds: CurrentShareBounds): void;
186
+ /**
187
+ * 设置当前屏幕共享的完整信息
188
+ * @param id - 共享会话的唯一标识符
189
+ * @param type - 共享内容的类型
190
+ * @param bounds - 共享区域的边界信息
191
+ */
192
+ setCurrentShareIdInfos(id: string, type: AgoraRtcScreenCaptureType, bounds: CurrentShareBounds): void;
193
+ /**
194
+ * 设置当前屏幕共享的媒体流状态
195
+ * @param state - 屏幕共享的媒体流状态,枚举类型 FcrMediaSourceState
196
+ */
197
+ setScreenSharingState(state: FcrMediaSourceState): void;
198
+ /**
199
+ * 设置可用的应用窗口捕获源列表
200
+ * @param windowInfos - 应用窗口信息列表
201
+ */
202
+ setApplicationCaptureSources(windowInfos: AgoraRtcWindowInfo[]): void;
203
+ /**
204
+ * 设置可用的屏幕捕获源列表
205
+ * @param sources - 屏幕捕获源信息列表
206
+ */
207
+ setScreenCaptureSources(sources: FcrUIDisplayCaptureSource[]): void;
208
+ /**
209
+ * 设置当前屏幕共享的音频处理声道模式
210
+ * @param channel - 音频声道模式:MONO(单声道)或 STEREO(立体声)
211
+ */
212
+ setCurrentShareAudioProcessingChannel(channel: AudioProcessingChannel): void;
213
+ /**
214
+ * 释放屏幕共享相关资源
215
+ * 清理所有订阅和资源,通常在组件卸载时调用
216
+ */
217
+ release(): void;
218
+ }
219
+ export declare class FcrUIScreenShareSharedDataSourceImpl implements FcrUIScreenShareSharedDataSource {
220
+ private _connectionProvider;
221
+ private _deviceProvider;
222
+ protected logger: import("agora-foundation/lib/logger").Logger;
223
+ private _disposers;
224
+ private _connectionObserver;
225
+ accessor isSharingScreen: boolean;
226
+ accessor screenSharingOwner: FcrUserInfo | undefined;
227
+ accessor screenSharingState: FcrMediaSourceState;
228
+ accessor applicationCaptureSources: AgoraRtcWindowInfo[];
229
+ accessor screenCaptureSources: FcrUIDisplayCaptureSource[];
230
+ accessor currentShareAudioProcessingChannel: AudioProcessingChannel;
231
+ accessor currentSelectionId: string;
232
+ accessor currentSelectionType: AgoraRtcScreenCaptureType;
233
+ accessor shareWithAudio: boolean;
234
+ accessor boardOwnerUser: FcrUserInfo | undefined;
235
+ accessor currentSelectionBounds: CurrentShareBounds;
236
+ accessor connectionState: FcrConnectionState;
237
+ accessor isReplaceScreen: boolean;
238
+ accessor isSeizeStream: boolean;
239
+ screenTrack: FcrScreenTrack | null;
240
+ shareWithAudioTrack: FcrLoopbackTrack | null;
241
+ currentShareId: string;
242
+ currentShareType: AgoraRtcScreenCaptureType;
243
+ currentShareStreamId: string;
244
+ loopbackAudioSourceId: string;
245
+ get appWindowList(): Promise<AgoraRtcWindowInfo[]>;
246
+ get displayList(): Promise<AgoraRtcDisplayInfo[]>;
247
+ constructor(_connectionProvider: FcrUIConnectionProvider, _deviceProvider: FcrUIDeviceProvider);
248
+ setIsSeizeStream(seized: boolean): void;
249
+ setIsReplaceScreen(isReplace: boolean): void;
250
+ setIsSharingScreen(isSharing: boolean): void;
251
+ setScreenSharingOwner(owner: FcrUserInfo | undefined): void;
252
+ setShareWithAudioTrack(shareWithAudioTrack: FcrLoopbackTrack | null): void;
253
+ setLoopbackAudioSourceId(sourceId: string): void;
254
+ setScreenTrack(screenTrack: FcrScreenTrack | null): void;
255
+ setCurrentShareType(type: AgoraRtcScreenCaptureType): void;
256
+ setCurrentShareId(id: string): void;
257
+ setCurrentShareStreamId(streamId: string): void;
258
+ setCurrentShareAudioProcessingChannel(channel: AudioProcessingChannel): void;
259
+ setScreenCaptureSources(sources: FcrUIDisplayCaptureSource[]): void;
260
+ setApplicationCaptureSources(windowInfos: AgoraRtcWindowInfo[]): void;
261
+ setScreenSharingState(state: FcrMediaSourceState): void;
262
+ setCurrentShareIdInfos(currentShareId: string, type: AgoraRtcScreenCaptureType, bounds: CurrentShareBounds): void;
263
+ setCurrentSelection(id: string, type: AgoraRtcScreenCaptureType, bounds: CurrentShareBounds): void;
264
+ setCurrentSelectionId(id: string): void;
265
+ setCurrentSelectionType(type: AgoraRtcScreenCaptureType): void;
266
+ setCurrentSelectionBounds(bounds: CurrentShareBounds): void;
267
+ setShareWithAudio(withAudio: boolean): void;
268
+ release(): void;
269
+ private _handleOnConnectionStateUpdated;
270
+ }