@tencent-rtc/mcp 1.4.7 → 1.6.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 (553) hide show
  1. package/cursor-setting.png +0 -0
  2. package/index.js +0 -1
  3. package/knowledge/bm25-cache.js +73 -0
  4. package/knowledge/bm25.js +147 -0
  5. package/knowledge/build-index.js +69 -0
  6. package/knowledge/chunker.js +167 -0
  7. package/knowledge/content-loader.js +39 -0
  8. package/knowledge/doc-url-resolver.js +142 -0
  9. package/knowledge/extractors.js +25 -0
  10. package/knowledge/path-meta.js +184 -0
  11. package/knowledge/search/exact-lookup.js +497 -0
  12. package/knowledge/search/filter-pool.js +104 -0
  13. package/knowledge/search/product-scope-intent.js +40 -0
  14. package/knowledge/search/requires-framework.js +81 -0
  15. package/knowledge/search/search-knowledge.js +229 -0
  16. package/mcp-server-prompt.png +0 -0
  17. package/package.json +1 -1
  18. package/resource/_schema/feature-aliases.yaml +10 -0
  19. package/resource/_schema/goal-tags.yaml +72 -0
  20. package/resource/_schema/products.yaml +19 -0
  21. package/resource/_schema/trtc-intents.yaml +27 -0
  22. package/resource/_schema/types.yaml +43 -0
  23. package/resource/index/component-slugs.json +1 -0
  24. package/resource/index/doc-source-urls.json +1 -0
  25. package/resource/index/manifest.json +1 -0
  26. package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
  27. package/resource/integration/callkit/preset/flutter/integration.md +346 -0
  28. package/resource/integration/callkit/preset/ios/integration.md +408 -0
  29. package/resource/integration/callkit/preset/react/integration.md +362 -0
  30. package/resource/integration/callkit/preset/vue/integration.md +356 -0
  31. package/resource/integration/chat/preset/android/integration.md +500 -0
  32. package/resource/integration/chat/preset/flutter/integration.md +370 -0
  33. package/resource/integration/chat/preset/ios/integration.md +566 -0
  34. package/resource/integration/chat/preset/react/integration.md +490 -0
  35. package/resource/integration/chat/preset/vue/integration.md +504 -0
  36. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
  37. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
  38. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
  39. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
  40. package/resource/integration/roomkit/preset/vue/integration.md +562 -0
  41. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
  42. package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
  43. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
  44. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
  45. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
  46. package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
  47. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
  48. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
  49. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
  50. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  51. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  52. package/resource/knowledge/callkit/faq/android.md +92 -0
  53. package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
  54. package/resource/knowledge/callkit/faq/error-code.md +67 -0
  55. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  56. package/resource/knowledge/callkit/faq/ios.md +104 -0
  57. package/resource/knowledge/callkit/faq/web.md +74 -0
  58. package/resource/knowledge/callkit/preset/android/api.md +412 -0
  59. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  60. package/resource/knowledge/callkit/preset/ios/api.md +234 -0
  61. package/resource/knowledge/callkit/preset/web/api.md +83 -0
  62. package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
  63. package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
  64. package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
  65. package/resource/knowledge/chat/preset/android/features/language.md +136 -0
  66. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  67. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  68. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  69. package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
  70. package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
  71. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
  72. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  73. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  74. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  75. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  76. package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
  77. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  78. package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
  79. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
  80. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  81. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  82. package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
  83. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  84. package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
  85. package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
  86. package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
  87. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
  88. package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
  89. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
  90. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
  91. package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
  92. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
  93. package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
  94. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
  95. package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
  96. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
  97. package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
  98. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  99. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
  100. package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
  101. package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
  102. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
  103. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
  104. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
  105. package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
  106. package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
  107. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
  108. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  109. package/resource/knowledge/chat/urls/error-code.md +17 -0
  110. package/resource/knowledge/chat/urls/product.md +43 -0
  111. package/resource/knowledge/chat/urls/restapi.md +204 -0
  112. package/resource/knowledge/chat/urls/sdk/android.md +80 -0
  113. package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
  114. package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
  115. package/resource/knowledge/chat/urls/sdk/web.md +80 -0
  116. package/resource/knowledge/chat/urls/webhook.md +68 -0
  117. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
  118. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  119. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  120. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
  121. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  122. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  123. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  124. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  125. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
  126. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  127. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  128. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
  129. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
  130. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  135. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  136. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
  137. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  138. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  140. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
  141. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  148. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  149. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  154. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
  155. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
  156. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
  157. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
  158. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
  159. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
  160. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
  161. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
  162. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
  163. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
  164. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
  165. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
  166. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
  167. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
  168. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
  172. package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
  181. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
  182. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
  183. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
  184. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
  185. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
  186. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
  187. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
  188. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
  189. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
  190. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
  191. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
  192. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
  193. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
  194. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
  195. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
  196. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
  198. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
  203. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
  204. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
  205. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
  206. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
  207. package/resource/knowledge/livekit/faq/error-code.md +193 -0
  208. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
  209. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
  210. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
  211. package/resource/knowledge/push/config/android.md +92 -0
  212. package/resource/knowledge/push/config/harmonyos.md +83 -0
  213. package/resource/knowledge/push/config/ios.md +254 -0
  214. package/resource/knowledge/push/config/react-native.md +254 -0
  215. package/resource/knowledge/push/config/unity.md +209 -0
  216. package/resource/knowledge/push/config/unreal-engine.md +194 -0
  217. package/resource/knowledge/push/integration/android.md +404 -0
  218. package/resource/knowledge/push/integration/flutter.md +465 -0
  219. package/resource/knowledge/push/integration/harmonyos.md +63 -0
  220. package/resource/knowledge/push/integration/ios.md +246 -0
  221. package/resource/knowledge/push/integration/react-native.md +366 -0
  222. package/resource/knowledge/push/integration/uni-app.md +208 -0
  223. package/resource/knowledge/push/integration/unity.md +389 -0
  224. package/resource/knowledge/push/integration/unreal-engine.md +390 -0
  225. package/resource/knowledge/push/overview/prepare.md +60 -0
  226. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
  227. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
  228. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
  229. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
  230. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  231. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
  232. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
  233. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
  234. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
  235. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
  236. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
  237. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
  238. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
  239. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
  240. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
  241. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
  242. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
  243. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
  244. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
  245. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
  246. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
  247. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
  248. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
  249. package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
  250. package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
  251. package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
  252. package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
  253. package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
  254. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
  255. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
  256. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  257. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
  258. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  259. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
  260. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
  261. package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
  262. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  263. package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
  264. package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
  265. package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
  266. package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
  267. package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
  268. package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
  269. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
  270. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  271. package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
  272. package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
  273. package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
  274. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
  275. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  276. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
  277. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
  278. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
  279. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
  280. package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
  281. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
  282. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
  283. package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
  284. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
  285. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  286. package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
  287. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
  288. package/server-config.js +0 -1
  289. package/server.js +35 -12
  290. package/streamable-http.js +0 -1
  291. package/tools/call/get_native_call_uikit_integration.js +2 -4
  292. package/tools/call/get_native_callkit_core_integration.js +2 -6
  293. package/tools/call/get_web_call_uikit_integration.js +2 -4
  294. package/tools/chat/get_native_chat_uikit_integration.js +2 -4
  295. package/tools/chat/get_web_chat_uikit_integration.js +2 -4
  296. package/tools/common/get_usersig.js +0 -1
  297. package/tools/common/present_framework_choice.js +19 -14
  298. package/tools/common/record_answer.js +19 -26
  299. package/tools/common/record_feedback.js +17 -31
  300. package/tools/common/search_trtc_knowledge.js +44 -0
  301. package/tools/definitions/get_native_call_uikit_integration_def.js +3 -2
  302. package/tools/definitions/get_native_callkit_core_integration_def.js +5 -4
  303. package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -3
  304. package/tools/definitions/get_native_livekit_core_integration_def.js +6 -6
  305. package/tools/definitions/get_usersig_def.js +0 -1
  306. package/tools/definitions/get_web_call_uikit_integration_def.js +4 -3
  307. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
  308. package/tools/definitions/get_web_live_uikit_integration_def.js +5 -6
  309. package/tools/definitions/get_web_room_core_integration_def.js +49 -0
  310. package/tools/definitions/get_web_room_uikit_integration_def.js +5 -5
  311. package/tools/definitions/integration-boundary.js +5 -0
  312. package/tools/definitions/present_framework_choice_def.js +12 -11
  313. package/tools/definitions/record_answer_def.js +19 -18
  314. package/tools/definitions/record_feedback_def.js +14 -14
  315. package/tools/definitions/search_trtc_knowledge_def.js +39 -0
  316. package/tools/index.js +5 -37
  317. package/tools/live/get_native_livekit_core_integration.js +1 -4
  318. package/tools/live/get_web_live_uikit_integration.js +2 -5
  319. package/tools/room/get_web_room_core_integration.js +47 -0
  320. package/tools/room/get_web_room_uikit_integration.js +2 -4
  321. package/utils/generate-structured-result.js +24 -31
  322. package/utils/generate-usersig.js +0 -1
  323. package/utils/get-device-identifier.js +0 -1
  324. package/utils/get-doc-content.js +14 -9
  325. package/utils/http-get.js +0 -1
  326. package/utils/http-post.js +0 -1
  327. package/utils/report-cls-client.js +18 -21
  328. package/utils/report-es-client.js +1 -2
  329. package/index.js.map +0 -1
  330. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  331. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
  332. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
  333. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
  334. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
  335. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
  336. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
  337. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
  338. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
  339. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
  340. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
  341. package/resource/doc/callkit/faq/common/error-code.md +0 -47
  342. package/resource/doc/callkit/faq/flutter-faq.md +0 -115
  343. package/resource/doc/callkit/faq/ios-faq.md +0 -115
  344. package/resource/doc/callkit/faq/web-faq.md +0 -36
  345. package/resource/doc/callkit/preset/android/api.md +0 -296
  346. package/resource/doc/callkit/preset/flutter/api.md +0 -410
  347. package/resource/doc/callkit/preset/flutter/integration.md +0 -164
  348. package/resource/doc/callkit/preset/ios/api.md +0 -80
  349. package/resource/doc/callkit/preset/ios/integration.md +0 -187
  350. package/resource/doc/callkit/preset/react/api.md +0 -501
  351. package/resource/doc/callkit/preset/react/integration.md +0 -86
  352. package/resource/doc/callkit/preset/vue/api.md +0 -501
  353. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  354. package/resource/doc/chatkit/android/faq.md +0 -111
  355. package/resource/doc/chatkit/android/features/theme.md +0 -219
  356. package/resource/doc/chatkit/android/integration.md +0 -490
  357. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
  358. package/resource/doc/chatkit/faq/common/product.md +0 -7
  359. package/resource/doc/chatkit/faq/common/server.md +0 -44
  360. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  361. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
  362. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
  363. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
  364. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  365. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
  366. package/resource/doc/chatkit/flutter/faq.md +0 -23
  367. package/resource/doc/chatkit/flutter/features/theme.md +0 -235
  368. package/resource/doc/chatkit/flutter/integration.md +0 -344
  369. package/resource/doc/chatkit/ios/faq.md +0 -111
  370. package/resource/doc/chatkit/ios/features/theme.md +0 -267
  371. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  372. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  373. package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
  374. package/resource/doc/chatkit/react/components/chat.md +0 -38
  375. package/resource/doc/chatkit/react/components/component-list.md +0 -37
  376. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  377. package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
  378. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
  379. package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
  380. package/resource/doc/chatkit/react/components/message-list.md +0 -293
  381. package/resource/doc/chatkit/react/components/tuikit.md +0 -34
  382. package/resource/doc/chatkit/react/faq.md +0 -26
  383. package/resource/doc/chatkit/react/integration.md +0 -416
  384. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  385. package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
  386. package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
  387. package/resource/doc/chatkit/vue/components/chat.md +0 -45
  388. package/resource/doc/chatkit/vue/components/component-list.md +0 -87
  389. package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
  390. package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
  391. package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
  392. package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
  393. package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
  394. package/resource/doc/chatkit/vue/components/message-list.md +0 -433
  395. package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
  396. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  397. package/resource/doc/chatkit/vue/faq.md +0 -36
  398. package/resource/doc/chatkit/vue/integration.md +0 -428
  399. package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
  400. package/resource/doc/livekit/faq/common/error-code.md +0 -88
  401. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  402. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
  403. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
  404. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
  405. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
  406. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  407. package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
  408. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  409. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
  410. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  411. package/resource/doc/roomkit/vue/features/room-state.md +0 -282
  412. package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
  413. package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
  414. package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
  415. package/resource/doc/roomkit/vue/integration.md +0 -315
  416. package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
  417. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  418. package/resource/doc/rtcengine/web/.gitkeep +0 -0
  419. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
  420. package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
  421. package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
  422. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
  423. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
  424. package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
  425. package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
  426. package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
  427. package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
  428. package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
  429. package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
  430. package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
  431. package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
  432. package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
  433. package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
  434. package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
  435. package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
  436. package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
  437. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
  438. package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
  439. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
  440. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
  441. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
  442. package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
  443. package/server-config.js.map +0 -1
  444. package/server.js.map +0 -1
  445. package/streamable-http.js.map +0 -1
  446. package/tools/call/get_callkit_api.js +0 -33
  447. package/tools/call/get_callkit_api.js.map +0 -1
  448. package/tools/call/get_native_call_uikit_integration.js.map +0 -1
  449. package/tools/call/get_native_callkit_core_integration.js.map +0 -1
  450. package/tools/call/get_web_call_uikit_integration.js.map +0 -1
  451. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  452. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  453. package/tools/chat/get_native_chat_uikit_integration.js.map +0 -1
  454. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  455. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  456. package/tools/chat/get_web_chat_uikit_integration.js.map +0 -1
  457. package/tools/common/get_faq.js +0 -266
  458. package/tools/common/get_faq.js.map +0 -1
  459. package/tools/common/get_usersig.js.map +0 -1
  460. package/tools/common/present_framework_choice.js.map +0 -1
  461. package/tools/common/record_answer.js.map +0 -1
  462. package/tools/common/record_feedback.js.map +0 -1
  463. package/tools/common/record_skill_session.js +0 -69
  464. package/tools/common/record_skill_session.js.map +0 -1
  465. package/tools/definitions/get_callkit_api_def.js +0 -29
  466. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  467. package/tools/definitions/get_faq_def.js +0 -47
  468. package/tools/definitions/get_faq_def.js.map +0 -1
  469. package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
  470. package/tools/definitions/get_native_callkit_core_integration_def.js.map +0 -1
  471. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  472. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  473. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +0 -1
  474. package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
  475. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  476. package/tools/definitions/get_native_livekit_core_integration_def.js.map +0 -1
  477. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  478. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  479. package/tools/definitions/get_usersig_def.js.map +0 -1
  480. package/tools/definitions/get_web_call_uikit_integration_def.js.map +0 -1
  481. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  482. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  483. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +0 -1
  484. package/tools/definitions/get_web_live_uikit_integration_def.js.map +0 -1
  485. package/tools/definitions/get_web_livekit_api_def.js +0 -30
  486. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  487. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
  488. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  489. package/tools/definitions/get_web_room_uikit_integration_def.js.map +0 -1
  490. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
  491. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  492. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
  493. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  494. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
  495. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  496. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
  497. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  498. package/tools/definitions/present_framework_choice_def.js.map +0 -1
  499. package/tools/definitions/record_answer_def.js.map +0 -1
  500. package/tools/definitions/record_feedback_def.js.map +0 -1
  501. package/tools/definitions/record_skill_session_def.js +0 -31
  502. package/tools/definitions/record_skill_session_def.js.map +0 -1
  503. package/tools/index.js.map +0 -1
  504. package/tools/live/get_native_livekit_core_features.js +0 -68
  505. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  506. package/tools/live/get_native_livekit_core_integration.js.map +0 -1
  507. package/tools/live/get_web_live_uikit_integration.js.map +0 -1
  508. package/tools/live/get_web_livekit_api.js +0 -33
  509. package/tools/live/get_web_livekit_api.js.map +0 -1
  510. package/tools/live/get_web_livekit_component_detail.js +0 -35
  511. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  512. package/tools/room/get_web_room_uikit_integration.js.map +0 -1
  513. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  514. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  515. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  516. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  517. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  518. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  519. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  520. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  521. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  522. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  523. package/utils/build-session-directives.js +0 -120
  524. package/utils/build-session-directives.js.map +0 -1
  525. package/utils/generate-structured-result.js.map +0 -1
  526. package/utils/generate-usersig.js.map +0 -1
  527. package/utils/get-device-identifier.js.map +0 -1
  528. package/utils/get-doc-content.js.map +0 -1
  529. package/utils/handle-framework.js +0 -9
  530. package/utils/handle-framework.js.map +0 -1
  531. package/utils/handle-state-name.js +0 -29
  532. package/utils/handle-state-name.js.map +0 -1
  533. package/utils/http-get.js.map +0 -1
  534. package/utils/http-post.js.map +0 -1
  535. package/utils/report-cls-client.js.map +0 -1
  536. package/utils/report-es-client.js.map +0 -1
  537. package/utils/report-runtime-error-cls-client.js +0 -91
  538. package/utils/report-runtime-error-cls-client.js.map +0 -1
  539. /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
  540. /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
  541. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  542. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  552. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  553. /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
