@tencent-rtc/mcp 1.4.7 → 1.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/cursor-setting.png +0 -0
  2. package/knowledge/bm25-cache.js +74 -0
  3. package/knowledge/bm25-cache.js.map +1 -0
  4. package/knowledge/bm25.js +148 -0
  5. package/knowledge/bm25.js.map +1 -0
  6. package/knowledge/build-index.js +70 -0
  7. package/knowledge/build-index.js.map +1 -0
  8. package/knowledge/chunker.js +168 -0
  9. package/knowledge/chunker.js.map +1 -0
  10. package/knowledge/content-loader.js +40 -0
  11. package/knowledge/content-loader.js.map +1 -0
  12. package/knowledge/doc-url-resolver.js +143 -0
  13. package/knowledge/doc-url-resolver.js.map +1 -0
  14. package/knowledge/extractors.js +26 -0
  15. package/knowledge/extractors.js.map +1 -0
  16. package/knowledge/path-meta.js +185 -0
  17. package/knowledge/path-meta.js.map +1 -0
  18. package/knowledge/search/exact-lookup.js +498 -0
  19. package/knowledge/search/exact-lookup.js.map +1 -0
  20. package/knowledge/search/filter-pool.js +105 -0
  21. package/knowledge/search/filter-pool.js.map +1 -0
  22. package/knowledge/search/product-scope-intent.js +41 -0
  23. package/knowledge/search/product-scope-intent.js.map +1 -0
  24. package/knowledge/search/requires-framework.js +82 -0
  25. package/knowledge/search/requires-framework.js.map +1 -0
  26. package/knowledge/search/search-knowledge.js +230 -0
  27. package/knowledge/search/search-knowledge.js.map +1 -0
  28. package/mcp-server-prompt.png +0 -0
  29. package/package.json +1 -1
  30. package/resource/_schema/feature-aliases.yaml +10 -0
  31. package/resource/_schema/goal-tags.yaml +72 -0
  32. package/resource/_schema/products.yaml +19 -0
  33. package/resource/_schema/trtc-intents.yaml +27 -0
  34. package/resource/_schema/types.yaml +43 -0
  35. package/resource/index/component-slugs.json +1 -0
  36. package/resource/index/doc-source-urls.json +1 -0
  37. package/resource/index/manifest.json +1 -0
  38. package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
  39. package/resource/integration/callkit/preset/flutter/integration.md +346 -0
  40. package/resource/integration/callkit/preset/ios/integration.md +408 -0
  41. package/resource/integration/callkit/preset/react/integration.md +362 -0
  42. package/resource/integration/callkit/preset/vue/integration.md +356 -0
  43. package/resource/integration/chat/preset/android/integration.md +500 -0
  44. package/resource/integration/chat/preset/flutter/integration.md +370 -0
  45. package/resource/integration/chat/preset/ios/integration.md +566 -0
  46. package/resource/integration/chat/preset/react/integration.md +490 -0
  47. package/resource/integration/chat/preset/vue/integration.md +504 -0
  48. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
  49. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
  50. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
  51. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
  52. package/resource/integration/roomkit/preset/vue/integration.md +562 -0
  53. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
  54. package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
  55. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
  56. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
  57. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
  58. package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
  59. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
  60. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
  61. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
  62. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  63. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  64. package/resource/knowledge/callkit/faq/android.md +92 -0
  65. package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
  66. package/resource/knowledge/callkit/faq/error-code.md +67 -0
  67. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  68. package/resource/knowledge/callkit/faq/ios.md +104 -0
  69. package/resource/knowledge/callkit/faq/web.md +74 -0
  70. package/resource/knowledge/callkit/preset/android/api.md +412 -0
  71. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  72. package/resource/knowledge/callkit/preset/ios/api.md +234 -0
  73. package/resource/knowledge/callkit/preset/web/api.md +83 -0
  74. package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
  75. package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
  76. package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
  77. package/resource/knowledge/chat/preset/android/features/language.md +136 -0
  78. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  79. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  80. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  81. package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
  82. package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
  83. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
  84. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  85. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  86. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  87. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  88. package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
  89. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  90. package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
  91. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
  92. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  93. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  94. package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
  95. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  96. package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
  97. package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
  98. package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
  99. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
  100. package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
  101. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
  102. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
  103. package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
  104. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
  105. package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
  106. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
  107. package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
  108. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
  109. package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
  110. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  111. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
  112. package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
  113. package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
  114. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
  115. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
  116. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
  117. package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
  118. package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
  119. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
  120. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  121. package/resource/knowledge/chat/urls/error-code.md +17 -0
  122. package/resource/knowledge/chat/urls/product.md +43 -0
  123. package/resource/knowledge/chat/urls/restapi.md +204 -0
  124. package/resource/knowledge/chat/urls/sdk/android.md +80 -0
  125. package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
  126. package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
  127. package/resource/knowledge/chat/urls/sdk/web.md +80 -0
  128. package/resource/knowledge/chat/urls/webhook.md +68 -0
  129. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
  130. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  135. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  136. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  137. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
  138. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  140. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
  141. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  148. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
  149. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
  154. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
  155. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
  156. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  157. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  158. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  159. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  160. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  161. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  162. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  163. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
  164. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  165. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  166. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
  167. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
  168. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
  172. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
  181. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
  182. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
  183. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
  184. package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
  185. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
  186. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
  187. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
  188. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
  189. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
  190. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
  191. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
  192. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
  193. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
  194. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
  195. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
  196. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
  198. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
  203. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
  204. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
  205. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
  206. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
  207. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
  208. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
  209. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
  210. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
  211. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
  212. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
  213. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
  214. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
  215. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
  216. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
  217. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
  218. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
  219. package/resource/knowledge/livekit/faq/error-code.md +193 -0
  220. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
  221. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
  222. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
  223. package/resource/knowledge/push/config/android.md +92 -0
  224. package/resource/knowledge/push/config/harmonyos.md +83 -0
  225. package/resource/knowledge/push/config/ios.md +254 -0
  226. package/resource/knowledge/push/config/react-native.md +254 -0
  227. package/resource/knowledge/push/config/unity.md +209 -0
  228. package/resource/knowledge/push/config/unreal-engine.md +194 -0
  229. package/resource/knowledge/push/integration/android.md +404 -0
  230. package/resource/knowledge/push/integration/flutter.md +465 -0
  231. package/resource/knowledge/push/integration/harmonyos.md +63 -0
  232. package/resource/knowledge/push/integration/ios.md +246 -0
  233. package/resource/knowledge/push/integration/react-native.md +366 -0
  234. package/resource/knowledge/push/integration/uni-app.md +208 -0
  235. package/resource/knowledge/push/integration/unity.md +389 -0
  236. package/resource/knowledge/push/integration/unreal-engine.md +390 -0
  237. package/resource/knowledge/push/overview/prepare.md +60 -0
  238. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
  239. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
  240. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
  241. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
  242. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  243. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
  244. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
  245. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
  246. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
  247. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
  248. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
  249. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
  250. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
  251. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
  252. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
  253. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
  254. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
  255. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
  256. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
  257. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
  258. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
  259. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
  260. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
  261. package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
  262. package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
  263. package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
  264. package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
  265. package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
  266. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
  267. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
  268. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  269. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
  270. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  271. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
  272. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
  273. package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
  274. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  275. package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
  276. package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
  277. package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
  278. package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
  279. package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
  280. package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
  281. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
  282. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  283. package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
  284. package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
  285. package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
  286. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
  287. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  288. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
  289. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
  290. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
  291. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
  292. package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
  293. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
  294. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
  295. package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
  296. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
  297. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  298. package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
  299. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
  300. package/server.js +35 -11
  301. package/server.js.map +1 -1
  302. package/tools/call/get_native_call_uikit_integration.js +2 -3
  303. package/tools/call/get_native_call_uikit_integration.js.map +1 -1
  304. package/tools/call/get_native_callkit_core_integration.js +2 -5
  305. package/tools/call/get_native_callkit_core_integration.js.map +1 -1
  306. package/tools/call/get_web_call_uikit_integration.js +2 -3
  307. package/tools/call/get_web_call_uikit_integration.js.map +1 -1
  308. package/tools/chat/get_native_chat_uikit_integration.js +2 -3
  309. package/tools/chat/get_native_chat_uikit_integration.js.map +1 -1
  310. package/tools/chat/get_web_chat_uikit_integration.js +2 -3
  311. package/tools/chat/get_web_chat_uikit_integration.js.map +1 -1
  312. package/tools/common/present_framework_choice.js +19 -13
  313. package/tools/common/present_framework_choice.js.map +1 -1
  314. package/tools/common/record_answer.js +19 -25
  315. package/tools/common/record_answer.js.map +1 -1
  316. package/tools/common/record_feedback.js +17 -30
  317. package/tools/common/record_feedback.js.map +1 -1
  318. package/tools/common/search_trtc_knowledge.js +45 -0
  319. package/tools/common/search_trtc_knowledge.js.map +1 -0
  320. package/tools/definitions/get_native_call_uikit_integration_def.js +3 -1
  321. package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
  322. package/tools/definitions/get_native_callkit_core_integration_def.js +5 -3
  323. package/tools/definitions/get_native_callkit_core_integration_def.js.map +1 -1
  324. package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -2
  325. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  326. package/tools/definitions/get_native_livekit_core_integration_def.js +6 -5
  327. package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -1
  328. package/tools/definitions/get_web_call_uikit_integration_def.js +4 -2
  329. package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
  330. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -0
  331. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
  332. package/tools/definitions/get_web_live_uikit_integration_def.js +5 -5
  333. package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
  334. package/tools/definitions/get_web_room_core_integration_def.js +50 -0
  335. package/tools/definitions/get_web_room_core_integration_def.js.map +1 -0
  336. package/tools/definitions/get_web_room_uikit_integration_def.js +5 -4
  337. package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
  338. package/tools/definitions/integration-boundary.js +6 -0
  339. package/tools/definitions/integration-boundary.js.map +1 -0
  340. package/tools/definitions/present_framework_choice_def.js +12 -10
  341. package/tools/definitions/present_framework_choice_def.js.map +1 -1
  342. package/tools/definitions/record_answer_def.js +19 -17
  343. package/tools/definitions/record_answer_def.js.map +1 -1
  344. package/tools/definitions/record_feedback_def.js +14 -13
  345. package/tools/definitions/record_feedback_def.js.map +1 -1
  346. package/tools/definitions/search_trtc_knowledge_def.js +40 -0
  347. package/tools/definitions/search_trtc_knowledge_def.js.map +1 -0
  348. package/tools/index.js +5 -36
  349. package/tools/index.js.map +1 -1
  350. package/tools/live/get_native_livekit_core_integration.js +1 -3
  351. package/tools/live/get_native_livekit_core_integration.js.map +1 -1
  352. package/tools/live/get_web_live_uikit_integration.js +2 -4
  353. package/tools/live/get_web_live_uikit_integration.js.map +1 -1
  354. package/tools/room/get_web_room_core_integration.js +48 -0
  355. package/tools/room/get_web_room_core_integration.js.map +1 -0
  356. package/tools/room/get_web_room_uikit_integration.js +2 -3
  357. package/tools/room/get_web_room_uikit_integration.js.map +1 -1
  358. package/utils/generate-structured-result.js +24 -30
  359. package/utils/generate-structured-result.js.map +1 -1
  360. package/utils/get-doc-content.js +14 -8
  361. package/utils/get-doc-content.js.map +1 -1
  362. package/utils/report-cls-client.js +18 -20
  363. package/utils/report-cls-client.js.map +1 -1
  364. package/utils/report-es-client.js +1 -1
  365. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  366. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
  367. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
  368. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
  369. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
  370. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
  371. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
  372. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
  373. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
  374. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
  375. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
  376. package/resource/doc/callkit/faq/common/error-code.md +0 -47
  377. package/resource/doc/callkit/faq/flutter-faq.md +0 -115
  378. package/resource/doc/callkit/faq/ios-faq.md +0 -115
  379. package/resource/doc/callkit/faq/web-faq.md +0 -36
  380. package/resource/doc/callkit/preset/android/api.md +0 -296
  381. package/resource/doc/callkit/preset/flutter/api.md +0 -410
  382. package/resource/doc/callkit/preset/flutter/integration.md +0 -164
  383. package/resource/doc/callkit/preset/ios/api.md +0 -80
  384. package/resource/doc/callkit/preset/ios/integration.md +0 -187
  385. package/resource/doc/callkit/preset/react/api.md +0 -501
  386. package/resource/doc/callkit/preset/react/integration.md +0 -86
  387. package/resource/doc/callkit/preset/vue/api.md +0 -501
  388. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  389. package/resource/doc/chatkit/android/faq.md +0 -111
  390. package/resource/doc/chatkit/android/features/theme.md +0 -219
  391. package/resource/doc/chatkit/android/integration.md +0 -490
  392. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
  393. package/resource/doc/chatkit/faq/common/product.md +0 -7
  394. package/resource/doc/chatkit/faq/common/server.md +0 -44
  395. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  396. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
  397. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
  398. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
  399. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  400. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
  401. package/resource/doc/chatkit/flutter/faq.md +0 -23
  402. package/resource/doc/chatkit/flutter/features/theme.md +0 -235
  403. package/resource/doc/chatkit/flutter/integration.md +0 -344
  404. package/resource/doc/chatkit/ios/faq.md +0 -111
  405. package/resource/doc/chatkit/ios/features/theme.md +0 -267
  406. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  407. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  408. package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
  409. package/resource/doc/chatkit/react/components/chat.md +0 -38
  410. package/resource/doc/chatkit/react/components/component-list.md +0 -37
  411. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  412. package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
  413. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
  414. package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
  415. package/resource/doc/chatkit/react/components/message-list.md +0 -293
  416. package/resource/doc/chatkit/react/components/tuikit.md +0 -34
  417. package/resource/doc/chatkit/react/faq.md +0 -26
  418. package/resource/doc/chatkit/react/integration.md +0 -416
  419. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  420. package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
  421. package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
  422. package/resource/doc/chatkit/vue/components/chat.md +0 -45
  423. package/resource/doc/chatkit/vue/components/component-list.md +0 -87
  424. package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
  425. package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
  426. package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
  427. package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
  428. package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
  429. package/resource/doc/chatkit/vue/components/message-list.md +0 -433
  430. package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
  431. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  432. package/resource/doc/chatkit/vue/faq.md +0 -36
  433. package/resource/doc/chatkit/vue/integration.md +0 -428
  434. package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
  435. package/resource/doc/livekit/faq/common/error-code.md +0 -88
  436. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  437. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
  438. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
  439. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
  440. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
  441. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  442. package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
  443. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  444. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
  445. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  446. package/resource/doc/roomkit/vue/features/room-state.md +0 -282
  447. package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
  448. package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
  449. package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
  450. package/resource/doc/roomkit/vue/integration.md +0 -315
  451. package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
  452. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  453. package/resource/doc/rtcengine/web/.gitkeep +0 -0
  454. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
  455. package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
  456. package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
  457. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
  458. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
  459. package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
  460. package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
  461. package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
  462. package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
  463. package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
  464. package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
  465. package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
  466. package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
  467. package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
  468. package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
  469. package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
  470. package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
  471. package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
  472. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
  473. package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
  474. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
  475. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
  476. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
  477. package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
  478. package/tools/call/get_callkit_api.js +0 -33
  479. package/tools/call/get_callkit_api.js.map +0 -1
  480. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  481. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  482. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  483. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  484. package/tools/common/get_faq.js +0 -266
  485. package/tools/common/get_faq.js.map +0 -1
  486. package/tools/common/record_skill_session.js +0 -69
  487. package/tools/common/record_skill_session.js.map +0 -1
  488. package/tools/definitions/get_callkit_api_def.js +0 -29
  489. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  490. package/tools/definitions/get_faq_def.js +0 -47
  491. package/tools/definitions/get_faq_def.js.map +0 -1
  492. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  493. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  494. package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
  495. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  496. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  497. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  498. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  499. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  500. package/tools/definitions/get_web_livekit_api_def.js +0 -30
  501. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  502. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
  503. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  504. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
  505. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  506. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
  507. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  508. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
  509. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  510. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
  511. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  512. package/tools/definitions/record_skill_session_def.js +0 -31
  513. package/tools/definitions/record_skill_session_def.js.map +0 -1
  514. package/tools/live/get_native_livekit_core_features.js +0 -68
  515. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  516. package/tools/live/get_web_livekit_api.js +0 -33
  517. package/tools/live/get_web_livekit_api.js.map +0 -1
  518. package/tools/live/get_web_livekit_component_detail.js +0 -35
  519. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  520. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  521. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  522. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  523. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  524. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  525. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  526. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  527. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  528. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  529. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  530. package/utils/build-session-directives.js +0 -120
  531. package/utils/build-session-directives.js.map +0 -1
  532. package/utils/handle-framework.js +0 -9
  533. package/utils/handle-framework.js.map +0 -1
  534. package/utils/handle-state-name.js +0 -29
  535. package/utils/handle-state-name.js.map +0 -1
  536. package/utils/report-runtime-error-cls-client.js +0 -91
  537. package/utils/report-runtime-error-cls-client.js.map +0 -1
  538. /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
  539. /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
  540. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  541. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  542. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  552. /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
