tuikit-atomicx-vue3 3.4.1 → 4.3.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 (342) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/dist/baseComp/Modal/Modal.js +431 -23
  3. package/dist/chat/index.d.ts +18 -18
  4. package/dist/components/AudioSetting/AudioMediaControl.js +39 -41
  5. package/dist/components/AudioSetting/AudioSettingTab.js +10 -10
  6. package/dist/components/AudioSetting/MicrophoneSelect.js +8 -8
  7. package/dist/components/AudioSetting/SpeakerSelect.js +9 -9
  8. package/dist/components/AudioSettingPanel/i18n/en-US/index.d.ts +1 -0
  9. package/dist/components/AudioSettingPanel/i18n/en-US/index.js +2 -1
  10. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.d.ts +1 -0
  11. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.js +2 -1
  12. package/dist/components/AudioSettingPanel/index.js +81 -73
  13. package/dist/components/BarrageInput/BarrageInputH5.js +9 -9
  14. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +3 -3
  15. package/dist/components/BarrageInput/MessageInputState.d.ts +28 -0
  16. package/dist/components/BarrageInput/MessageInputState.js +82 -0
  17. package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
  18. package/dist/components/BarrageInput/TextEditor/EditorCore.js +2 -2
  19. package/dist/components/BarrageInput/TextEditor/index.js +7 -7
  20. package/dist/components/BarrageInput/type.d.ts +17 -0
  21. package/dist/components/BarrageInput/type.js +4 -0
  22. package/dist/components/BarrageInput/utils.d.ts +30 -0
  23. package/dist/components/BarrageInput/utils.js +41 -0
  24. package/dist/components/BarrageList/BarrageList.js +80 -110
  25. package/dist/components/BarrageList/BarrageList.vue.d.ts +0 -29
  26. package/dist/components/BarrageList/BarrageListH5.js +95 -122
  27. package/dist/components/BarrageList/BarrageListH5.vue.d.ts +0 -29
  28. package/dist/components/BarrageList/BarrageListState.d.ts +58 -0
  29. package/dist/components/BarrageList/BarrageListState.js +106 -0
  30. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.js +16 -24
  31. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue.d.ts +5 -5
  32. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +48 -73
  33. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.vue.d.ts +5 -7
  34. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +70 -76
  35. package/dist/components/BarrageList/Message/TextMessage/TextMessage.vue.d.ts +6 -6
  36. package/dist/components/BarrageList/Message/TextMessage/emoji.d.ts +5 -0
  37. package/dist/components/BarrageList/Message/TextMessage/emoji.js +134 -0
  38. package/dist/components/BarrageList/index.d.ts +0 -36
  39. package/dist/components/CameraButton/index.js +18 -19
  40. package/dist/components/CoGuestPanel/CoGuestPanel.js +60 -60
  41. package/dist/components/CoHostPanel/BattlePanel.js +25 -25
  42. package/dist/components/CoHostPanel/CoHostPanel.js +60 -55
  43. package/dist/components/CoHostPanel/ConfigSettingPanel.js +49 -55
  44. package/dist/components/CoHostPanel/ConnectionPanel.js +129 -120
  45. package/dist/components/CoHostPanel/RecommendHostList.js +39 -36
  46. package/dist/components/CoHostPanel/constants.d.ts +3 -0
  47. package/dist/components/CoHostPanel/constants.js +6 -0
  48. package/dist/components/CoHostPanel/i18n/en-US/index.d.ts +1 -0
  49. package/dist/components/CoHostPanel/i18n/en-US/index.js +2 -1
  50. package/dist/components/CoHostPanel/i18n/zh-CN/index.d.ts +1 -0
  51. package/dist/components/CoHostPanel/i18n/zh-CN/index.js +3 -2
  52. package/dist/components/LiveAudienceList/LiveAudienceList.js +44 -45
  53. package/dist/components/LiveAudienceList/LiveAudienceListH5.js +7 -7
  54. package/dist/components/LiveAudienceList/UserActionMenu.js +57 -64
  55. package/dist/components/LiveList/LiveList.js +23 -23
  56. package/dist/components/LiveList/LiveListH5.js +38 -38
  57. package/dist/components/LiveScenePanel/CameraSettingDialog.js +10 -10
  58. package/dist/components/LiveScenePanel/MaterialItem.js +15 -15
  59. package/dist/components/LiveScenePanel/index.js +4 -4
  60. package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/BattleDecorate.js +58 -58
  61. package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/BattleUserDecorate.js +56 -49
  62. package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/CoHostDecorate.js +6 -6
  63. package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/LiveCoreDecorate.js +1 -1
  64. package/dist/components/{LiveCoreView → LiveView}/DefaultStreamViewUI.js +46 -43
  65. package/dist/components/{LiveCoreView → LiveView}/PlayerControl/AudioControl.js +23 -23
  66. package/dist/components/LiveView/PlayerControl/MultiResolution.js +79 -0
  67. package/dist/components/LiveView/PlayerControl/MultiResolution.vue.d.ts +8 -0
  68. package/dist/components/LiveView/PlayerControl/PlayerControl.js +172 -0
  69. package/dist/components/LiveView/PlayerControl/PlayerControlState.js +263 -0
  70. package/dist/components/{LiveCoreView → LiveView}/PlayerControl/utils/domHelpers.d.ts +6 -0
  71. package/dist/components/LiveView/PlayerControl/utils/domHelpers.js +131 -0
  72. package/dist/components/{LiveCoreView/i18n/zh-CN → LiveView/i18n/en-US}/index.d.ts +3 -2
  73. package/dist/components/{LiveCoreView → LiveView}/i18n/en-US/index.js +4 -3
  74. package/dist/components/{LiveCoreView/i18n/en-US → LiveView/i18n/zh-CN}/index.d.ts +3 -2
  75. package/dist/components/{LiveCoreView → LiveView}/i18n/zh-CN/index.js +4 -3
  76. package/dist/components/LiveView/index.d.ts +79 -0
  77. package/dist/components/{LiveCoreView → LiveView}/index.js +44 -42
  78. package/dist/components/MessageInput/TextEditor/EditorCore.js +2 -2
  79. package/dist/components/MessageList/MessageList.vue.d.ts +2 -2
  80. package/dist/components/MessageList/index.d.ts +18 -18
  81. package/dist/components/MicButton/index.js +11 -11
  82. package/dist/components/StreamMixer/LocalMixer/MixerControl.js +12 -12
  83. package/dist/components/StreamMixer/LocalMixer/index.js +66 -63
  84. package/dist/components/StreamMixer/index.js +6 -6
  85. package/dist/components/StreamView/Layout/CustomLayout.js +8 -8
  86. package/dist/components/StreamView/Layout/FloatLayout.js +124 -127
  87. package/dist/components/StreamView/Layout/GridLayout.js +5 -5
  88. package/dist/components/StreamView/index.js +25 -33
  89. package/dist/components/StreamView/manager/mediaManager.js +54 -60
  90. package/dist/components/VideoSetting/CameraSelect.js +8 -8
  91. package/dist/components/VideoSetting/VideoMediaControl.js +10 -10
  92. package/dist/components/VideoSetting/VideoPreview.js +9 -9
  93. package/dist/components/VideoSetting/VideoProfile.js +6 -6
  94. package/dist/components/VideoSetting/VideoSettingTab.js +40 -39
  95. package/dist/components/VideoSettingPanel/CameraSelect.js +8 -8
  96. package/dist/components/VideoSettingPanel/VideoPreview.js +1 -1
  97. package/dist/components/VideoSettingPanel/VideoProfile.js +18 -18
  98. package/dist/hooks/useRoomEngine.js +6 -6
  99. package/dist/{index-D88ja_7_.js → index-BfIEeWMg.js} +1767 -1757
  100. package/dist/{index-D-KJvDvy.js → index-DTi1fL-x.js} +460 -457
  101. package/dist/index.js +177 -157
  102. package/dist/report/MetricsKey.d.ts +16 -0
  103. package/dist/report/MetricsKey.js +4 -0
  104. package/dist/report/dataReport.d.ts +12 -0
  105. package/dist/report/dataReport.js +45 -0
  106. package/dist/report/index.d.ts +4 -0
  107. package/dist/report/index.js +6 -0
  108. package/dist/rtc/index.d.ts +6 -81
  109. package/dist/rtc/index.js +53 -52
  110. package/dist/states/BarrageState/BarrageState.d.ts +74 -0
  111. package/dist/states/BarrageState/BarrageState.js +80 -0
  112. package/dist/states/BarrageState/index.d.ts +1 -0
  113. package/dist/states/BarrageState/index.js +5 -0
  114. package/dist/states/{BattleState.d.ts → BattleState/BattleState.d.ts} +10 -11
  115. package/dist/states/BattleState/BattleState.js +203 -0
  116. package/dist/states/BattleState/index.d.ts +1 -0
  117. package/dist/states/BattleState/index.js +4 -0
  118. package/dist/states/CoGuestState.d.ts +24 -94
  119. package/dist/states/CoGuestState.js +297 -189
  120. package/dist/states/CoHostState/CoHostState.d.ts +2 -2
  121. package/dist/states/CoHostState/CoHostState.js +135 -131
  122. package/dist/states/{DeviceState.d.ts → DeviceState/DeviceState.d.ts} +25 -13
  123. package/dist/states/DeviceState/DeviceState.js +314 -0
  124. package/dist/states/DeviceState/index.d.ts +1 -0
  125. package/dist/states/DeviceState/index.js +4 -0
  126. package/dist/states/LiveAudienceState.d.ts +3 -1
  127. package/dist/states/LiveAudienceState.js +106 -63
  128. package/dist/states/{LiveState/index.d.ts → LiveListState/LiveListState.d.ts} +13 -8
  129. package/dist/states/LiveListState/LiveListState.js +285 -0
  130. package/dist/states/LiveListState/index.d.ts +1 -0
  131. package/dist/states/LiveListState/index.js +4 -0
  132. package/dist/states/LiveMonitorState/api/http.js +147 -129
  133. package/dist/states/LiveMonitorState/index.js +67 -62
  134. package/dist/states/LiveSeatState/index.d.ts +46 -11
  135. package/dist/states/LiveSeatState/index.js +34 -15
  136. package/dist/states/LiveSeatState/seatEventManager.d.ts +2 -0
  137. package/dist/states/LiveSeatState/seatEventManager.js +63 -42
  138. package/dist/states/LiveSeatState/seatManager.d.ts +34 -5
  139. package/dist/states/LiveSeatState/seatManager.js +131 -29
  140. package/dist/states/LiveSeatState/store.d.ts +5 -5
  141. package/dist/states/LiveSeatState/store.js +12 -10
  142. package/dist/states/LiveSeatState/usePlayStream/RTCStreamManager.js +1 -1
  143. package/dist/states/LiveSeatState/usePlayStream/RTCStreamPlayer.js +1 -1
  144. package/dist/states/LiveSeatState/usePlayStream/index.js +30 -28
  145. package/dist/states/LoginState.js +39 -34
  146. package/dist/states/SeatStore.js +82 -83
  147. package/dist/states/{VideoMixerState.d.ts → VideoMixerState/VideoMixerState.d.ts} +1 -1
  148. package/dist/states/VideoMixerState/VideoMixerState.js +269 -0
  149. package/dist/states/VideoMixerState/index.d.ts +1 -0
  150. package/dist/states/VideoMixerState/index.js +4 -0
  151. package/dist/styles/index.css +1 -1
  152. package/dist/types/audience.d.ts +21 -0
  153. package/dist/types/audience.js +4 -1
  154. package/dist/types/battle.d.ts +75 -3
  155. package/dist/types/battle.js +5 -1
  156. package/dist/types/coGuest.d.ts +72 -5
  157. package/dist/types/coGuest.js +4 -2
  158. package/dist/types/device.d.ts +38 -17
  159. package/dist/types/device.js +10 -8
  160. package/dist/types/index.d.ts +2 -2
  161. package/dist/types/index.js +96 -80
  162. package/dist/types/live.d.ts +36 -21
  163. package/dist/types/live.js +6 -4
  164. package/dist/types/seat.d.ts +23 -4
  165. package/dist/types/seat.js +7 -1
  166. package/dist/utils/eventCenter.d.ts +88 -0
  167. package/dist/utils/eventCenter.js +161 -0
  168. package/package.json +2 -2
  169. package/src/components/AudioSetting/AudioMediaControl.vue +1 -3
  170. package/src/components/AudioSetting/AudioSettingTab.vue +1 -2
  171. package/src/components/AudioSetting/MicrophoneSelect.vue +1 -2
  172. package/src/components/AudioSetting/SpeakerSelect.vue +1 -2
  173. package/src/components/AudioSettingPanel/i18n/en-US/index.ts +1 -0
  174. package/src/components/AudioSettingPanel/i18n/zh-CN/index.ts +1 -0
  175. package/src/components/AudioSettingPanel/index.vue +4 -2
  176. package/src/components/BarrageInput/BarrageInputH5.vue +1 -1
  177. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
  178. package/src/components/BarrageInput/MessageInputState.ts +160 -0
  179. package/src/components/BarrageInput/TextEditor/TextEditor.vue +1 -1
  180. package/src/components/BarrageInput/type.ts +26 -0
  181. package/src/components/BarrageInput/utils.ts +45 -0
  182. package/src/components/BarrageList/BarrageList.vue +61 -117
  183. package/src/components/BarrageList/BarrageListH5.vue +75 -159
  184. package/src/components/BarrageList/BarrageListState.ts +223 -0
  185. package/src/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue +8 -55
  186. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +19 -44
  187. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +69 -96
  188. package/src/components/BarrageList/Message/TextMessage/emoji.ts +132 -0
  189. package/src/components/CameraButton/index.vue +0 -1
  190. package/src/components/CoGuestPanel/CoGuestPanel.vue +16 -91
  191. package/src/components/CoHostPanel/BattlePanel.vue +4 -7
  192. package/src/components/CoHostPanel/CoHostPanel.vue +11 -3
  193. package/src/components/CoHostPanel/ConfigSettingPanel.vue +2 -8
  194. package/src/components/CoHostPanel/ConnectionPanel.vue +41 -37
  195. package/src/components/CoHostPanel/RecommendHostList.vue +12 -13
  196. package/src/components/CoHostPanel/constants.ts +3 -0
  197. package/src/components/CoHostPanel/i18n/en-US/index.ts +1 -0
  198. package/src/components/CoHostPanel/i18n/zh-CN/index.ts +2 -1
  199. package/src/components/LiveAudienceList/LiveAudienceList.vue +4 -5
  200. package/src/components/LiveAudienceList/LiveAudienceListH5.vue +2 -2
  201. package/src/components/LiveAudienceList/UserActionMenu.vue +7 -48
  202. package/src/components/LiveList/LiveList.vue +5 -5
  203. package/src/components/LiveList/LiveListH5.vue +6 -6
  204. package/src/components/LiveScenePanel/index.vue +2 -2
  205. package/src/components/{LiveCoreView → LiveView}/CoreViewDecorate/BattleDecorate.vue +10 -15
  206. package/src/components/{LiveCoreView → LiveView}/CoreViewDecorate/BattleUserDecorate.vue +30 -31
  207. package/src/components/{LiveCoreView → LiveView}/DefaultStreamViewUI.vue +5 -3
  208. package/src/components/{LiveCoreView → LiveView}/PlayerControl/AudioControl.vue +1 -1
  209. package/src/components/{LiveCoreView → LiveView}/PlayerControl/MultiResolution.vue +9 -3
  210. package/src/components/{LiveCoreView → LiveView}/PlayerControl/PlayerControl.vue +10 -2
  211. package/src/components/{LiveCoreView → LiveView}/PlayerControl/PlayerControlState.ts +233 -259
  212. package/src/components/{LiveCoreView → LiveView}/PlayerControl/utils/domHelpers.ts +64 -0
  213. package/src/components/{LiveCoreView → LiveView}/i18n/en-US/index.ts +3 -2
  214. package/src/components/{LiveCoreView → LiveView}/i18n/zh-CN/index.ts +3 -2
  215. package/src/components/{LiveCoreView → LiveView}/index.ts +5 -2
  216. package/src/components/{LiveCoreView → LiveView}/index.vue +3 -3
  217. package/src/components/MicButton/index.vue +3 -3
  218. package/src/components/StreamMixer/LocalMixer/index.vue +6 -8
  219. package/src/components/StreamMixer/index.vue +1 -1
  220. package/src/components/StreamView/Layout/CustomLayout.vue +2 -2
  221. package/src/components/StreamView/Layout/FloatLayout.vue +88 -83
  222. package/src/components/StreamView/index.vue +28 -14
  223. package/src/components/StreamView/manager/mediaManager.ts +38 -42
  224. package/src/components/VideoSetting/CameraSelect.vue +1 -2
  225. package/src/components/VideoSetting/VideoMediaControl.vue +1 -1
  226. package/src/components/VideoSetting/VideoPreview.vue +1 -2
  227. package/src/components/VideoSetting/VideoProfile.vue +1 -1
  228. package/src/components/VideoSetting/VideoSettingTab.vue +9 -5
  229. package/src/components/VideoSettingPanel/CameraSelect.vue +1 -2
  230. package/src/components/VideoSettingPanel/VideoProfile.vue +7 -7
  231. package/src/hooks/useRoomEngine.ts +1 -1
  232. package/src/report/MetricsKey.ts +16 -0
  233. package/src/report/dataReport.ts +55 -0
  234. package/src/report/index.ts +7 -0
  235. package/src/rtc/index.ts +8 -10
  236. package/src/types/audience.ts +27 -1
  237. package/src/types/battle.ts +87 -4
  238. package/src/types/coGuest.ts +87 -5
  239. package/src/types/device.ts +41 -16
  240. package/src/types/index.ts +2 -2
  241. package/src/types/live.ts +41 -22
  242. package/src/types/seat.ts +28 -4
  243. package/src/utils/eventCenter.ts +249 -0
  244. package/dist/DialogPortal-CvJcEAsn.js +0 -417
  245. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.js +0 -23
  246. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.vue.d.ts +0 -30
  247. package/dist/components/BarrageList/Message/FaceMessage/index.d.ts +0 -3
  248. package/dist/components/BarrageList/Message/FaceMessage/index.js +0 -4
  249. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.js +0 -4
  250. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +0 -16
  251. package/dist/components/BarrageList/Message/GroupTipMessage/index.d.ts +0 -3
  252. package/dist/components/BarrageList/Message/GroupTipMessage/index.js +0 -25
  253. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.js +0 -71
  254. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.vue.d.ts +0 -34
  255. package/dist/components/BarrageList/Message/ImageMessage/index.d.ts +0 -3
  256. package/dist/components/BarrageList/Message/ImageMessage/index.js +0 -4
  257. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.js +0 -9
  258. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.vue.d.ts +0 -2
  259. package/dist/components/BarrageList/Message/MergerMessage/index.d.ts +0 -3
  260. package/dist/components/BarrageList/Message/MergerMessage/index.js +0 -4
  261. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +0 -40
  262. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -54
  263. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +0 -26
  264. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue.d.ts +0 -15
  265. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.d.ts +0 -3
  266. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.js +0 -4
  267. package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.js +0 -41
  268. package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue.d.ts +0 -35
  269. package/dist/components/BarrageList/Message/RecalledMessage/index.d.ts +0 -3
  270. package/dist/components/BarrageList/Message/RecalledMessage/index.js +0 -4
  271. package/dist/components/BarrageList/MessageForward/ForwardListItem.js +0 -45
  272. package/dist/components/BarrageList/MessageForward/ForwardListItem.vue.d.ts +0 -17
  273. package/dist/components/BarrageList/MessageForward/MessageForward.js +0 -203
  274. package/dist/components/BarrageList/MessageForward/MessageForward.vue.d.ts +0 -2
  275. package/dist/components/BarrageList/MessageForward/index.d.ts +0 -3
  276. package/dist/components/BarrageList/MessageForward/index.js +0 -4
  277. package/dist/components/LiveCoreView/PlayerControl/MultiResolution.js +0 -78
  278. package/dist/components/LiveCoreView/PlayerControl/MultiResolution.vue.d.ts +0 -2
  279. package/dist/components/LiveCoreView/PlayerControl/PlayerControl.js +0 -168
  280. package/dist/components/LiveCoreView/PlayerControl/PlayerControlState.js +0 -267
  281. package/dist/components/LiveCoreView/PlayerControl/utils/domHelpers.js +0 -99
  282. package/dist/components/LiveCoreView/index.d.ts +0 -4
  283. package/dist/components/StreamView/Layout/MixLayout.js +0 -89
  284. package/dist/components/StreamView/Layout/MixLayout.vue.d.ts +0 -31
  285. package/dist/states/BarrageListState/BarrageListState.d.ts +0 -26
  286. package/dist/states/BarrageListState/BarrageListState.js +0 -122
  287. package/dist/states/BarrageListState/index.d.ts +0 -1
  288. package/dist/states/BarrageListState/index.js +0 -4
  289. package/dist/states/BattleState.js +0 -117
  290. package/dist/states/DeviceState.js +0 -296
  291. package/dist/states/LiveState/index.js +0 -254
  292. package/dist/states/VideoMixerState.js +0 -260
  293. package/src/components/BarrageList/Message/FaceMessage/FaceMessage.vue +0 -43
  294. package/src/components/BarrageList/Message/FaceMessage/index.ts +0 -3
  295. package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +0 -55
  296. package/src/components/BarrageList/Message/GroupTipMessage/index.ts +0 -3
  297. package/src/components/BarrageList/Message/ImageMessage/ImageMessage.vue +0 -181
  298. package/src/components/BarrageList/Message/ImageMessage/index.ts +0 -3
  299. package/src/components/BarrageList/Message/MergerMessage/MergerMessage.vue +0 -6
  300. package/src/components/BarrageList/Message/MergerMessage/index.ts +0 -3
  301. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +0 -70
  302. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +0 -40
  303. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/index.ts +0 -3
  304. package/src/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue +0 -82
  305. package/src/components/BarrageList/Message/RecalledMessage/index.ts +0 -3
  306. package/src/components/BarrageList/MessageForward/ForwardListItem.vue +0 -67
  307. package/src/components/BarrageList/MessageForward/MessageForward.vue +0 -388
  308. package/src/components/BarrageList/MessageForward/index.ts +0 -3
  309. package/src/components/StreamView/Layout/MixLayout.vue +0 -144
  310. /package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/BattleDecorate.vue.d.ts +0 -0
  311. /package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/BattleUserDecorate.vue.d.ts +0 -0
  312. /package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/CoHostDecorate.vue.d.ts +0 -0
  313. /package/dist/components/{LiveCoreView → LiveView}/CoreViewDecorate/LiveCoreDecorate.vue.d.ts +0 -0
  314. /package/dist/components/{LiveCoreView → LiveView}/DefaultStreamViewUI.vue.d.ts +0 -0
  315. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/AudioControl.vue.d.ts +0 -0
  316. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/PlayerControl.vue.d.ts +0 -0
  317. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/PlayerControlState.d.ts +0 -0
  318. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/index.d.ts +0 -0
  319. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/index.js +0 -0
  320. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/utils/deviceDetection.d.ts +0 -0
  321. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/utils/deviceDetection.js +0 -0
  322. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/utils/fullscreenManager.d.ts +0 -0
  323. /package/dist/components/{LiveCoreView → LiveView}/PlayerControl/utils/fullscreenManager.js +0 -0
  324. /package/dist/components/{LiveCoreView → LiveView}/i18n/index.d.ts +0 -0
  325. /package/dist/components/{LiveCoreView → LiveView}/i18n/index.js +0 -0
  326. /package/dist/components/{LiveCoreView → LiveView}/index.vue.d.ts +0 -0
  327. /package/src/components/{LiveCoreView → LiveView}/CoreViewDecorate/CoHostDecorate.vue +0 -0
  328. /package/src/components/{LiveCoreView → LiveView}/CoreViewDecorate/LiveCoreDecorate.vue +0 -0
  329. /package/src/components/{LiveCoreView → LiveView}/PlayerControl/PlayerControl.module.scss +0 -0
  330. /package/src/components/{LiveCoreView → LiveView}/PlayerControl/index.ts +0 -0
  331. /package/src/components/{LiveCoreView → LiveView}/PlayerControl/utils/deviceDetection.ts +0 -0
  332. /package/src/components/{LiveCoreView → LiveView}/PlayerControl/utils/fullscreenManager.ts +0 -0
  333. /package/src/components/{LiveCoreView → LiveView}/assets/img/defeat.png +0 -0
  334. /package/src/components/{LiveCoreView → LiveView}/assets/img/draw.png +0 -0
  335. /package/src/components/{LiveCoreView → LiveView}/assets/img/victory.png +0 -0
  336. /package/src/components/{LiveCoreView → LiveView}/assets/svg/BattleOrdinaryBadge.svg +0 -0
  337. /package/src/components/{LiveCoreView → LiveView}/assets/svg/BattleTopBadge.svg +0 -0
  338. /package/src/components/{LiveCoreView → LiveView}/assets/svg/blueBkg.svg +0 -0
  339. /package/src/components/{LiveCoreView → LiveView}/assets/svg/redBkg.svg +0 -0
  340. /package/src/components/{LiveCoreView → LiveView}/assets/svg/s.svg +0 -0
  341. /package/src/components/{LiveCoreView → LiveView}/assets/svg/v.svg +0 -0
  342. /package/src/components/{LiveCoreView → LiveView}/i18n/index.ts +0 -0
