tuikit-atomicx-vue3 4.4.0-beta.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (727) hide show
  1. package/.eslintrc.cjs +6 -2
  2. package/dist/DurationSelector.vue_vue_type_script_setup_true_lang-RndH6NtJ.js +54 -0
  3. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-D1G-LitO.js → MessageInput.vue_vue_type_script_setup_true_lang-jPzZ5INK.js} +38 -36
  4. package/dist/TimezoneSelector.vue_vue_type_script_setup_true_lang-C-lovW-l.js +62 -0
  5. package/dist/baseComp/AudioIcon.js +7 -7
  6. package/dist/baseComp/Input/InputH5.vue.d.ts +1 -1
  7. package/dist/baseComp/Input/InputPC.vue.d.ts +1 -1
  8. package/dist/baseComp/Input/InputWX.vue.d.ts +1 -1
  9. package/dist/baseComp/Input/index.d.ts +15 -15
  10. package/dist/changeNameCardDialog.vue_vue_type_script_setup_true_lang-a4FmKskP.js +41 -0
  11. package/dist/chat/index.d.ts +521 -506
  12. package/dist/chat/server.js +15 -15
  13. package/dist/components/AudioSetting/AudioMediaControl.js +23 -23
  14. package/dist/components/AudioSetting/AudioRequestDialog.js +86 -2
  15. package/dist/components/AudioSetting/AudioSettingTab.js +32 -33
  16. package/dist/components/AudioSetting/MicrophoneSelect.js +14 -15
  17. package/dist/components/AudioSetting/SpeakerSelect.js +16 -17
  18. package/dist/components/AudioSetting/index.js +29 -3
  19. package/dist/components/AudioSettingPanel/MicrophoneSelect.js +61 -0
  20. package/dist/components/AudioSettingPanel/MicrophoneSelect.vue.d.ts +29 -0
  21. package/dist/components/AudioSettingPanel/SpeakerSelect.js +61 -0
  22. package/dist/components/AudioSettingPanel/SpeakerSelect.vue.d.ts +29 -0
  23. package/dist/components/AudioSettingPanel/i18n/en-US/index.d.ts +12 -6
  24. package/dist/components/AudioSettingPanel/i18n/en-US/index.js +12 -6
  25. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.d.ts +12 -6
  26. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.js +12 -6
  27. package/dist/components/AudioSettingPanel/index.d.ts +49 -2
  28. package/dist/components/AudioSettingPanel/index.js +127 -94
  29. package/dist/components/AudioSettingPanel/index.vue.d.ts +49 -1
  30. package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
  31. package/dist/components/BarrageInput/TextEditor/EditorCore.js +5 -4
  32. package/dist/components/BarrageInput/TextEditor/TextEditor.vue.d.ts +1 -1
  33. package/dist/components/BarrageInput/index.d.ts +6 -6
  34. package/dist/components/BarrageList/BarrageList.js +7 -7
  35. package/dist/components/BarrageList/BarrageListH5.js +7 -7
  36. package/dist/components/BarrageList/BarrageListState.d.ts +5 -27
  37. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.js +4 -4
  38. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue.d.ts +1 -1
  39. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +11 -11
  40. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.vue.d.ts +1 -1
  41. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +4 -4
  42. package/dist/components/BarrageList/Message/TextMessage/TextMessage.vue.d.ts +1 -1
  43. package/dist/components/CameraButton/index.js +7 -7
  44. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +2 -1
  45. package/dist/components/ChatSetting/SettingItem/SettingItem.vue.d.ts +2 -2
  46. package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.js +6 -6
  47. package/dist/components/ContactList/ContactInfo/ContactInfo.js +1 -1
  48. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.js +1 -1
  49. package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.js +9 -9
  50. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.js +1 -1
  51. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +4 -4
  52. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.js +8 -8
  53. package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.js +7 -7
  54. package/dist/components/ContactList/ContactList.js +7 -7
  55. package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.js +8 -8
  56. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.js +5 -5
  57. package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.js +5 -5
  58. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.js +1 -1
  59. package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.js +1 -1
  60. package/dist/components/ContactList/ContactSearch/ContactSearch.js +6 -6
  61. package/dist/components/ConversationList/ConversationActions/ConversationActions.js +49 -51
  62. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +9 -9
  63. package/dist/components/ConversationList/ConversationList.js +4 -4
  64. package/dist/components/ConversationList/ConversationList.vue.d.ts +200 -200
  65. package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +92 -92
  66. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +31 -29
  67. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +20 -20
  68. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +18 -18
  69. package/dist/components/ConversationList/ConversationPreview/index.js +1 -1
  70. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.vue.d.ts +36 -36
  71. package/dist/components/ConversationList/index.d.ts +470 -470
  72. package/dist/components/FreeBeautyPanel/FreeBeautyPanel.js +257 -0
  73. package/dist/components/FreeBeautyPanel/FreeBeautyPanel.vue.d.ts +6 -0
  74. package/dist/components/FreeBeautyPanel/i18n/en-US/index.d.ts +15 -0
  75. package/dist/components/FreeBeautyPanel/i18n/en-US/index.js +19 -0
  76. package/dist/components/FreeBeautyPanel/i18n/index.d.ts +4 -0
  77. package/dist/components/FreeBeautyPanel/i18n/index.js +6 -0
  78. package/dist/components/FreeBeautyPanel/i18n/zh-CN/index.d.ts +15 -0
  79. package/dist/components/FreeBeautyPanel/i18n/zh-CN/index.js +19 -0
  80. package/dist/components/FreeBeautyPanel/index.d.ts +6 -0
  81. package/dist/components/FreeBeautyPanel/index.js +10 -0
  82. package/dist/components/LiveMonitorView/LiveMonitorView.js +11 -11
  83. package/dist/components/LiveScenePanel/index.d.ts +1 -2
  84. package/dist/components/LiveScenePanel/index.js +44 -43
  85. package/dist/components/LiveView/DefaultStreamViewUI.js +10 -10
  86. package/dist/components/LiveView/PlayerControl/AudioControl.js +97 -93
  87. package/dist/components/LiveView/PlayerControl/AudioControl.vue.d.ts +10 -6
  88. package/dist/components/LiveView/PlayerControl/MultiResolution.js +58 -64
  89. package/dist/components/LiveView/PlayerControl/MultiResolution.vue.d.ts +1 -7
  90. package/dist/components/LiveView/PlayerControl/PlayerControl.js +82 -83
  91. package/dist/components/LiveView/PlayerControl/PlayerControlState.d.ts +6 -6
  92. package/dist/components/LiveView/PlayerControl/PlayerControlState.js +153 -194
  93. package/dist/components/LiveView/index.d.ts +37 -2
  94. package/dist/components/LiveView/index.js +29 -29
  95. package/dist/components/MessageInput/AudioCallPicker/AudioCallPicker.js +63 -65
  96. package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +88 -84
  97. package/dist/components/MessageInput/MessageInput.js +1 -1
  98. package/dist/components/MessageInput/MessageInput.vue.d.ts +6 -3
  99. package/dist/components/MessageInput/TextEditor/EditorCore.d.ts +3 -1
  100. package/dist/components/MessageInput/TextEditor/EditorCore.js +51 -63
  101. package/dist/components/MessageInput/TextEditor/TextEditor.vue.d.ts +7 -3
  102. package/dist/components/MessageInput/TextEditor/extensions/characterCountExtension.d.ts +19 -0
  103. package/dist/components/MessageInput/TextEditor/extensions/characterCountExtension.js +74 -0
  104. package/dist/components/MessageInput/TextEditor/extensions/imageExtension.d.ts +2 -0
  105. package/dist/components/MessageInput/TextEditor/extensions/imageExtension.js +62 -0
  106. package/dist/components/MessageInput/TextEditor/index.js +45 -35
  107. package/dist/components/MessageInput/VideoCallPicker/VideoCallPicker.js +67 -69
  108. package/dist/components/MessageInput/i18n/index.d.ts +4 -0
  109. package/dist/components/MessageInput/i18n/zh-CN.d.ts +4 -0
  110. package/dist/components/MessageInput/i18n/zh-CN.js +5 -1
  111. package/dist/components/MessageInput/index.d.ts +60 -30
  112. package/dist/components/MessageInput/index.js +1 -1
  113. package/dist/components/MessageList/Message/AudioMessage/WaveForm.js +24 -34
  114. package/dist/components/MessageList/Message/CustomMessage/CallMessage/CallMessage.js +29 -28
  115. package/dist/components/MessageList/Message/GroupTipMessage/index.js +13 -13
  116. package/dist/components/MessageList/Message/Message.vue.d.ts +1 -1
  117. package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +63 -69
  118. package/dist/components/MessageList/Message/VideoMessage/VideoMessage.js +48 -53
  119. package/dist/components/MessageList/Message/VideoMessage/VideoMessage.vue.d.ts +8 -8
  120. package/dist/components/MessageList/MessageList.js +8 -6
  121. package/dist/components/MessageList/i18n/en-US.d.ts +65 -1
  122. package/dist/components/MessageList/i18n/en-US.js +66 -2
  123. package/dist/components/MessageList/i18n/index.d.ts +128 -0
  124. package/dist/components/MessageList/i18n/index.js +6 -6
  125. package/dist/components/MessageList/i18n/zh-CN.d.ts +65 -1
  126. package/dist/components/MessageList/i18n/zh-CN.js +64 -0
  127. package/dist/components/MessageList/index.d.ts +2 -2
  128. package/dist/components/MicButton/index.js +13 -13
  129. package/dist/components/RoomParticipantList/ParticipantAction.js +78 -0
  130. package/dist/components/RoomParticipantList/ParticipantAction.vue.d.ts +17 -0
  131. package/dist/components/RoomParticipantList/ParticipantItem.js +82 -0
  132. package/dist/components/RoomParticipantList/ParticipantItem.vue.d.ts +27 -0
  133. package/dist/components/RoomParticipantList/PendingParticipantItem.js +75 -0
  134. package/dist/components/RoomParticipantList/PendingParticipantItem.vue.d.ts +16 -0
  135. package/dist/components/RoomParticipantList/RoomAction.js +89 -0
  136. package/dist/components/RoomParticipantList/RoomAction.vue.d.ts +2 -0
  137. package/dist/components/RoomParticipantList/i18n/en-US/index.d.ts +66 -0
  138. package/dist/components/RoomParticipantList/i18n/en-US/index.js +69 -0
  139. package/dist/components/RoomParticipantList/i18n/index.d.ts +2 -0
  140. package/dist/components/RoomParticipantList/i18n/index.js +6 -0
  141. package/dist/components/RoomParticipantList/i18n/zh-CN/index.d.ts +66 -0
  142. package/dist/components/RoomParticipantList/i18n/zh-CN/index.js +69 -0
  143. package/dist/components/RoomParticipantList/index.d.ts +2 -0
  144. package/dist/components/RoomParticipantList/index.js +171 -0
  145. package/dist/components/RoomParticipantList/index.vue.d.ts +2 -0
  146. package/dist/components/RoomParticipantList/useParticpantAction/index.d.ts +15 -0
  147. package/dist/components/RoomParticipantList/useParticpantAction/index.js +71 -0
  148. package/dist/components/RoomParticipantList/useParticpantAction/useAdminAction.d.ts +19 -0
  149. package/dist/components/RoomParticipantList/useParticpantAction/useAdminAction.js +36 -0
  150. package/dist/components/RoomParticipantList/useParticpantAction/useAudioAction.d.ts +19 -0
  151. package/dist/components/RoomParticipantList/useParticpantAction/useAudioAction.js +42 -0
  152. package/dist/components/RoomParticipantList/useParticpantAction/useKickAction.d.ts +11 -0
  153. package/dist/components/RoomParticipantList/useParticpantAction/useKickAction.js +34 -0
  154. package/dist/components/RoomParticipantList/useParticpantAction/useMessageAction.d.ts +11 -0
  155. package/dist/components/RoomParticipantList/useParticpantAction/useMessageAction.js +31 -0
  156. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/changeNameCardDialog.js +4 -0
  157. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/changeNameCardDialog.vue.d.ts +17 -0
  158. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/index.d.ts +11 -0
  159. package/dist/components/RoomParticipantList/useParticpantAction/useNameCardAction/index.js +61 -0
  160. package/dist/components/RoomParticipantList/useParticpantAction/useTransferOwnerAction.d.ts +11 -0
  161. package/dist/components/RoomParticipantList/useParticpantAction/useTransferOwnerAction.js +54 -0
  162. package/dist/components/RoomParticipantList/useParticpantAction/useVideoAction.d.ts +19 -0
  163. package/dist/components/RoomParticipantList/useParticpantAction/useVideoAction.js +40 -0
  164. package/dist/components/RoomParticipantList/useRoomAction/index.d.ts +8 -0
  165. package/dist/components/RoomParticipantList/useRoomAction/index.js +20 -0
  166. package/dist/components/RoomParticipantList/useRoomAction/useRoomAudioAction.d.ts +5 -0
  167. package/dist/components/RoomParticipantList/useRoomAction/useRoomAudioAction.js +51 -0
  168. package/dist/components/RoomParticipantList/useRoomAction/useRoomScreenAction.d.ts +8 -0
  169. package/dist/components/RoomParticipantList/useRoomAction/useRoomScreenAction.js +60 -0
  170. package/dist/components/RoomParticipantList/useRoomAction/useRoomVideoAction.d.ts +5 -0
  171. package/dist/components/RoomParticipantList/useRoomAction/useRoomVideoAction.js +50 -0
  172. package/dist/components/RoomParticipantView/StreamPlay.js +74 -0
  173. package/dist/components/RoomParticipantView/StreamPlay.vue.d.ts +66 -0
  174. package/dist/components/RoomParticipantView/StreamPlayManager/LazyLoadManager.d.ts +56 -0
  175. package/dist/components/RoomParticipantView/StreamPlayManager/LazyLoadManager.js +94 -0
  176. package/dist/components/RoomParticipantView/StreamPlayManager/StreamInfoManager.d.ts +58 -0
  177. package/dist/components/RoomParticipantView/StreamPlayManager/StreamInfoManager.js +97 -0
  178. package/dist/components/RoomParticipantView/StreamPlayManager/StreamPlayer.d.ts +46 -0
  179. package/dist/components/RoomParticipantView/StreamPlayManager/StreamPlayer.js +100 -0
  180. package/dist/components/RoomParticipantView/StreamPlayManager/VideoQualityManager.d.ts +92 -0
  181. package/dist/components/RoomParticipantView/StreamPlayManager/VideoQualityManager.js +177 -0
  182. package/dist/components/RoomParticipantView/StreamPlayManager/index.d.ts +119 -0
  183. package/dist/components/RoomParticipantView/StreamPlayManager/index.js +298 -0
  184. package/dist/components/RoomParticipantView/StreamPlayManager/types.d.ts +14 -0
  185. package/dist/components/RoomParticipantView/StreamPlayManager/types.js +4 -0
  186. package/dist/components/RoomParticipantView/index.d.ts +99 -0
  187. package/dist/components/RoomParticipantView/index.js +32 -0
  188. package/dist/components/RoomParticipantView/index.vue.d.ts +34 -0
  189. package/dist/components/RoomView/ArrowStroke.js +43 -0
  190. package/dist/components/RoomView/ArrowStroke.vue.d.ts +20 -0
  191. package/dist/components/RoomView/GridLayout.js +119 -0
  192. package/dist/components/RoomView/GridLayout.vue.d.ts +20 -0
  193. package/dist/components/RoomView/SpeakerLayout.js +141 -0
  194. package/dist/components/RoomView/SpeakerLayout.vue.d.ts +32 -0
  195. package/dist/components/RoomView/index.d.ts +52 -0
  196. package/dist/components/RoomView/index.js +49 -0
  197. package/dist/components/RoomView/index.vue.d.ts +46 -0
  198. package/dist/components/RoomView/useRoomToolbar.d.ts +5 -0
  199. package/dist/components/RoomView/useRoomToolbar.js +36 -0
  200. package/dist/components/RoomView/useRoomView.d.ts +13 -0
  201. package/dist/components/RoomView/useRoomView.js +40 -0
  202. package/dist/components/RoomView/useStreamItemDimensions.d.ts +30 -0
  203. package/dist/components/RoomView/useStreamItemDimensions.js +57 -0
  204. package/dist/components/ScheduleRoomPanel/Datepicker.js +162 -0
  205. package/dist/components/ScheduleRoomPanel/Datepicker.vue.d.ts +18 -0
  206. package/dist/components/ScheduleRoomPanel/DurationSelector.js +4 -0
  207. package/dist/components/ScheduleRoomPanel/DurationSelector.vue.d.ts +39 -0
  208. package/dist/components/ScheduleRoomPanel/RoomDetail.js +113 -0
  209. package/dist/components/ScheduleRoomPanel/RoomDetail.vue.d.ts +31 -0
  210. package/dist/components/ScheduleRoomPanel/RoomEdit.js +281 -0
  211. package/dist/components/ScheduleRoomPanel/RoomEdit.vue.d.ts +23 -0
  212. package/dist/components/ScheduleRoomPanel/RoomShare.js +110 -0
  213. package/dist/components/ScheduleRoomPanel/RoomShare.vue.d.ts +16 -0
  214. package/dist/components/ScheduleRoomPanel/ScheduleRoomPanel.js +385 -0
  215. package/dist/components/ScheduleRoomPanel/ScheduleRoomPanel.vue.d.ts +40 -0
  216. package/dist/components/ScheduleRoomPanel/ScheduledRoomList.js +345 -0
  217. package/dist/components/ScheduleRoomPanel/ScheduledRoomList.vue.d.ts +8 -0
  218. package/dist/components/ScheduleRoomPanel/Timepicker.js +65 -0
  219. package/dist/components/ScheduleRoomPanel/Timepicker.vue.d.ts +18 -0
  220. package/dist/components/ScheduleRoomPanel/TimezoneSelector.js +4 -0
  221. package/dist/components/ScheduleRoomPanel/TimezoneSelector.vue.d.ts +18 -0
  222. package/dist/components/ScheduleRoomPanel/i18n/en-US/index.d.ts +108 -0
  223. package/dist/components/ScheduleRoomPanel/i18n/en-US/index.js +111 -0
  224. package/dist/components/ScheduleRoomPanel/i18n/index.d.ts +4 -0
  225. package/dist/components/ScheduleRoomPanel/i18n/index.js +6 -0
  226. package/dist/components/ScheduleRoomPanel/i18n/zh-CN/index.d.ts +108 -0
  227. package/dist/components/ScheduleRoomPanel/i18n/zh-CN/index.js +111 -0
  228. package/dist/components/ScheduleRoomPanel/index.d.ts +34 -0
  229. package/dist/components/ScheduleRoomPanel/index.js +12 -0
  230. package/dist/components/ScheduleRoomPanel/type.d.ts +7 -0
  231. package/dist/components/ScheduleRoomPanel/type.js +1 -0
  232. package/dist/components/ScheduleRoomPanel/utils.d.ts +46 -0
  233. package/dist/components/ScheduleRoomPanel/utils.js +123 -0
  234. package/dist/components/Search/Search.vue.d.ts +12 -12
  235. package/dist/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.js +172 -174
  236. package/dist/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.js +58 -60
  237. package/dist/components/Search/SearchAdvanced/SearchAdvanced.js +28 -30
  238. package/dist/components/Search/SearchAdvanced/SearchTab/SearchTab.js +22 -24
  239. package/dist/components/Search/SearchAdvanced/Slider/Slider.js +26 -28
  240. package/dist/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.js +133 -135
  241. package/dist/components/Search/SearchBar/SearchBar.js +56 -58
  242. package/dist/components/Search/index.d.ts +18 -18
  243. package/dist/components/StreamMixer/LocalMixer/index.js +25 -22
  244. package/dist/components/StreamMixer/index.d.ts +1 -2
  245. package/dist/components/StreamMixer/index.js +9 -8
  246. package/dist/components/StreamView/Layout/CustomLayout.js +53 -53
  247. package/dist/components/StreamView/Layout/CustomLayout.vue.d.ts +1 -2
  248. package/dist/components/StreamView/Layout/FloatLayout.vue.d.ts +1 -2
  249. package/dist/components/StreamView/Layout/GridLayout.js +47 -51
  250. package/dist/components/StreamView/Layout/GridLayout.vue.d.ts +1 -2
  251. package/dist/components/StreamView/Layout/MeetingLayout.js +10 -10
  252. package/dist/components/StreamView/Layout/MeetingLayout.vue.d.ts +1 -1
  253. package/dist/components/StreamView/common/StreamList/index.vue.d.ts +1 -1
  254. package/dist/components/StreamView/common/StreamRegion/StreamRegionPC.vue.d.ts +2 -2
  255. package/dist/components/StreamView/index.d.ts +90 -3
  256. package/dist/components/StreamView/index.js +4 -4
  257. package/dist/components/StreamView/index.vue.d.ts +1 -1
  258. package/dist/components/StreamView/manager/mediaManager.js +9 -9
  259. package/dist/components/UIKitModal/UIKitModal.d.ts +7 -0
  260. package/dist/components/UIKitModal/UIKitModal.js +156 -0
  261. package/dist/components/UIKitModal/index.d.ts +2 -0
  262. package/dist/components/UIKitModal/index.js +6 -0
  263. package/dist/components/UIKitModal/index.vue.d.ts +45 -0
  264. package/dist/components/UIKitModal/type.d.ts +21 -0
  265. package/dist/components/UIKitModal/type.js +1 -0
  266. package/dist/components/UIKitModal/useRoomModal/i18n/en-US/index.d.ts +17 -0
  267. package/dist/components/UIKitModal/useRoomModal/i18n/en-US/index.js +21 -0
  268. package/dist/components/UIKitModal/useRoomModal/i18n/index.d.ts +4 -0
  269. package/dist/components/UIKitModal/useRoomModal/i18n/index.js +6 -0
  270. package/dist/components/UIKitModal/useRoomModal/i18n/zh-CN/index.d.ts +17 -0
  271. package/dist/components/UIKitModal/useRoomModal/i18n/zh-CN/index.js +21 -0
  272. package/dist/components/UIKitModal/useRoomModal/index.d.ts +6 -0
  273. package/dist/components/UIKitModal/useRoomModal/index.js +11 -0
  274. package/dist/components/UIKitModal/useRoomModal/useRoomModal.d.ts +21 -0
  275. package/dist/components/UIKitModal/useRoomModal/useRoomModal.js +79 -0
  276. package/dist/components/UserList/AllUserActions/indexH5.js +21 -21
  277. package/dist/components/UserList/AllUserActions/useIndexHooks.d.ts +0 -2
  278. package/dist/components/UserList/AllUserActions/useIndexHooks.js +24 -25
  279. package/dist/components/UserList/UserItem/UserInfo/index.js +19 -19
  280. package/dist/components/UserPicker/UserPicker.js +1 -2
  281. package/dist/components/UserPicker/components/SelectedPanel/SelectedPanel.js +19 -18
  282. package/dist/components/UserPicker/hooks/useSearchFilter.d.ts +2 -2
  283. package/dist/components/UserPicker/hooks/useSearchFilter.js +39 -31
  284. package/dist/components/UserPicker/i18n/en-US.d.ts +1 -0
  285. package/dist/components/UserPicker/i18n/en-US.js +2 -1
  286. package/dist/components/UserPicker/i18n/index.d.ts +2 -0
  287. package/dist/components/UserPicker/i18n/zh-CN.d.ts +1 -0
  288. package/dist/components/UserPicker/i18n/zh-CN.js +2 -1
  289. package/dist/components/UserPicker/index.d.ts +2 -2
  290. package/dist/components/UserPicker/type.d.ts +1 -1
  291. package/dist/components/VideoSetting/CameraSelect.js +6 -7
  292. package/dist/components/VideoSetting/VideoMediaControl.js +45 -44
  293. package/dist/components/VideoSetting/VideoPreview.js +24 -25
  294. package/dist/components/VideoSetting/VideoProfile.js +22 -23
  295. package/dist/components/VideoSetting/VideoSettingTab.js +24 -24
  296. package/dist/components/VideoSetting/index.js +32 -3
  297. package/dist/components/VideoSettingPanel/CameraSelect.js +28 -25
  298. package/dist/components/VideoSettingPanel/VideoPreview.js +13 -13
  299. package/dist/components/VideoSettingPanel/VideoProfile.js +27 -27
  300. package/dist/components/VideoSettingPanel/i18n/en-US/index.d.ts +13 -10
  301. package/dist/components/VideoSettingPanel/i18n/en-US/index.js +13 -10
  302. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.d.ts +13 -10
  303. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.js +13 -10
  304. package/dist/components/VideoSettingPanel/index.d.ts +9 -0
  305. package/dist/components/VideoSettingPanel/index.js +56 -44
  306. package/dist/components/VideoSettingPanel/index.vue.d.ts +9 -0
  307. package/dist/components/VirtualBackgroundPanel/VirtualBackgroundPanel.js +169 -0
  308. package/dist/components/VirtualBackgroundPanel/VirtualBackgroundPanel.vue.d.ts +33 -0
  309. package/dist/components/VirtualBackgroundPanel/i18n/en-US/index.d.ts +10 -0
  310. package/dist/components/VirtualBackgroundPanel/i18n/en-US/index.js +14 -0
  311. package/dist/components/VirtualBackgroundPanel/i18n/index.d.ts +4 -0
  312. package/dist/components/VirtualBackgroundPanel/i18n/index.js +6 -0
  313. package/dist/components/VirtualBackgroundPanel/i18n/zh-CN/index.d.ts +10 -0
  314. package/dist/components/VirtualBackgroundPanel/i18n/zh-CN/index.js +14 -0
  315. package/dist/components/VirtualBackgroundPanel/index.d.ts +20 -0
  316. package/dist/components/VirtualBackgroundPanel/index.js +10 -0
  317. package/dist/hooks/useAudioControl.d.ts +3 -3
  318. package/dist/hooks/useAudioControl.js +32 -30
  319. package/dist/hooks/useRoomActions/index.d.ts +1 -1
  320. package/dist/hooks/useRoomActions/index.js +10 -11
  321. package/dist/hooks/useRoomActions/useRoomAudioAction.d.ts +1 -3
  322. package/dist/hooks/useRoomActions/useRoomAudioAction.js +30 -31
  323. package/dist/hooks/useRoomActions/useRoomScreenAction.d.ts +0 -2
  324. package/dist/hooks/useRoomActions/useRoomScreenAction.js +20 -20
  325. package/dist/hooks/useRoomActions/useRoomVideoAction.d.ts +1 -8
  326. package/dist/hooks/useRoomActions/useRoomVideoAction.js +26 -28
  327. package/dist/hooks/useRoomEngine.d.ts +2 -2
  328. package/dist/hooks/useUserActions/index.d.ts +7 -23
  329. package/dist/hooks/useUserActions/index.js +11 -11
  330. package/dist/hooks/useUserActions/useChangeNameCardAction/index.d.ts +1 -9
  331. package/dist/hooks/useUserActions/useKickUserAction.d.ts +1 -9
  332. package/dist/hooks/useUserActions/useSeatAction.d.ts +1 -1
  333. package/dist/hooks/useUserActions/useSeatAction.js +3 -3
  334. package/dist/hooks/useUserActions/useTransferOwnerAction.d.ts +2 -10
  335. package/dist/hooks/useUserActions/useTransferOwnerAction.js +22 -20
  336. package/dist/hooks/useUserActions/useVideoAction.d.ts +1 -9
  337. package/dist/index-7vNB_Vx8.js +64 -0
  338. package/dist/{index-BfIEeWMg.js → index-Do-2CngU.js} +1894 -1759
  339. package/dist/{index-DTi1fL-x.js → index-ZILx4LYk.js} +1210 -1512
  340. package/dist/index.d.ts +3 -6
  341. package/dist/index.js +255 -194
  342. package/dist/report/MetricsKey.d.ts +27 -14
  343. package/dist/report/MetricsKey.js +1 -1
  344. package/dist/report/dataReport.js +12 -8
  345. package/dist/states/ASRState/ASRState.d.ts +61 -0
  346. package/dist/states/ASRState/ASRState.js +79 -0
  347. package/dist/states/ASRState/index.d.ts +1 -0
  348. package/dist/states/ASRState/index.js +4 -0
  349. package/dist/states/BarrageState/BarrageState.d.ts +70 -44
  350. package/dist/states/BarrageState/BarrageState.js +29 -31
  351. package/dist/states/BarrageState/index.js +2 -3
  352. package/dist/states/BattleState/BattleState.d.ts +101 -5
  353. package/dist/states/C2CSettingState/C2CSettingState.d.ts +107 -0
  354. package/dist/states/CoGuestState.d.ts +53 -1
  355. package/dist/states/CoGuestState.js +15 -15
  356. package/dist/states/CoHostState/CoHostState.d.ts +120 -0
  357. package/dist/states/ContactListState/ContactListState.d.ts +56 -0
  358. package/dist/states/ConversationListState/ConversationListState.d.ts +36 -0
  359. package/dist/states/DeviceState/DeviceState.d.ts +68 -10
  360. package/dist/states/DeviceState/DeviceState.js +233 -189
  361. package/dist/states/DeviceState/mediaAbality.d.ts +2 -0
  362. package/dist/states/DeviceState/mediaAbality.js +11 -0
  363. package/dist/states/FreeBeautyState/FreeBeautyState.d.ts +11 -0
  364. package/dist/states/FreeBeautyState/FreeBeautyState.js +103 -0
  365. package/dist/states/FreeBeautyState/index.d.ts +1 -0
  366. package/dist/states/FreeBeautyState/index.js +4 -0
  367. package/dist/states/GroupSettingState/GroupSettingState.d.ts +59 -0
  368. package/dist/states/LiveAudienceState.d.ts +42 -4
  369. package/dist/states/LiveListState/LiveListState.d.ts +2 -2
  370. package/dist/states/LiveListState/LiveListState.js +5 -5
  371. package/dist/states/LiveMonitorState/index.d.ts +42 -0
  372. package/dist/states/LiveMonitorState/player/adapters/trtc.js +6 -6
  373. package/dist/states/LiveSeatState/index.d.ts +58 -8
  374. package/dist/states/LiveSeatState/index.js +20 -18
  375. package/dist/states/LiveSeatState/seatManager.d.ts +293 -6
  376. package/dist/states/LiveSeatState/seatManager.js +283 -0
  377. package/dist/states/LiveSeatState/store.d.ts +0 -2
  378. package/dist/states/LiveSeatState/usePlayStream/RTCStreamManager.js +13 -13
  379. package/dist/states/LiveSeatState/usePlayStream/RTCStreamPlayer.js +7 -7
  380. package/dist/states/LiveSeatState/usePlayStream/index.d.ts +4 -7
  381. package/dist/states/LiveSeatState/usePlayStream/index.js +65 -54
  382. package/dist/states/LoginState.d.ts +68 -0
  383. package/dist/states/LoginState.js +34 -39
  384. package/dist/states/MessageActionState/MessageActionState.d.ts +36 -2
  385. package/dist/states/MessageActionState/MessageActionState.js +142 -22
  386. package/dist/states/MessageInputState/MessageInputState.d.ts +41 -7
  387. package/dist/states/MessageInputState/MessageInputState.js +60 -59
  388. package/dist/states/MessageInputState/utils.d.ts +8 -1
  389. package/dist/states/MessageInputState/utils.js +30 -10
  390. package/dist/states/MessageListState/MessageListState.d.ts +39 -0
  391. package/dist/states/RoomParticipantState/callEventManager.d.ts +10 -0
  392. package/dist/states/RoomParticipantState/callEventManager.js +49 -0
  393. package/dist/states/RoomParticipantState/common.d.ts +14 -0
  394. package/dist/states/RoomParticipantState/common.js +76 -0
  395. package/dist/states/RoomParticipantState/index.d.ts +4 -0
  396. package/dist/states/RoomParticipantState/index.js +93 -0
  397. package/dist/states/RoomParticipantState/participantEventManager.d.ts +66 -0
  398. package/dist/states/RoomParticipantState/participantEventManager.js +326 -0
  399. package/dist/states/RoomParticipantState/participantManager.d.ts +311 -0
  400. package/dist/states/RoomParticipantState/participantManager.js +440 -0
  401. package/dist/states/RoomParticipantState/scheduleEventManager.d.ts +7 -0
  402. package/dist/states/RoomParticipantState/scheduleEventManager.js +37 -0
  403. package/dist/states/RoomParticipantState/store.d.ts +38 -0
  404. package/dist/states/RoomParticipantState/store.js +102 -0
  405. package/dist/states/RoomState/callManager.d.ts +43 -0
  406. package/dist/states/RoomState/callManager.js +208 -0
  407. package/dist/states/RoomState/common.d.ts +25 -0
  408. package/dist/states/RoomState/common.js +101 -0
  409. package/dist/states/RoomState/index.d.ts +8 -0
  410. package/dist/states/RoomState/index.js +52 -0
  411. package/dist/states/RoomState/roomManager.d.ts +35 -0
  412. package/dist/states/RoomState/roomManager.js +129 -0
  413. package/dist/states/RoomState/scheduleManager.d.ts +48 -0
  414. package/dist/states/RoomState/scheduleManager.js +174 -0
  415. package/dist/states/RoomState/store.d.ts +103 -0
  416. package/dist/states/RoomState/store.js +12 -0
  417. package/dist/states/SearchState.d.ts +47 -0
  418. package/dist/states/SeatStore.d.ts +59 -52
  419. package/dist/states/UIKitModalState/UIKitModalState.d.ts +17 -0
  420. package/dist/states/UIKitModalState/UIKitModalState.js +63 -0
  421. package/dist/states/UIKitModalState/index.d.ts +1 -0
  422. package/dist/states/UIKitModalState/index.js +4 -0
  423. package/dist/states/UserState/index.js +22 -28
  424. package/dist/states/UserState/store.d.ts +1 -1
  425. package/dist/states/UserState/store.js +55 -62
  426. package/dist/states/UserState/userManager.d.ts +2 -2
  427. package/dist/states/UserState/userManager.js +23 -25
  428. package/dist/states/VideoMixerState/VideoMixerState.d.ts +57 -1
  429. package/dist/states/VideoMixerState/VideoMixerState.js +91 -90
  430. package/dist/states/VideoMixerState/index.d.ts +1 -0
  431. package/dist/states/VideoMixerState/index.js +2 -1
  432. package/dist/states/VirtualBackgroundState/VirtualBackgroundState.d.ts +52 -0
  433. package/dist/states/VirtualBackgroundState/VirtualBackgroundState.js +99 -0
  434. package/dist/states/VirtualBackgroundState/index.d.ts +1 -0
  435. package/dist/states/VirtualBackgroundState/index.js +4 -0
  436. package/dist/styles/index.css +1 -1
  437. package/dist/subEntry/common/base.d.ts +5 -0
  438. package/dist/subEntry/common/base.js +21 -0
  439. package/dist/subEntry/common/index.d.ts +2 -0
  440. package/dist/subEntry/common/index.js +29 -0
  441. package/dist/subEntry/common/rtc.d.ts +4 -0
  442. package/dist/subEntry/common/rtc.js +10 -0
  443. package/dist/subEntry/live/index.d.ts +4 -0
  444. package/dist/subEntry/live/index.js +200 -0
  445. package/dist/subEntry/live/live.d.ts +21 -0
  446. package/dist/subEntry/live/live.js +45 -0
  447. package/dist/{rtc → subEntry/live}/server.d.ts +1 -1
  448. package/dist/subEntry/live/server.js +97 -0
  449. package/dist/subEntry/room/index.d.ts +4 -0
  450. package/dist/subEntry/room/index.js +180 -0
  451. package/dist/subEntry/room/room.d.ts +11 -0
  452. package/dist/subEntry/room/room.js +25 -0
  453. package/dist/subEntry/room/server.d.ts +19 -0
  454. package/dist/subEntry/room/server.js +97 -0
  455. package/dist/types/asr.d.ts +29 -0
  456. package/dist/types/asr.js +4 -0
  457. package/dist/types/barrage.d.ts +83 -0
  458. package/dist/types/barrage.js +4 -0
  459. package/dist/types/beauty.d.ts +9 -0
  460. package/dist/types/beauty.js +4 -0
  461. package/dist/types/device.d.ts +0 -1
  462. package/dist/types/index.d.ts +7 -3
  463. package/dist/types/index.js +125 -108
  464. package/dist/types/participant.d.ts +243 -0
  465. package/dist/types/participant.js +10 -0
  466. package/dist/types/room.d.ts +202 -55
  467. package/dist/types/room.js +5 -3
  468. package/dist/types/virtualBackground.d.ts +14 -0
  469. package/dist/types/virtualBackground.js +5 -0
  470. package/dist/utils/call.d.ts +1 -1
  471. package/dist/utils/call.js +78 -79
  472. package/dist/utils/compare.d.ts +10 -0
  473. package/dist/utils/compare.js +12 -0
  474. package/package.json +11 -7
  475. package/src/baseComp/AudioIcon.vue +11 -3
  476. package/src/chat/server.ts +0 -1
  477. package/src/components/AudioSetting/AudioMediaControl.vue +10 -9
  478. package/src/components/AudioSetting/AudioRequestDialog.vue +11 -11
  479. package/src/components/AudioSetting/AudioSettingTab.vue +14 -14
  480. package/src/components/AudioSetting/MicrophoneSelect.vue +11 -11
  481. package/src/components/AudioSetting/SpeakerSelect.vue +10 -11
  482. package/src/components/AudioSetting/index.ts +1 -1
  483. package/src/components/AudioSetting/index.vue +4 -7
  484. package/src/components/AudioSettingPanel/MicrophoneSelect.vue +77 -0
  485. package/src/components/AudioSettingPanel/SpeakerSelect.vue +78 -0
  486. package/src/components/AudioSettingPanel/i18n/en-US/index.ts +12 -6
  487. package/src/components/AudioSettingPanel/i18n/zh-CN/index.ts +12 -6
  488. package/src/components/AudioSettingPanel/index.ts +3 -1
  489. package/src/components/AudioSettingPanel/index.vue +150 -122
  490. package/src/components/BarrageList/BarrageList.vue +1 -1
  491. package/src/components/BarrageList/BarrageListH5.vue +1 -1
  492. package/src/components/BarrageList/BarrageListState.ts +1 -1
  493. package/src/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue +1 -1
  494. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +2 -2
  495. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +1 -1
  496. package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +5 -0
  497. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue +1 -1
  498. package/src/components/ContactList/ContactInfo/ContactInfo.vue +1 -1
  499. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue +1 -1
  500. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue +1 -1
  501. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue +1 -1
  502. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +1 -1
  503. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue +1 -1
  504. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue +1 -1
  505. package/src/components/ContactList/ContactList.vue +1 -1
  506. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue +1 -1
  507. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue +1 -1
  508. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.vue +1 -1
  509. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue +1 -1
  510. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.vue +1 -1
  511. package/src/components/ContactList/ContactSearch/ContactSearch.vue +1 -1
  512. package/src/components/ConversationList/ConversationActions/ConversationActions.vue +2 -8
  513. package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +2 -2
  514. package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue +1 -1
  515. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue +1 -1
  516. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +1 -1
  517. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue +1 -1
  518. package/src/components/ConversationList/ConversationList.vue +2 -2
  519. package/src/components/ConversationList/ConversationListContent/ConversationListContent.vue +1 -1
  520. package/src/components/ConversationList/ConversationListHeader/ConversationListHeader.vue +1 -1
  521. package/src/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.vue +1 -1
  522. package/src/components/ConversationList/ConversationPreview/ConversationPreview.vue +1 -1
  523. package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +1 -1
  524. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.vue +4 -4
  525. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue +1 -1
  526. package/src/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue +3 -3
  527. package/src/components/ConversationList/ConversationPreview/ConversationPreviewUnread.vue +1 -1
  528. package/src/components/ConversationList/ConversationSearch/ConversationSearch.vue +1 -1
  529. package/src/components/FreeBeautyPanel/FreeBeautyPanel.vue +618 -0
  530. package/src/components/FreeBeautyPanel/i18n/en-US/index.ts +16 -0
  531. package/src/components/FreeBeautyPanel/i18n/index.ts +4 -0
  532. package/src/components/FreeBeautyPanel/i18n/zh-CN/index.ts +16 -0
  533. package/src/components/FreeBeautyPanel/index.ts +11 -0
  534. package/src/components/LiveScenePanel/index.ts +4 -1
  535. package/src/components/LiveView/PlayerControl/AudioControl.vue +72 -80
  536. package/src/components/LiveView/PlayerControl/MultiResolution.vue +29 -26
  537. package/src/components/LiveView/PlayerControl/PlayerControl.vue +10 -36
  538. package/src/components/LiveView/PlayerControl/PlayerControlState.ts +108 -286
  539. package/src/components/LiveView/index.ts +2 -1
  540. package/src/components/MessageInput/AudioCallPicker/AudioCallPicker.vue +8 -6
  541. package/src/components/MessageInput/EmojiPicker/EmojiPicker.vue +7 -3
  542. package/src/components/MessageInput/MessageInput.module.scss +1 -0
  543. package/src/components/MessageInput/MessageInput.vue +3 -1
  544. package/src/components/MessageInput/TextEditor/EditorCore.ts +17 -28
  545. package/src/components/MessageInput/TextEditor/TextEditor.vue +24 -4
  546. package/src/components/MessageInput/TextEditor/extensions/characterCountExtension.ts +159 -0
  547. package/src/components/MessageInput/TextEditor/extensions/imageExtension.ts +79 -0
  548. package/src/components/MessageInput/VideoCallPicker/VideoCallPicker.vue +8 -6
  549. package/src/components/MessageInput/i18n/zh-CN.ts +4 -0
  550. package/src/components/MessageInput/types.d.ts +1 -0
  551. package/src/components/MessageList/Message/AudioMessage/WaveForm.vue +20 -37
  552. package/src/components/MessageList/Message/CustomMessage/CallMessage/CallMessage.vue +5 -3
  553. package/src/components/MessageList/Message/GroupTipMessage/GroupTipMessage.vue +5 -4
  554. package/src/components/MessageList/Message/Message.vue +1 -1
  555. package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +8 -8
  556. package/src/components/MessageList/Message/VideoMessage/VideoMessage.vue +46 -43
  557. package/src/components/MessageList/Message/VideoMessage/index.ts +1 -1
  558. package/src/components/MessageList/MessageList.vue +2 -0
  559. package/src/components/MessageList/i18n/en-US.ts +66 -0
  560. package/src/components/MessageList/i18n/index.ts +4 -4
  561. package/src/components/MessageList/i18n/zh-CN.ts +66 -0
  562. package/src/components/RoomParticipantList/ParticipantAction.vue +196 -0
  563. package/src/components/RoomParticipantList/ParticipantItem.vue +205 -0
  564. package/src/components/RoomParticipantList/PendingParticipantItem.vue +142 -0
  565. package/src/components/RoomParticipantList/RoomAction.vue +141 -0
  566. package/src/components/RoomParticipantList/i18n/en-US/index.ts +74 -0
  567. package/src/components/RoomParticipantList/i18n/index.ts +2 -0
  568. package/src/components/RoomParticipantList/i18n/zh-CN/index.ts +74 -0
  569. package/src/components/RoomParticipantList/index.ts +10 -0
  570. package/src/components/RoomParticipantList/index.vue +285 -0
  571. package/src/components/RoomParticipantList/useParticpantAction/index.ts +94 -0
  572. package/src/components/RoomParticipantList/useParticpantAction/useAdminAction.ts +56 -0
  573. package/src/components/RoomParticipantList/useParticpantAction/useAudioAction.ts +66 -0
  574. package/src/components/RoomParticipantList/useParticpantAction/useKickAction.ts +46 -0
  575. package/src/components/RoomParticipantList/useParticpantAction/useMessageAction.ts +42 -0
  576. package/src/components/RoomParticipantList/useParticpantAction/useNameCardAction/changeNameCardDialog.vue +51 -0
  577. package/src/components/RoomParticipantList/useParticpantAction/useNameCardAction/index.ts +80 -0
  578. package/src/components/RoomParticipantList/useParticpantAction/useTransferOwnerAction.ts +77 -0
  579. package/src/components/RoomParticipantList/useParticpantAction/useVideoAction.ts +59 -0
  580. package/src/components/RoomParticipantList/useRoomAction/index.ts +23 -0
  581. package/src/components/RoomParticipantList/useRoomAction/useRoomAudioAction.ts +67 -0
  582. package/src/components/RoomParticipantList/useRoomAction/useRoomScreenAction.ts +69 -0
  583. package/src/components/RoomParticipantList/useRoomAction/useRoomVideoAction.ts +66 -0
  584. package/src/components/RoomParticipantView/StreamPlay.vue +127 -0
  585. package/src/components/RoomParticipantView/StreamPlayManager/LazyLoadManager.ts +174 -0
  586. package/src/components/RoomParticipantView/StreamPlayManager/README.md +768 -0
  587. package/src/components/RoomParticipantView/StreamPlayManager/StreamInfoManager.ts +209 -0
  588. package/src/components/RoomParticipantView/StreamPlayManager/StreamPlayer.ts +183 -0
  589. package/src/components/RoomParticipantView/StreamPlayManager/VideoQualityManager.ts +357 -0
  590. package/src/components/RoomParticipantView/StreamPlayManager/index.ts +501 -0
  591. package/src/components/RoomParticipantView/StreamPlayManager/types.ts +13 -0
  592. package/src/components/RoomParticipantView/index.ts +5 -0
  593. package/src/components/RoomParticipantView/index.vue +43 -0
  594. package/src/components/RoomView/ArrowStroke.vue +265 -0
  595. package/src/components/RoomView/GridLayout.vue +236 -0
  596. package/src/components/RoomView/SpeakerLayout.vue +400 -0
  597. package/src/components/RoomView/index.ts +5 -0
  598. package/src/components/RoomView/index.vue +58 -0
  599. package/src/components/RoomView/useRoomToolbar.ts +97 -0
  600. package/src/components/RoomView/useRoomView.ts +48 -0
  601. package/src/components/RoomView/useStreamItemDimensions.ts +162 -0
  602. package/src/components/ScheduleRoomPanel/Datepicker.vue +332 -0
  603. package/src/components/ScheduleRoomPanel/DurationSelector.vue +92 -0
  604. package/src/components/ScheduleRoomPanel/RoomDetail.vue +240 -0
  605. package/src/components/ScheduleRoomPanel/RoomEdit.vue +473 -0
  606. package/src/components/ScheduleRoomPanel/RoomShare.vue +216 -0
  607. package/src/components/ScheduleRoomPanel/ScheduleRoomPanel.vue +625 -0
  608. package/src/components/ScheduleRoomPanel/ScheduledRoomList.vue +622 -0
  609. package/src/components/ScheduleRoomPanel/Timepicker.vue +86 -0
  610. package/src/components/ScheduleRoomPanel/TimezoneSelector.vue +70 -0
  611. package/src/components/ScheduleRoomPanel/i18n/en-US/index.ts +116 -0
  612. package/src/components/ScheduleRoomPanel/i18n/index.ts +4 -0
  613. package/src/components/ScheduleRoomPanel/i18n/zh-CN/index.ts +116 -0
  614. package/src/components/ScheduleRoomPanel/index.ts +14 -0
  615. package/src/components/ScheduleRoomPanel/type.ts +7 -0
  616. package/src/components/ScheduleRoomPanel/utils.ts +281 -0
  617. package/src/components/Search/Search.vue +1 -1
  618. package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.scss +1 -4
  619. package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.vue +1 -1
  620. package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.scss +1 -4
  621. package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.vue +1 -1
  622. package/src/components/Search/SearchAdvanced/SearchAdvanced.scss +1 -4
  623. package/src/components/Search/SearchAdvanced/SearchAdvanced.vue +1 -1
  624. package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.scss +1 -4
  625. package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.vue +1 -1
  626. package/src/components/Search/SearchAdvanced/Slider/Slider.scss +1 -4
  627. package/src/components/Search/SearchAdvanced/Slider/Slider.vue +1 -1
  628. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.scss +1 -4
  629. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.vue +1 -1
  630. package/src/components/Search/SearchBar/SearchBar.scss +3 -6
  631. package/src/components/Search/SearchBar/SearchBar.vue +1 -1
  632. package/src/components/Search/SearchResults/EmptyResult/EmptyResult.vue +1 -1
  633. package/src/components/Search/SearchResults/Loading/Loading.vue +1 -1
  634. package/src/components/Search/SearchResults/SearchResults.vue +1 -1
  635. package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.vue +1 -1
  636. package/src/components/Search/SearchResults/SearchResultsItem/Group/Group.vue +1 -1
  637. package/src/components/Search/SearchResults/SearchResultsItem/Message/Message.vue +1 -1
  638. package/src/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.vue +1 -1
  639. package/src/components/Search/SearchResults/SearchResultsItem/User/User.vue +1 -1
  640. package/src/components/StreamMixer/LocalMixer/index.vue +6 -1
  641. package/src/components/StreamMixer/index.ts +4 -1
  642. package/src/components/StreamView/Layout/CustomLayout.vue +40 -36
  643. package/src/components/StreamView/Layout/GridLayout.vue +31 -40
  644. package/src/components/StreamView/Layout/MeetingLayout.vue +34 -35
  645. package/src/components/StreamView/index.ts +5 -3
  646. package/src/components/StreamView/manager/mediaManager.ts +1 -2
  647. package/src/components/UIKitModal/UIKitModal.ts +71 -0
  648. package/src/components/UIKitModal/index.scss +134 -0
  649. package/src/components/UIKitModal/index.ts +2 -0
  650. package/src/components/UIKitModal/index.vue +160 -0
  651. package/src/components/UIKitModal/type.ts +24 -0
  652. package/src/components/UIKitModal/useRoomModal/i18n/en-US/index.ts +19 -0
  653. package/src/components/UIKitModal/useRoomModal/i18n/index.ts +4 -0
  654. package/src/components/UIKitModal/useRoomModal/i18n/zh-CN/index.ts +18 -0
  655. package/src/components/UIKitModal/useRoomModal/index.ts +11 -0
  656. package/src/components/UIKitModal/useRoomModal/useRoomModal.ts +103 -0
  657. package/src/components/UserList/AllUserActions/indexH5.vue +3 -3
  658. package/src/components/UserList/AllUserActions/useIndexHooks.ts +1 -1
  659. package/src/components/UserList/UserItem/UserInfo/index.vue +17 -12
  660. package/src/components/UserPicker/UserPicker.vue +1 -1
  661. package/src/components/UserPicker/components/SelectedPanel/SelectedPanel.vue +1 -0
  662. package/src/components/UserPicker/hooks/useSearchFilter.ts +27 -18
  663. package/src/components/UserPicker/i18n/en-US.ts +1 -0
  664. package/src/components/UserPicker/i18n/zh-CN.ts +1 -0
  665. package/src/components/UserPicker/type.ts +1 -1
  666. package/src/components/VideoSetting/CameraSelect.vue +11 -11
  667. package/src/components/VideoSetting/VideoMediaControl.vue +22 -21
  668. package/src/components/VideoSetting/VideoPreview.vue +14 -8
  669. package/src/components/VideoSetting/VideoProfile.vue +13 -15
  670. package/src/components/VideoSetting/VideoSettingTab.vue +9 -9
  671. package/src/components/VideoSettingPanel/CameraSelect.vue +8 -3
  672. package/src/components/VideoSettingPanel/VideoPreview.vue +4 -4
  673. package/src/components/VideoSettingPanel/VideoProfile.vue +6 -6
  674. package/src/components/VideoSettingPanel/i18n/en-US/index.ts +13 -10
  675. package/src/components/VideoSettingPanel/i18n/zh-CN/index.ts +13 -10
  676. package/src/components/VideoSettingPanel/index.ts +2 -2
  677. package/src/components/VideoSettingPanel/index.vue +73 -74
  678. package/src/components/VirtualBackgroundPanel/VirtualBackgroundPanel.vue +337 -0
  679. package/src/components/VirtualBackgroundPanel/assets/blurred-background.png +0 -0
  680. package/src/components/VirtualBackgroundPanel/assets/close-virtual-background.png +0 -0
  681. package/src/components/VirtualBackgroundPanel/i18n/en-US/index.ts +11 -0
  682. package/src/components/VirtualBackgroundPanel/i18n/index.ts +4 -0
  683. package/src/components/VirtualBackgroundPanel/i18n/zh-CN/index.ts +11 -0
  684. package/src/components/VirtualBackgroundPanel/index.ts +11 -0
  685. package/src/hooks/useAudioControl.ts +17 -4
  686. package/src/hooks/useRoomActions/index.ts +3 -2
  687. package/src/hooks/useRoomActions/useRoomAudioAction.ts +11 -12
  688. package/src/hooks/useRoomActions/useRoomScreenAction.ts +12 -13
  689. package/src/hooks/useRoomActions/useRoomVideoAction.ts +10 -13
  690. package/src/hooks/useRoomEngine.ts +3 -2
  691. package/src/hooks/useUserActions/index.ts +38 -43
  692. package/src/hooks/useUserActions/useSeatAction.ts +10 -10
  693. package/src/hooks/useUserActions/useTransferOwnerAction.ts +10 -10
  694. package/src/index.ts +7 -9
  695. package/src/report/MetricsKey.ts +28 -14
  696. package/src/report/dataReport.ts +13 -9
  697. package/src/subEntry/common/base.ts +6 -0
  698. package/src/subEntry/common/index.ts +2 -0
  699. package/src/subEntry/common/rtc.ts +5 -0
  700. package/src/subEntry/live/index.ts +8 -0
  701. package/src/subEntry/live/live.ts +23 -0
  702. package/src/{rtc → subEntry/live}/server.ts +5 -1
  703. package/src/subEntry/room/index.ts +8 -0
  704. package/src/subEntry/room/room.ts +12 -0
  705. package/src/subEntry/room/server.ts +123 -0
  706. package/src/types/asr.ts +31 -0
  707. package/src/types/barrage.ts +86 -0
  708. package/src/types/beauty.ts +10 -0
  709. package/src/types/device.ts +3 -5
  710. package/src/types/index.ts +9 -3
  711. package/src/types/participant.ts +155 -0
  712. package/src/types/room.ts +122 -57
  713. package/src/types/user.ts +2 -0
  714. package/src/types/virtualBackground.ts +17 -0
  715. package/src/utils/call.ts +26 -27
  716. package/src/utils/compare.ts +34 -0
  717. package/tsconfig.eslint.json +15 -0
  718. package/tsconfig.json +7 -1
  719. package/dist/AudioRequestDialog.vue_vue_type_script_setup_true_lang-DESfuJPj.js +0 -89
  720. package/dist/index-DTq2ybsB.js +0 -33
  721. package/dist/index.vue_vue_type_script_setup_true_lang-DZIBxSQ7.js +0 -32
  722. package/dist/rtc/index.d.ts +0 -501
  723. package/dist/rtc/index.js +0 -67
  724. package/dist/rtc/server.js +0 -92
  725. package/dist/states/RoomState.d.ts +0 -173
  726. package/dist/states/RoomState.js +0 -272
  727. package/src/rtc/index.ts +0 -100