@@ -1,300 +0,0 @@
1
- This guide provides a comprehensive overview of the **Viewer Page** in the TUILiveKit Demo. Use this documentation to quickly integrate our pre-built viewer page into your project, or leverage the details here to fully customize its style, layout, and features to fit your specific needs.
2
-
3
- ## Feature Overview
4
-
5
- The viewer page comes with default functionality and styling out of the box. If these defaults don’t match your requirements, you can easily tailor the UI. The numbers in the screenshot map to the main feature categories. Core features include: **stream information display, live video area, online audience, audio/video controls, live duration, resolution switching, fullscreen mode, chat interaction, and message list**.
6
- - **Live Video Playback**: High-definition, low-latency streaming.
7
-
8
- - **Live Comments Interaction**: Real-time live comments for audience engagement.
9
-
10
- - **Audience List**: View details about online audience members.
11
-
12
- - **Fullscreen Playback**: Immersive viewing experience.
13
-
14
- - **H5 Mobile Platform Support**: Works seamlessly across platforms.
15
-
16
- ## Quick Integration
17
-
18
- ### Step 1: Environment Setup and Activate the Service
19
-
20
- Before you begin, see Preparation for instructions on integrating required components and implementing login.
21
-
22
- ### Step 2: Install Dependencies
23
-
24
- Install the necessary packages using your preferred package manager:
25
-
26
- 【npm】
27
- ``` bash
28
- npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 --save
29
- ```
30
-
31
- 【pnpm】
32
- ``` bash
33
- pnpm add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
34
- ```
35
-
36
- 【yarn】
37
- ``` bash
38
- yarn add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
39
- ```
40
-
41
- ### Step 3: Integrate Viewer Page
42
-
43
- Create a `live-player.vue` file in your project. Copy and paste the following code to add the **viewer page**.
44
-
45
- > **Note:**
46
- >
47
-
48
- > You can use the code below directly, or refer to [Audience Viewing](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Web/web-vite-vue3/src/TUILiveKit/component/LivePlayer/LivePlayerPC.vue) for the full source.
49
- >
50
-
51
- ``` typescript
52
- <template>
53
- <UIKitProvider theme="dark">
54
- <div class="container">
55
- <!-- Live Core Area -->
56
- <section class="live">
57
- <header class="header">
58
- <IconArrowStrokeBack class="back-btn" size="20" />
59
- <Avatar :src="currentLive?.liveOwner.avatarUrl" :size="32" class="avatar" />
60
- <span class="user-name">{{ currentLive?.liveOwner.userName || currentLive?.liveOwner.userId }}</span>
61
- </header>
62
- <LiveCoreView class="player" />
63
- </section>
64
-
65
- <div class="sidebar">
66
- <!-- Online Audience List -->
67
- <section class="audience">
68
- <header class="section-header">
69
- <h3> Online Audience <span>({{ audienceList.length }})</span></h3>
70
- </header>
71
- <LiveAudienceList class="list" />
72
- </section>
73
-
74
- <!-- Message List & Input Box -->
75
- <section class="barrage">
76
- <header class="section-header">
77
- <h3>Message List</h3>
78
- </header>
79
- <BarrageList class="list" />
80
- <BarrageInput class="input" height="48px" />
81
- </section>
82
- </div>
83
- </div>
84
- </UIKitProvider>
85
- </template>
86
-
87
- <script setup lang="ts">
88
- import { onMounted } from 'vue';
89
- import { LiveAudienceList, BarrageList, BarrageInput, useLiveAudienceState, LiveCoreView, useLiveListState, Avatar, useLoginState } from 'tuikit-atomicx-vue3';
90
- import { UIKitProvider, IconArrowStrokeBack } from '@tencentcloud/uikit-base-component-vue3';
91
-
92
- const { audienceList } = useLiveAudienceState();
93
- const { currentLive } = useLiveListState();
94
- const { login, setSelfInfo } = useLoginState();
95
-
96
- const liveId = 'live_xxxx' // Enter the ID of the live stream you want to watch
97
-
98
- async function initLogin() {
99
- try {
100
- await login({
101
- sdkAppId: 0, // SDKAppID, refer to Step 1 for details
102
- userId: '', // UserID, refer to Step 1 for details
103
- userSig: '', // userSig, refer to Step 1 for details
104
- });
105
- } catch (error) {
106
- console.error('Login failed:', error);
107
- }
108
- }
109
-
110
- onMounted(async () => {
111
- await initLogin();
112
- await setSelfInfo({
113
- userName: 'Your Name/Nickname', // Username
114
- avatarUrl: '', // Avatar URL
115
- });
116
- await joinLive({ liveId });
117
- });
118
-
119
- </script>
120
-
121
- <style>html,body,#app{height:100%;width:100%;margin:0;padding:0;overflow:hidden}:global(body){font-size:15px;line-height:1.6;text-rendering:optimizeLegibility;}:global(*),:global(*::before),:global(*::after){box-sizing:border-box;margin:0;}.container{display:grid;grid-template-columns:1fr 320px;height:100%;width:100%;gap:16px;padding:16px;background:var(--bg-color-default);box-sizing:border-box;overflow:hidden;}.live{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);}.header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--stroke-color-primary);}.back-btn{cursor:pointer;color:var(--text-color-tertiary);transition:color 0.2s;}.back-btn:hover{color:var(--text-color-link-hover);}.avatar{border:1px solid var(--uikit-color-white-7);}.user-name{color:var(--text-color-primary);font-weight:500;}.player{flex:1;background:var(--uikit-color-black-1);min-height:0;}.sidebar{display:flex;flex-direction:column;gap:16px;height:100%;overflow:hidden;}.audience{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);flex:1;min-height:0;}.barrage{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);flex:1;min-height:0;}.section-header{padding:16px;border-bottom:1px solid var(--stroke-color-primary);background:var(--bg-color-operate);}.section-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-color-primary);}.section-header span{font-weight:400;color:var(--text-color-secondary);font-size:14px;}.list{flex:1;min-height:0;overflow-y:auto;}.input{border-top:1px solid var(--stroke-color-primary);flex-shrink:0;height:48px;}@media (max-width:1200px){.container{grid-template-columns:1fr;grid-template-rows:60% 20% 20%;gap:12px;}.sidebar{gap:12px;}.audience,.barrage{min-height:200px;}}@media (max-width:768px){.container{padding:8px;gap:8px;grid-template-rows:50% 25% 25%;}.header,.section-header{padding:12px;}.sidebar{gap:8px;}}</style>
122
- ```
123
-
124
- #### Core API Parameters
125
-
126
- ##### setSelfInfo
127
-
128
- Configure user information.
129
- | Parameter | Type | Required | Description |
130
- | --- | --- | --- | --- |
131
- | userName | String | Yes | User nickname, shown in the live room and chat area. |
132
- | avatarUrl | String | No | URL of the user's avatar image. |
133
-
134
- ### Step 4: Start the Project
135
-
136
- Open your terminal, navigate to your project directory, and run the following command to launch the project. You’ll then be able to view the live stream.
137
-
138
- > **Note:**
139
- >
140
-
141
- > After the command runs successfully, enter your local access URL in your browser (for example, `http://localhost:5173/live-player`; the port may vary based on your setup) to access the viewer page.
142
- >
143
-
144
- ``` bash
145
- npm run dev
146
- ```
147
-
148
- ## Play Live Stream
149
-
150
- ### Step 1: Start a Live Stream
151
- - **Method 1 (Recommended):**
152
-
153
- Use our [Online Hosting Website](https://web.sdk.qcloud.com/trtc/livekit/pusher/index.html) to start a live stream. After starting, copy the live stream room ID.
154
-
155
- - **Method 2:**
156
-
157
- Integrate our Host Streaming (Web Desktop Browser) to start a live stream. After starting, copy the live stream room ID.
158
-
159
- > **Important Tip:****:**
160
- >
161
-
162
- > Use different **userID** for hosting and viewing. If the same user ID logs in on multiple devices, the later login will force the earlier device offline (**kick offline**).
163
- >
164
-
165
- ### Step 2: Watch the Live Stream
166
-
167
- Refer to the sample code from Step 3 of Quick Integration. Enter the corresponding `liveId` to join the live room and view the stream.
168
-
169
- ### Step 3: Router Configuration
170
-
171
- To enable navigation from the Live Stream List or homepage to the live room, configure Vue Router. In your project’s **src** directory, create a **router** folder and an **index.ts** file. Import and use the router in your main entry file (such as **main.ts** or **index.ts**). For reference, see the [GitHub code example](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Web/web-vite-vue3/src/main.ts). If you need the Live Stream List feature, check the Live Stream List documentation.
172
-
173
- > **Note:**
174
- >
175
-
176
- > In the code below, `live-player.vue` refers to the sample file created in Step 3.
177
- >
178
-
179
- ``` typescript
180
- // src/router/index.ts
181
- import { createRouter, createWebHistory } from 'vue-router';
182
-
183
- const routes = [
184
- {
185
- path: '/live-player',
186
- component: () => import('../live-player.vue'),
187
- },
188
- // To add the Live Stream List feature, include the following route. Update the path as needed for your project.
189
- // {
190
- // path: '/live-list',
191
- // component: () => import('../live-list.vue'),
192
- // },
193
- ];
194
-
195
- const router = createRouter({
196
- history: createWebHistory(),
197
- routes,
198
- });
199
- export default router;
200
-
201
- // src/main.ts
202
- import { createApp } from 'vue';
203
- import App from './App.vue';
204
- import router from './router';
205
-
206
- const app = createApp(App);
207
- app.use(router);
208
- app.mount('#app');
209
- ```
210
-
211
- ## Customization
212
-
213
- ### Theme and Language Configuration
214
-
215
- You can change the default theme and language by setting parameters in `UIKitProvider` within `App.vue`.
216
- | UIKitProvider Parameter | Options | Default Value |
217
- | --- | --- | --- |
218
- | theme | "light" | "dark" |
219
- | language | "zh-CN" | "en-US" |
220
-
221
- ``` typescript
222
- <UIKitProvider theme="light">
223
- <router-view />
224
- </UIKitProvider>
225
-
226
- <script setup lang="ts">
227
- import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
228
- ```
229
-
230
- ### Button and Icon Customization
231
-
232
- To add, remove, or replace buttons, icons, or other controls for UI customization, follow the example below. Use the screenshot to locate the relevant code in `live-player.vue` and update the UI as needed.
233
-
234
- You can also customize the **audience viewer page** to match your project requirements. In addition to layout adjustments, you can **add, remove, or modify** elements such as **color theme, fonts, border radius, buttons, icons, input boxes, pop-ups**, and more.
235
- | Category | Feature | Description |
236
- | --- | --- | --- |
237
- | Asset Management | Customize asset management area display | Adjust icon size, color, or replace icons. |
238
- | Live Tools | Customize live tool information display | Adjust icon size, color, or replace icons. |
239
- | Online Audience | Customize audience information display | Supports: - Show/hide audience level. - Customize audience info font and color. - Use your preferred icon style. |
240
- | Message List | Customize live comments area display | Supports: - Show/hide chat input area. - Customize chat bubble style, audience level, and more. |
241
-
242
- ## FAQs
243
-
244
- ### Browser Autoplay Restrictions?
245
-
246
- Modern browsers restrict autoplay for media with sound: playback must be triggered by explicit user interaction (such as a click or tap). This prevents websites from playing audio unexpectedly. Most browsers allow muted video to autoplay, but on iOS Safari in low power mode and in iOS WKWebView with custom restrictions (such as iOS WeChat browser), even muted video may be blocked.
247
-
248
- #### Autoplay Failure Handling?
249
-
250
- If a user's Media Engagement Index (MEI) for your site is below the required threshold, attempts to autoplay sound-enabled video will fail. By default, when the SDK detects autoplay failure, it displays a dialog prompting the user to interact with the page (for example, by clicking the **Confirm** button). Once the user interacts, audio playback resumes as expected.
251
-
252
- #### Customizing Autoplay Failure UI?
253
-
254
- To customize the user experience when autoplay fails (such as replacing the default popup), listen for the SDK's `onAutoplayFailed` callback. Below is a Vue3 sample that listens for the event and displays a custom dialog:
255
- ``` java
256
- import TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';
257
- import { useUIKit, TUIMessageBox } from '@tencentcloud/uikit-base-component-vue3';
258
- import { useRoomEngine } from 'tuikit-atomicx-vue3';
259
-
260
- const roomEngine = useRoomEngine();
261
-
262
- let isShowAutoPlayDialog = false;
263
-
264
- export default function useCustomizedAutoPlayDialog() {
265
- const { t } = useUIKit();
266
- TUIRoomEngine.once('ready', () => {
267
- roomEngine.instance?.on(TUIRoomEvents.onAutoPlayFailed, () => {
268
- if (!isShowAutoPlayDialog) {
269
- isShowAutoPlayDialog = true;
270
- TUIMessageBox.alert({
271
- title: t('RoomCommon.Attention'),
272
- content: t('RoomNotifications.AudioPlaybackFailed'),
273
- showClose: false,
274
- modal: false,
275
- confirmText: t('Confirm'),
276
- callback: () => {
277
- isShowAutoPlayDialog = false;
278
- },
279
- });
280
- }
281
- });
282
- });
283
- }
284
-
285
- export { useCustomizedAutoPlayDialog };
286
- ```
287
-
288
- > **Note:**
289
- >
290
-
291
- > Make sure to install the required `@tencentcloud/tuiroom-engine-js` package.
292
- >
293
-
294
- ## Next Steps
295
-
296
- You’ve now integrated the audience viewing feature. To further enhance your application, consider adding the following features:
297
- | Feature | Description | Integration Guide |
298
- | --- | --- | --- |
299
- | Live Stream List | Displays the live stream list interface and features, including live stream list and room information display. | Live Stream List |
300
- | Web Monitoring | Operations platform for live room management. | Web Monitoring Page |
@@ -1,67 +0,0 @@
1
- ---
2
- product: 'Room'
3
- tech_stack: 'roomKit'
4
- framework: 'common'
5
- title: 'RoomKit Error Code Reference'
6
- keywords: ['error code', 'error', 'roomKit', 'room package issue', 'microphone permission issue', 'camera/microphone issue']
7
- ---
8
-
9
- # RoomKit Error Code Reference
10
-
11
- ## RoomKit Error Codes (Topic: RoomKit Error Code)
12
-
13
- ## Error Code -2
14
- **Cause:** Operation frequency limit exceeded. Requests are too frequent, please try again later.
15
- **Solution:** Operation frequency limit exceeded. Requests are too frequent, please try again later.
16
-
17
- ## Error Code -1002
18
- **Cause:** SDK not initialized.
19
- **Solution:** Please call the initialization interface first to complete SDK initialization.
20
-
21
- ## Error Code -1004
22
- **Cause:** No package purchased or account is in arrears.
23
- **Solution:** Visit the [Tencent Cloud Console](https://console.trtc.io/subscription/buy/live) to purchase. For first-time use, you can [activate the trial version](https://trtc.io/document/60033?product=live&menulabel=uikit&platform=web).
24
-
25
- ## Error Code -1101
26
- **Cause:** Camera permission denied.
27
- **Solution:** Please check your browser settings to ensure camera access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
28
-
29
- ## Error Code -1105
30
- **Cause:** Microphone permission denied.
31
- **Solution:** Please check your browser settings to ensure microphone access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
32
-
33
- ## Error Code -1100
34
- **Cause:** Failed to open camera.
35
- **Solution:** Please check your browser settings to ensure camera access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
36
-
37
- ## Error Code -1104
38
- **Cause:** Failed to open microphone.
39
- **Solution:** Please check your browser settings to ensure microphone access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
40
-
41
- ## Error Code 100007
42
- **Cause:** No package purchased or account is in arrears.
43
- **Solution:** Visit the [Tencent Cloud Console](https://console.trtc.io/subscription/buy/live) to purchase. For first-time use, you can [activate the trial version](https://trtc.io/document/60033?product=live&menulabel=uikit&platform=web).
44
-
45
- ## Error Code 70001
46
- **Cause:** User signature has expired.
47
- **Solution:** It is recommended to set the signature validity period to no less than 24 hours. Refer to [Generate UserSig (User Authentication)](https://trtc.io/document/35166?product=live&menulabel=uikit&platform=web).
48
-
49
- ## Error Code 70003
50
- **Cause:** Invalid user signature.
51
- **Solution:** Please regenerate. Refer to [Generate UserSig (User Authentication)](https://trtc.io/document/35166?product=live&menulabel=uikit&platform=web).
52
-
53
- ## Error Code 70014
54
- **Cause:** SDKAppID does not match the user signature.
55
- **Solution:** Please verify. You can validate the signature at the [Tencent Cloud Console](https://console.trtc.io/usersig).
56
-
57
- ## Error Code 5300
58
- **Cause:** Exception occurred while accessing device or capturing audio/video.
59
- **Solution:** Please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
60
-
61
- ## Error Code 5301
62
- **Cause:** Camera/microphone device not detected.
63
- **Solution:** Please ensure your camera/microphone is connected and check if the camera/microphone is available in system or browser settings.
64
-
65
- ## Error Code 5302
66
- **Cause:** Camera/microphone permission denied.
67
- **Solution:** Please check your browser settings to ensure camera and microphone access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
@@ -1,220 +0,0 @@
1
- The in-room call feature allows users within a meeting (inviter) to send real-time invitations to users outside the room (invitees). This feature is implemented based on `Atomicx State Hooks` and helps developers quickly build interactive scenarios with proactive invitation capabilities.
2
-
3
- ## Use Cases
4
- - **Collaborative Office:** During remote meetings, if cross-departmental decisions are involved, you can invite external experts to join the meeting with one click, shortening communication paths.
5
-
6
- - **Live Teaching:** During the teaching process, if teachers find that some students are absent, they can directly invite them to join the class.
7
-
8
- - **Internet Medical Consultation:** During case analysis, the primary physician can invite senior doctors to enter the virtual consultation room for multi-party consultation through the call feature, or doctors can call patients in the waiting room for consultations.
9
-
10
- ## Prerequisites
11
-
12
- Before integrating this feature, please ensure the following conditions are met:
13
- - **Inviter (User A):** The user has completed login authentication through `useLoginState`, refer to Integration Overview, and is already in a room as the room owner or member, refer to Room Lifecycle.
14
-
15
- - **Invitee (User B):** The user has completed login authentication through `useLoginState`, refer to Integration Overview, to receive signaling events.
16
-
17
- - **Environment Dependencies:** The project has correctly installed and imported `tuikit-atomicx-vue3`.
18
-
19
- ## Implementing In-Room Call Feature
20
-
21
- The core process for implementing in-room calls is as follows:
22
-
23
- In-room call sequence diagram
24
-
25
- ### Step 1: Initiate Call (Inviter)
26
-
27
- The inviter calls the [callUserToRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#callUserToRoom) interface to initiate an invitation. Please ensure the inviter is currently in the room (i.e., [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#currentRoom) is not empty), otherwise the call cannot be initiated.
28
- ``` typescript
29
- import { useRoomState } from 'tuikit-atomicx-vue3/room';
30
-
31
- const { currentRoom, callUserToRoom } = useRoomState();
32
-
33
- const inviteUser = async () => {
34
- // In-room calls must be associated with an existing roomId, so check the current user's room status first
35
- if (!currentRoom.value) {
36
- console.warn('Please enter a room first before initiating an invitation');
37
- return;
38
- }
39
-
40
- try {
41
- const resultMap = await callUserToRoom({
42
- roomId: currentRoom.value.roomId, // Room ID the invitee will join
43
- userIdList: ['user1', 'user2'], // Target user ID array, supports single or multiple users
44
- timeout: 60, // Invitation validity period (seconds), both parties will trigger onCallTimeout after timeout
45
- // extensionInfo can be used to pass business custom data, such as invitation type, additional messages, etc.
46
- extensionInfo: JSON.stringify({ type: 'emergency', priority: 'high' })
47
- });
48
-
49
- // resultMap returns the status corresponding to each userId, such as Success, AlreadyInRoom (already in room) or AlreadyInCalling (in call)
50
- console.log('Invitation sent successfully, detailed status map:', resultMap);
51
- } catch (error) {
52
- console.error('Failed to send call request, please check network or login status:', error);
53
- }
54
- };
55
- ```
56
-
57
- ### Step 2: Listen for Call Events (Invitee)
58
-
59
- The invitee needs to listen for the `onCallReceived` event. It is recommended to implement this in long-lived components such as `App.vue` to ensure the user can respond regardless of which page they are on.
60
- ``` typescript
61
- import { ref, onMounted, onUnmounted } from 'vue';
62
- import { useRoomState, RoomEvent } from 'tuikit-atomicx-vue3/room';
63
-
64
- const {
65
- subscribeEvent,
66
- unsubscribeEvent,
67
- acceptCall,
68
- rejectCall,
69
- joinRoom,
70
- currentRoom
71
- } = useRoomState();
72
-
73
- const showInviteDialog = ref(false); // Control UI dialog visibility
74
- const currentCallInfo = ref(null); // Cache the received invitation context
75
-
76
- const handleCallReceived = async ({ roomInfo, call, extensionInfo }) => {
77
- // Conflict handling: If the user is currently in a meeting, according to business policy, usually should directly reject new invitations to prevent interference
78
- if (currentRoom.value?.roomId) {
79
- await rejectCall({ roomId: roomInfo.roomId });
80
- return;
81
- }
82
-
83
- // Record invitation details for displaying inviter name or business transparent data in UI
84
- currentCallInfo.value = { roomInfo, call };
85
- showInviteDialog.value = true;
86
- };
87
-
88
- // Accept invitation logic
89
- const onUserAccept = async () => {
90
- if (!currentCallInfo.value) return;
91
- const { roomId } = currentCallInfo.value.roomInfo;
92
-
93
- try {
94
- // Key process A: Respond to signaling. Inform the inviter that it has been accepted so they can update UI (e.g., display "Other party answered")
95
- await acceptCall({ roomId });
96
-
97
- // Key process B: Execute room entry. Only by calling joinRoom will the audio and video push-pull stream link be truly opened
98
- await joinRoom({ roomId });
99
- } catch (error) {
100
- console.error('Room entry operation failed after accepting call:', error);
101
- } finally {
102
- closeDialog();
103
- }
104
- };
105
-
106
- // Reject invitation logic
107
- const onUserReject = async () => {
108
- if (currentCallInfo.value) {
109
- // Inform the inviter that it has been rejected, the inviter will receive onCallRejected event
110
- await rejectCall({ roomId: currentCallInfo.value.roomInfo.roomId });
111
- }
112
- closeDialog();
113
- };
114
-
115
- const closeDialog = () => {
116
- showInviteDialog.value = false;
117
- currentCallInfo.value = null;
118
- };
119
-
120
- // Event full lifecycle management: Ensure listening on component mount and removal on destroy to prevent event overflow
121
- onMounted(() => {
122
- subscribeEvent(RoomEvent.onCallReceived, handleCallReceived);
123
-
124
- // Listen for various exceptions/sync events that cause invitation to end, ensuring UI dialog can close in time
125
- subscribeEvent(RoomEvent.onCallCancelled, closeDialog); // Inviter cancelled the call
126
- subscribeEvent(RoomEvent.onCallTimeout, closeDialog); // Call timed out without response
127
- subscribeEvent(RoomEvent.onCallHandledByOtherDevice, closeDialog); // User already handled the call on another device
128
- });
129
-
130
- onUnmounted(() => {
131
- // Remove all listeners to avoid continuing to execute handleCallReceived after component destruction, causing memory leaks or errors
132
- unsubscribeEvent(RoomEvent.onCallReceived, handleCallReceived);
133
- unsubscribeEvent(RoomEvent.onCallCancelled, closeDialog);
134
- unsubscribeEvent(RoomEvent.onCallTimeout, closeDialog);
135
- unsubscribeEvent(RoomEvent.onCallHandledByOtherDevice, closeDialog);
136
- });
137
- ```
138
-
139
- ## Practical Tutorial: Improving Call Connection Rate
140
-
141
- To achieve higher call connection rates in business scenarios, in addition to implementing basic functions, it is recommended to refer to the following strategies to optimize user experience:
142
-
143
- ### 1. Enhanced Call Awareness (Avoid Users Missing Calls)
144
-
145
- Due to Web characteristics, browser mute or page running in background state may cause users to miss calls.
146
- - **Visual Reminder**: Use [Page Visibility API](https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API) to detect page visibility status. If the page is in the background, you can implement title bar flashing prompts by cyclically modifying `document.title` (e.g.: "【New Invitation】UserA invites you to the meeting...") to attract user attention.
147
-
148
- - **Audio Reminder**: Play high-priority alert ringtone when the `onCallReceived` event is triggered. Note: Must comply with browser's [Autoplay Policy](https://developer.mozilla.org/zh-CN/docs/Web/Media/Guides/Autoplay), most browsers will restrict audio autoplay in the absence of user interaction (such as clicks, touches, or key presses).
149
-
150
- ### 2. Enrich Invitation Context (Improve Answering Willingness)
151
-
152
- Invitations lacking clear intent are easily rejected by users. It is recommended to fully utilize the `extensionInfo` field to pass key business information to improve users' willingness to answer.
153
- - **Pass Business Context**: Use `extensionInfo` to transparently pass business fields such as `reason` (e.g.: "Project emergency review"), `level` (e.g.: "P0 troubleshooting"), etc., to inform users of the urgency and importance of the call.
154
-
155
- ### 3. Multi-Channel Reach Backup (Ensure Message Delivery)
156
-
157
- Limited by Web mechanisms, when the browser process ends, real-time signaling cannot be received. It is recommended to adopt the following alternative solutions to ensure reach:
158
- - **Browser System Notifications**: Guide users to authorize [Web Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). As long as the browser process is not closed (including minimized or in background tabs), OS-level pop-up notifications can be triggered to effectively remind users.
159
-
160
- - **Multi-Channel Reach**: It is recommended to combine backend business logic to send meeting links through **SMS**, **Email**, or **Enterprise WeChat** and other external channels when detecting that users are offline or timeout without response, achieving all-around reach.
161
-
162
- ### 4. Intelligent Retry Mechanism (Solve "Room Entry Failed After Accepting Invitation")
163
-
164
- In weak network or other unstable environments, calling `joinRoom` after users click accept invitation may experience occasional failures.
165
- - **Automatic Retry**: It is recommended to introduce 2-3 automatic retry mechanisms (recommended combined with exponential backoff strategy) in the exception handling logic (`catch`) of `onUserAccept` to maximize ensuring users can successfully join the meeting after clicking "accept".
166
-
167
- ## Development Notes
168
- 1. **Accepting Invitation Does Not Equal Entering Room**
169
-
170
- `acceptCall` is only a signaling layer reply (informing the other party that the call has been answered). Users must manually call `await joinRoom({ roomId })` immediately after calling `acceptCall` to truly enter the audio and video room.
171
-
172
- 2. **Lifecycle Management**
173
-
174
- Please be sure to call `unsubscribeEvent` in the component destruction cycle (`onUnmounted`). If listeners are not cleaned up, when users switch pages, listeners from old pages will remain in memory, causing one invitation to pop up multiple windows or logic to execute repeatedly.
175
-
176
- 3. **Timeout Settings**
177
-
178
- If the `timeout` parameter is not set, in some network exceptions or program crash situations, invitations may remain in a suspended state for a long time, making it impossible to initiate another call to that user. It is recommended to set it to 30-60 seconds.
179
-
180
- ## Common Questions
181
- 1. **How to pass custom parameters when calling (e.g., "Emergency meeting from XX")?**
182
-
183
- Use the `extensionInfo` parameter of `callUserToRoom` to pass a JSON string. The invitee can parse the string to obtain business information in the `extensionInfo` field of the `onCallReceived` event.
184
-
185
- 2. **If the invitee is not online, can they receive the invitation after coming online?**
186
-
187
- No. The invitation event is an instantaneous signaling action, and the SDK currently does not resend call notifications received while offline.
188
-
189
- 3. **Can issued invitations be cancelled?**
190
-
191
- Yes. Call `cancelCall({ roomId, userIdList })` to cancel. At this time, the invitee will receive the `onCallCancelled` event, and you need to listen to this event to close the UI dialog on the invitee side.
192
-
193
- 4. **What to do if room entry fails after accepting?**
194
-
195
- Check if you have logged in to `TUIRoomEngine`, retry `joinRoom({ roomId })` and capture error prompts to the user; if necessary, provide a "retry" button on the UI.
196
-
197
- 5. **How to prompt when the other party is busy or already in another room?**
198
-
199
- If `AlreadyInRoom` / `AlreadyInCalling` appears in the return value `resultMap` of `callUserToRoom`, you should prompt on the inviter UI "The other party is busy/already in a meeting" and decide whether to retry later.
200
-
201
- 6. **Dialog not closing after timeout/cancellation?**
202
-
203
- Make sure to listen to `onCallTimeout`, `onCallCancelled`, `onCallHandledByOtherDevice`, and uniformly close the dialog and clear current invitation data in the callback.
204
-
205
- 7. **How to handle simultaneous ringing on multiple devices?**
206
-
207
- After accepting/rejecting on any device, other devices will receive `onCallHandledByOtherDevice`, and you need to close dialogs on other ends to avoid repeated processing.
208
-
209
- 8. **How should extensionInfo be agreed upon?**
210
-
211
- It is recommended to use a JSON string and agree on fields (e.g., `type`, `priority`, `from`), parse and display friendly text (e.g., "Emergency meeting from XX") in `handleCallReceived`.
212
-
213
- ## **Sample Project**
214
-
215
- Tencent Cloud provides a sample project [atomicx-vite-vue3-ts](https://github.com/Tencent-RTC/TUIRoomKit/tree/main/Web/example/atomicx-vite-vue3-ts) on GitHub, which you can refer to for implementing complete RoomKit functionality.
216
-
217
- ## API Documentation
218
- | **State/Component** | **Feature Description** | **API Documentation** |
219
- | --- | --- | --- |
220
- | **useRoomState** | Room state management (create, join, schedule, etc.) | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState) |