@@ -0,0 +1,221 @@
1
+ The in-room calling feature allows a user inside a meeting (the inviter) to send a real-time join invitation to other users outside the room (the invitees). This feature is implemented based on `Atomicx State Hooks` and helps developers quickly build interactive scenarios with active invitation capabilities.
2
+
3
+ ## Use Cases
4
+ - **Collaborative work:** During a remote meeting, if a cross-department decision is involved, you can call in external experts with one click to quickly join the meeting, shortening the communication chain.
5
+
6
+ - **Live teaching:** If a teacher notices during a class that some students are absent, they can directly invite them to join the class.
7
+
8
+ - **Internet-based medical consultation:** During case analysis, a primary physician can use the calling feature to invite a senior physician into the virtual consultation room for a multi-party consultation, or a physician can call a patient in the waiting room for a consultation.
9
+
10
+ ## Prerequisites
11
+
12
+ Before integrating the feature, make sure the following conditions are met:
13
+ - **Inviter (User A):** The user has completed login authentication via `useLoginState` (see the Integration Overview) and is already in a room as the room owner or a member (see the Room Lifecycle).
14
+
15
+ - **Invitee (User B):** The user has completed login authentication via `useLoginState` (see the Integration Overview) so that they can receive signaling events.
16
+
17
+ - **Environment dependency:** The project has correctly installed and imported `tuikit-atomicx-vue3`.
18
+
19
+ ## Implementing the In-Room Calling Feature
20
+
21
+ The core flow for implementing in-room calling is as follows:
22
+
23
+ In-room calling sequence diagram
24
+
25
+ ### Step 1: Initiate the Call (Inviter)
26
+
27
+ The inviter calls the [callUserToRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#callUserToRoom) interface to initiate the invitation. Make sure the inviter is currently in a room (that is, [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/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 calling must be associated with an existing roomId, so the user's in-room status must be verified first
35
+ if (!currentRoom.value) {
36
+ console.warn('Please enter a room before initiating an invitation');
37
+ return;
38
+ }
39
+
40
+ try {
41
+ const resultMap = await callUserToRoom({
42
+ roomId: currentRoom.value.roomId, // The room ID that the invitee will join
43
+ userIdList: ['user1', 'user2'], // Array of target user IDs, supports single or multiple users
44
+ timeout: 60, // Invitation valid duration (seconds); after timeout, both parties trigger onCallTimeout
45
+ // extensionInfo can be used to pass custom business 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, or AlreadyInCalling
50
+ console.log('Invitation sent, detailed status map:', resultMap);
51
+ } catch (error) {
52
+ console.error('Failed to send the call request; please check the 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 a persistent component such as `App.vue` to ensure the user can respond no matter 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); // Controls the visibility of the UI dialog
74
+ const currentCallInfo = ref(null); // Caches the received invitation context
75
+
76
+ const handleCallReceived = async ({ roomInfo, call, extensionInfo }) => {
77
+ // Conflict handling: if the user is already in a meeting, based on the business strategy you should usually reject the new invitation directly to avoid interference
78
+ if (currentRoom.value?.roomId) {
79
+ await rejectCall({ roomId: roomInfo.roomId });
80
+ return;
81
+ }
82
+
83
+ // Record the invitation details, used to display the inviter's name or business pass-through data in the UI
84
+ currentCallInfo.value = { roomInfo, call };
85
+ showInviteDialog.value = true;
86
+ };
87
+
88
+ // Logic for accepting the invitation
89
+ const onUserAccept = async () => {
90
+ if (!currentCallInfo.value) return;
91
+ const { roomId } = currentCallInfo.value.roomInfo;
92
+
93
+ try {
94
+ // Key step A: Respond to the signaling. Notify the inviter that the call has been accepted so they can update the UI (for example, show "The other party has answered")
95
+ await acceptCall({ roomId });
96
+
97
+ // Key step B: Join the room. Only by calling joinRoom will the audio/video publish-subscribe pipeline actually be started
98
+ await joinRoom({ roomId });
99
+ } catch (error) {
100
+ console.error('Failed to join the room after accepting the call:', error);
101
+ } finally {
102
+ closeDialog();
103
+ }
104
+ };
105
+
106
+ // Logic for rejecting the invitation
107
+ const onUserReject = async () => {
108
+ if (currentCallInfo.value) {
109
+ // Notify the inviter of the rejection; the inviter will receive the 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
+ // Full lifecycle event management: ensure listeners are added when the component is mounted and removed when it is destroyed, to prevent event overflow
121
+ onMounted(() => {
122
+ subscribeEvent(RoomEvent.onCallReceived, handleCallReceived);
123
+
124
+ // Listen for the various exception/synchronization events that end the invitation, to ensure the UI dialog can close in time
125
+ subscribeEvent(RoomEvent.onCallCancelled, closeDialog); // The inviter cancelled the call
126
+ subscribeEvent(RoomEvent.onCallTimeout, closeDialog); // The call timed out without a response
127
+ subscribeEvent(RoomEvent.onCallHandledByOtherDevice, closeDialog); // The user handled the call on another device
128
+ });
129
+
130
+ onUnmounted(() => {
131
+ // Remove all listeners to avoid handleCallReceived continuing to run after the component is destroyed, which would cause 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 the Call Answer Rate
140
+
141
+ To achieve a higher call answer rate in your business, beyond implementing the basic functionality, it is recommended to refer to the following strategies to optimize the user experience:
142
+
143
+ ### 1. Enhance Call Awareness (Avoid Users Missing Calls)
144
+
145
+ Due to the characteristics of the Web platform, a muted browser or a page running in the background may cause the user to miss a call.
146
+ - **Visual reminder**: Use the [Page Visibility API](https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API) to detect the page visibility state. If the page is in the background, you can implement a blinking title bar reminder by cyclically modifying `document.title` (for example: "[New Invitation] UserA is inviting you to join the meeting...") to attract the user's attention.
147
+
148
+ - **Auditory reminder**: Play a high-priority prompt ringtone when the `onCallReceived` event is triggered. Note: You must follow the browser's [autoplay policy](https://developer.mozilla.org/zh-CN/docs/Web/Media/Guides/Autoplay). Most browsers restrict automatic audio playback in the absence of user interaction (such as a click, touch, or key press).
149
+
150
+ ### 2. Enrich the Invitation Context (Increase Willingness to Answer)
151
+
152
+ Invitations that lack a clear intent are easily rejected by users. It is recommended to make full use of the `extensionInfo` field to pass key business information to increase the user's willingness to answer.
153
+ - **Pass business context**: Use `extensionInfo` to pass through business fields such as `reason` (for example: "Urgent project review") and `level` (for example: "P0 incident troubleshooting") to inform the user of the urgency and importance of the call.
154
+
155
+ ### 3. Multi-Channel Reach as a Fallback (Ensure Message Delivery)
156
+
157
+ Limited by the Web platform mechanism, the browser process being terminated will make it impossible to receive real-time signaling. It is recommended to adopt the following alternatives to ensure delivery:
158
+ - **Browser system notifications**: Guide the user to authorize the [Web Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). As long as the browser process is not closed (including when minimized or in a background tab), an operating-system-level pop-up notification can be triggered to effectively remind the user.
159
+
160
+ - **Multi-channel reach**: It is recommended to combine this with your business backend logic. When the user is detected to be offline or does not respond within the timeout, send a join link through external channels such as **SMS**, **email**, or **WeCom** to achieve comprehensive reach.
161
+
162
+ ### 4. Intelligent Retry Mechanism (Solving "Join Failure After Accepting the Invitation")
163
+
164
+ In a weak network or other unstable environment, the `joinRoom` call after the user clicks accept may occasionally fail.
165
+ - **Automatic retry**: It is recommended to introduce a mechanism of 2-3 automatic retries in the exception handling logic (`catch`) of `onUserAccept` (an exponential backoff strategy is recommended) to maximize the likelihood that the user successfully joins the meeting after clicking "Accept".
166
+
167
+ ## Development Notes
168
+ 1. **Accepting an invitation does not equal joining the room**
169
+
170
+ `acceptCall` is only a reply at the signaling level (notifying the other party that the call has been answered). The user must call `await joinRoom({ roomId })` manually immediately after calling `acceptCall` to actually enter the audio/video room.
171
+
172
+ 2. **Lifecycle management**
173
+
174
+ Be sure to call `unsubscribeEvent` during the component destruction phase (`onUnmounted`). If the listeners are not cleaned up, when the user switches pages, the listeners from the old page will remain in memory, causing multiple windows to pop up for a single invitation or logic to be executed repeatedly.
175
+
176
+ 3. **Timeout setting**
177
+
178
+ If the `timeout` parameter is not set, in certain network exceptions or program crash scenarios, the invitation may remain in a pending state for a long time, making it impossible to call the user again. It is recommended to set it to 30-60 seconds.
179
+
180
+ ## FAQ
181
+ 1. **How can I include custom parameters when calling (such as "Urgent meeting from XX")?**
182
+
183
+ Use the `extensionInfo` parameter of `callUserToRoom` to pass a JSON string. The invitee can parse this string from the `extensionInfo` field of the `onCallReceived` event to obtain the business information.
184
+
185
+ 2. **If the invitee is offline, will they receive the invitation after coming online?**
186
+
187
+ No. The invitation event is a transient signaling action, and the SDK currently does not resend call notifications received while offline.
188
+
189
+ 3. **Can I cancel an invitation that has already been sent?**
190
+
191
+ Yes. Call `cancelCall({ roomId, userIdList })` to revoke it. At this point, the invitee will receive the `onCallCancelled` event, and you need to listen for this event to close the invitee's UI dialog.
192
+
193
+ 4. **What should I do if joining the room fails after accepting?**
194
+
195
+ Check whether `TUIRoomEngine` is logged in, retry `joinRoom({ roomId })`, and catch errors to prompt the user; if necessary, provide a "Retry" button in the UI.
196
+
197
+ 5. **How to indicate that the other party is busy or already in another room?**
198
+
199
+ If `AlreadyInRoom` / `AlreadyInCalling` appears in the `resultMap` return value of `callUserToRoom`, you should prompt "The other party is busy / already in a meeting" in the inviter's UI and decide whether to retry later.
200
+
201
+ 6. **The dialog does not close after a timeout/cancellation?**
202
+
203
+ Make sure to listen for `onCallTimeout`, `onCallCancelled`, and `onCallHandledByOtherDevice`, and uniformly close the dialog and clean up the current invitation data in the callbacks.
204
+
205
+ 7. **How to handle multiple devices ringing simultaneously?**
206
+
207
+ After accepting/rejecting on any device, the other devices will receive `onCallHandledByOtherDevice`, and you need to close the dialogs on the other devices to avoid duplicate handling.
208
+
209
+ 8. **How should extensionInfo be defined?**
210
+
211
+ It is recommended to use a JSON string with agreed-upon fields (for example, `type`, `priority`, `from`), parse it in `handleCallReceived`, and display a friendly message (for example, "Urgent meeting from XX").
212
+
213
+ ## **Example Project**
214
+
215
+ Tencent Cloud provides the example 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 in order to implement the complete RoomKit functionality.
216
+
217
+ ## API Documentation
218
+
219
+ |**State/Component**|**Description**|**API Documentation**|
220
+ |---------|---------|---------|
221
+ |**useRoomState**|Room state management (creation, joining, scheduling, etc.)|[API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomState)|
@@ -1,30 +1,30 @@
1
- This document will guide you on how to provide device preview and testing functionality before users join a room. Through the pre-room testing interfaces provided by Atomicx, you can guide users to check and adjust their audio/video device status, ensuring they enter the multi-party audio/video room in the best condition.
1
+ This document guides you through providing device preview and testing capabilities before a user joins a room. Using the pre-join testing APIs provided by Atomicx, you can guide users to check and adjust the status of their audio and video devices, ensuring they enter a multi-party audio/video room in the best possible state.
2
2
 
3
- ## Feature Introduction
3
+ ## Feature Overview
4
4
 
5
- Device preview is an important part of ensuring the smooth operation of audio/video rooms. Atomicx provides a dedicated set of testing interfaces specifically for pre-room scenarios, with core capabilities including:
6
- - **Video Preview**: Start the camera without streaming to verify picture clarity and lighting.
5
+ Device preview is a crucial step in ensuring the smooth operation of an audio/video room. Atomicx provides a dedicated set of testing APIs specifically for the pre-join scenario. Its core capabilities include:
6
+ - **Video preview**: Start the camera without publishing a stream to verify image clarity and lighting.
7
7
 
8
- - **Microphone Detection**: Confirm microphone capture is working properly through real-time volume feedback.
8
+ - **Microphone detection**: Confirm that microphone capture is working properly through real-time volume feedback.
9
9
 
10
- - **Speaker Calibration**: Confirm output device and volume settings by playing test audio.
10
+ - **Speaker calibration**: Confirm the output device and its volume settings by playing a test sound.
11
11
 
12
12
  ## Prerequisites
13
- - User has completed login authentication through [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState), please refer to Integration Overview.
13
+ - The user has completed login authentication via [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-LoginState). See the Integration Overview for details.
14
14
 
15
- ## Implementing Device Detection Features
15
+ ## Implementing Device Detection
16
16
 
17
17
  ### Step 1: Camera Test
18
18
 
19
- Use the [startCameraTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#startCameraTest) method to start camera testing. This method is only used for local preview and does not generate network traffic.
19
+ Use the [startCameraTest](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#startCameraTest) method to start the camera test. This method is used for local preview only and does not generate any network traffic.
20
20
 
21
- **Code Example:**
21
+ **Code example:**
22
22
  ``` typescript
23
23
  <template>
24
24
  <div class="preview-container">
25
25
  <!-- Camera preview area -->
26
26
  <div id="camera-preview" class="camera-preview">
27
- <!-- Loading status -->
27
+ <!-- Loading state -->
28
28
  <div v-if="isCameraTestLoading" class="loading-overlay">
29
29
  <div class="loading-spinner" />
30
30
  <span>Starting camera...</span>
@@ -33,7 +33,7 @@ Use the [startCameraTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.
33
33
 
34
34
  <!-- Camera selection -->
35
35
  <div class="camera-selector">
36
- <label>Select Camera</label>
36
+ <label>Select camera</label>
37
37
  <select
38
38
  :value="currentCamera?.deviceId"
39
39
  @change="handleCameraChange"
@@ -51,12 +51,12 @@ Use the [startCameraTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.
51
51
 
52
52
  <!-- Control buttons -->
53
53
  <div class="control-buttons">
54
- <button @click="getCameraList">Get Camera List</button>
54
+ <button @click="getCameraList">Get camera list</button>
55
55
  <button
56
56
  @click="toggleCameraTest"
57
57
  :disabled="isCameraTestLoading"
58
58
  >
59
- {{ isCameraTesting ? 'Stop Preview' : 'Start Preview' }}
59
+ {{ isCameraTesting ? 'Stop preview' : 'Start preview' }}
60
60
  </button>
61
61
  </div>
62
62
  </div>
@@ -117,15 +117,15 @@ const handleCameraChange = async (event: Event) => {
117
117
 
118
118
  ### Step 2: Microphone Test
119
119
 
120
- Start microphone testing through [startMicrophoneTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#startMicrophoneTest), and use [testingMicVolume](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#testingMicVolume) to implement real-time volume bar fluctuation in the UI.
120
+ Use [startMicrophoneTest](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#startMicrophoneTest) to start the microphone test, and use [testingMicVolume](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#testingMicVolume) to drive the real-time fluctuation of the UI volume bar.
121
121
 
122
- **Code Example:**
122
+ **Code example:**
123
123
  ``` typescript
124
124
  <template>
125
125
  <div class="microphone-test">
126
126
  <!-- Volume display -->
127
127
  <div class="volume-display">
128
- <div class="volume-label">Microphone Volume</div>
128
+ <div class="volume-label">Microphone volume</div>
129
129
  <div class="volume-bar-container">
130
130
  <div
131
131
  class="volume-bar"
@@ -138,7 +138,7 @@ Start microphone testing through [startMicrophoneTest](https://web.sdk.qcloud.co
138
138
 
139
139
  <!-- Microphone selection -->
140
140
  <div class="microphone-selector">
141
- <label>Select Microphone</label>
141
+ <label>Select microphone</label>
142
142
  <select
143
143
  :value="currentMicrophone?.deviceId"
144
144
  @change="handleMicrophoneChange"
@@ -159,18 +159,18 @@ Start microphone testing through [startMicrophoneTest](https://web.sdk.qcloud.co
159
159
  <button
160
160
  @click="getMicrophoneList"
161
161
  >
162
- Get Devices
162
+ Get devices
163
163
  </button>
164
164
  <button
165
165
  @click="toggleMicrophoneTest"
166
166
  >
167
- {{ isMicrophoneTesting ? 'Stop Test' : 'Start Test' }}
167
+ {{ isMicrophoneTesting ? 'Stop test' : 'Start test' }}
168
168
  </button>
169
169
  </div>
170
170
 
171
171
  <!-- Test tip -->
172
172
  <div v-if="isMicrophoneTesting" class="test-tip">
173
- <span>Please speak into the microphone to see volume changes</span>
173
+ <span>Please speak into the microphone and observe the volume change</span>
174
174
  </div>
175
175
  </div>
176
176
  </template>
@@ -202,14 +202,14 @@ const volumeClass = computed(() => {
202
202
  return 'volume-high';
203
203
  });
204
204
 
205
- // Cleanup: stop testing
205
+ // Cleanup: stop the test
206
206
  onUnmounted(() => {
207
207
  if (isMicrophoneTesting.value) {
208
208
  stopMicrophoneTest();
209
209
  }
210
210
  });
211
211
 
212
- // Toggle microphone test
212
+ // Toggle the microphone test
213
213
  const toggleMicrophoneTest = async () => {
214
214
  if (isMicrophoneTesting.value) {
215
215
  await stopMicrophoneTest();
@@ -222,7 +222,7 @@ const toggleMicrophoneTest = async () => {
222
222
  }
223
223
  };
224
224
 
225
- // Switch microphone device
225
+ // Switch the microphone device
226
226
  const handleMicrophoneChange = async (event: Event) => {
227
227
  const deviceId = (event.target as HTMLSelectElement).value;
228
228
  try {
@@ -240,15 +240,15 @@ const handleMicrophoneChange = async (event: Event) => {
240
240
 
241
241
  ### Step 3: Speaker Test
242
242
 
243
- Use the [startSpeakerTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#startSpeakerTest) method to play a specified audio file to confirm whether the speaker is working properly.
243
+ Use the [startSpeakerTest](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#startSpeakerTest) method to play a specified audio file to confirm whether the speaker is working properly.
244
244
 
245
- **Code Example:**
245
+ **Code example:**
246
246
  ``` typescript
247
247
  <template>
248
248
  <div class="speaker-test">
249
249
  <!-- Speaker selection -->
250
250
  <div class="speaker-selector">
251
- <label>Select Speaker</label>
251
+ <label>Select speaker</label>
252
252
  <select
253
253
  :value="currentSpeaker?.deviceId"
254
254
  @change="handleSpeakerChange"
@@ -266,24 +266,24 @@ Use the [startSpeakerTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index
266
266
 
267
267
  <!-- Control buttons -->
268
268
  <div class="control-buttons">
269
- <button @click="getSpeakerList">Get Speaker List</button>
269
+ <button @click="getSpeakerList">Get speaker list</button>
270
270
  <button
271
271
  @click="toggleSpeakerTest"
272
272
  :disabled="isSpeakerTesting"
273
273
  >
274
- {{ isSpeakerTesting ? 'Playing...' : 'Play Test Audio' }}
274
+ {{ isSpeakerTesting ? 'Playing...' : 'Play test audio' }}
275
275
  </button>
276
276
  <button
277
277
  v-if="isSpeakerTesting"
278
278
  @click="stopSpeakerTest"
279
279
  >
280
- Stop Playback
280
+ Stop playback
281
281
  </button>
282
282
  </div>
283
283
 
284
284
  <!-- Test tip -->
285
285
  <div v-if="isSpeakerTesting" class="test-tip">
286
- <span>Playing test audio, please confirm if you can hear the sound</span>
286
+ <span>Playing test audio. Please confirm whether you can hear the sound</span>
287
287
  </div>
288
288
  </div>
289
289
  </template>
@@ -303,17 +303,17 @@ const {
303
303
  } = useDeviceState();
304
304
 
305
305
  // Test audio file path
306
- // Note: This URL is for development testing only. For production environments, please use your own audio file. It is recommended to use a 3-5 second MP3 format audio file
306
+ // Note: This URL is for development and testing only. In production, please use your own audio file. A 3-5 second MP3 file is recommended.
307
307
  const testAudioPath = 'https://web.sdk.qcloud.com/trtc/electron/download/resources/media/TestSpeaker.mp3';
308
308
 
309
- // Cleanup: stop testing
309
+ // Cleanup: stop the test
310
310
  onUnmounted(() => {
311
311
  if (isSpeakerTesting.value) {
312
312
  stopSpeakerTest();
313
313
  }
314
314
  });
315
315
 
316
- // Toggle speaker test
316
+ // Toggle the speaker test
317
317
  const toggleSpeakerTest = async () => {
318
318
  if (isSpeakerTesting.value) {
319
319
  await stopSpeakerTest();
@@ -326,7 +326,7 @@ const toggleSpeakerTest = async () => {
326
326
  }
327
327
  };
328
328
 
329
- // Switch speaker device
329
+ // Switch the speaker device
330
330
  const handleSpeakerChange = async (event: Event) => {
331
331
  const deviceId = (event.target as HTMLSelectElement).value;
332
332
  try {
@@ -342,29 +342,30 @@ const handleSpeakerChange = async (event: Event) => {
342
342
  </style>
343
343
  ```
344
344
 
345
- ## API Documentation
346
- | **State/Component** | **Feature Description** | **API Documentation** |
347
- | --- | --- | --- |
348
- | **useDeviceState** | Contains audio/video device status, audio/video device list and operation interfaces. | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState) |
345
+ ## API Reference
346
+
347
+ |**State/Component**|**Description**|**API Reference**|
348
+ |---------|---------|---------|
349
+ |**useDeviceState**|Contains audio/video device status, the audio/video device list, and operation APIs.|[API Reference](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-DeviceState)|
349
350
 
350
351
  ## FAQ
351
352
 
352
353
  ### Why is there no image in the camera preview?
353
354
 
354
- Possible reasons include:
355
- - **Permission denied:** Check if the browser allows camera permissions.
355
+ Possible causes include:
356
+ - **Permission denied:** Check whether the browser allows camera access.
356
357
 
357
- - **Device occupied:** Close other applications using the camera.
358
+ - **Device in use:** Close other applications that are using the camera.
358
359
 
359
- - **Device not connected:** Check if the camera is properly connected.
360
+ - **Device not connected:** Check whether the camera is properly connected.
360
361
 
361
- - **Browser not supported:** Use modern browsers such as Chrome, Edge, etc.
362
+ - **Browser not supported:** Use a modern browser such as Chrome or Edge.
362
363
 
363
- ### Microphone test volume is always 0?
364
+ ### Why does the volume stay at 0 during the microphone test?
364
365
 
365
- Possible reasons include:
366
- - **Microphone permission not granted:** Check browser permission settings.
366
+ Possible causes include:
367
+ - **Microphone permission not granted:** Check the browser permission settings.
367
368
 
368
- - **Microphone is muted:** Check system microphone settings.
369
+ - **Microphone muted:** Check the system microphone settings.
369
370
 
370
371
  - **Wrong device selected:** Switch to the correct microphone device.