@@ -0,0 +1,768 @@
1
+ # StreamPlayManager 开发指南
2
+
3
+ > 🎥 高性能视频流播放管理器,支持懒加载和自动质量切换
4
+
5
+ ## 📖 目录
6
+
7
+ - [快速开始](#-快速开始)
8
+ - [核心概念](#-核心概念)
9
+ - [完整使用指南](#-完整使用指南)
10
+ - [API 参考](#-api-参考)
11
+ - [配置参数](#-配置参数)
12
+ - [架构详解](#-架构详解)
13
+ - [常见问题](#-常见问题)
14
+ - [版本历史](#-版本历史)
15
+
16
+ ---
17
+
18
+ ## 🚀 快速开始
19
+
20
+ ### 什么是 StreamPlayManager?
21
+
22
+ `StreamPlayManager` 是一个**视频流播放管理系统**,它能自动处理:
23
+ - ✅ 视频流的播放和停止
24
+ - ✅ 懒加载(DOM 可见时才播放)
25
+ - ✅ 自动质量切换(大流/小流智能切换)
26
+ - ✅ 多视图绑定管理
27
+
28
+ ### 30 秒上手
29
+
30
+ ```typescript
31
+ import { StreamPlayManager } from './StreamPlayManager';
32
+ import { VideoStreamType } from '../../../types';
33
+
34
+ // 1. 获取管理器实例(单例)
35
+ const streamManager = StreamPlayManager.getInstance();
36
+
37
+ // 2. 绑定视图,启用懒加载
38
+ streamManager.bindView({
39
+ userId: 'user123',
40
+ streamType: VideoStreamType.Camera,
41
+ view: 'video-container-id',
42
+ lazyLoad: { enable: true }
43
+ });
44
+
45
+ // 3. 组件销毁时解绑
46
+ streamManager.unbindView({
47
+ userId: 'user123',
48
+ streamType: VideoStreamType.Camera,
49
+ view: 'video-container-id'
50
+ });
51
+ ```
52
+
53
+ ### 在 Vue 组件中使用
54
+
55
+ ```vue
56
+ <template>
57
+ <div ref="videoContainerRef" class="video-container"></div>
58
+ </template>
59
+
60
+ <script setup lang="ts">
61
+ import { ref, onMounted, onBeforeUnmount } from 'vue';
62
+ import { StreamPlayManager } from './StreamPlayManager';
63
+
64
+ const props = defineProps<{
65
+ userId: string;
66
+ streamType: VideoStreamType;
67
+ }>();
68
+
69
+ const videoContainerRef = ref<HTMLDivElement>();
70
+ const streamManager = StreamPlayManager.getInstance();
71
+
72
+ onMounted(() => {
73
+ streamManager.bindView({
74
+ userId: props.userId,
75
+ streamType: props.streamType,
76
+ view: videoContainerRef.value!,
77
+ lazyLoad: { enable: true }
78
+ });
79
+ });
80
+
81
+ onBeforeUnmount(() => {
82
+ streamManager.unbindView({
83
+ userId: props.userId,
84
+ streamType: props.streamType,
85
+ view: videoContainerRef.value!
86
+ });
87
+ });
88
+ </script>
89
+ ```
90
+
91
+ **就这么简单!** 🎉 系统会自动处理:
92
+ - DOM 进入视区时开始播放
93
+ - DOM 离开视区时停止播放
94
+ - 根据 DOM 尺寸自动切换大流/小流
95
+ - 最多同时播放 6 个大流
96
+
97
+ ---
98
+
99
+ ## 💡 核心概念
100
+
101
+ ### 模块化架构
102
+
103
+ 系统由 **5 个独立模块** 组成,每个模块职责单一:
104
+
105
+ ```
106
+ StreamPlayManager/
107
+ ├── index.ts 👑 协调器 - 统一入口,协调其他模块
108
+ ├── StreamPlayer.ts 🎬 流播放器 - 执行播放/停止操作
109
+ ├── StreamInfoManager.ts 📊 流信息管理器 - 管理流状态和视图绑定
110
+ ├── LazyLoadManager.ts 👁️ 懒加载管理器 - 监控 DOM 可见性
111
+ └── VideoQualityManager.ts 🎯 视频质量管理器 - 管理质量切换
112
+ ```
113
+
114
+ ### 核心流程
115
+
116
+ ```
117
+ 用户操作 bindView()
118
+
119
+ StreamPlayManager(协调器)
120
+
121
+ StreamInfoManager(记录流信息)
122
+
123
+ LazyLoadManager(监听 DOM 可见性)
124
+
125
+ DOM 进入视区?
126
+ ├─ 是 → StreamPlayer.startPlayVideo()
127
+ └─ 否 → 等待,不播放
128
+
129
+ VideoQualityManager(监听 DOM 尺寸)
130
+
131
+ 根据尺寸自动切换大流/小流
132
+ ```
133
+
134
+ ### 关键特性
135
+
136
+ | 特性 | 说明 | 优势 |
137
+ |-----|------|-----|
138
+ | 🚀 **懒加载** | DOM 可见时才播放流 | 节省带宽,提升性能 |
139
+ | 🎯 **智能质量切换** | 根据 DOM 尺寸自动切换大流/小流 | 优化带宽使用 |
140
+ | 📊 **多视图支持** | 一个流可绑定多个 DOM 元素 | 灵活的 UI 布局 |
141
+ | 🔄 **自动管理** | 完全自动化,无需手动控制 | 降低开发复杂度 |
142
+
143
+ ---
144
+
145
+ ## 📚 完整使用指南
146
+
147
+ ### 基础场景
148
+
149
+ #### 1. 启用懒加载(推荐)
150
+
151
+ 适用于会议场景,多人视频列表:
152
+
153
+ ```typescript
154
+ streamManager.bindView({
155
+ userId: 'user123',
156
+ streamType: VideoStreamType.Camera,
157
+ view: 'video-container-id',
158
+ lazyLoad: {
159
+ enable: true,
160
+ viewport: 'scroll-container-id' // 可选:指定滚动容器
161
+ }
162
+ });
163
+ ```
164
+
165
+ #### 2. 禁用懒加载(立即播放)
166
+
167
+ 适用于单人视频或重要视频流:
168
+
169
+ ```typescript
170
+ streamManager.bindView({
171
+ userId: 'user123',
172
+ streamType: VideoStreamType.Camera,
173
+ view: 'video-container-id',
174
+ lazyLoad: {
175
+ enable: false // 立即播放,不等待 DOM 可见
176
+ }
177
+ });
178
+ ```
179
+
180
+ #### 3. 屏幕分享流
181
+
182
+ 屏幕分享流自动使用大流:
183
+
184
+ ```typescript
185
+ streamManager.bindView({
186
+ userId: 'user123',
187
+ streamType: VideoStreamType.Screen, // 屏幕分享
188
+ view: 'screen-container-id',
189
+ lazyLoad: { enable: false }
190
+ });
191
+ ```
192
+
193
+ ### 高级场景
194
+
195
+ #### 1. 一个流绑定多个视图
196
+
197
+ ```typescript
198
+ // 主视图
199
+ streamManager.bindView({
200
+ userId: 'user123',
201
+ streamType: VideoStreamType.Camera,
202
+ view: 'main-view',
203
+ lazyLoad: { enable: false }
204
+ });
205
+
206
+ // 缩略图视图(同一个流)
207
+ streamManager.bindView({
208
+ userId: 'user123',
209
+ streamType: VideoStreamType.Camera, // 同一个 userId + streamType
210
+ view: 'thumbnail-view',
211
+ lazyLoad: { enable: true }
212
+ });
213
+
214
+ // 两个视图共享同一个流,自动同步播放状态
215
+ ```
216
+
217
+ #### 2. 监听用户视频状态变化
218
+
219
+ ```typescript
220
+ // StreamPlayManager 会自动监听 TUIRoomEvents.onUserVideoStateChanged
221
+ // 当用户开启/关闭摄像头时,自动开始/停止播放
222
+ // 无需手动处理
223
+ ```
224
+
225
+ #### 3. 设置渲染参数
226
+
227
+ ```typescript
228
+ streamManager.setStreamConfig({
229
+ userId: 'user123',
230
+ streamType: VideoStreamType.Camera,
231
+ renderParams: {
232
+ fillMode: FillMode.Fill, // 填充模式
233
+ mirror: MirrorType.Enable, // 镜像
234
+ rotation: '90' // 旋转角度
235
+ }
236
+ });
237
+ ```
238
+
239
+ ### 状态查询
240
+
241
+ ```typescript
242
+ // 检查流是否正在播放
243
+ const isPlaying = streamManager.isStreamPlaying('user123', VideoStreamType.Camera);
244
+
245
+ // 检查流是否有可见的视图
246
+ const hasVisibleView = streamManager.hasVisibleView('user123', VideoStreamType.Camera);
247
+
248
+ // 获取流信息
249
+ const streamInfo = streamManager.getStreamInfo('user123', VideoStreamType.Camera);
250
+ console.log(streamInfo);
251
+ // {
252
+ // userId: 'user123',
253
+ // streamType: 'camera',
254
+ // views: [HTMLDivElement, HTMLDivElement],
255
+ // isPlaying: true,
256
+ // videoQuality: 'HD'
257
+ // }
258
+ ```
259
+
260
+ ### 资源清理
261
+
262
+ ```typescript
263
+ // 组件销毁时解绑视图
264
+ onBeforeUnmount(() => {
265
+ streamManager.unbindView({
266
+ userId: props.userId,
267
+ streamType: props.streamType,
268
+ view: videoContainerRef.value!
269
+ });
270
+ });
271
+
272
+ // 应用退出时清理所有资源
273
+ streamManager.cleanup();
274
+ ```
275
+
276
+ ---
277
+
278
+ ## 📋 API 参考
279
+
280
+ ### StreamPlayManager(协调器)
281
+
282
+ #### 静态方法
283
+
284
+ ```typescript
285
+ // 获取单例实例
286
+ StreamPlayManager.getInstance(): StreamPlayManager
287
+
288
+ // 销毁单例实例(一般不需要调用)
289
+ StreamPlayManager.destroyInstance(): Promise<void>
290
+ ```
291
+
292
+ #### 核心方法
293
+
294
+ ```typescript
295
+ // 绑定视图到流
296
+ bindView(options: {
297
+ userId: string;
298
+ streamType: VideoStreamType;
299
+ view: string | HTMLDivElement;
300
+ lazyLoad?: {
301
+ enable: boolean;
302
+ viewport?: string | HTMLDivElement;
303
+ };
304
+ }): Promise<void>
305
+
306
+ // 解绑视图
307
+ unbindView(options: {
308
+ userId: string;
309
+ streamType: VideoStreamType;
310
+ view: string | HTMLDivElement;
311
+ }): Promise<void>
312
+
313
+ // 设置流配置
314
+ setStreamConfig(options: {
315
+ userId: string;
316
+ streamType: VideoStreamType;
317
+ videoQuality?: VideoStreamQuality;
318
+ renderParams?: {
319
+ fillMode?: FillMode;
320
+ mirror?: MirrorType;
321
+ rotation?: VideoRotation;
322
+ };
323
+ }): Promise<void>
324
+ ```
325
+
326
+ #### 查询方法
327
+
328
+ ```typescript
329
+ // 检查流是否正在播放
330
+ isStreamPlaying(userId: string, streamType: VideoStreamType): boolean
331
+
332
+ // 检查流是否有可见的视图
333
+ hasVisibleView(userId: string, streamType: VideoStreamType): boolean
334
+
335
+ // 获取流信息
336
+ getStreamInfo(userId: string, streamType: VideoStreamType): StreamInfo | undefined
337
+
338
+ // 清理所有资源
339
+ cleanup(): Promise<void>
340
+ ```
341
+
342
+ ### 类型定义
343
+
344
+ ```typescript
345
+ // 视频流类型
346
+ enum VideoStreamType {
347
+ Camera = 'camera', // 摄像头流
348
+ Screen = 'screen' // 屏幕分享流
349
+ }
350
+
351
+ // 视频质量
352
+ enum VideoStreamQuality {
353
+ HD = 'HD', // 大流(高清)
354
+ LD = 'LD' // 小流(低清)
355
+ }
356
+
357
+ // 流信息
358
+ interface StreamInfo {
359
+ userId: string;
360
+ streamType: VideoStreamType;
361
+ views: (string | HTMLDivElement)[];
362
+ isPlaying: boolean;
363
+ videoQuality?: VideoStreamQuality;
364
+ fillMode?: FillMode;
365
+ }
366
+
367
+ // 填充模式
368
+ enum FillMode {
369
+ Fit = 'fit', // 适应(保持比例)
370
+ Fill = 'fill' // 填充(可能裁剪)
371
+ }
372
+
373
+ // 镜像类型
374
+ enum MirrorType {
375
+ Enable = 'enable',
376
+ Disable = 'disable',
377
+ Auto = 'auto'
378
+ }
379
+
380
+ // 旋转角度
381
+ type VideoRotation = '0' | '90' | '180' | '270';
382
+ ```
383
+
384
+ ---
385
+
386
+ ## ⚙️ 配置参数
387
+
388
+ ### 质量切换阈值
389
+
390
+ 在 `VideoQualityManager.ts` 中配置:
391
+
392
+ ```typescript
393
+ const HIGH_QUALITY_NUMBER = 6; // 最大大流数量
394
+ const QUALITY_THRESHOLD_WIDTH = 480; // 大流宽度阈值(px)
395
+ const QUALITY_THRESHOLD_HEIGHT = 270; // 大流高度阈值(px)
396
+ const QUALITY_HYSTERESIS = 1.15; // 滞后系数(避免频繁切换)
397
+ ```
398
+
399
+ ### 防抖时间
400
+
401
+ ```typescript
402
+ const RESIZE_DEBOUNCE_TIME = 300; // DOM 尺寸变化防抖时间(ms)
403
+ ```
404
+
405
+ ### 自动质量切换策略
406
+
407
+ 系统会根据以下规则自动切换视频质量:
408
+
409
+ | 场景 | 策略 | 说明 |
410
+ |-----|------|------|
411
+ | 屏幕分享流 | 永远使用 **大流** | 确保清晰度 |
412
+ | DOM 尺寸 < 480×270 | 使用 **小流** | 节省带宽 |
413
+ | DOM 尺寸 ≥ 480×270 | 尝试使用 **大流** | 提升清晰度 |
414
+ | 大流数量 < 6 | 允许新增大流 | 优先大流 |
415
+ | 大流数量 = 6 | 淘汰面积最小的大流 | 智能分配 |
416
+
417
+ **滞后机制**:
418
+ - 从小流切换到大流:DOM 尺寸需要 > 阈值 × 1.15
419
+ - 从大流切换到小流:DOM 尺寸需要 < 阈值 / 1.15
420
+ - 目的:避免在阈值附近频繁切换
421
+
422
+ ---
423
+
424
+ ## 🏗️ 架构详解
425
+
426
+ ### 设计理念
427
+
428
+ **核心思想**:单一职责原则(SRP)+ 模块化设计
429
+
430
+ 将复杂的流播放管理系统拆分为 5 个独立模块,每个模块只负责一件事:
431
+
432
+ ```
433
+ ┌─────────────────────────────────────────┐
434
+ │ StreamPlayManager (协调器) │ 👑 统一入口
435
+ │ - 协调各模块 │
436
+ │ - 提供统一 API │
437
+ └───────────┬─────────────────────────────┘
438
+ │ 调用
439
+ ┌───────┼───────┬──────────┬──────────┐
440
+ │ │ │ │ │
441
+ ┌───▼──┐ ┌─▼──┐ ┌──▼───┐ ┌───▼───┐ ┌───▼────┐
442
+ │Stream│ │Info│ │Lazy │ │Video │ │Room │
443
+ │Player│ │Mgr │ │Load │ │Quality│ │Engine │
444
+ │ │ │ │ │Mgr │ │Mgr │ │ │
445
+ └──────┘ └────┘ └──────┘ └───────┘ └────────┘
446
+ 播放 数据 可见性 质量 底层SDK
447
+ 执行 管理 监控 管理
448
+ ```
449
+
450
+ ### 模块职责
451
+
452
+ #### 1. StreamPlayManager(协调器)
453
+ - **文件**:`index.ts`
454
+ - **职责**:协调各个模块,提供统一接口
455
+ - **特点**:单例模式,纯协调器,无具体业务逻辑
456
+
457
+ #### 2. StreamPlayer(流播放器)
458
+ - **文件**:`StreamPlayer.ts`
459
+ - **职责**:执行流播放操作
460
+ - **功能**:
461
+ - 调用 RoomEngine API 播放/停止流
462
+ - 设置渲染参数(fillMode、mirror、rotation)
463
+ - 处理本地流和远程流的差异
464
+
465
+ #### 3. StreamInfoManager(流信息管理器)
466
+ - **文件**:`StreamInfoManager.ts`
467
+ - **职责**:管理流状态和视图绑定
468
+ - **功能**:
469
+ - 存储流信息(userId、streamType、views、isPlaying 等)
470
+ - 提供流信息 CRUD 操作
471
+ - 管理视图列表
472
+
473
+ #### 4. LazyLoadManager(懒加载管理器)
474
+ - **文件**:`LazyLoadManager.ts`
475
+ - **职责**:监控 DOM 可见性
476
+ - **功能**:
477
+ - 使用 IntersectionObserver 监听 DOM 可见性
478
+ - DOM 进入视区时触发回调
479
+ - DOM 离开视区时触发回调
480
+
481
+ #### 5. VideoQualityManager(视频质量管理器)
482
+ - **文件**:`VideoQualityManager.ts`
483
+ - **职责**:管理视频质量切换
484
+ - **功能**:
485
+ - 使用 ResizeObserver 监听 DOM 尺寸
486
+ - 计算最优视频质量(HD/LD)
487
+ - 管理大流分配(最多 6 个)
488
+ - 防抖优化性能
489
+
490
+ ### 通信机制
491
+
492
+ ```typescript
493
+ // 1. 回调通信(监控器 → 协调器)
494
+ LazyLoadManager → StreamPlayManager.handleVisibilityChange()
495
+ VideoQualityManager → StreamPlayManager.handleQualityChange()
496
+
497
+ // 2. 直接调用(协调器 → 其他模块)
498
+ StreamPlayManager → StreamInfoManager.addView()
499
+ StreamPlayManager → StreamPlayer.startPlayVideo()
500
+ StreamPlayManager → LazyLoadManager.observe()
501
+ StreamPlayManager → VideoQualityManager.observe()
502
+ ```
503
+
504
+ ### 数据流向
505
+
506
+ ```
507
+ 用户调用 bindView()
508
+
509
+ StreamPlayManager.bindView()
510
+
511
+ StreamInfoManager.addView() // 记录视图绑定
512
+
513
+ LazyLoadManager.observe() // 开始监听可见性
514
+
515
+ [等待 DOM 进入视区]
516
+
517
+ LazyLoadManager 触发回调
518
+
519
+ StreamPlayManager.handleVisibilityChange()
520
+
521
+ StreamPlayer.startPlayVideo() // 开始播放
522
+
523
+ VideoQualityManager.observe() // 监听尺寸变化
524
+
525
+ [尺寸变化]
526
+
527
+ VideoQualityManager 触发回调
528
+
529
+ StreamPlayManager.handleQualityChange()
530
+
531
+ StreamPlayer.updateVideoQuality() // 切换质量
532
+ ```
533
+
534
+ ### 命名规范
535
+
536
+ 为了提高代码可读性和一致性,系统采用统一的命名规范:
537
+
538
+ | 类型 | 命名规则 | 示例 | 说明 |
539
+ |-----|---------|------|-----|
540
+ | 管理器 | `XxxManager` | `StreamInfoManager` | 负责管理某类资源或状态 |
541
+ | 执行器 | `XxxPlayer` / `XxxExecutor` | `StreamPlayer` | 负责执行具体操作 |
542
+ | 协调器 | `XxxManager` / `XxxCoordinator` | `StreamPlayManager` | 负责协调多个模块 |
543
+
544
+ **为什么 StreamPlayer 不叫 StreamManager?**
545
+ - `StreamPlayer` 是"执行器",直接调用 RoomEngine API 执行播放操作
546
+ - `StreamInfoManager` 是"管理器",管理流信息和状态
547
+ - 名称区分体现了职责差异
548
+
549
+ ### 架构优势
550
+
551
+ | 优势 | 说明 |
552
+ |-----|------|
553
+ | 🎯 **单一职责** | 每个模块职责清晰,易于理解和维护 |
554
+ | 🔧 **低耦合** | 模块间通过接口通信,相互独立 |
555
+ | 📈 **可扩展** | 新增功能只需扩展对应模块 |
556
+ | 🛠️ **易调试** | 每个模块都有独立的日志 |
557
+ | ✅ **可测试** | 模块独立,便于单元测试 |
558
+
559
+ ---
560
+
561
+ ## ❓ 常见问题
562
+
563
+ ### Q1: bindView 后视频不播放?
564
+
565
+ **可能原因**:
566
+ 1. 启用了懒加载,但 DOM 元素不在视区内
567
+ 2. 用户的摄像头未开启
568
+ 3. DOM 元素 ID 不正确
569
+
570
+ **解决方案**:
571
+ ```typescript
572
+ // 1. 检查是否启用了懒加载
573
+ streamManager.bindView({
574
+ lazyLoad: { enable: false } // 临时禁用懒加载测试
575
+ });
576
+
577
+ // 2. 检查流是否正在播放
578
+ const isPlaying = streamManager.isStreamPlaying(userId, streamType);
579
+ console.log('isPlaying:', isPlaying);
580
+
581
+ // 3. 检查是否有可见视图
582
+ const hasVisible = streamManager.hasVisibleView(userId, streamType);
583
+ console.log('hasVisibleView:', hasVisible);
584
+ ```
585
+
586
+ ### Q2: 如何强制使用大流?
587
+
588
+ **回答**:系统会自动根据 DOM 尺寸和大流数量限制进行质量切换。如果需要强制大流:
589
+
590
+ ```typescript
591
+ // 1. 确保 DOM 尺寸足够大(>= 480×270)
592
+ // 2. 禁用自动质量切换(不推荐)
593
+ // 注意:目前系统不支持完全禁用自动质量切换
594
+ // 这是设计决策,为了优化带宽使用
595
+ ```
596
+
597
+ ### Q3: 一个流可以绑定多少个视图?
598
+
599
+ **回答**:理论上无限制,但建议不超过 3 个:
600
+
601
+ ```typescript
602
+ // 主视图
603
+ streamManager.bindView({ view: 'main-view', ... });
604
+
605
+ // 缩略图视图
606
+ streamManager.bindView({ view: 'thumbnail-view', ... });
607
+
608
+ // 画中画视图
609
+ streamManager.bindView({ view: 'pip-view', ... });
610
+
611
+ // 三个视图共享同一个流,自动同步播放状态
612
+ ```
613
+
614
+ ### Q4: 如何知道当前有多少个大流?
615
+
616
+ **回答**:使用内部方法查询(仅用于调试):
617
+
618
+ ```typescript
619
+ const streamManager = StreamPlayManager.getInstance();
620
+
621
+ // 通过私有属性访问(仅开发环境)
622
+ console.log((streamManager as any).videoQualityManager.getHighQualityCount());
623
+ ```
624
+
625
+ **正式环境不建议直接访问私有属性。**
626
+
627
+ ### Q5: StreamPlay.vue 为什么只负责视图绑定?
628
+
629
+ **回答**:这是架构设计决策,遵循单一职责原则:
630
+
631
+ - **StreamPlay.vue**:UI 组件,负责视图渲染和生命周期管理
632
+ - **StreamPlayManager**:业务逻辑,负责流播放控制和状态管理
633
+
634
+ **好处**:
635
+ - ✅ 组件逻辑简单,易于理解
636
+ - ✅ 业务逻辑集中,便于复用
637
+ - ✅ 测试更容易,UI 和业务分离
638
+
639
+ ### Q6: 如何调试流播放问题?
640
+
641
+ **步骤**:
642
+
643
+ ```typescript
644
+ // 1. 开启控制台日志
645
+ // 所有模块都会输出日志,格式:[ModuleName] message
646
+
647
+ // 2. 检查流信息
648
+ const streamInfo = streamManager.getStreamInfo(userId, streamType);
649
+ console.log('Stream Info:', streamInfo);
650
+
651
+ // 3. 检查播放状态
652
+ const isPlaying = streamManager.isStreamPlaying(userId, streamType);
653
+ console.log('Is Playing:', isPlaying);
654
+
655
+ // 4. 检查可见性
656
+ const hasVisible = streamManager.hasVisibleView(userId, streamType);
657
+ console.log('Has Visible View:', hasVisible);
658
+
659
+ // 5. 检查 DOM 元素
660
+ const view = document.getElementById('video-container-id');
661
+ console.log('View Element:', view);
662
+ console.log('View Size:', view?.clientWidth, view?.clientHeight);
663
+ ```
664
+
665
+ ### Q7: 性能优化建议?
666
+
667
+ **建议**:
668
+
669
+ 1. **启用懒加载**:多人会议场景必须启用
670
+ ```typescript
671
+ lazyLoad: { enable: true }
672
+ ```
673
+
674
+ 2. **及时解绑视图**:组件销毁时立即解绑
675
+ ```typescript
676
+ onBeforeUnmount(() => {
677
+ streamManager.unbindView({ ... });
678
+ });
679
+ ```
680
+
681
+ 3. **使用虚拟滚动**:参与人数 > 20 时使用虚拟滚动
682
+ ```typescript
683
+ // 配合 vue-virtual-scroller 等库使用
684
+ ```
685
+
686
+ 4. **合理设置大流数量**:默认 6 个,可根据网络状况调整
687
+ ```typescript
688
+ // 在 VideoQualityManager.ts 中修改
689
+ const HIGH_QUALITY_NUMBER = 4; // 网络较差时降低
690
+ ```
691
+
692
+ ---
693
+
694
+ ## 📜 版本历史
695
+
696
+ ### v2.0 (当前版本) - 2024-11
697
+
698
+ **重大更新**:重构命名规范,统一使用 `Manager` 后缀
699
+
700
+ **重命名映射**:
701
+ - `StreamController` → `StreamPlayer` (流播放器)
702
+ - `ViewManager` → `StreamInfoManager` (流信息管理器)
703
+ - `IntersectionMonitor` → `LazyLoadManager` (懒加载管理器)
704
+ - `ResizeMonitor` → `VideoQualityManager` (视频质量管理器)
705
+
706
+ **优化点**:
707
+ - ✅ 统一命名规范,提高代码可读性
708
+ - ✅ 清晰的职责划分,降低理解成本
709
+ - ✅ 专业的命名方式,符合工程规范
710
+ - ✅ 完善的文档和示例
711
+
712
+ ### v1.0 - 2024-10
713
+
714
+ **初始版本**:
715
+ - ✅ 模块化架构设计
716
+ - ✅ 懒加载功能
717
+ - ✅ 自动质量切换
718
+ - ✅ 多视图支持
719
+
720
+ ---
721
+
722
+ ## 📝 注意事项
723
+
724
+ ### 开发注意事项
725
+
726
+ 1. **DOM 元素 ID**:确保传入的 DOM 元素 ID 存在且唯一
727
+ 2. **内存管理**:及时调用 `unbindView` 解绑不需要的视图
728
+ 3. **资源清理**:应用退出时调用 `cleanup()` 清理资源
729
+ 4. **单例模式**:使用 `getInstance()` 获取实例,避免创建多个实例
730
+
731
+ ### 最佳实践
732
+
733
+ ```typescript
734
+ // ✅ 推荐:使用单例
735
+ const streamManager = StreamPlayManager.getInstance();
736
+
737
+ // ❌ 不推荐:创建新实例
738
+ const streamManager = new StreamPlayManager(); // 无效,会返回单例
739
+
740
+ // ✅ 推荐:启用懒加载
741
+ lazyLoad: { enable: true }
742
+
743
+ // ✅ 推荐:及时解绑
744
+ onBeforeUnmount(() => {
745
+ streamManager.unbindView({ ... });
746
+ });
747
+
748
+ // ✅ 推荐:使用 TypeScript 类型
749
+ import { VideoStreamType, VideoStreamQuality } from '../../../types';
750
+ ```
751
+
752
+ ---
753
+
754
+ ## 🔗 相关资源
755
+
756
+ - **源码位置**:`ui-component/packages/uikit-component-vue3/src/components/RoomParticipantView/StreamPlayManager/`
757
+ - **使用示例**:`StreamPlay.vue`
758
+ - **类型定义**:`ui-component/packages/uikit-component-vue3/src/types/`
759
+
760
+ ---
761
+
762
+ ## 📮 反馈与支持
763
+
764
+ 如有问题或建议,请联系团队或提交 Issue。
765
+
766
+ ---
767
+
768
+ **Happy Coding! 🚀**