@@ -143,3 +143,67 @@ export class EventListenerManager {
143
143
  return this.listeners.size;
144
144
  }
145
145
  }
146
+
147
+ /**
148
+ * Wait for video element to be mounted in DOM
149
+ * @param timeout Maximum wait time in milliseconds
150
+ * @returns Promise that resolves with video element or null if timeout
151
+ */
152
+ export const waitForVideoMounted = (timeout = 3000): Promise<HTMLVideoElement | null> => {
153
+ return new Promise((resolve) => {
154
+ const container = document.querySelector('#atomicx-live-stream-content');
155
+ if (!container) {
156
+ resolve(null);
157
+ return;
158
+ }
159
+
160
+ let timeoutId: number | null = null;
161
+
162
+ const observer = new MutationObserver((mutations) => {
163
+ for (const mutation of mutations) {
164
+ if (mutation.type === 'childList') {
165
+ mutation.addedNodes.forEach((node) => {
166
+ if (node.nodeName === 'VIDEO') {
167
+ const video = node as HTMLVideoElement;
168
+
169
+ // Temporarily remove volumechange listener to prevent syncVolumeState interference
170
+ const originalVolumeHandler = (video as any).onvolumechange;
171
+ (video as any).onvolumechange = null;
172
+
173
+ const handleLoadedData = () => {
174
+ if (timeoutId) clearTimeout(timeoutId);
175
+ observer.disconnect();
176
+ video.removeEventListener('loadeddata', handleLoadedData);
177
+ setTimeout(() => {
178
+ (video as any).onvolumechange = originalVolumeHandler;
179
+ }, 100);
180
+ resolve(video);
181
+ };
182
+
183
+ if (video.readyState >= 2) {
184
+ if (timeoutId) clearTimeout(timeoutId);
185
+ observer.disconnect();
186
+ setTimeout(() => {
187
+ (video as any).onvolumechange = originalVolumeHandler;
188
+ }, 100);
189
+ resolve(video);
190
+ } else {
191
+ video.addEventListener('loadeddata', handleLoadedData, { once: true });
192
+ }
193
+ }
194
+ });
195
+ }
196
+ }
197
+ });
198
+
199
+ observer.observe(container, {
200
+ childList: true,
201
+ subtree: true,
202
+ });
203
+
204
+ timeoutId = window.setTimeout(() => {
205
+ observer.disconnect();
206
+ resolve(null);
207
+ }, timeout);
208
+ });
209
+ };
@@ -7,8 +7,8 @@ export const resource = {
7
7
  'Exit Picture in Picture': 'Exit Picture in Picture',
8
8
  'Fullscreen': 'Fullscreen',
9
9
  'Exit Fullscreen': 'Exit Fullscreen',
10
- 'Mute': 'Mute',
11
- 'Unmute': 'Unmute',
10
+ 'Open Speaker': 'Open Speaker',
11
+ 'Close Speaker': 'Close Speaker',
12
12
  'The system does not support picture-in-picture mode': 'The system does not support picture-in-picture mode',
13
13
  'co-Hosting': 'co-Hosting',
14
14
  'In battle': 'In battle',
@@ -16,4 +16,5 @@ export const resource = {
16
16
  '540P': '540P',
17
17
  '720P': '720P',
18
18
  '1080P': '1080P',
19
+ 'Connecting': 'Connecting',
19
20
  };
@@ -7,8 +7,8 @@ export const resource = {
7
7
  'Exit Picture in Picture': '退出画中画',
8
8
  'Fullscreen': '全屏',
9
9
  'Exit Fullscreen': '退出全屏',
10
- 'Mute': '静音',
11
- 'Unmute': '取消静音',
10
+ 'Open Speaker': '取消静音',
11
+ 'Close Speaker': '静音',
12
12
  'The system does not support picture-in-picture mode': '系统不支持画中画模式',
13
13
  'co-Hosting': '连线中',
14
14
  'In battle': 'PK中',
@@ -16,4 +16,5 @@ export const resource = {
16
16
  '540P': '标清',
17
17
  '720P': '高清',
18
18
  '1080P': '超清',
19
+ 'Connecting': '连线中',
19
20
  };
@@ -1,9 +1,12 @@
1
1
  import { addI18n } from '../../i18n';
2
2
  import DefaultStreamViewUI from './DefaultStreamViewUI.vue';
3
3
  import { enUSResource, zhCNResource } from './i18n';
4
- import LiveCoreView from './index.vue';
4
+ import LiveViewComponent from './index.vue';
5
5
 
6
6
  addI18n('en-US', { translation: enUSResource });
7
7
  addI18n('zh-CN', { translation: zhCNResource });
8
8
 
9
- export { LiveCoreView, DefaultStreamViewUI };
9
+ const LiveCoreView = LiveViewComponent;
10
+ const LiveView = LiveViewComponent;
11
+
12
+ export { LiveCoreView, LiveView, DefaultStreamViewUI };
@@ -57,7 +57,7 @@
57
57
  import { ref, computed, watch, onMounted, onBeforeUnmount, useSlots, type ComputedRef, Teleport } from 'vue';
58
58
  import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
59
59
  import { useLiveSeatState } from '../../states/LiveSeatState';
60
- import { useLiveState } from '../../states/LiveState';
60
+ import { useLiveListState } from '../../states/LiveListState';
61
61
  import { useLoginState } from '../../states/LoginState';
62
62
  import { getContentSize } from '../../utils/domOperation';
63
63
  import DefaultStreamViewUI from './DefaultStreamViewUI.vue';
@@ -70,7 +70,7 @@ import { usePlayerControlState } from './PlayerControl';
70
70
  const { isFullscreen, isLandscapeStyleMode } = usePlayerControlState();
71
71
  const { t } = useUIKit();
72
72
  const { seatList, canvas, startPlayStream, stopPlayStream } = useLiveSeatState();
73
- const { currentLive } = useLiveState();
73
+ const { currentLive } = useLiveListState();
74
74
 
75
75
  const slots = useSlots();
76
76
 
@@ -80,7 +80,7 @@ const { loginUserInfo } = useLoginState();
80
80
  const isPlayedVideo = ref(false);
81
81
  const isMounted = ref(false);
82
82
  const isAlignCenter = computed(() => {
83
- if (!isInStreamMixerComp.value && isPortraitContainer.value && widthRatio.value < heightRatio.value) {
83
+ if (!isInStreamMixerComp.value && isPortraitContainer.value && widthRatio.value < heightRatio.value && isMobile) {
84
84
  return false;
85
85
  }
86
86
  return true;
@@ -2,7 +2,7 @@
2
2
  <div class="mic-button-container">
3
3
  <div class="mic-button" :class="{ 'disabled': !hasPublishAudioPermission }" @click="handleClick">
4
4
  <audio-icon
5
- :audio-volume="audioVolume"
5
+ :audio-volume="currentMicVolume"
6
6
  :is-muted="isMuted"
7
7
  :is-disabled="!hasPublishAudioPermission"
8
8
  />
@@ -19,7 +19,7 @@ import { DeviceStatus, DeviceError } from '../../types';
19
19
  import AudioIcon from './AudioIcon.vue';
20
20
 
21
21
  const {
22
- audioVolume,
22
+ currentMicVolume,
23
23
  hasPublishAudioPermission,
24
24
  microphoneStatus,
25
25
  microphoneLastError,
@@ -60,4 +60,4 @@ async function handleClick() {
60
60
  }
61
61
  }
62
62
  }
63
- </style>
63
+ </style>
@@ -32,15 +32,15 @@ import TUIRoomEngine, {
32
32
  } from '@tencentcloud/tuiroom-engine-js';
33
33
  import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
34
34
  import { useRoomEngine } from '../../../hooks/useRoomEngine';
35
- import { useLiveState } from '../../../states/LiveState';
35
+ import { useLiveListState } from '../../../states/LiveListState';
36
36
  import { useVideoMixerState } from '../../../states/VideoMixerState';
37
- import { LiveStatus, LiveOrientation } from '../../../types';
37
+ import { LiveOrientation } from '../../../types';
38
38
  import { debounce } from '../../../utils/utils';
39
39
  import MixerControl from './MixerControl.vue';
40
40
 
41
41
  const { t } = useUIKit();
42
42
 
43
- const { currentLive } = useLiveState();
43
+ const { currentLive } = useLiveListState();
44
44
 
45
45
  const mixControlRef = ref<InstanceType<typeof MixerControl> | null>(null);
46
46
  const { publishVideoQuality, activeMediaSource, enableLocalVideoMixer, mediaSourceList } = useVideoMixerState();
@@ -54,8 +54,6 @@ const currentLiveOrientation = computed(() => {
54
54
  return LiveOrientation.Portrait;
55
55
  });
56
56
 
57
- const { localLiveStatus } = useLiveState();
58
-
59
57
  const roomEngine = useRoomEngine();
60
58
  const localMixerRef = ref();
61
59
 
@@ -217,12 +215,12 @@ onMounted(() => {
217
215
  getMixControlStyle();
218
216
  });
219
217
 
220
- watch(localLiveStatus, async (newVal) => {
218
+ watch(() => currentLive.value?.liveId, async (newVal) => {
221
219
  const mediaSourceManager = roomEngine.instance?.getTRTCCloud().getMediaMixingManager();
222
- if (newVal === LiveStatus.Live) {
220
+ if (newVal) {
223
221
  await mediaSourceManager?.startPublish();
224
222
  }
225
- if (newVal === LiveStatus.IDLE) {
223
+ if (!newVal) {
226
224
  await mediaSourceManager?.stopPublish();
227
225
  }
228
226
  });
@@ -7,7 +7,7 @@
7
7
  </template>
8
8
 
9
9
  <script setup lang="ts">
10
- import { LiveCoreView } from '../LiveCoreView';
10
+ import { LiveCoreView } from '../LiveView';
11
11
  import LocalMixer from './LocalMixer/index.vue';
12
12
  </script>
13
13
 
@@ -28,11 +28,11 @@ import useUserState from '../../../states/UserState/index';
28
28
  import { TUIVideoStreamType } from '@tencentcloud/tuiroom-engine-js';
29
29
  import { useRoomState } from '../../../states/RoomState';
30
30
  import useLoginState from '../../../states/LoginState';
31
- import useLiveState from '../../../states/LiveState';
31
+ import { useLiveListState } from '../../../states/LiveListState';
32
32
 
33
33
  const { userList, localUser, userListOnSeat } = useUserState();
34
34
  const { currentRoom } = useRoomState();
35
- const { currentLive } = useLiveState();
35
+ const { currentLive } = useLiveListState();
36
36
  const { loginUserInfo } = useLoginState();
37
37
 
38
38
  const emits = defineEmits(['stream-view-dblclick']);
@@ -1,6 +1,10 @@
1
1
  <template>
2
- <div class="float-layout-container" ref="streamListContainerRef">
3
- <div class="float-layout" ref="streamListRef" :style="streamListStyle">
2
+ <div ref="streamListContainerRef" class="float-layout-container">
3
+ <div
4
+ ref="streamListRef"
5
+ class="float-layout"
6
+ :style="streamListStyle"
7
+ >
4
8
  <div class="main-view">
5
9
  <stream-region :user-info="mainUserInfo" :stream-type="mainStreamType">
6
10
  <template #streamViewUI="slotProps">
@@ -8,7 +12,11 @@
8
12
  </template>
9
13
  </stream-region>
10
14
  </div>
11
- <div class="float-view" v-if="floatUserInfo" :style="getFloatStyle()">
15
+ <div
16
+ v-if="floatUserInfo"
17
+ class="float-view"
18
+ :style="getFloatStyle()"
19
+ >
12
20
  <stream-region :user-info="floatUserInfo" :stream-type="TUIVideoStreamType.kCameraStream">
13
21
  <template #streamViewUI="slotProps">
14
22
  <slot name="streamViewUI" v-bind="slotProps" />
@@ -20,16 +28,18 @@
20
28
  </template>
21
29
 
22
30
  <script setup lang="ts">
23
- import { computed, watch, ref, Ref, onMounted, onBeforeUnmount } from 'vue';
24
- import StreamRegion from '../common/StreamRegion';
31
+ import type { Ref } from 'vue';
32
+ import { computed, watch, ref, onMounted, onBeforeUnmount } from 'vue';
25
33
  import { TUIVideoStreamType } from '@tencentcloud/tuiroom-engine-js';
26
- import { UserInfo, DeviceStatus, LiveStatus, SeatStatus} from '../../../types';
27
- import useUserState from '../../../states/UserState/index';
28
- import useLiveState from '../../../states/LiveState';
29
34
  import useRoomEngine from '../../../hooks/useRoomEngine';
35
+ import { useLiveListState } from '../../../states/LiveListState';
36
+ import useUserState from '../../../states/UserState/index';
37
+ import { DeviceStatus, SeatStatus } from '../../../types';
38
+ import StreamRegion from '../common/StreamRegion';
39
+ import type { UserInfo } from '../../../types';
30
40
 
31
41
  const { userList, localUser, userListWithVideo } = useUserState();
32
- const { currentLive, localLiveStatus } = useLiveState();
42
+ const { currentLive, localLiveStatus } = useLiveListState();
33
43
  const roomEngine = useRoomEngine();
34
44
 
35
45
  // 定义props
@@ -42,10 +52,10 @@ const props = withDefaults(defineProps<{
42
52
  top: '20px',
43
53
  right: '20px',
44
54
  width: '160px',
45
- height: '160px'
55
+ height: '160px',
46
56
  })),
47
57
  filterFn: () => true,
48
- sortFn: () => 0
58
+ sortFn: () => 0,
49
59
  });
50
60
 
51
61
  const streamListContainerRef = ref();
@@ -62,9 +72,7 @@ function stringToNumber(str: string) {
62
72
  const encodeWidth = 1920;
63
73
  const encodeHeight = 1080;
64
74
 
65
- const toLayoutRadio = computed(() => {
66
- return stringToNumber(streamListStyle.value.width) / encodeWidth;
67
- })
75
+ const toLayoutRadio = computed(() => stringToNumber(streamListStyle.value.width) / encodeWidth);
68
76
 
69
77
  async function handleFloatContainerLayout() {
70
78
  if (!streamListContainerRef.value) {
@@ -121,16 +129,13 @@ const mainUserInfo = computed(() => {
121
129
  return filterAndSortUserList.value[0];
122
130
  });
123
131
 
124
- const mainStreamType = computed(() => {
125
- return mainUserInfo.value.screenStatus === DeviceStatus.On ? TUIVideoStreamType.kScreenStream : TUIVideoStreamType.kCameraStream;
126
- });
132
+ const mainStreamType = computed(() => mainUserInfo.value.screenStatus === DeviceStatus.On ? TUIVideoStreamType.kScreenStream : TUIVideoStreamType.kCameraStream);
127
133
 
128
134
  const floatUserInfo = computed(() => {
129
135
  if (mainStreamType.value === TUIVideoStreamType.kScreenStream) {
130
136
  return filterAndSortUserList.value.find(userInfo => userInfo.cameraStatus === DeviceStatus.On);
131
- } else {
132
- return filterAndSortUserList.value.find(userInfo => userInfo.cameraStatus === DeviceStatus.On && userInfo.userId !== mainUserInfo.value?.userId);
133
137
  }
138
+ return filterAndSortUserList.value.find(userInfo => userInfo.cameraStatus === DeviceStatus.On && userInfo.userId !== mainUserInfo.value?.userId);
134
139
  });
135
140
 
136
141
  if (localUser.value?.userId === currentLive.value?.liveOwner.userId) {
@@ -139,20 +144,20 @@ if (localUser.value?.userId === currentLive.value?.liveOwner.userId) {
139
144
  return null;
140
145
  }
141
146
  return {
142
- "LocationX": 1540, // 以画面左上角为原点的 x 坐标
143
- "LocationY": 20, // 以画面左上角为原点的 y 坐标
144
- "ImageWidth": 360, // 调整后的画面宽度
145
- "ImageHeight": 202, // 调整后的画面高度
146
- "ZOrder": 1, // 画面层级
147
- "StreamType": TUIVideoStreamType.kCameraStream, // 0 摄像头, 1 屏幕共享, 2 白板, 3 自定义
148
- "Member_Account": floatUserInfo.value?.userId, // 该路流的用户ID
149
- "BackgroundImageUrl": "",
150
- "RoomId": currentLive.value?.liveId,
151
- "BackgroundColor": "0x1F212C",
152
- }
147
+ LocationX: 1540, // 以画面左上角为原点的 x 坐标
148
+ LocationY: 20, // 以画面左上角为原点的 y 坐标
149
+ ImageWidth: 360, // 调整后的画面宽度
150
+ ImageHeight: 202, // 调整后的画面高度
151
+ ZOrder: 1, // 画面层级
152
+ StreamType: TUIVideoStreamType.kCameraStream, // 0 摄像头, 1 屏幕共享, 2 白板, 3 自定义
153
+ Member_Account: floatUserInfo.value?.userId, // 该路流的用户ID
154
+ BackgroundImageUrl: '',
155
+ RoomId: currentLive.value?.liveId,
156
+ BackgroundColor: '0x1F212C',
157
+ };
153
158
  });
154
159
 
155
- const layoutConfig = computed(() => {
160
+ const layoutConfig = computed(() =>
156
161
  // const userOnSeatListConfig = userListOnSeat.value.map(user => {
157
162
  // return {
158
163
  // "LocationX": 0, // 以画面左上角为原点的 x 坐标
@@ -165,56 +170,56 @@ if (localUser.value?.userId === currentLive.value?.liveOwner.userId) {
165
170
  // "RoomId": user.roomId,
166
171
  // }
167
172
  // });
168
- return {
173
+ ({
169
174
  // 设置画布大小
170
- "VideoEncode": {
171
- "Width": encodeWidth,
172
- "Height": encodeHeight,
175
+ VideoEncode: {
176
+ Width: encodeWidth,
177
+ Height: encodeHeight,
173
178
  },
174
- "LayoutMode": 1000, // 0~9 内置布局模板, 1000自定义布局, 只有1000时候才能修改LayoutInfo,目前只支持 0 和 1000
179
+ LayoutMode: 1000, // 0~9 内置布局模板, 1000自定义布局, 只有1000时候才能修改LayoutInfo,目前只支持 0 和 1000
175
180
  // 设置画面布局
176
- "LayoutInfo": {
177
- "LayoutList": floatLayoutConfig.value ? [floatLayoutConfig.value] : [],
178
- "MaxUserLayout": {
179
- "ZOrder": 0, //层级
180
- "StreamType": mainStreamType.value, // 0为摄像头, 1为屏幕共享
181
- "Member_Account": mainUserInfo.value.userId,
182
- "BackgroundImageUrl": "", //可以设置看看,可能在最大画面时候没作用
183
- "RoomId": currentLive.value?.liveId,
184
- "BackgroundColor":"0x1F212C",
185
- "LocationX": 0, // 以画面左上角为原点的 x 坐标
186
- "LocationY": 0, // 以画面左上角为原点的 y 坐标
187
- "ImageWidth": encodeWidth, // 调整后的画面宽度
188
- "ImageHeight": encodeHeight,
189
- "RenderMode": mainStreamType.value === TUIVideoStreamType.kScreenStream ? 2 : 0,
181
+ LayoutInfo: {
182
+ LayoutList: floatLayoutConfig.value ? [floatLayoutConfig.value] : [],
183
+ MaxUserLayout: {
184
+ ZOrder: 0, // 层级
185
+ StreamType: mainStreamType.value, // 0为摄像头, 1为屏幕共享
186
+ Member_Account: mainUserInfo.value.userId,
187
+ BackgroundImageUrl: '', // 可以设置看看,可能在最大画面时候没作用
188
+ RoomId: currentLive.value?.liveId,
189
+ BackgroundColor: '0x1F212C',
190
+ LocationX: 0, // 以画面左上角为原点的 x 坐标
191
+ LocationY: 0, // 以画面左上角为原点的 y 坐标
192
+ ImageWidth: encodeWidth, // 调整后的画面宽度
193
+ ImageHeight: encodeHeight,
194
+ RenderMode: mainStreamType.value === TUIVideoStreamType.kScreenStream ? 2 : 0,
190
195
  },
191
196
  },
192
- }
193
- });
194
-
195
- watch(() => layoutConfig.value, async (newVal, oldVal) => {
196
- console.error('lixin-debug mix watch layoutConfig change 111', JSON.stringify(newVal), JSON.stringify(oldVal));
197
- if (localLiveStatus.value !== LiveStatus.Live || JSON.stringify(newVal) === JSON.stringify(oldVal)) {
198
- return;
199
- }
200
- const liveLayoutManager = roomEngine.instance?.getLiveLayoutManager();
201
- console.error('lixin-debug mix setLiveStreamLayoutInfo 111', newVal);
202
- await liveLayoutManager?.setLiveStreamLayoutInfo(currentLive.value?.liveId as string, JSON.stringify(newVal));
203
- }, { immediate: true, deep: true })
204
-
205
- watch(() => [localLiveStatus.value, localUser.value?.seatStatus], async ([newlocalLiveStatus, newSeatStatus], [oldlocalLiveStatus, oldSeatStatus]) => {
206
- console.error('lixin-debug mix localLiveStatus 222', newlocalLiveStatus, oldlocalLiveStatus, newSeatStatus, oldSeatStatus);
207
- if (newlocalLiveStatus === oldlocalLiveStatus && newSeatStatus === oldSeatStatus) {
208
- return;
209
- }
210
- if (newlocalLiveStatus === LiveStatus.Live && newSeatStatus === SeatStatus.On && localUser.value.userId === currentLive.value?.liveOwner.userId) {
211
- setTimeout( async () => {
212
- const liveLayoutManager = roomEngine.instance?.getLiveLayoutManager();
213
- console.error('lixin-debug mix setLiveStreamLayoutInfo 222', layoutConfig.value);
214
- await liveLayoutManager?.setLiveStreamLayoutInfo(currentLive.value?.liveId as string, JSON.stringify(layoutConfig.value));
215
- }, 1000)
216
- }
217
- })
197
+ }),
198
+ );
199
+
200
+ // watch(() => layoutConfig.value, async (newVal, oldVal) => {
201
+ // console.error('lixin-debug mix watch layoutConfig change 111', JSON.stringify(newVal), JSON.stringify(oldVal));
202
+ // if (localLiveStatus.value !== LiveStatus.Live || JSON.stringify(newVal) === JSON.stringify(oldVal)) {
203
+ // return;
204
+ // }
205
+ // const liveLayoutManager = roomEngine.instance?.getLiveLayoutManager();
206
+ // console.error('lixin-debug mix setLiveStreamLayoutInfo 111', newVal);
207
+ // await liveLayoutManager?.setLiveStreamLayoutInfo(currentLive.value?.liveId as string, JSON.stringify(newVal));
208
+ // }, { immediate: true, deep: true });
209
+
210
+ // watch(() => [localLiveStatus.value, localUser.value?.seatStatus], async ([newlocalLiveStatus, newSeatStatus], [oldlocalLiveStatus, oldSeatStatus]) => {
211
+ // console.error('lixin-debug mix localLiveStatus 222', newlocalLiveStatus, oldlocalLiveStatus, newSeatStatus, oldSeatStatus);
212
+ // if (newlocalLiveStatus === oldlocalLiveStatus && newSeatStatus === oldSeatStatus) {
213
+ // return;
214
+ // }
215
+ // if (newlocalLiveStatus === LiveStatus.Live && newSeatStatus === SeatStatus.On && localUser.value.userId === currentLive.value?.liveOwner.userId) {
216
+ // setTimeout( async () => {
217
+ // const liveLayoutManager = roomEngine.instance?.getLiveLayoutManager();
218
+ // console.error('lixin-debug mix setLiveStreamLayoutInfo 222', layoutConfig.value);
219
+ // await liveLayoutManager?.setLiveStreamLayoutInfo(currentLive.value?.liveId as string, JSON.stringify(layoutConfig.value));
220
+ // }, 1000)
221
+ // }
222
+ // })
218
223
 
219
224
  // todo1: 摄像头和屏幕分享同时关闭的时候,应该如何处理
220
225
  // todo2: 观众上麦之后需要混观众的音频流
@@ -224,12 +229,12 @@ const getFloatStyle = () => {
224
229
  const { top, right, bottom, left, width, height } = JSON.parse(props.config);
225
230
 
226
231
  return {
227
- width: stringToNumber(width) * toLayoutRadio.value + 'px',
228
- height: stringToNumber(height) * toLayoutRadio.value + 'px',
229
- ...(top !== undefined ? { top: stringToNumber(top) * toLayoutRadio.value + 'px' } : {}),
230
- ...(right !== undefined ? { right: stringToNumber(right) * toLayoutRadio.value + 'px' } : {}),
231
- ...(bottom !== undefined ? { bottom: stringToNumber(bottom) * toLayoutRadio.value + 'px' } : {}),
232
- ...(left !== undefined ? { left: stringToNumber(left) * toLayoutRadio.value + 'px' } : {})
232
+ width: `${stringToNumber(width) * toLayoutRadio.value}px`,
233
+ height: `${stringToNumber(height) * toLayoutRadio.value}px`,
234
+ ...(top !== undefined ? { top: `${stringToNumber(top) * toLayoutRadio.value}px` } : {}),
235
+ ...(right !== undefined ? { right: `${stringToNumber(right) * toLayoutRadio.value}px` } : {}),
236
+ ...(bottom !== undefined ? { bottom: `${stringToNumber(bottom) * toLayoutRadio.value}px` } : {}),
237
+ ...(left !== undefined ? { left: `${stringToNumber(left) * toLayoutRadio.value}px` } : {}),
233
238
  };
234
239
  };
235
240
 
@@ -341,4 +346,4 @@ const getFloatStyle = () => {
341
346
  text-overflow: ellipsis;
342
347
  }
343
348
  </style>
344
- ../../../states/LiveState
349
+ ../../../states/LiveListState
@@ -1,40 +1,54 @@
1
1
  <template>
2
- <FloatLayout v-if="mode === 'float'" :config="config" :filter-fn="filterFn" :sort-fn="sortFn">
2
+ <FloatLayout
3
+ v-if="mode === 'float'"
4
+ :config="config"
5
+ :filter-fn="filterFn"
6
+ :sort-fn="sortFn"
7
+ >
3
8
  <template #streamViewUI="slotProps">
4
9
  <slot name="streamViewUI" v-bind="slotProps" />
5
10
  </template>
6
11
  </FloatLayout>
7
- <GridLayout v-if="mode === 'grid'" :config="config" :filter-fn="filterFn" :sort-fn="sortFn">
12
+ <GridLayout
13
+ v-if="mode === 'grid'"
14
+ :config="config"
15
+ :filter-fn="filterFn"
16
+ :sort-fn="sortFn"
17
+ >
8
18
  <template #streamViewUI="slotProps">
9
19
  <slot name="streamViewUI" v-bind="slotProps" />
10
20
  </template>
11
21
  </GridLayout>
12
- <CustomLayout v-if="mode === 'custom'" :config="config" :filter-fn="filterFn" :sort-fn="sortFn">
22
+ <CustomLayout
23
+ v-if="mode === 'custom'"
24
+ :config="config"
25
+ :filter-fn="filterFn"
26
+ :sort-fn="sortFn"
27
+ >
13
28
  <template #streamViewUI="slotProps">
14
29
  <slot name="streamViewUI" v-bind="slotProps" />
15
30
  </template>
16
31
  </CustomLayout>
17
- <MeetingLayout v-if="mode === 'meeting'" :config="config" :filter-fn="filterFn" :sort-fn="sortFn">
32
+ <MeetingLayout
33
+ v-if="mode === 'meeting'"
34
+ :config="config"
35
+ :filter-fn="filterFn"
36
+ :sort-fn="sortFn"
37
+ >
18
38
  <template #streamViewUI="slotProps">
19
39
  <slot name="streamViewUI" v-bind="slotProps" />
20
40
  </template>
21
41
  </MeetingLayout>
22
- <MixLayout v-if="mixUserInfo">
23
- <template #streamViewUI="slotProps">
24
- <slot name="streamViewUI" v-bind="slotProps" />
25
- </template>
26
- </MixLayout>
27
42
  </template>
28
43
 
29
44
  <script lang="ts" setup>
30
45
  import { defineProps, computed } from 'vue';
31
- import { UserInfo } from '../../types';
46
+ import { innerUserStore } from '../../states/UserState/store';
47
+ import CustomLayout from './Layout/CustomLayout.vue';
32
48
  import FloatLayout from './Layout/FloatLayout.vue';
33
49
  import GridLayout from './Layout/GridLayout.vue';
34
- import CustomLayout from './Layout/CustomLayout.vue';
35
- import MixLayout from './Layout/MixLayout.vue';
36
50
  import MeetingLayout from './Layout/MeetingLayout.vue';
37
- import { innerUserStore } from '../../states/UserState/store';
51
+ import type { UserInfo } from '../../types';
38
52
 
39
53
  const mixUserInfo = computed(() => innerUserStore.mixUserInfo);
40
54
 
@@ -48,7 +62,7 @@ withDefaults(defineProps<Props>(), {
48
62
  mode: 'grid',
49
63
  config: '',
50
64
  filterFn: () => true,
51
- sortFn: () => 0
65
+ sortFn: () => 0,
52
66
  });
53
67
  </script>
54
68