@tencentcloud/sdk-mcp 1.4.7 → 1.6.0-beta.1

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 (556) hide show
  1. package/index.js +0 -1
  2. package/knowledge/bm25-cache.js +73 -0
  3. package/knowledge/bm25.js +147 -0
  4. package/knowledge/build-index.js +65 -0
  5. package/knowledge/chunker.js +167 -0
  6. package/knowledge/content-loader.js +44 -0
  7. package/knowledge/extractors.js +25 -0
  8. package/knowledge/path-meta.js +175 -0
  9. package/knowledge/search/exact-lookup.js +330 -0
  10. package/knowledge/search/filter-pool.js +86 -0
  11. package/knowledge/search/requires-framework.js +72 -0
  12. package/knowledge/search/search-knowledge.js +226 -0
  13. package/package.json +9 -9
  14. package/resource/_schema/feature-aliases.yaml +10 -0
  15. package/resource/_schema/goal-tags.yaml +72 -0
  16. package/resource/_schema/products.yaml +16 -0
  17. package/resource/_schema/trtc-intents.yaml +27 -0
  18. package/resource/_schema/types.yaml +44 -0
  19. package/resource/index/component-slugs.json +1 -0
  20. package/resource/index/manifest.json +1 -0
  21. package/resource/{doc → integration}/callkit/preset/android/integration.md +32 -28
  22. package/resource/{doc → integration}/callkit/preset/flutter/integration.md +109 -54
  23. package/resource/integration/callkit/preset/ios/integration.md +411 -0
  24. package/resource/integration/callkit/preset/react/integration.md +499 -0
  25. package/resource/integration/callkit/preset/vue/integration.md +768 -0
  26. package/resource/{doc/chatkit → integration/chat/preset}/android/integration.md +11 -11
  27. package/resource/{doc/chatkit → integration/chat/preset}/flutter/integration.md +59 -37
  28. package/resource/integration/chat/preset/ios/integration.md +568 -0
  29. package/resource/{doc/chatkit → integration/chat/preset}/react/integration.md +127 -95
  30. package/resource/integration/chat/preset/uni-app/integration.md +494 -0
  31. package/resource/{doc/chatkit → integration/chat/preset}/vue/integration.md +163 -143
  32. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +15 -15
  33. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +25 -13
  34. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-h5-integration.md +15 -9
  35. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +31 -26
  36. package/resource/integration/roomkit/preset/vue/integration.md +571 -0
  37. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +852 -0
  38. package/resource/knowledge/callkit/core-sdk/android/make-call.md +929 -0
  39. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +364 -0
  40. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1150 -0
  41. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1216 -0
  42. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +412 -0
  43. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1191 -0
  44. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1292 -0
  45. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +537 -0
  46. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  47. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  48. package/resource/knowledge/callkit/faq/android.md +168 -0
  49. package/resource/knowledge/callkit/faq/common.md +180 -0
  50. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  51. package/resource/knowledge/callkit/faq/ios.md +116 -0
  52. package/resource/knowledge/callkit/faq/uniapp-app.md +89 -0
  53. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +217 -0
  54. package/resource/knowledge/callkit/faq/web.md +363 -0
  55. package/resource/knowledge/callkit/preset/android/api.md +413 -0
  56. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  57. package/resource/knowledge/callkit/preset/ios/api.md +256 -0
  58. package/resource/knowledge/callkit/preset/web/api.md +79 -0
  59. package/resource/knowledge/chat/preset/android/features/chat-setting.md +72 -0
  60. package/resource/knowledge/chat/preset/android/features/contact-list.md +41 -0
  61. package/resource/knowledge/chat/preset/android/features/conversation-list.md +123 -0
  62. package/resource/knowledge/chat/preset/android/features/language.md +142 -0
  63. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  64. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  65. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  66. package/resource/{doc/chatkit → knowledge/chat/preset}/android/features/theme.md +21 -18
  67. package/resource/knowledge/chat/preset/android-view/integration.md +448 -0
  68. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +62 -0
  69. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  70. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  71. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  72. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  73. package/resource/knowledge/chat/preset/flutter/features/message-list.md +163 -0
  74. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  75. package/resource/{doc/chatkit → knowledge/chat/preset}/flutter/features/theme.md +47 -19
  76. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +92 -0
  77. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  78. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  79. package/resource/knowledge/chat/preset/ios/features/language.md +105 -0
  80. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  81. package/resource/knowledge/chat/preset/ios/features/message-list.md +164 -0
  82. package/resource/knowledge/chat/preset/ios/features/search.md +94 -0
  83. package/resource/{doc/chatkit → knowledge/chat/preset}/ios/features/theme.md +54 -51
  84. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +157 -94
  85. package/resource/knowledge/chat/preset/react/features/chat-setting.md +123 -0
  86. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +256 -104
  87. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +217 -0
  88. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/conversation-list.md +86 -79
  89. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +99 -0
  90. package/resource/knowledge/chat/preset/react/features/conversation-search.md +58 -0
  91. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +30 -83
  92. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-list.md +22 -25
  93. package/resource/knowledge/chat/preset/react/features/search.md +531 -0
  94. package/resource/knowledge/chat/preset/react/features/theme.md +16 -0
  95. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  96. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/chat-setting.md +0 -4
  97. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/contact-list.md +59 -53
  98. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-actions.md +49 -43
  99. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-list.md +61 -49
  100. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-preview.md +43 -40
  101. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +1 -1
  102. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/message-input.md +128 -105
  103. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/message-list.md +108 -195
  104. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +74 -68
  105. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  106. package/resource/knowledge/chat/urls/error-code.md +16 -0
  107. package/resource/knowledge/chat/urls/product.md +61 -0
  108. package/resource/knowledge/chat/urls/restapi.md +226 -0
  109. package/resource/knowledge/chat/urls/sdk/android.md +84 -0
  110. package/resource/knowledge/chat/urls/sdk/flutter.md +73 -0
  111. package/resource/knowledge/chat/urls/sdk/ios.md +84 -0
  112. package/resource/knowledge/chat/urls/sdk/web.md +88 -0
  113. package/resource/knowledge/chat/urls/webhook.md +73 -0
  114. package/resource/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/AudioEffectStore.md +79 -76
  115. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  116. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  117. package/resource/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/CameraView.md +7 -6
  118. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  119. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  120. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  121. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  122. package/resource/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/LikeStore.md +12 -10
  123. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  124. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  125. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +439 -0
  126. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +221 -0
  127. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/AudioEffectStore.md +79 -76
  128. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  129. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/BaseBeautyStore.md +43 -45
  130. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +420 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  135. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/LikeStore.md +12 -11
  136. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  137. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/LiveCoreView.md +49 -42
  138. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +397 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +183 -0
  140. package/resource/{doc/livekit/core-sdk/live/ios/api-reference → knowledge/livekit/core-sdk/api-reference/ios}/AudioEffectStore.md +79 -75
  141. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  148. package/resource/{doc/livekit/core-sdk/live/ios/api-reference → knowledge/livekit/core-sdk/api-reference/ios}/LikeStore.md +12 -10
  149. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +434 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +187 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +780 -0
  154. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +59 -51
  155. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +37 -34
  156. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +68 -38
  157. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +18 -15
  158. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +17 -17
  159. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +86 -80
  160. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +53 -49
  161. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +47 -45
  162. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +26 -22
  163. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +16 -13
  164. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +28 -24
  165. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +33 -21
  166. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +29 -25
  167. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +21 -20
  168. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +78 -69
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-host-interaction.md +47 -43
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +48 -45
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +27 -23
  172. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +15 -12
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +39 -36
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +42 -29
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +19 -16
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +20 -19
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +55 -49
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +50 -46
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +48 -46
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +26 -22
  181. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +59 -51
  182. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +41 -38
  183. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +67 -37
  184. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +53 -46
  185. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +86 -80
  186. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +45 -40
  187. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +43 -42
  188. package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +523 -0
  189. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-audience-list.md +16 -13
  190. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-audio-effect.md +54 -50
  191. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-barrage.md +33 -21
  192. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +34 -28
  193. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-gift.md +73 -64
  194. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +46 -43
  195. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-room-list.md +165 -148
  196. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +19 -16
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +40 -37
  198. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +41 -28
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +54 -47
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +52 -46
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +55 -50
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +47 -45
  203. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +404 -0
  204. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-audience-list.md +40 -57
  205. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-audio-effect.md +38 -49
  206. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-barrage.md +53 -53
  207. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-co-guest-interaction.md +106 -116
  208. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-gift.md +49 -59
  209. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-integration.md +52 -45
  210. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-room-list.md +38 -46
  211. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +915 -0
  212. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +179 -0
  213. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +419 -0
  214. package/resource/knowledge/push/config/android/fcm.md +133 -0
  215. package/resource/knowledge/push/config/android/honor.md +111 -0
  216. package/resource/knowledge/push/config/android/huawei.md +106 -0
  217. package/resource/knowledge/push/config/android/meizu.md +121 -0
  218. package/resource/knowledge/push/config/android/oppo.md +108 -0
  219. package/resource/knowledge/push/config/android/vivo.md +101 -0
  220. package/resource/knowledge/push/config/android/xiaomi.md +99 -0
  221. package/resource/knowledge/push/integration/android.md +1028 -0
  222. package/resource/knowledge/push/integration/donut.md +271 -0
  223. package/resource/knowledge/push/integration/flutter.md +363 -0
  224. package/resource/knowledge/push/integration/harmonyos.md +72 -0
  225. package/resource/knowledge/push/integration/ios.md +705 -0
  226. package/resource/knowledge/push/integration/react-native.md +337 -0
  227. package/resource/knowledge/push/integration/uni-app.md +461 -0
  228. package/resource/knowledge/push/integration/unity.md +357 -0
  229. package/resource/knowledge/push/integration/unreal-engine.md +353 -0
  230. package/resource/knowledge/push/overview/prepare.md +30 -0
  231. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/call-user-to-room.md +22 -20
  232. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/room-participant-state.md +22 -193
  233. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/room-state.md +33 -32
  234. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/schedule-room.md +30 -29
  235. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  236. package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/room-participant-state.md +22 -21
  237. package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/room-state.md +29 -28
  238. package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/schedule-room.md +17 -16
  239. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/call-user-to-room.md +22 -20
  240. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/room-participant-state.md +49 -218
  241. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/room-state.md +37 -37
  242. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/schedule-room.md +28 -28
  243. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/call-user-to-room.md +122 -7
  244. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +318 -3
  245. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +1504 -0
  246. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/free-beauty-panel.md +4 -3
  247. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +709 -0
  248. package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +1105 -0
  249. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +635 -0
  250. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +529 -0
  251. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/schedule-room.md +256 -13
  252. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/screen-share.md +218 -25
  253. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/virtual-background.md +4 -3
  254. package/resource/{doc/roomkit → knowledge/roomkit/preset}/android/integration.md +50 -64
  255. package/resource/{doc/roomkit → knowledge/roomkit/preset}/flutter/integration.md +34 -31
  256. package/resource/{doc/roomkit → knowledge/roomkit/preset}/ios/integration.md +45 -53
  257. package/resource/knowledge/roomkit/preset/react/integration.md +571 -0
  258. package/resource/{doc → knowledge}/rtcengine/web/how_to_run_web_sdk_demo.md +31 -15
  259. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +9 -3
  260. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +1 -1
  261. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  262. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +6 -6
  263. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  264. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +4 -4
  265. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +4 -4
  266. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  267. package/resource/{doc → knowledge}/trtc/android/TRTCCloud.md +547 -495
  268. package/resource/{doc → knowledge}/trtc/android/TRTCCloudDef.md +434 -403
  269. package/resource/{doc → knowledge}/trtc/android/TRTCCloudListener.md +394 -348
  270. package/resource/{doc → knowledge}/trtc/android/TRTCStatistics.md +17 -15
  271. package/resource/{doc → knowledge}/trtc/android/TXAudioEffectManager.md +227 -197
  272. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  273. package/resource/{doc → knowledge}/trtc/android/TXDeviceManager.md +70 -63
  274. package/resource/{doc → knowledge}/trtc/android/TXLiteAVCode.md +19 -17
  275. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/ITRTCCloud.md +599 -544
  276. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/ITRTCStatistics.md +17 -15
  277. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  278. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +403 -0
  279. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TRTCCloudCallback.md +439 -387
  280. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TRTCTypeDef.md +417 -387
  281. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TXLiteAVCode.md +19 -17
  282. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCCloud.md +619 -559
  283. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCCloudDelegate.md +409 -360
  284. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCStatistics.md +17 -15
  285. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXAudioEffectManager.md +187 -164
  286. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  287. package/resource/knowledge/trtc/ios/TXDeviceManager.md +399 -0
  288. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXLiteAVCode.md +19 -17
  289. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXLiveSDKTypeDef.md +422 -396
  290. package/server-config.js +0 -1
  291. package/server.js +22 -12
  292. package/streamable-http.js +0 -1
  293. package/tools/call/get_native_call_uikit_integration.js +2 -4
  294. package/tools/call/get_native_callkit_core_integration.js +2 -6
  295. package/tools/call/get_web_call_uikit_integration.js +2 -4
  296. package/tools/chat/get_native_chat_uikit_integration.js +2 -4
  297. package/tools/chat/get_web_chat_uikit_integration.js +2 -4
  298. package/tools/common/get_usersig.js +0 -1
  299. package/tools/common/present_framework_choice.js +9 -4
  300. package/tools/common/record_answer.js +19 -26
  301. package/tools/common/record_feedback.js +17 -31
  302. package/tools/common/search_trtc_knowledge.js +44 -0
  303. package/tools/definitions/get_native_call_uikit_integration_def.js +2 -1
  304. package/tools/definitions/get_native_callkit_core_integration_def.js +2 -1
  305. package/tools/definitions/get_native_chat_uikit_integration_def.js +3 -2
  306. package/tools/definitions/get_native_livekit_core_integration_def.js +2 -1
  307. package/tools/definitions/get_usersig_def.js +0 -1
  308. package/tools/definitions/get_web_call_uikit_integration_def.js +2 -1
  309. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
  310. package/tools/definitions/get_web_live_uikit_integration_def.js +4 -3
  311. package/tools/definitions/get_web_room_core_integration_def.js +46 -0
  312. package/tools/definitions/get_web_room_uikit_integration_def.js +3 -1
  313. package/tools/definitions/integration-boundary.js +5 -0
  314. package/tools/definitions/present_framework_choice_def.js +11 -10
  315. package/tools/definitions/record_answer_def.js +6 -5
  316. package/tools/definitions/record_feedback_def.js +4 -3
  317. package/tools/definitions/search_trtc_knowledge_def.js +69 -0
  318. package/tools/index.js +5 -37
  319. package/tools/live/get_native_livekit_core_integration.js +1 -4
  320. package/tools/live/get_web_live_uikit_integration.js +2 -5
  321. package/tools/room/get_web_room_core_integration.js +47 -0
  322. package/tools/room/get_web_room_uikit_integration.js +2 -4
  323. package/utils/generate-structured-result.js +4 -11
  324. package/utils/generate-usersig.js +0 -1
  325. package/utils/get-device-identifier.js +0 -1
  326. package/utils/get-doc-content.js +14 -9
  327. package/utils/http-get.js +0 -1
  328. package/utils/http-post.js +0 -1
  329. package/utils/report-cls-client.js +22 -21
  330. package/utils/report-es-client.js +1 -2
  331. package/utils/report-runtime-error-cls-client.js +0 -1
  332. package/index.js.map +0 -1
  333. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  334. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -942
  335. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -876
  336. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -368
  337. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1132
  338. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1206
  339. package/resource/doc/callkit/core-sdk/flutter/offline-push.md +0 -357
  340. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1009
  341. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1154
  342. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -470
  343. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -1146
  344. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1267
  345. package/resource/doc/callkit/faq/android-faq.md +0 -767
  346. package/resource/doc/callkit/faq/flutter-faq.md +0 -749
  347. package/resource/doc/callkit/faq/ios-faq.md +0 -759
  348. package/resource/doc/callkit/faq/web-faq.md +0 -753
  349. package/resource/doc/callkit/preset/android/api.md +0 -330
  350. package/resource/doc/callkit/preset/flutter/api.md +0 -401
  351. package/resource/doc/callkit/preset/ios/api.md +0 -282
  352. package/resource/doc/callkit/preset/ios/integration.md +0 -188
  353. package/resource/doc/callkit/preset/react/api.md +0 -600
  354. package/resource/doc/callkit/preset/react/integration.md +0 -86
  355. package/resource/doc/callkit/preset/vue/api.md +0 -600
  356. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  357. package/resource/doc/chatkit/android/faq.md +0 -109
  358. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -280
  359. package/resource/doc/chatkit/faq/common/product.md +0 -82
  360. package/resource/doc/chatkit/faq/common/server.md +0 -53
  361. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  362. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -183
  363. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -54
  364. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -279
  365. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  366. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -292
  367. package/resource/doc/chatkit/flutter/faq.md +0 -22
  368. package/resource/doc/chatkit/ios/faq.md +0 -109
  369. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  370. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  371. package/resource/doc/chatkit/react/components/chat-setting.md +0 -117
  372. package/resource/doc/chatkit/react/components/chat.md +0 -38
  373. package/resource/doc/chatkit/react/components/component-list.md +0 -35
  374. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  375. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -116
  376. package/resource/doc/chatkit/react/components/conversation-search.md +0 -57
  377. package/resource/doc/chatkit/react/components/search.md +0 -282
  378. package/resource/doc/chatkit/react/components/tuikit.md +0 -43
  379. package/resource/doc/chatkit/react/faq.md +0 -26
  380. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  381. package/resource/doc/chatkit/vue/components/chat-header.md +0 -149
  382. package/resource/doc/chatkit/vue/components/chat.md +0 -42
  383. package/resource/doc/chatkit/vue/components/component-list.md +0 -89
  384. package/resource/doc/chatkit/vue/components/tuikit.md +0 -45
  385. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  386. package/resource/doc/chatkit/vue/faq.md +0 -35
  387. package/resource/doc/livekit/core-sdk/live/android/api-reference/BarrageStore.md +0 -148
  388. package/resource/doc/livekit/core-sdk/live/android/api-reference/BattleStore.md +0 -316
  389. package/resource/doc/livekit/core-sdk/live/android/api-reference/CoGuestStore.md +0 -419
  390. package/resource/doc/livekit/core-sdk/live/android/api-reference/CoHostStore.md +0 -325
  391. package/resource/doc/livekit/core-sdk/live/android/api-reference/DeviceStore.md +0 -436
  392. package/resource/doc/livekit/core-sdk/live/android/api-reference/GiftStore.md +0 -165
  393. package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveAudienceStore.md +0 -239
  394. package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveCoreView.md +0 -74
  395. package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveSeatStore.md +0 -417
  396. package/resource/doc/livekit/core-sdk/live/android/api-reference/LoginStore.md +0 -207
  397. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BarrageStore.md +0 -158
  398. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BattleStore.md +0 -304
  399. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoGuestStore.md +0 -394
  400. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoHostStore.md +0 -303
  401. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/DeviceStore.md +0 -410
  402. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/GiftStore.md +0 -160
  403. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveAudienceStore.md +0 -231
  404. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveSeatStore.md +0 -375
  405. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LoginStore.md +0 -170
  406. package/resource/doc/livekit/core-sdk/live/ios/api-reference/BarrageStore.md +0 -165
  407. package/resource/doc/livekit/core-sdk/live/ios/api-reference/BaseBeautyStore.md +0 -143
  408. package/resource/doc/livekit/core-sdk/live/ios/api-reference/BattleStore.md +0 -298
  409. package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoGuestStore.md +0 -349
  410. package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoHostStore.md +0 -297
  411. package/resource/doc/livekit/core-sdk/live/ios/api-reference/DeviceStore.md +0 -471
  412. package/resource/doc/livekit/core-sdk/live/ios/api-reference/GiftStore.md +0 -179
  413. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveAudienceStore.md +0 -238
  414. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveCoreView.md +0 -74
  415. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveSeatStore.md +0 -412
  416. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LoginStore.md +0 -173
  417. package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +0 -365
  418. package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +0 -336
  419. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  420. package/resource/doc/livekit/preset/live/vue/components/barrage.md +0 -291
  421. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -88
  422. package/resource/doc/livekit/preset/live/vue/components/live-audience-list.md +0 -164
  423. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -130
  424. package/resource/doc/livekit/preset/live/vue/components/live-view.md +0 -203
  425. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -211
  426. package/resource/doc/livekit/preset/live/vue/faq.md +0 -1
  427. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  428. package/resource/doc/roomkit/flutter/features/call-user-to-room.md +0 -228
  429. package/resource/doc/roomkit/vue/faq.md +0 -1
  430. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  431. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  432. package/resource/doc/roomkit/vue/features/room-participant-state.md +0 -385
  433. package/resource/doc/roomkit/vue/features/room-state.md +0 -280
  434. package/resource/doc/roomkit/vue/features/room-view.md +0 -241
  435. package/resource/doc/roomkit/vue/integration.md +0 -315
  436. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  437. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -472
  438. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -388
  439. package/resource/doc/trtc/android/TXBeautyManager.md +0 -403
  440. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -404
  441. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -382
  442. package/server-config.js.map +0 -1
  443. package/server.js.map +0 -1
  444. package/streamable-http.js.map +0 -1
  445. package/tools/call/get_callkit_api.js +0 -33
  446. package/tools/call/get_callkit_api.js.map +0 -1
  447. package/tools/call/get_native_call_uikit_integration.js.map +0 -1
  448. package/tools/call/get_native_callkit_core_integration.js.map +0 -1
  449. package/tools/call/get_web_call_uikit_integration.js.map +0 -1
  450. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  451. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  452. package/tools/chat/get_native_chat_uikit_integration.js.map +0 -1
  453. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  454. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  455. package/tools/chat/get_web_chat_uikit_integration.js.map +0 -1
  456. package/tools/common/get_faq.js +0 -266
  457. package/tools/common/get_faq.js.map +0 -1
  458. package/tools/common/get_usersig.js.map +0 -1
  459. package/tools/common/present_framework_choice.js.map +0 -1
  460. package/tools/common/record_answer.js.map +0 -1
  461. package/tools/common/record_feedback.js.map +0 -1
  462. package/tools/common/record_skill_session.js +0 -69
  463. package/tools/common/record_skill_session.js.map +0 -1
  464. package/tools/definitions/get_callkit_api_def.js +0 -28
  465. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  466. package/tools/definitions/get_faq_def.js +0 -40
  467. package/tools/definitions/get_faq_def.js.map +0 -1
  468. package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
  469. package/tools/definitions/get_native_callkit_core_integration_def.js.map +0 -1
  470. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  471. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  472. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +0 -1
  473. package/tools/definitions/get_native_livekit_core_features_def.js +0 -33
  474. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  475. package/tools/definitions/get_native_livekit_core_integration_def.js.map +0 -1
  476. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  477. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  478. package/tools/definitions/get_usersig_def.js.map +0 -1
  479. package/tools/definitions/get_web_call_uikit_integration_def.js.map +0 -1
  480. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  481. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  482. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +0 -1
  483. package/tools/definitions/get_web_live_uikit_integration_def.js.map +0 -1
  484. package/tools/definitions/get_web_livekit_api_def.js +0 -27
  485. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  486. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -29
  487. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  488. package/tools/definitions/get_web_room_uikit_integration_def.js.map +0 -1
  489. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -30
  490. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  491. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -25
  492. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  493. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -25
  494. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  495. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -25
  496. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  497. package/tools/definitions/present_framework_choice_def.js.map +0 -1
  498. package/tools/definitions/record_answer_def.js.map +0 -1
  499. package/tools/definitions/record_feedback_def.js.map +0 -1
  500. package/tools/definitions/record_skill_session_def.js +0 -31
  501. package/tools/definitions/record_skill_session_def.js.map +0 -1
  502. package/tools/index.js.map +0 -1
  503. package/tools/live/get_native_livekit_core_features.js +0 -68
  504. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  505. package/tools/live/get_native_livekit_core_integration.js.map +0 -1
  506. package/tools/live/get_web_live_uikit_integration.js.map +0 -1
  507. package/tools/live/get_web_livekit_api.js +0 -33
  508. package/tools/live/get_web_livekit_api.js.map +0 -1
  509. package/tools/live/get_web_livekit_component_detail.js +0 -35
  510. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  511. package/tools/room/get_web_room_uikit_integration.js.map +0 -1
  512. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  513. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  514. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  515. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  516. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  517. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  518. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  519. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  520. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  521. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  522. package/utils/build-session-directives.js +0 -122
  523. package/utils/build-session-directives.js.map +0 -1
  524. package/utils/generate-structured-result.js.map +0 -1
  525. package/utils/generate-usersig.js.map +0 -1
  526. package/utils/get-device-identifier.js.map +0 -1
  527. package/utils/get-doc-content.js.map +0 -1
  528. package/utils/handle-framework.js +0 -9
  529. package/utils/handle-framework.js.map +0 -1
  530. package/utils/handle-state-name.js +0 -29
  531. package/utils/handle-state-name.js.map +0 -1
  532. package/utils/http-get.js.map +0 -1
  533. package/utils/http-post.js.map +0 -1
  534. package/utils/report-cls-client.js.map +0 -1
  535. package/utils/report-es-client.js.map +0 -1
  536. package/utils/report-runtime-error-cls-client.js.map +0 -1
  537. /package/resource/{doc/callkit/faq/common → knowledge/callkit/faq}/error-code.md +0 -0
  538. /package/resource/{doc/livekit/faq/common → knowledge/livekit/faq}/error-code.md +0 -0
  539. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  540. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  541. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  542. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/38-advanced-basic-beauty.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  552. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  553. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  554. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  555. /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
  556. /package/resource/{doc/rtcengine/faq/common → knowledge/share}/userSig.md +0 -0
