@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
@@ -0,0 +1,576 @@
1
+ TUIRoomKit is a UI solution for audio/video meeting rooms developed by TRTC. This release introduces a new atomic component integration approach, enabling developers to flexibly combine atomic components and build custom audio/video meeting room interfaces.
2
+
3
+ This guide walks you through integrating TUIRoomKit into an existing React project and explains how to customize its styles, layout, and functionality.
4
+
5
+ ## Prerequisites
6
+
7
+ ### Activate the Service
8
+
9
+ Follow the instructions in [Activate the Service](https://trtc.io/document/59973) to start a TUIRoomKit trial or activate the official version. Obtain your **SDKAppID** and **SDKSecretKey**:
10
+ - SDKAppID: The application identifier used by TRTC for billing and statistics.
11
+
12
+ - SDKSecretKey: The application secret used to initialize secret information in the configuration file.
13
+
14
+ ### Environment Setup
15
+ - Node.js: ≥ 18.19.1 (LTS version recommended)
16
+
17
+ - React: ≥ 18.2.0
18
+
19
+ - Modern browser: Must support [WebRTC APIs](https://trtc.io/document/41664)
20
+
21
+ - Devices: Camera, microphone, speakers
22
+
23
+ ## Quick Integration
24
+
25
+ ### Step 1: Install Dependencies
26
+
27
+ Install the required dependencies in your project.
28
+
29
+ 【npm】
30
+ ``` bash
31
+ npm install @tencentcloud/roomkit-web-react tuikit-atomicx-react @tencentcloud/uikit-base-component-react @tencentcloud/universal-api
32
+ ```
33
+
34
+ 【pnpm】
35
+ ``` bash
36
+ pnpm install @tencentcloud/roomkit-web-react tuikit-atomicx-react @tencentcloud/uikit-base-component-react @tencentcloud/universal-api
37
+ ```
38
+
39
+ 【yarn】
40
+ ``` bash
41
+ yarn add @tencentcloud/roomkit-web-react tuikit-atomicx-react @tencentcloud/uikit-base-component-react @tencentcloud/universal-api
42
+ ```
43
+
44
+ ### Step 2: Import TUIRoomKit Components
45
+ ``` typescript
46
+ import { UIKitProvider } from '@tencentcloud/uikit-base-component-react';
47
+ import { ConferenceMainView } from '@tencentcloud/roomkit-web-react';
48
+
49
+ export default function App() {
50
+ return (
51
+ <UIKitProvider theme="light" language="zh-CN">
52
+ <ConferenceMainView />
53
+ </UIKitProvider>
54
+ );
55
+ }
56
+ ```
57
+
58
+ ### Step 3: User Authentication
59
+
60
+ Authentication is required to access all TUIRoomKit features. Call **conference.login** immediately after your business system completes authentication (when the user logs in to your web page). After calling `conference.login`, call `conference.setSelfInfo` to set the user's display name and avatar, which appear in the participant video area and member list.
61
+
62
+ > **Note:**
63
+ >
64
+
65
+ > Make sure to use the generated UserSig in your configuration. In production, generate UserSig on your server and have the client request a dynamic UserSig from your business server as needed. See [How to Calculate UserSig in Production](https://trtc.io/document/35166).
66
+ >
67
+
68
+ ``` typescript
69
+ import { useEffect } from 'react';
70
+ import { conference } from '@tencentcloud/roomkit-web-react';
71
+
72
+ // Replace these values with your actual business data and SDKAppID from the Console
73
+ const SDKAppID = 0;
74
+ const userId = 'your_user_id';
75
+ const userSig = 'your_dynamic_user_sig';
76
+ const userName = 'Display Name';
77
+
78
+ function LoginComponent() {
79
+ useEffect(() => {
80
+ const init = async () => {
81
+ try {
82
+ // 1. Log in to the SDK
83
+ await conference.login({
84
+ sdkAppId: SDKAppID,
85
+ userId,
86
+ userSig,
87
+ });
88
+ // 2. (Optional) Set user profile
89
+ await conference.setSelfInfo({
90
+ userName,
91
+ avatarUrl: 'https://your-avatar-url.com/image.png',
92
+ });
93
+ } catch (error) {
94
+ console.error('TUIRoomKit login failed:', error);
95
+ }
96
+ };
97
+ init();
98
+ }, []);
99
+
100
+ return null;
101
+ }
102
+ ```
103
+
104
+ #### Integration Issue: Listening for Login Success Across Separate Routes
105
+
106
+ If your login page and room entry page are on different routes, the login logic for `conference.login` may not have executed when the room page loads. Use `useEffect` to monitor `loginUserInfo?.userId`; when this field is non-empty, TUIRoomKit is considered successfully authenticated.
107
+ ``` typescript
108
+ import { useEffect } from 'react';
109
+ import { useLoginState } from 'tuikit-atomicx-react/room';
110
+ import { conference } from '@tencentcloud/roomkit-web-react';
111
+
112
+ function RoomPage() {
113
+ const { loginUserInfo } = useLoginState();
114
+
115
+ useEffect(() => {
116
+ if (loginUserInfo?.userId) {
117
+ conference.createAndJoinRoom({ roomId: '123456' });
118
+ }
119
+ }, [loginUserInfo?.userId]);
120
+
121
+ return null;
122
+ }
123
+ ```
124
+
125
+ ### Step 4: Create a Room
126
+
127
+ The **Room ID (roomId)**is the unique identifier for each meeting and must be generated and managed by your business system to ensure global uniqueness. Choose the creation method based on your business scenario:
128
+
129
+ #### Scenario 1: Quick Meeting Initiated by Client
130
+
131
+ **Use Case: **The user clicks "Quick Meeting" and needs to immediately create and join a room (e.g., ad-hoc meetings, IM chat).
132
+
133
+ **Implementation: **The client generates or requests a unique Room ID from the backend, then calls `conference.createAndJoinRoom` to create and enter the room.
134
+ ``` typescript
135
+ import { conference } from '@tencentcloud/roomkit-web-react';
136
+
137
+ const startQuickMeeting = async () => {
138
+ // 1. Generate a unique Room ID
139
+ const myRoomId = `room_${Date.now()}`;
140
+
141
+ // 2. Create and join the room
142
+ await conference.createAndJoinRoom({
143
+ roomId: myRoomId,
144
+ options: {
145
+ roomName: 'My Quick Meeting',
146
+ },
147
+ });
148
+ };
149
+ ```
150
+
151
+ #### Scenario 2: Schedule a Meeting
152
+
153
+ **Use Case: **Meetings scheduled for a future time (e.g., weekly team meetings, online training). Users can set the Meeting Title, Meeting Time, and invite Participants.
154
+
155
+ **Implementation: **The client generates or requests a unique Room ID from the backend, then submits the reservation using the `scheduleRoom` API with Meeting Time and other parameters. Upon success, meeting information is synced to each Participant's Meeting List.
156
+ ``` typescript
157
+ import { useRoomState } from 'tuikit-atomicx-react/room';
158
+
159
+ function ScheduleDemo() {
160
+ const { scheduleRoom } = useRoomState();
161
+
162
+ const createSchedule = async () => {
163
+ try {
164
+ // Room ID must be a string and unique; backend generation is recommended.
165
+ const roomId = '123456';
166
+
167
+ // Note: Timestamp must be in seconds (Date.getTime() returns milliseconds, so divide by 1000)
168
+ const startTime = Math.floor(new Date().getTime() / 1000) + 3600; // Starts in 1 hour
169
+ const duration = 1800; // 30 minutes
170
+
171
+ const options = {
172
+ roomName: 'Product Requirements Review',
173
+ scheduleStartTime: startTime, // seconds
174
+ scheduleEndTime: startTime + duration, // seconds
175
+ scheduleAttendees: ['userA', 'userB'], // Participant IDs
176
+ password: '123', // optional: meeting password
177
+ };
178
+
179
+ await scheduleRoom({ roomId, options });
180
+ } catch (error) {
181
+ console.error('Scheduling failed', error);
182
+ }
183
+ };
184
+
185
+ return <button onClick={createSchedule}>Schedule Meeting</button>;
186
+ }
187
+ ```
188
+
189
+ #### Scenario 3: Create a Room on the Server Side
190
+
191
+ **Use Case: **Highly controlled environments such as government, healthcare, or enterprise OA.
192
+
193
+ **Implementation: **The business backend initiates room creation by calling TRTC's [Server REST API to Create Room](https://trtc.io/document/60707).
194
+ ``` bash
195
+ POST /v4/room_engine_http_srv/create_room
196
+ {
197
+ "roomId": "your-room-id",
198
+ "roomName": "Meeting Name",
199
+ "startTime": 1710000000,
200
+ "endTime": 1710003600,
201
+ "invitees": ["userId1", "userId2"]
202
+ }
203
+ ```
204
+
205
+ ### Step 5: Join a Room
206
+
207
+ Choose the appropriate method for joining a room based on your business requirements.
208
+
209
+ #### Scenario 1: Join Existing Room with Known Room ID
210
+
211
+ **Use Case: **The room has already been created, and Participants have received the Room ID or invitation link.
212
+
213
+ **Implementation: **After entering the Room ID or extracting it from the invitation link, call `conference.joinRoom` to join.
214
+ ``` typescript
215
+ import { conference } from '@tencentcloud/roomkit-web-react';
216
+
217
+ const joinExistingMeeting = async (sharedRoomId: string) => {
218
+ await conference.joinRoom({
219
+ roomId: sharedRoomId,
220
+ });
221
+ };
222
+ ```
223
+
224
+ #### Scenario 2: Join from Meeting List
225
+
226
+ **Use Case: **Meetings scheduled via "Client Scheduling" or "Server-Side Creation". Users can view their scheduled or invited meetings in the Meeting List and join directly.
227
+
228
+ **Implementation: **Use the `getScheduledRoomList` API from `useRoomState` to fetch the user's scheduled meetings and render them in the UI. When the user clicks a meeting, retrieve its Room ID and call `conference.joinRoom`.
229
+ ``` typescript
230
+ import { useState, useEffect } from 'react';
231
+ import { conference } from '@tencentcloud/roomkit-web-react';
232
+ import { useRoomState, useLoginState } from 'tuikit-atomicx-react/room';
233
+
234
+ interface RoomInfo {
235
+ roomId: string;
236
+ roomName?: string;
237
+ }
238
+
239
+ export default function ScheduledRoomList() {
240
+ const { getScheduledRoomList } = useRoomState();
241
+ const { loginUserInfo } = useLoginState();
242
+ const [roomList, setRoomList] = useState<RoomInfo[]>([]);
243
+
244
+ // 1. Wait for authentication before fetching Meeting List
245
+ useEffect(() => {
246
+ if (!loginUserInfo?.userId) return;
247
+ getScheduledRoomList({ cursor: '' })
248
+ .then(({ scheduledRoomList }) => setRoomList(scheduledRoomList || []))
249
+ .catch((error) => console.error('Failed to get scheduled meeting list:', error));
250
+ }, [loginUserInfo?.userId]);
251
+
252
+ // 2. Join room on click
253
+ const handleJoinRoom = async (roomId: string) => {
254
+ try {
255
+ await conference.joinRoom({ roomId });
256
+ } catch (error) {
257
+ console.error(`Failed to join meeting (${roomId}):`, error);
258
+ }
259
+ };
260
+
261
+ return (
262
+ <div>
263
+ <h3>My Scheduled Meetings</h3>
264
+ {roomList.length > 0 ? (
265
+ <ul style={{ padding: 0, listStyle: 'none' }}>
266
+ {roomList.map((room) => (
267
+ <li key={room.roomId} style={{ display: 'flex', justifyContent: 'space-between', padding: '10px', borderBottom: '1px solid #eee' }}>
268
+ <div style={{ display: 'flex', flexDirection: 'column', fontSize: '14px', color: '#666' }}>
269
+ <b style={{ fontSize: '16px', color: '#333' }}>{room.roomName || 'Unnamed Meeting'}</b>
270
+ <span>Room ID: {room.roomId}</span>
271
+ </div>
272
+ <button
273
+ onClick={() => handleJoinRoom(room.roomId)}
274
+ style={{ background: '#006eff', color: '#fff', border: 'none', padding: '6px 12px', borderRadius: '4px', cursor: 'pointer' }}
275
+ >
276
+ Join Meeting
277
+ </button>
278
+ </li>
279
+ ))}
280
+ </ul>
281
+ ) : (
282
+ <div>No scheduled meetings to join</div>
283
+ )}
284
+ </div>
285
+ );
286
+ }
287
+ ```
288
+
289
+ #### Scenario 3: Enter Room When Existence Is Uncertain
290
+
291
+ **Use Case: **Peer-to-peer scenarios (e.g., online consultation, 1v1 video customer service) where room existence is unknown.
292
+
293
+ **Implementation: **Both parties use a shared Business Document Number (e.g., order number) as Room ID and call `conference.createAndJoinRoom` to enter.
294
+ ``` typescript
295
+ import { conference } from '@tencentcloud/roomkit-web-react';
296
+
297
+ const enterDualMeeting = async (bizOrderId: string) => {
298
+ // No need to check if the room exists; SDK handles creation and entry automatically
299
+ await conference.createAndJoinRoom({
300
+ roomId: bizOrderId,
301
+ options: {
302
+ roomName: `Business Communication: ${bizOrderId}`,
303
+ },
304
+ });
305
+ };
306
+ ```
307
+
308
+ > **Tip:**
309
+ >
310
+
311
+ > The `conference.createAndJoinRoom` API automatically handles "create if not exists (become Host), join if exists (become Participant)", resolving state conflicts under high concurrency.
312
+ >
313
+
314
+ ### Step 6: Leave and End a Room
315
+
316
+ TUIRoomKit provides built-in UI buttons for leaving and ending rooms. Users can click **"Leave Room"**or **"End Room"**directly.
317
+
318
+ To trigger leave or end actions programmatically, use the following APIs.
319
+
320
+ #### Scenario 1: Leave a Room
321
+
322
+ Both Participants and Hosts can call `leaveRoom()` to exit the meeting. The room remains active for other members.
323
+ ``` typescript
324
+ import { conference } from '@tencentcloud/roomkit-web-react';
325
+
326
+ await conference.leaveRoom();
327
+ ```
328
+
329
+ > **Note:**
330
+ >
331
+
332
+ > When the Host leaves or closes the webpage, the room is not automatically ended. Other Participants can continue using TUIRoomKit. The system will reclaim room resources 6 hours after the scheduled end time if there are zero Participants.
333
+ >
334
+
335
+ #### Scenario 2: End a Room
336
+
337
+ When the Host calls `endRoom()`, all members receive a notification that the room has ended.
338
+ ``` typescript
339
+ import { conference } from '@tencentcloud/roomkit-web-react';
340
+
341
+ await conference.endRoom();
342
+ ```
343
+
344
+ > **Note:**
345
+ >
346
+
347
+ > Only the Host can call `endRoom()` after successfully entering the room. Calling as a non-host or before entering will result in an error.
348
+ >
349
+
350
+ ### Step 7: Listen for Room Status
351
+
352
+ In real-world audio/video meetings, room status may change due to various factors (e.g., Host ends the meeting, account logs in on another device, network issues).
353
+
354
+ TUIRoomKit automatically handles audio/video resource cleanup and UI prompts, but route navigation must be managed by your business logic. Register status listeners when the meeting component mounts, and remove them when it unmounts.
355
+ ``` typescript
356
+ import { useEffect } from 'react';
357
+ import { ConferenceMainView, conference, RoomEvent } from '@tencentcloud/roomkit-web-react';
358
+
359
+ export default function MeetingRoom() {
360
+ useEffect(() => {
361
+ const backToHome = () => {};
362
+ const backToLogin = () => {};
363
+
364
+ conference.on(RoomEvent.ROOM_DISMISS, backToHome);
365
+ conference.on(RoomEvent.ROOM_LEAVE, backToHome);
366
+ conference.on(RoomEvent.ROOM_ERROR, backToHome);
367
+ conference.on(RoomEvent.KICKED_OUT, backToHome);
368
+ conference.on(RoomEvent.KICKED_OFFLINE, backToLogin);
369
+ conference.on(RoomEvent.USER_SIG_EXPIRED, backToLogin);
370
+
371
+ return () => {
372
+ conference.off(RoomEvent.ROOM_DISMISS, backToHome);
373
+ conference.off(RoomEvent.ROOM_LEAVE, backToHome);
374
+ conference.off(RoomEvent.ROOM_ERROR, backToHome);
375
+ conference.off(RoomEvent.KICKED_OUT, backToHome);
376
+ conference.off(RoomEvent.KICKED_OFFLINE, backToLogin);
377
+ conference.off(RoomEvent.USER_SIG_EXPIRED, backToLogin);
378
+ };
379
+ }, []);
380
+
381
+ return <ConferenceMainView />;
382
+ }
383
+ ```
384
+
385
+ |Event|Trigger Timing|Recommended Handling|
386
+ |---------|---------|---------|
387
+ |`RoomEvent.ROOM_DISMISS`|Room ended, triggered for all members|Return to home or Meeting List|
388
+ |`RoomEvent.ROOM_LEAVE`|User clicks "Leave" in TUIRoomKit UI|Return to home or Meeting List|
389
+ |`RoomEvent.ROOM_ERROR`|Entry failure or unhandled error|Return to home or Meeting List|
390
+ |`RoomEvent.KICKED_OUT`|Kicked out by Host|Return to home or Meeting List|
391
+ |`RoomEvent.KICKED_OFFLINE`|Same account logged in elsewhere, current device forced offline|Redirect to login page|
392
+ |`RoomEvent.USER_SIG_EXPIRED`|UserSig expired|Redirect to login page|
393
+
394
+ ## Start the Project
395
+
396
+ 【npm】
397
+ ``` bash
398
+ npm run dev
399
+ ```
400
+
401
+ 【pnpm】
402
+ ``` bash
403
+ pnpm run dev
404
+ ```
405
+
406
+ 【yarn】
407
+ ``` bash
408
+ yarn run dev
409
+ ```
410
+
411
+ After the project starts, open your browser to the debug address (usually http://localhost:5173) to access the app. You should see the meeting interface as shown below:
412
+
413
+ ## Next Steps
414
+
415
+ After completing the basic integration, you can further customize the UI to fit your business requirements.
416
+
417
+ ### Configure Theme and Language
418
+
419
+ Change the default theme and language by setting the `UIKitProvider` parameters in `App.vue`.
420
+
421
+ |`UIKitProvider` Parameter|Optional Values|Default Value|
422
+ |---------|---------|---------|
423
+ |theme|"light" \| "dark"|"dark"|
424
+ |language|"zh-CN" \| "en-US"|"en-US"|
425
+
426
+ ``` typescript
427
+ import { UIKitProvider } from '@tencentcloud/uikit-base-component-react';
428
+
429
+ export default function App() {
430
+ return (
431
+ <UIKitProvider theme="light" language="zh-CN">
432
+ {/* Route or page content */}
433
+ </UIKitProvider>
434
+ );
435
+ }
436
+ ```
437
+
438
+ ### Configure User Relationship Chain
439
+
440
+ TUIRoomKit's built-in participant invitation and meeting scheduling picker components use TRTC IM's User Relationship Chain (Friend List) by default. To display your organization's internal structure or custom Friend List, sync your business contacts to TRTC IM via Server APIs:
441
+ 1. Use [Account Management > Import Multiple Accounts](https://trtc.io/document/34954) REST API to batch import user accounts.
442
+
443
+ 2. Use [Friend Management > Import Friends](https://trtc.io/document/34903) REST API to batch import user relationships.
444
+
445
+ ### Modify Meeting Share Link
446
+
447
+ By default, TUIRoomKit uses the current page address as the Meeting Share Link.
448
+
449
+ To customize the share link, call `conference.setFeatureConfig` after successfully joining or creating a room, ensuring Room ID is available.
450
+ ``` typescript
451
+ import { conference } from '@tencentcloud/roomkit-web-react';
452
+
453
+ // Call after conference.createAndJoinRoom / conference.joinRoom succeeds, when roomId is known
454
+ const roomId = '123456';
455
+ conference.setFeatureConfig({
456
+ shareLink: `https://your-domain.com/room?roomId=${roomId}`,
457
+ });
458
+ ```
459
+
460
+ ### Configure Video Stream Layout and Meeting Widgets
461
+
462
+ TUIRoomKit supports three video stream layouts: Grid Layout, Sidebar Layout, and Top Bar Layout. The default is Grid Layout. Change the layout by calling `conference.setFeatureConfig`.
463
+ ``` typescript
464
+ import { RoomLayoutTemplate } from 'tuikit-atomicx-react/room';
465
+ import { conference } from '@tencentcloud/roomkit-web-react';
466
+
467
+ // Option 1: Set Sidebar Layout as default
468
+ conference.setFeatureConfig({ layoutTemplate: RoomLayoutTemplate.SidebarLayout });
469
+
470
+ // Option 2: Set Top Bar Layout as default
471
+ conference.setFeatureConfig({ layoutTemplate: RoomLayoutTemplate.CinemaLayout });
472
+ ```
473
+
474
+ ## FAQs
475
+
476
+ ### Does the meeting end immediately if the Host closes the webpage or exits unexpectedly?
477
+
478
+ No. If the Host closes the browser or leaves due to network issues, the meeting continues and other Participants can interact as usual.
479
+
480
+ To conserve resources, actively end the room when the meeting concludes using one of the following methods:
481
+ - UI: Host clicks the "End Room" button in TUIRoomKit UI
482
+
483
+ - Client APIs: Call `conference.endRoom()`
484
+
485
+ - Server APIs: Use REST API for remote destruction
486
+
487
+ If not ended manually, the system will automatically reclaim resources 6 hours after the scheduled end time if the room has zero Participants.
488
+
489
+ ### Can multiple devices use the same userId to join the same meeting at the same time?
490
+
491
+ No. TUIRoomKit does not allow the same userId to join the same room on multiple devices simultaneously.
492
+ - Kick mechanism: If a new device joins with the same userId, the device already in the room will be forced offline.
493
+
494
+ - Solution: Assign a unique userId to each device for multi-device participation.
495
+
496
+ ### Works locally, but fails to access camera or microphone after deployment?
497
+ - Cause: Browsers restrict access to audio/video devices for security and privacy. Access is only allowed in secure environments (https://, localhost, file://, etc.). HTTP is not secure and browsers will block media device access.
498
+
499
+ - Solution: If local access works but fails after deployment, check if your site uses HTTP. Deploy over HTTPS and ensure a valid certificate.
500
+
501
+ - For more details, see [URL Domain and Protocol Restrictions](https://trtc.io/document/41664).
502
+
503
+ ### Is iframe integration supported?
504
+
505
+ Yes. When integrating TUIRoomKit via iframe, set the allow attribute to grant necessary browser permissions (microphone, camera, screen sharing, fullscreen, etc.) as shown below:
506
+ ``` typescript
507
+ // Enable microphone, camera, screen sharing, fullscreen permissions
508
+ <iframe src="https://your-domain.com/index.html" allow="microphone; camera; display-capture; display; fullscreen;">
509
+ ```
510
+
511
+ For more information, see Embedded Pages (iframe).
512
+
513
+ ### Is intranet proxy supported?
514
+
515
+ Yes. Set intranet proxy parameters as shown below. For more details, see [Dealing with Firewall Restrictions](https://trtc.io/document/59667).
516
+ ``` typescript
517
+ // Set intranet proxy parameters before entering the room
518
+ import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';
519
+ import { useRoomEngine } from 'tuikit-atomicx-react/room';
520
+
521
+ const roomEngine = useRoomEngine();
522
+
523
+ TUIRoomEngine.once('ready', () => {
524
+ const trtcCloud = roomEngine.instance?.getTRTCCloud();
525
+ trtcCloud.callExperimentalAPI(JSON.stringify({
526
+ api: 'setNetworkProxy',
527
+ params: {
528
+ websocketProxy: "wss://proxy.example.com/ws/",
529
+ turnServer: [{
530
+ url: '14.3.3.3:3478',
531
+ username: 'turn',
532
+ credential: 'turn',
533
+ }],
534
+ iceTransportPolicy: 'relay',
535
+ },
536
+ }));
537
+ });
538
+ ```
539
+
540
+ ### Can TUIRoomKit source code be modified directly?
541
+
542
+ TUIRoomKit offers rich customization out of the box—custom themes and languages, UI tweaks, custom video layouts and widgets, watermarking, and more—so you can meet most UI and interaction requirements without changing the source.
543
+
544
+ We strongly discourage exporting the source code. Doing so removes your project from TUIRoomKit's standard npm upgrade path, increases maintenance costs, and prevents you from benefiting from new features and performance improvements in the underlying audio/video engine.
545
+ - Recommended: Explore standard customization options in the UI customization documentation.
546
+
547
+ - Feedback: If the available APIs do not meet your needs, contact us via [Contact Us](https://trtc.io/contact) to submit your requirements. We will evaluate and strive to provide stable, standardized API support.
548
+
549
+ If you have fully considered the maintenance risks and require deep customization, you may export the source code as follows:
550
+
551
+ 【React】
552
+ 1. Run the export script. The default copy path is `./src/components/RoomKit`
553
+
554
+ ``` bash
555
+ node ./node_modules/@tencentcloud/roomkit-web-react/scripts/eject.js
556
+ ```
557
+ 2. Follow the script prompts to confirm whether to copy TUIRoomKit source code to `./src/components/RoomKit`. Enter 'y' to customize the copy directory, or 'n' otherwise.
558
+
559
+ 3. After exporting, the source code will appear in your specified project path. Update the import paths for the `ConferenceMainView` component and `conference` object from the npm package address to the RoomKit source path.
560
+
561
+ ``` typescript
562
+ import { ConferenceMainView, conference } from '@tencentcloud/roomkit-web-react';
563
+ // Change import path to the actual TUIRoomKit source path
564
+ import { ConferenceMainView, conference } from './components/RoomKit/index.ts';
565
+ ```
566
+ 4. Configure ESLint
567
+
568
+ If you encounter ESLint errors after exporting, add the RoomKit folder to `.eslintignore` to ignore ESLint checks.
569
+ ``` javascript
570
+ // Replace with the actual TUIRoomKit source path
571
+ src/components/RoomKit
572
+ ```
573
+
574
+ ## Contact Us
575
+
576
+ If you have any questions or suggestions during integration or usage, you are welcome to join our [Telegram technical group](https://t.me/+EPk6TMZEZMM5OGY1) or [contact us](https://trtc.io/contact) for support.
@@ -0,0 +1,44 @@
1
+ ## Introduction
2
+
3
+ Quick Demo show the basic audio and video communication capabilities with sample code:
4
+ - Set user to login TRTC platform service
5
+
6
+ - Turn on/off your camera and microphone, and send them to others
7
+
8
+ - Share your screen with others
9
+
10
+ ## How to use
11
+
12
+ ### 1. Create an Application
13
+
14
+ Users within an application are allowed to enter the same room for audio and video calls. `SDKAppID` and `SDKSecretKey` are the unique verification credentials for the application.
15
+ <div style="height:-10px"></div>
16
+
17
+ You can create it in the [Console](https://console.trtc.io/app), and get it's `SDKAppID` and `SDKSecretKey`. We will use those to login quick demo.
18
+
19
+ ### 2. Online Demo
20
+
21
+ You can fill in the `SDKAppID` and `SDKSecretKey` obtained from the first part into the following demo, and click "Enter Room" button.
22
+
23
+ After success, an invitation link will be generated, so you can invite another person to join the call together!
24
+ <iframe src="https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/samples/basic-features/quick-start/index.html?lang=en" height="900" width="100%" allow="microphone;camera;display-capture;" allowfullscreen="true" frameborder="no">
25
+ <p>您的浏览器不支持 iframe 标签。</p>
26
+ </iframe>
27
+
28
+ ## More Demo
29
+
30
+ The above Demo is written in native JavaScript. You can access its [source code here](https://github.com/Tencent-RTC/TRTC_Web/tree/main/samples/basic-features/quick-start), you can also click on [this link](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/samples/basic-features/quick-start/index.html) to access it in a separate window.
31
+ <div> </div>
32
+
33
+ We also provide demos for React, Vue2, Vue3. Here's the links:
34
+ - [React Online Demo](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/quick-demo-react/index.html#/) and [React Github](https://github.com/Tencent-RTC/TRTC_Web/tree/main/quick-demo-react)
35
+
36
+ - [Vue2 Online Demo](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/quick-demo-vue2-js/index.html#/) and [Vue2 Github](https://github.com/Tencent-RTC/TRTC_Web/tree/main/quick-demo-vue2-js)
37
+
38
+ - [Vue3 Online Demo](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/quick-demo-vue3-ts/index.html#/) and [Vue3 Github](https://github.com/Tencent-RTC/TRTC_Web/tree/main/quick-demo-vue3-ts)
39
+
40
+ <div></div>
41
+
42
+ <div></div>
43
+
44
+ If you want to integrate it yourself, you can visit [the integration guide documentation.](https://trtc.io/document/59649)
@@ -32,7 +32,7 @@ If you want to have complete control over the user experience when autoplay fail
32
32
 
33
33
  ### Step 1: Disable SDK default popup
34
34
 
35
- Set the `enableAutoPlayDialog` parameter to `false` when calling the [TRTC.enterRoom](./TRTC.html#enterRoom) interface:
35
+ Set the `enableAutoPlayDialog` parameter to `false` when calling the [TRTC.enterRoom](TRTC.md#enterRoom) interface:
36
36
 
37
37
  ```javascript
38
38
  await trtc.enterRoom({
@@ -43,7 +43,7 @@ await trtc.enterRoom({
43
43
 
44
44
  ### Step 2: Listen for autoplay failure events (Required)
45
45
 
46
- Listen to the [AUTOPLAY_FAILED](./module-EVENT.html#.AUTOPLAY_FAILED) event to handle autoplay failures. The SDK will automatically monitor user click events and resume playback after the user clicks.
46
+ Listen to the [AUTOPLAY_FAILED](module-EVENT.md#.AUTOPLAY_FAILED) event to handle autoplay failures. The SDK will automatically monitor user click events and resume playback after the user clicks.
47
47
 
48
48
  ```javascript
49
49
  trtc.on(TRTC.EVENT.AUTOPLAY_FAILED, event => {
@@ -77,6 +77,12 @@ function showCustomDialog(event) {
77
77
  - When playing remote streams for the first time, you must call the playback interface directly in the user click event callback
78
78
  - You cannot use asynchronous methods like setTimeout to call the playback interface, otherwise playback will fail
79
79
 
80
+ 3. **Iframe embedding scenario**: When the TRTC SDK runs inside an iframe, the following limitations apply:
81
+ - User clicks on the parent page (outside the iframe) cannot penetrate into the iframe, so the click event cannot be captured by the iframe's `document`. The SDK's default auto-resume listener will not be triggered.
82
+ - The parent page should add the `allow="autoplay"` attribute to the iframe to allow the iframe page to use autoplay. However, `allow="autoplay"` **does not disable the browser's autoplay policy**; it only allows the iframe to attempt autoplay. For audible media, the browser may still require the user to first interact with the iframe content.
83
+ - If using the SDK's default dialog, make sure users can click on the SDK dialog inside the iframe to resume playback.
84
+ - For a custom experience, disable the SDK default dialog (`enableAutoPlayDialog: false`), listen to the `AUTOPLAY_FAILED` event, show a custom button inside the iframe, and call the `resume()` method from the event in the button's click callback.
85
+
80
86
  ## Disable Autoplay Policy in Webview
81
87
 
82
88
  The default autoplay policy in Android and iOS Webview may be different to the browser. You can refer to the following document to turn off autoplay restrictions in your App.
@@ -1,6 +1,24 @@
1
1
  ## Function Description
2
2
 
3
- This article will introduce how to add background music during a call. [Experience demo](https://web.sdk.qcloud.com/trtc/webrtc/demo/api-sample/improve-audio-mixer.html?roomID=43222).
3
+ This article will introduce how to add background music during a call. [Experience demo](https://web.sdk.qcloud.com/trtc/webrtc/demo/api-sample/improve-audio-mixer.html).
4
+
5
+ ## Run Demo
6
+
7
+ <div style="margin: 20px 0;">
8
+ <details class="trtc-demo-details" style="border-radius: 10px; border: 1px solid #e5e6eb; overflow: hidden; box-shadow: 0 4px 14px rgba(0,82,217,0.08); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;">
9
+ <summary style="padding: 14px 22px; background: linear-gradient(135deg, #006eff 0%, #0052d9 100%); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; list-style: none; user-select: none; display: flex; align-items: center; gap: 10px; transition: filter 0.2s;">
10
+ <span class="trtc-demo-arrow" style="font-size: 14px; opacity: 0.9;">▶</span>
11
+ <span class="trtc-demo-summary-text">Click to Run Demo</span>
12
+ </summary>
13
+ <div style="padding: 16px; background: #fff;">
14
+ <script>
15
+ (function(){var t=null;window.addEventListener('message',function(e){if(e.data&&e.data.type==='trtc-demo-resize'){var f=document.querySelector('.trtc-demo-iframe');if(f){f.style.height=e.data.height+'px';clearTimeout(t);t=setTimeout(function(){f.style.height=e.data.height+'px'},200)}}})})();
16
+ document.querySelectorAll('.trtc-demo-details').forEach(function(d){d.addEventListener('toggle',function(){var s=d.querySelector('.trtc-demo-summary-text'),a=d.querySelector('.trtc-demo-arrow');if(d.open){s&&(s.textContent='Click to Close Demo');a&&(a.textContent='▼')}else{s&&(s.textContent='Click to Run Demo');a&&(a.textContent='▶')}})});
17
+ </script>
18
+ <iframe allow="microphone; camera; display-capture;" class="trtc-demo-iframe" style="width:100%;border:none;min-height:700px" title="Music and Audio Effects" src="https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/samples/advance-features/enable-audio-mixer/index.html?lang=en" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"></iframe>
19
+ </div>
20
+ </details>
21
+ </div>
4
22
 
5
23
  ## Prerequisites
6
24