@@ -0,0 +1,179 @@
1
+ `TUILiveKit` 观众列表组件为直播场景提供实时在线观众展示方案,帮助开发者直观掌握直播间观众构成。通过本文档,可快速集成观众列表功能,并支持深度定制以满足业务需求。
2
+
3
+ ## 组件构成
4
+
5
+ |**组件名称**|**具体内容**|
6
+ |---------|---------|
7
+ |**观众列表组件(LiveAudienceList)**|负责实时展示直播间在线观众的组件,提供**头像、昵称展示、自定义观众标识和完整列表项定制**等能力,支持通过插槽和属性进行灵活配置。|
8
+
9
+ ## 组件接入
10
+
11
+ ### 步骤1:环境配置及开通服务
12
+
13
+ 在进行快速接入之前,请参考 准备工作,完成相关环境配置及开通对应服务。
14
+
15
+ ### 步骤2:安装依赖
16
+
17
+ 【npm】
18
+ ``` bash
19
+ npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 --save
20
+ ```
21
+
22
+ 【pnpm】
23
+ ``` bash
24
+ pnpm add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
25
+ ```
26
+
27
+ 【yarn】
28
+ ``` bash
29
+ yarn add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
30
+ ```
31
+
32
+ ### 步骤3:集成观众列表组件
33
+
34
+ 在项目中引入并使用观众列表组件,可直接复制如下代码示例用于展示直播间观众列表。
35
+ ``` typescript
36
+ <template>
37
+ <UIKitProvider theme="dark">
38
+ <div class="app">
39
+ <div class="live-audience-container">
40
+ <LiveAudienceList class="live-audience-list"/>
41
+ </div>
42
+ </div>
43
+ </UIKitProvider>
44
+ </template>
45
+
46
+ <script setup lang="ts">
47
+ import { onMounted } from 'vue';
48
+ import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
49
+ import { LiveAudienceList, useLoginState, useLiveListState } from 'tuikit-atomicx-vue3';
50
+
51
+ const { login } = useLoginState();
52
+ const { joinLive } = useLiveListState();
53
+
54
+ async function initLogin() {
55
+ try {
56
+ await login({
57
+ sdkAppId: 0, // SDKAppID, 可以参考步骤 1 获取
58
+ userId: '', // UserID, 可以参考步骤 1 获取
59
+ userSig: '', // userSig, 可以参考步骤 1 获取
60
+ });
61
+ } catch (error) {
62
+ console.error('登录失败:', error);
63
+ }
64
+ }
65
+
66
+ onMounted(async () => {
67
+ await initLogin();
68
+ await joinLive({
69
+ liveId: '输入对应直播间 LiveId', // 进入直播间
70
+ });
71
+ });
72
+ </script>
73
+
74
+ <style>.live-audience-container{display:flex;height:100%;width:300px;padding:20px}.live-audience-list{width:100%;height:100%}</style>
75
+ ```
76
+
77
+ ## 自定义组件
78
+
79
+ **观众列表组件**提供了灵活的自定义能力,您可以根据业务需求选择不同的定制方式:
80
+
81
+ |**定制场景**|**推荐方式**|**说明**|
82
+ |---------|---------|---------|
83
+ |仅调整组件容器的高度、样式等|Props: `height` / `style`|最简单,几行属性配置即可实现。|
84
+ |在观众头像和昵称之间添加自定义标识(如 VIP 徽章、禁言标识)|Slot: `audience-mark`|通过插槽注入自定义标识元素,保留默认的列表项布局。|
85
+ |完全替换整个观众列表项的渲染,实现排名、自定义布局等|Slot: `audience-item`|最灵活,完全接管每个列表项的渲染逻辑。**优先级高于**`audience-mark`。|
86
+
87
+ | <strong>修改前</strong> | <strong>修改后</strong> | |
88
+ | --- | --- | --- |
89
+ | <strong>自定义观众标识(audience-mark)</strong> | <strong>完全接管列表项渲染(audience-item)</strong> | |
90
+ | | | |
91
+
92
+ ### 自定义观众标识(audience-mark 插槽)
93
+
94
+ 通过 [audience-mark](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveAudienceListComponent) 插槽,您可以在观众头像和昵称之间插入自定义标识元素(例如 VIP 徽章、禁言状态等),同时保留组件默认的列表项布局。
95
+
96
+ #### 插槽参数
97
+
98
+ |**插槽名**|**参数名**|**参数类型**|**说明**|
99
+ |---------|---------|---------|---------|
100
+ |audience-mark|audience|[AudienceInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#type-AudienceInfo)|当前观众信息对象,包含 `userId`、`userName`、`avatarUrl`、`isMessageDisabled` 等字段。|
101
+
102
+ 以下示例演示了如何根据观众数据动态渲染 **VIP 身份徽章**和**禁言状态标识**:
103
+ ``` typescript
104
+ <template>
105
+ <LiveAudienceList>
106
+ <template #audience-mark="{ audience }">
107
+ <div class="custom-mark">
108
+ <span v-if="isVip(audience.userId)" class="vip-badge">VIP</span>
109
+ <span v-if="audience.isMessageDisabled" class="muted-badge">🔇</span>
110
+ </div>
111
+ </template>
112
+ </LiveAudienceList>
113
+ </template>
114
+
115
+ <script setup lang="ts">
116
+ import { LiveAudienceList } from 'tuikit-atomicx-vue3';
117
+
118
+ const vipUserIds = ['user_vip_001', 'user_vip_002'];
119
+ const isVip = (userId: string) => vipUserIds.includes(userId);
120
+ </script>
121
+
122
+ <style scoped>.custom-mark{display:flex;align-items:center;gap:4px}.vip-badge{background:linear-gradient(135deg,#ffd700,#ffb347);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px}.muted-badge{font-size:14px;opacity:.7}</style>
123
+ ```
124
+
125
+ ### 完全接管列表项渲染(audience-item 插槽)
126
+
127
+ 使用 [audience-item](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveAudienceListComponent) 插槽可获取观众的完整信息和列表索引,自由实现排名、自定义布局等效果。
128
+
129
+ #### 插槽参数
130
+ | <strong>插槽名</strong> | <strong>参数名</strong> | <strong>参数类型</strong> | <strong>说明</strong> |
131
+ | --- | --- | --- | --- |
132
+ | audience-item | index | number | 当前观众在列表中的索引位置。 |
133
+ | audience | <a href="https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#type-AudienceInfo">AudienceInfo</a> | 当前观众信息对象,包含 <code>userId</code>、<code>userName</code>、<code>avatarUrl</code> 等字段。 | |
134
+
135
+ 以下示例演示了如何利用 `index` 和 `audience` 数据实现带排名奖牌的观众列表:
136
+ ``` typescript
137
+ <template>
138
+ <LiveAudienceList>
139
+ <template #audience-item="{ index, audience }">
140
+ <div class="custom-audience-item">
141
+ <span v-if="index === 0" class="medal">🥇</span>
142
+ <span v-else-if="index === 1" class="medal">🥈</span>
143
+ <span v-else-if="index === 2" class="medal">🥉</span>
144
+ <span v-else class="rank-number">{{ index + 1 }}</span>
145
+
146
+ <span class="name">{{ audience.userName || audience.userId }}</span>
147
+ </div>
148
+ </template>
149
+ </LiveAudienceList>
150
+ </template>
151
+
152
+ <script setup lang="ts">
153
+ import { LiveAudienceList } from 'tuikit-atomicx-vue3';
154
+ </script>
155
+
156
+ <style scoped>.custom-audience-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,0.05)}.medal{font-size:20px}.rank-number{font-size:14px;font-weight:600;color:rgba(255,255,255,0.5);min-width:24px;text-align:center}.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.name{font-size:14px;color:rgba(255,255,255,0.85);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}</style>
157
+ ```
158
+
159
+ ### props 速查表
160
+
161
+ |**参数名**|**参数类型**|**默认值**|**说明**|
162
+ |---------|---------|---------|---------|
163
+ |height|String|'500px'|组件高度,支持 CSS 单位(px、%、vh 等)。|
164
+ |style|CSSProperties|{}|自定义样式对象,用于覆盖组件默认样式。|
165
+
166
+ ## 常见问题
167
+
168
+ ### 如何区分房主和观众?
169
+
170
+ 您可以通过 `useLiveListState` 获取当前直播间信息,将观众的 `userId` 与直播间 [ownerId](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#interface-TUIRoomInfo) 对比来判断:
171
+ ``` typescript
172
+ import { useLiveListState } from 'tuikit-atomicx-vue3';
173
+
174
+ const { currentLive } = useLiveListState();
175
+
176
+ function isLiveOwner(userId: string): boolean {
177
+ return userId === currentLive.value?.liveOwner.userId;
178
+ }
179
+ ```
@@ -0,0 +1,419 @@
1
+ 本文详细介绍了**直播视频组件(LiveView)**的接入方式与自定义能力。您可以直接参考本文示例快速集成组件,也可以根据业务需求对控制栏、插槽和播放器 UI 进行深度定制。
2
+
3
+ ## 核心功能
4
+ | <strong>功能分类</strong> | <strong>具体能力</strong> |
5
+ | --- | --- |
6
+ | <strong>智能流切换</strong> | <strong>LiveView</strong> 能够根据当前用户的身份(观众或连麦者)自动切换流类型。<br>- <strong>观众模式</strong>: 组件将播放超低延迟视频流,确保数百万观众都能流畅观看,同时大幅节省流量成本。<br>- <strong>连线模式</strong>: 组件会自动切换到实时音视频流,提供毫秒级的超低延迟,保证连线用户之间实时、清晰的互动体验。 |
7
+ | <strong>多人连麦布局</strong> | 自动适配单人与多人连麦场景的视频流布局,包含 <code>Loading</code> 动画和主播离开提示等状态展示。 |
8
+ | <strong>内置播放器控制栏</strong> | 开箱即用的播放器控制栏,包含<strong>播放/暂停、音量调节、清晰度切换(360P-1080P)、画中画、全屏</strong>等功能。 |
9
+ | <strong>可定制化 UI</strong> | LiveView 提供从轻度到深度的渐进式自定义能力:<br>- <strong>插槽注入</strong>:通过 Slot 在视频流上叠加水印、自定义 Loading、自定义连麦麦位 UI 等。<br>- <strong>控制栏配置</strong>:隐藏/禁用/替换图标等方式定制内置按钮,或添加业务自定义按钮。<br>- <strong>自定义控制栏 UI</strong>:隐藏内置控制栏,通过 <code>useLivePlayerState()</code> 提供的完整响应式状态和控制方法,构建 100% 自定义的播放控制界面。 |
10
+
11
+ ## 效果展示
12
+
13
+ |**自定义连麦挂件**|**自定义控制栏操作按钮**|
14
+ |---------|---------|
15
+ |||
16
+ |**自定义刷新时 Loading 效果**|**自定义播放器控制栏 UI 样式**|
17
+ |||
18
+
19
+ ## 准备工作
20
+
21
+ 在开始调整视频挂件前,请先参考 [主播开播](https://cloud.tencent.com/document/product/647/123470) 和 [观众观看](https://cloud.tencent.com/document/product/647/123004) 完成主流程的搭建。
22
+
23
+ ## 组件定制化
24
+
25
+ [LiveView](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveViewComponent) 提供从轻度到深度的渐进式自定义能力,您可以根据业务需求选择合适的定制方式。
26
+
27
+ ### 组件插槽
28
+
29
+ LiveView 提供以下插槽,用于自定义视频流上层的 UI 内容。
30
+
31
+ |**名称**|**参数**|**参数类型**|**说明**|
32
+ |---------|---------|---------|---------|
33
+ |<br>[center-overlay](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveViewComponent)|-|-|插槽内容会居中叠加在视频流上层,适合放置暂停按钮、水印等自定义元素。|
34
+ |<br>[streamViewUI](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveViewComponent)|userInfo|<br>[SeatUserInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#type-SeatUserInfo)|当前麦位上的用户信息,包含 `userId`、`userName`、`avatarUrl`、`microphoneStatus`、`cameraStatus` 等字段。如果麦位为空,则 `userInfo.userId` 为空字符串。|
35
+
36
+ #### center-overlay 插槽
37
+
38
+ 使用 [center-overlay](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveViewComponent) 插槽可以在视频流上层叠加自定义内容,不影响底层视频播放。适合放置水印、暂停按钮、视频刷新时 Loading 等覆盖层元素。
39
+
40
+ ##### 基本用法
41
+ ``` typescript
42
+ <LiveView>
43
+ <template #center-overlay>
44
+ <div class="watermark-container">
45
+ <div class="watermark-grid">
46
+ <span v-for="n in 20" :key="n" class="watermark-item">Live</span>
47
+ </div>
48
+ </div>
49
+ </template>
50
+ </LiveView>
51
+
52
+ <style scoped>.watermark-container{position:absolute;inset:0;overflow:hidden;pointer-events:none;user-select:none}.watermark-grid{position:absolute;top:-50%;left:-50%;width:200%;height:200%;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:60px 80px;transform:rotate(-30deg)}.watermark-item{color:rgba(255,255,255,.15);font-size:18px;font-weight:700;letter-spacing:2px;white-space:nowrap}</style>
53
+ ```
54
+
55
+ ##### 自定义刷新 Loading 示例
56
+
57
+ 结合 `useLivePlayerState()` 的 `refresh` 方法,实现带品牌 Logo 的刷新加载动画:
58
+ ``` typescript
59
+ <template>
60
+ <LiveView>
61
+ <template #center-overlay>
62
+ <div v-if="isRefreshing" class="refresh-overlay">
63
+
64
+ <div class="refresh-spinner" />
65
+ <span class="refresh-text">加载中...</span>
66
+ </div>
67
+ <div v-else class="watermark">LIVE</div>
68
+ </template>
69
+ </LiveView>
70
+ <button @click="handleRefresh">刷新</button>
71
+ </template>
72
+
73
+ <script setup lang="ts">
74
+ import { ref } from 'vue';
75
+ import { LiveView, useLivePlayerState } from 'tuikit-atomicx-vue3';
76
+
77
+ const { refresh } = useLivePlayerState();
78
+ const isRefreshing = ref(false);
79
+
80
+ async function handleRefresh() {
81
+ isRefreshing.value = true;
82
+ await refresh();
83
+ isRefreshing.value = false;
84
+ }
85
+ </script>
86
+
87
+ <style scoped>.refresh-overlay{display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}.refresh-logo{width:40px;height:40px;object-fit:contain}.refresh-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.refresh-text{color:rgba(255,255,255,.8);font-size:14px}.watermark{color:rgba(255,255,255,.3);font-size:24px;font-weight:700;letter-spacing:2px;pointer-events:none;user-select:none;text-shadow:0 2px 8px rgba(0,0,0,.3)}</style>
88
+ ```
89
+
90
+ #### streamViewUI 插槽
91
+
92
+ 使用 [streamViewUI](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveViewComponent) 插槽可以完全接管每个麦位的 UI 渲染。您将获得当前麦位的用户信息,可自由实现主播/观众标识、设备状态展示、自定义布局等。
93
+
94
+ ##### 基本用法
95
+ ``` typescript
96
+ <template>
97
+ <LiveView @empty-seat-click="handleApplyForSeat">
98
+ <template #streamViewUI="{ userInfo }">
99
+ <div class="custom-stream-ui">
100
+ <span class="user-name">{{ userInfo.userName || '未知用户' }}</span>
101
+ </div>
102
+ </template>
103
+ </LiveView>
104
+ </template>
105
+
106
+ <script setup lang="ts">
107
+ import { LiveView } from 'tuikit-atomicx-vue3';
108
+
109
+ const handleApplyForSeat = (seatIndex: number) => {
110
+ console.log('点击了空麦位,索引:', seatIndex);
111
+ // 在此处发起连麦申请
112
+ };
113
+ </script>
114
+
115
+ <style scoped>.custom-stream-ui{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(transparent,rgba(0,0,0,.6));pointer-events:none}.custom-stream-ui .user-name{color:#fff;font-size:14px;font-weight:500}</style>
116
+ ```
117
+
118
+ ##### 自定义连麦 UI 示例
119
+ ``` typescript
120
+ <template>
121
+ <LiveView>
122
+ <template #streamViewUI="{ userInfo }">
123
+ <div class="stream-overlay">
124
+ <div class="top-bar">
125
+ <div class="role-badge" :class="{ 'anchor-badge': isAnchor(userInfo) }">
126
+ <span class="badge-dot" />
127
+ {{ isAnchor(userInfo) ? '主播' : '观众' }}
128
+ </div>
129
+ </div>
130
+ <div class="bottom-bar">
131
+ <div class="user-info">
132
+ <span class="user-name-text">{{ userInfo.userName || '未知用户' }}</span>
133
+ </div>
134
+ <div class="device-icons">
135
+ <div class="icon-wrapper" :class="{ off: !isMicOn(userInfo) }">
136
+ <svg viewBox="0 0 24 24" fill="none">
137
+ <path d="M12 2a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" fill="currentColor" />
138
+ <path d="M19 11a7 7 0 0 1-14 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
139
+ <path d="M12 18v3M9 21h6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
140
+ </svg>
141
+ <svg v-if="!isMicOn(userInfo)" class="slash-line" viewBox="0 0 24 24">
142
+ <line x1="5" y1="2" x2="19" y2="22" stroke="#ff4d4f" stroke-width="2" stroke-linecap="round" />
143
+ </svg>
144
+ </div>
145
+ <div class="icon-wrapper" :class="{ off: !isCameraOn(userInfo) }">
146
+ <svg viewBox="0 0 24 24" fill="none">
147
+ <rect x="2" y="5.5" width="14.5" height="13" rx="2.5" fill="currentColor" />
148
+ <path d="M17.5 10l3.5-2.2v8.4L17.5 14" fill="currentColor" />
149
+ </svg>
150
+ <svg v-if="!isCameraOn(userInfo)" class="slash-line" viewBox="0 0 24 24">
151
+ <line x1="5" y1="2" x2="19" y2="22" stroke="#ff4d4f" stroke-width="2" stroke-linecap="round" />
152
+ </svg>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </template>
158
+ </LiveView>
159
+ </template>
160
+
161
+ <script setup lang="ts">
162
+ import { LiveView, useLiveListState, DeviceStatus } from 'tuikit-atomicx-vue3';
163
+ import type { SeatUserInfo } from 'tuikit-atomicx-vue3';
164
+
165
+ const { currentLive } = useLiveListState();
166
+
167
+ const isAnchor = (userInfo: SeatUserInfo) => {
168
+ return userInfo.userId === currentLive.value?.liveOwner?.userId;
169
+ };
170
+
171
+ const isMicOn = (userInfo: SeatUserInfo) => {
172
+ return userInfo.microphoneStatus === DeviceStatus.On;
173
+ };
174
+
175
+ const isCameraOn = (userInfo: SeatUserInfo) => {
176
+ return userInfo.cameraStatus === DeviceStatus.On;
177
+ };
178
+ </script>
179
+
180
+ <style scoped>.stream-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;box-sizing:border-box;border-radius:6px;overflow:hidden}.top-bar{position:absolute;top:6px;left:6px;z-index:2}.role-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500;line-height:16px;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:rgba(255,255,255,.85)}.anchor-badge{background:linear-gradient(135deg,#ff6b35,#e8461e);color:#fff}.badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.anchor-badge .badge-dot{background:#fff;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.4}}.bottom-bar{position:absolute;bottom:0;left:0;right:0;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;padding:28px 8px 6px;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,rgba(0,0,0,.2) 50%,transparent 100%)}.user-info{flex:1;min-width:0}.user-name-text{display:block;color:#fff;font-size:11px;font-weight:500;line-height:16px;text-shadow:0 1px 3px rgba(0,0,0,.7);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-icons{display:flex;align-items:center;gap:3px;flex-shrink:0;margin-left:6px}.icon-wrapper{position:relative;width:16px;height:16px;color:rgba(255,255,255,.9);transition:color .2s ease}.icon-wrapper.off{color:rgba(255,255,255,.3)}.icon-wrapper svg{position:absolute;top:0;left:0;width:100%;height:100%}.icon-wrapper .slash-line{z-index:1}</style>
181
+ ```
182
+
183
+ ### 自定义控制栏操作按钮
184
+
185
+ [LiveView](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LiveViewComponent) 内置了播放器控制栏(播放/暂停、音量、清晰度、画中画、全屏等按钮)。通过 [useLivePlayerState()](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LivePlayerState) ,您可以 **控制播放行为、定制控制栏按钮、添加自定义按钮、监听播放器事件**。
186
+
187
+ #### 隐藏/禁用内置按钮
188
+
189
+ [buttons](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#buttons) 对象包含所有内置按钮(`play`、`volume`、`resolution`、`pictureInPicture`、`fullscreen`),直接修改即可实时生效,每个按钮支持以下属性( [ButtonState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#type-ButtonState) ):
190
+ | <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong> |
191
+ | --- | --- | --- |
192
+ | visible | boolean | 是否显示按钮。 |
193
+ | disabled | boolean | 是否禁用按钮。 |
194
+ | icon | Component \\| (() => VNode) | 自定义按钮<strong>默认态</strong>图标。<br>- <strong>Play</strong> 按钮:播放时显示(即“暂停”图标,点击可暂停)。<br>- <strong>Volume</strong> 按钮:未静音时显示(即“喇叭”图标)。<br>- <strong>PictureInPicture</strong> 按钮:非画中画时显示。<br>- <strong>Fullscreen</strong> 按钮:非全屏时显示。 |
195
+ | activeIcon | Component \\| (() => VNode) | 自定义按钮<strong>激活态</strong>图标。<br>- <strong>Play</strong> 按钮:暂停时显示(即“播放”图标,点击可恢复播放)。<br>- <strong>Volume</strong> 按钮:静音时显示(即“静音”图标)。<br>- <strong>PictureInPicture</strong> 按钮:画中画模式下显示。<br>- <strong>Fullscreen </strong>按钮:全屏模式下显示。 |
196
+ | tooltip | string | 鼠标悬浮时的提示文案。 |
197
+
198
+ ``` typescript
199
+ <script setup lang="ts">
200
+ import { useLivePlayerState } from 'tuikit-atomicx-vue3';
201
+ import MyPauseIcon from './icons/MyPauseIcon.vue';
202
+ import MyPlayIcon from './icons/MyPlayIcon.vue';
203
+ import MyVolumeOnIcon from './icons/MyVolumeOnIcon.vue';
204
+ import MyVolumeOffIcon from './icons/MyVolumeOffIcon.vue';
205
+
206
+ const { buttons } = useLivePlayerState();
207
+
208
+ // 隐藏/禁用按钮
209
+ buttons.pictureInPicture.visible = false; // 隐藏画中画按钮
210
+ buttons.fullscreen.disabled = true; // 禁用全屏按钮
211
+
212
+ // 自定义图标
213
+ buttons.play.icon = MyPauseIcon; // 默认:播放时显示(暂停按钮图标)
214
+ buttons.play.activeIcon = MyPlayIcon; // 激活:暂停时显示(恢复播放图标)
215
+ buttons.volume.icon = MyVolumeOnIcon; // 默认值:未静音时显示
216
+ buttons.volume.activeIcon = MyVolumeOffIcon; // 激活:静音时显示
217
+
218
+ // 自定义工具提示
219
+ buttons.resolution.tooltip = 'Switch Quality';
220
+ </script>
221
+ ```
222
+
223
+ #### 添加自定义按钮
224
+
225
+ 通过 [addCustomButtons](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#addCustomButtons) 在控制栏添加业务按钮(例如分享、刷新):
226
+ ``` typescript
227
+ <script setup lang="ts">
228
+ import { useLivePlayerState } from 'tuikit-atomicx-vue3';
229
+ import ShareIcon from './icons/ShareIcon.vue';
230
+
231
+ const { addCustomButtons, refresh } = useLivePlayerState();
232
+
233
+ addCustomButtons([
234
+ {
235
+ id: 'share',
236
+ icon: ShareIcon,
237
+ onClick: () => navigator.clipboard.writeText(window.location.href),
238
+ tooltip: 'Share',
239
+ position: 'end', // 'start' | 'end' | { slot: 'left'|'center'|'right' } | { anchor: ButtonId, position: 'before'|'after' }
240
+ },
241
+ ]);
242
+ </script>
243
+ ```
244
+
245
+ #### 监听播放器事件
246
+
247
+ 支持的事件有:
248
+
249
+ |事件名|事件参数|说明|
250
+ |---------|---------|---------|
251
+ |[PlayStateChange](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#event-PlayStateChange)|isPlaying: boolean|当播放状态发生变化(播放/暂停)时触发。|
252
+ |[VolumeChange](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#event-VolumeChange)|volume: number|当音量发生变化时触发。|
253
+ |[FullscreenChange](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#event-FullscreenChange)|isFullscreen: boolean|当进入或退出全屏模式时触发。|
254
+ |[PictureInPictureChange](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#event-PictureInPictureChange)|isPictureInPicture: boolean|当进入或退出画中画模式时触发。|
255
+ |[ResolutionChange](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#event-ResolutionChange)|resolution: [Resolution](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#type-Resolution)|当清晰度切换时触发。|
256
+ |[ControlBarVisibilityChange](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#event-ControlBarVisibilityChange)|visible: boolean|当控制栏可见性发生变化(显示/隐藏)时触发。|
257
+
258
+ ``` typescript
259
+ <script setup lang="ts">
260
+ import { ref } from 'vue';
261
+ import { useLivePlayerState, PlayerControlEvent } from 'tuikit-atomicx-vue3';
262
+
263
+ const { subscribeEvent } = useLivePlayerState();
264
+
265
+ const titleVisible = ref(true);
266
+ const roomNameVisible = ref(true);
267
+
268
+ // 根据全屏状态显示/隐藏直播间标题
269
+ subscribeEvent(PlayerControlEvent.FullscreenChange, (isFullscreen: boolean) => {
270
+ titleVisible.value = !isFullscreen;
271
+ });
272
+
273
+ // 根据控制栏显隐状态同步显示/隐藏房间名称
274
+ subscribeEvent(PlayerControlEvent.ControlBarVisibilityChange, (visible: boolean) => {
275
+ roomNameVisible.value = visible;
276
+ });
277
+ </script>
278
+ ```
279
+
280
+ ### 自定义控制栏 UI
281
+
282
+ 当内置控制栏的样式和布局无法满足您的业务需求时,您可以隐藏内置控制栏,使用 [useLivePlayerState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LivePlayerState) 提供的全部**响应式状态**和**控制方法**构建 100% 自定义的播放器界面。
283
+
284
+ > **说明:**`useLivePlayerState()` 是全局单例,在任意组件中调用都共享同一份状态,无需通过 props 层层传递。
285
+ >
286
+
287
+ #### 步骤一:隐藏内置控制栏
288
+ ``` typescript
289
+ <script setup lang="ts">
290
+ import { useLivePlayerState } from 'tuikit-atomicx-vue3';
291
+
292
+ const { buttons } = useLivePlayerState();
293
+
294
+ // 隐藏所有内置按钮,内置控制栏将不再渲染
295
+ Object.values(buttons).forEach(btn => (btn.visible = false));
296
+ </script>
297
+ ```
298
+
299
+ #### 步骤二:用响应式状态和控制方法驱动自定义 UI
300
+ ``` typescript
301
+ <template>
302
+ <div class="my-player" @mouseenter="showControls" @mouseleave="startAutoHide" @mousemove="showControls">
303
+ <LiveView />
304
+ <div class="my-controls" :class="{ hidden: !controlsVisible }">
305
+ <div class="controls-left">
306
+ <button class="ctrl-btn" @click="isPlaying ? pause() : resume()">
307
+ <svg v-if="!isPlaying" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z" /></svg>
308
+ <svg v-else viewBox="0 0 24 24" fill="currentColor"><rect x="6" y="4" width="4" height="16" rx="1" /><rect x="14" y="4" width="4" height="16" rx="1" /></svg>
309
+ </button>
310
+ <button class="ctrl-btn" @click="refresh()">
311
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M1 4v6h6" /><path d="M23 20v-6h-6" /><path d="M20.49 9A9 9 0 0 0 5.64 5.64L1 10M23 14l-4.64 4.36A9 9 0 0 1 3.51 15" /></svg>
312
+ </button>
313
+ <div class="volume-group">
314
+ <button class="ctrl-btn" @click="isMuted ? unmute() : mute()">
315
+ <svg v-if="!isMuted" viewBox="0 0 24 24" fill="currentColor"><path d="M11 5L6 9H2v6h4l5 4V5z" /><path d="M15.54 8.46a5 5 0 0 1 0 7.07" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" /><path d="M19.07 4.93a10 10 0 0 1 0 14.14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" /></svg>
316
+ <svg v-else viewBox="0 0 24 24" fill="currentColor"><path d="M11 5L6 9H2v6h4l5 4V5z" /><line x1="23" y1="9" x2="17" y2="15" stroke="currentColor" stroke-width="2" stroke-linecap="round" /><line x1="17" y1="9" x2="23" y2="15" stroke="currentColor" stroke-width="2" stroke-linecap="round" /></svg>
317
+ </button>
318
+ <input class="volume-slider" type="range" :value="currentVolume" min="0" max="100"
319
+ @input="setVolume(Number(($event.target as HTMLInputElement).value))" />
320
+ </div>
321
+ </div>
322
+ <div class="controls-right">
323
+ <select v-if="resolutionList.value.length > 0" class="resolution-select"
324
+ :value="currentResolution.value?.value"
325
+ @change="switchResolution(resolutionList.value.find(r => r.value === Number(($event.target as HTMLSelectElement).value)))">
326
+ <option v-for="r in resolutionList.value" :key="r.value" :value="r.value">{{ r.label }}</option>
327
+ </select>
328
+ <button class="ctrl-btn" @click="isPictureInPicture ? exitPictureInPicture() : requestPictureInPicture()">
329
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2" /><rect v-if="!isPictureInPicture" x="11" y="9" width="9" height="6" rx="1" fill="currentColor" stroke="none" /><path v-else d="M15 19l-3-3m0 0l3-3m-3 3h8" /></svg>
330
+ </button>
331
+ <button class="ctrl-btn" @click="isFullscreen ? exitFullscreen() : requestFullscreen()">
332
+ <svg v-if="!isFullscreen" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" /></svg>
333
+ <svg v-else viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 14h4v4M20 10h-4V6M14 10h4V6M4 14h4v4" /></svg>
334
+ </button>
335
+ </div>
336
+ </div>
337
+ </div>
338
+ </template>
339
+
340
+ <script setup lang="ts">
341
+ import { ref } from 'vue';
342
+ import { LiveView, useLivePlayerState } from 'tuikit-atomicx-vue3';
343
+
344
+ const {
345
+ isPlaying, currentVolume, isMuted, isFullscreen,
346
+ isPictureInPicture, currentResolution, resolutionList,
347
+ buttons,
348
+ pause, resume, refresh,
349
+ setVolume, mute, unmute,
350
+ requestFullscreen, exitFullscreen,
351
+ requestPictureInPicture, exitPictureInPicture,
352
+ switchResolution,
353
+ } = useLivePlayerState();
354
+
355
+ // 隐藏所有内置按钮
356
+ Object.values(buttons).forEach(btn => (btn.visible = false));
357
+
358
+ // 控制栏自动显隐
359
+ const controlsVisible = ref(true);
360
+ let autoHideTimer: ReturnType<typeof setTimeout> | null = null;
361
+
362
+ function showControls() {
363
+ controlsVisible.value = true;
364
+ startAutoHide();
365
+ }
366
+
367
+ function startAutoHide() {
368
+ if (autoHideTimer) clearTimeout(autoHideTimer);
369
+ autoHideTimer = setTimeout(() => { controlsVisible.value = false; }, 3000);
370
+ }
371
+ </script>
372
+
373
+ <style scoped>.my-player{position:relative;width:100%;height:100%}.my-controls{position:absolute;bottom:0;left:0;right:0;z-index:20;pointer-events:auto;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.3) 70%,transparent 100%);transition:opacity .3s ease,transform .3s ease}.my-controls.hidden{opacity:0;transform:translateY(8px);pointer-events:none}.controls-left,.controls-right{display:flex;align-items:center;gap:4px}.ctrl-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:rgba(255,255,255,.85);cursor:pointer;transition:background .15s ease,color .15s ease}.ctrl-btn:hover{background:rgba(255,255,255,.12);color:#fff}.ctrl-btn:active{background:rgba(255,255,255,.2)}.ctrl-btn svg{width:18px;height:18px}.volume-group{display:flex;align-items:center;gap:2px}.volume-slider{width:70px;height:3px;-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.25);border-radius:2px;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 0 4px rgba(0,0,0,.3)}.resolution-select{height:28px;padding:0 8px;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:rgba(0,0,0,.4);color:rgba(255,255,255,.85);font-size:11px;cursor:pointer;outline:none}.resolution-select:hover{border-color:rgba(255,255,255,.35)}.resolution-select option{background:#1a1a1a;color:#fff}</style>
374
+ ```
375
+
376
+ ### 播放控制 API 汇总
377
+
378
+ 以下 API 均通过 [useLivePlayerState()](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LivePlayerState) 获取:
379
+
380
+ |**分类**|**API**|**说明**|
381
+ |---------|---------|---------|
382
+ |响应式状态|isPlaying、isMuted、currentVolume、isFullscreen、isPictureInPicture、controlBarVisible、currentResolution、resolutionList、buttons|可直接绑定到模板的响应式状态。[buttons](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#buttons) 可通过赋值控制内置按钮的显隐、禁用和图标。|
383
+ |播放控制|pause()、resume()、refresh()|暂停、恢复播放、刷新(重新拉流)。|
384
+ |音量控制|setVolume(volume)、mute()、unmute()|设置音量(0-100)、静音、取消静音。|
385
+ |全屏|requestFullscreen()、exitFullscreen()|进入/退出全屏模式。|
386
+ |画中画|requestPictureInPicture()、exitPictureInPicture()|进入/退出画中画模式。|
387
+ |清晰度|switchResolution(resolution)|切换清晰度,参数为 [Resolution](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#type-Resolution) 对象(含 label 和 value)。|
388
+ |控制栏|showControlBar()、hideControlBar()、setAutoHideDelay(ms)|显示/隐藏控制栏、设置自动隐藏延迟。|
389
+ |自定义按钮|addCustomButtons(buttons)|添加自定义按钮到控制栏,相同 id 自动更新。|
390
+ |事件订阅|subscribeEvent(event, callback), unsubscribeEvent(event, callback)|订阅/取消订阅播放器事件。建议在进入直播间前完成注册。|
391
+
392
+ ## 常见问题
393
+
394
+ ### 如何解决浏览器自动播放受限导致的黑屏问题?
395
+
396
+ 出于用户体验考虑,现代浏览器对网页自动播放功能实施了限制性策略。您可以参考如下代码自定义播放受限弹窗,引导用户与页面交互后恢复播放。
397
+ ``` typescript
398
+ import TUIRoomEngine, { TUIAutoPlayCallbackInfo, TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';
399
+ import { TUIMessageBox } from '@tencentcloud/uikit-base-component-vue3';
400
+ import { useRoomEngine } from 'tuikit-atomicx-vue3';
401
+
402
+ // LiveView 组件的播放能力由底层的 TUIRoomEngine 提供支持。您可以监听该引擎的事件来处理更底层的播放问题
403
+ const roomEngine = useRoomEngine();
404
+
405
+ TUIRoomEngine.once('ready', () => {
406
+ roomEngine.instance?.on(TUIRoomEvents.onAutoPlayFailed, handleAutoPlayFailed);
407
+ });
408
+
409
+ function handleAutoPlayFailed(event: TUIAutoPlayCallbackInfo) {
410
+ // 可以自行弹窗引导用户与页面发生交互,交互后调用 event.resume() 方法恢复播放
411
+ TUIMessageBox.alert({
412
+ content: 'Content is ready. Click the button to start playback',
413
+ confirmText: 'Play',
414
+ callback: () => {
415
+ event.resume();
416
+ }
417
+ });
418
+ }
419
+ ```