@tencent-rtc/mcp 1.4.6 → 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 -10
  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 -49
  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,588 @@
1
+ `RoomParticipantStore` is a module in `AtomicXCore` for managing participants in a conference room. It provides the core building blocks for multi-party conferencing—so you can implement reliable participant and role management.
2
+
3
+ ## Core Features
4
+ - **Get the participant list**: Retrieve details for everyone currently in the room.
5
+
6
+ - **Transfer room ownership**: The current owner can transfer ownership to another participant.
7
+
8
+ - **Grant/revoke admin role**: The owner can promote participants to admins and revoke admin privileges.
9
+
10
+ - **Remove a participant**: The owner or an admin can remove a participant from the room.
11
+
12
+ - **Update participant profile**: Participants can update their own in-room profile information.
13
+
14
+ - **Manage audio/video devices**: Invite participants to enable camera/mic, remotely turn off another participant’s camera/mic, and (for owners/admins) mute all or disable all video.
15
+
16
+ ## Core Concepts
17
+
18
+ The core concepts of `RoomParticipantStore` is summarized as follows:
19
+ | Core Concept | Type | Core Responsibilities & Description |
20
+ | --- | --- | --- |
21
+ | <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant/index.html">RoomParticipant</a> | <code>data class</code> | Represents the participant data model, encapsulating participant information and state management.<br>Main functions include managing participant basic information (user ID, user name, user avatar, in-room role) and managing device status (microphone, camera, screen sharing, message status). |
22
+ | <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-state/index.html">RoomParticipantState</a> | <code>data class</code> | Represents the participant state management structure, responsible for maintaining participant-related state information in the room. Main properties:<br>- <code>participantList</code>: collection of all participant information in the current room.<br>- <code>participantListCursor</code>: snapshot for paginated participant list.<br>- <code>localParticipant</code>: current user's participant information in the room. |
23
+ | <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-listener/index.html">RoomParticipantListener</a> | <code>abstract class</code> | Handles real-time participant events in the room, grouped as join/exit events, role change events, and device control events. |
24
+ | <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-store/index.html">RoomParticipantStore</a> | <code>abstract class</code> | Core class for participant control. Functions include managing participant audio/video status, participant management operations, and subscribing to<br><code>RoomParticipantListener</code> for real-time events. |
25
+
26
+ ## Implementation Steps
27
+
28
+ ### Step 1: Add the SDK
29
+
30
+ Follow the Integration Overview to integrate the AtomicXCore SDK. Make sure you have completed the Implement Login Logic before proceeding.
31
+
32
+ ### Step 2: Retrieve the Participant List
33
+
34
+ After entering the room, use the `getParticipantList` method of `RoomParticipantStore` to get the current list of participants.
35
+ ``` java
36
+ import android.util.Log
37
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
38
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipant
39
+ import io.trtc.tuikit.atomicxcore.api.ListResultCompletionHandler
40
+
41
+ fun getParticipantList() {
42
+ // Prerequisite: You must be in the room and have created a RoomParticipantStore instance with roomID
43
+ val roomID = "test_room_001"
44
+ val participantStore = RoomParticipantStore.create(roomID)
45
+
46
+ // Fetch participant list, supports pagination via cursor
47
+ val initialCursor: String? = null // null fetches the first page
48
+
49
+ participantStore.getParticipantList(initialCursor, object : ListResultCompletionHandler<RoomParticipant> {
50
+ override fun onSuccess(result: List<RoomParticipant>, cursor: String) {
51
+ Log.d("Participant", "Retrieved participant list, count: ${result.size}")
52
+ }
53
+
54
+ override fun onFailure(code: Int, desc: String) {
55
+ Log.e("Participant", "Failed to retrieve participant list [Error code: $code]: $desc")
56
+ }
57
+ })
58
+ }
59
+ ```
60
+
61
+ ### Step 3: Search Room Members
62
+
63
+ Once you've entered the room, call the `searchUsers` method of `RoomParticipantStore` to search for members.
64
+ ``` java
65
+ import android.util.Log
66
+ import io.trtc.tuikit.atomicxcore.api.ListResultCompletionHandler
67
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
68
+ import io.trtc.tuikit.atomicxcore.api.room.RoomUser
69
+
70
+ fun searchUsers() {
71
+ // Prerequisite: You must be in the room.
72
+ val participantStore = RoomParticipantStore.create(roomID = "your_room_id")
73
+
74
+ // Search by user name keyword
75
+ val keyword = "userName"
76
+
77
+ participantStore.searchUsers(keyword = keyword, completion = object : ListResultCompletionHandler<RoomUser> {
78
+ override fun onSuccess(result: List<RoomUser>, cursor: String) {
79
+ Log.d("Test", "Search succeeded, member count: ${result.size}")
80
+ }
81
+
82
+ override fun onFailure(code: Int, desc: String) {
83
+ Log.e("Test", "Search failed [Error code: $code]: $desc")
84
+ }
85
+ })
86
+ }
87
+ ```
88
+
89
+ ### Step 4: Transfer the Room Ownership
90
+
91
+ If you're the owner, use `transferOwner` in `RoomParticipantStore` to transfer ownership to any participant. After transfer, the previous owner becomes a regular participant. Each room can have only one owner.
92
+ ``` java
93
+ import android.util.Log
94
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
95
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
96
+
97
+ fun transferOwner(userID: String) {
98
+ // Prerequisite: You must be in the room and have a RoomParticipantStore instance
99
+ val roomID = "test_room_001"
100
+ val participantStore = RoomParticipantStore.create(roomID)
101
+
102
+ // Only the current owner can perform this operation
103
+ participantStore.transferOwner(userID, object : CompletionHandler {
104
+ override fun onSuccess() {
105
+ Log.d("Participant", "Ownership transferred, new owner: $userID")
106
+ }
107
+
108
+ override fun onFailure(code: Int, desc: String) {
109
+ Log.e("Participant", "Ownership transfer failed [Error code: $code]: $desc")
110
+ }
111
+ })
112
+ }
113
+ ```
114
+
115
+ Participants can subscribe to the `onOwnerChanged` event in `RoomParticipantListener` to receive ownership change notifications.
116
+ ``` java
117
+ import android.util.Log
118
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
119
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
120
+ import io.trtc.tuikit.atomicxcore.api.room.RoomUser
121
+
122
+ private val roomID = "test_room_001"
123
+ private val participantStore = RoomParticipantStore.create(roomID)
124
+
125
+ private val participantListener = object : RoomParticipantListener() {
126
+ override fun onOwnerChanged(newOwner: RoomUser, oldOwner: RoomUser) {
127
+ Log.d("Participant", "Ownership changed: newOwner: $newOwner, oldOwner: $oldOwner")
128
+ }
129
+ }
130
+
131
+ private fun subscribeParticipantEvent() {
132
+ participantStore.addRoomParticipantListener(participantListener)
133
+ }
134
+ ```
135
+
136
+ ### Step 5: Grant/Revoke Admin
137
+
138
+ Owners can call `setAdmin` in `RoomParticipantStore` to assign a user as admin, or `revokeAdmin` to remove admin privileges.
139
+ ``` java
140
+ import android.util.Log
141
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
142
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
143
+
144
+ private val roomID = "test_room_001"
145
+ private val participantStore = RoomParticipantStore.create(roomID)
146
+
147
+ fun setUserAsAdmin(userID: String) {
148
+ participantStore.setAdmin(userID, object : CompletionHandler {
149
+ override fun onSuccess() {
150
+ Log.d("Participant", "Assigned user $userID as admin")
151
+ }
152
+
153
+ override fun onFailure(code: Int, desc: String) {
154
+ Log.e("Participant", "Assign admin failed [Error code: $code]: $desc")
155
+ }
156
+ })
157
+ }
158
+
159
+ fun revokeAdmin(userID: String) {
160
+ participantStore.revokeAdmin(userID, object : CompletionHandler {
161
+ override fun onSuccess() {
162
+ Log.d("Participant", "Revoked admin privileges for user $userID")
163
+ }
164
+
165
+ override fun onFailure(code: Int, desc: String) {
166
+ Log.e("Participant", "Revoke admin failed [Error code: $code]: $desc")
167
+ }
168
+ })
169
+ }
170
+ ```
171
+
172
+ Participants can subscribe to `onAdminSet` and `onAdminRevoked` events in `RoomParticipantListener` to receive updates about role changes.
173
+ ``` java
174
+ import android.util.Log
175
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
176
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
177
+ import io.trtc.tuikit.atomicxcore.api.room.RoomUser
178
+
179
+ private val roomID = "test_room_001"
180
+ private val participantStore = RoomParticipantStore.create(roomID)
181
+
182
+ private val participantListener = object : RoomParticipantListener() {
183
+ override fun onAdminSet(userInfo: RoomUser) {
184
+ Log.d("Participant", "Admin assigned: $userInfo")
185
+ }
186
+
187
+ override fun onAdminRevoked(userInfo: RoomUser) {
188
+ Log.d("Participant", "Admin revoked: $userInfo")
189
+ }
190
+ }
191
+
192
+ private fun subscribeParticipantEvents() {
193
+ participantStore.addRoomParticipantListener(participantListener)
194
+ }
195
+ ```
196
+
197
+ ### Step 6: Remove Participants from a Room
198
+
199
+ Owners or admins can call `kickUser` in `RoomParticipantStore` to remove a participant.
200
+ ``` java
201
+ import android.util.Log
202
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
203
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
204
+
205
+ private val roomID = "test_room_001"
206
+ private val participantStore = RoomParticipantStore.create(roomID)
207
+
208
+ fun kickUser(userID: String) {
209
+ // Only owners or admins can perform this operation
210
+ participantStore.kickUser(userID, object : CompletionHandler {
211
+ override fun onSuccess() {
212
+ Log.d("Participant", "User removed: $userID")
213
+ }
214
+
215
+ override fun onFailure(code: Int, desc: String) {
216
+ Log.e("Participant", "Remove user failed [Error code: $code]: $desc")
217
+ }
218
+ })
219
+ }
220
+ ```
221
+
222
+ Participants can subscribe to `onKickedFromRoom` in `RoomParticipantListener` to receive removal notifications.
223
+ ``` java
224
+ import android.util.Log
225
+ import io.trtc.tuikit.atomicxcore.api.room.KickedOutOfRoomReason
226
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
227
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
228
+
229
+ private val roomID = "test_room_001"
230
+ private val participantStore = RoomParticipantStore.create(roomID)
231
+
232
+ private val participantListener = object : RoomParticipantListener() {
233
+ override fun onKickedFromRoom(reason: KickedOutOfRoomReason, message: String) {
234
+ Log.d("Participant", "Removed from room: reason: $reason, info: $message")
235
+ }
236
+ }
237
+
238
+ private fun subscribeParticipantEvents() {
239
+ participantStore.addRoomParticipantListener(participantListener)
240
+ }
241
+ ```
242
+
243
+ ### Step 7: Update the Participant Information
244
+
245
+ After joining the room, use `updateParticipantNameCard` and `updateParticipantMetaData` in `RoomParticipantStore` to update your information, such as name card and custom metadata.
246
+ ``` java
247
+ import android.util.Log
248
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
249
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
250
+
251
+ private val roomID = "test_room_001"
252
+ private val participantStore = RoomParticipantStore.create(roomID)
253
+
254
+ fun updateParticipantNameCard(userID: String, nameCard: String) {
255
+ // Only admins or the user themselves can modify the name card
256
+ participantStore.updateParticipantNameCard(userID, nameCard, object : CompletionHandler {
257
+ override fun onSuccess() {
258
+ Log.d("Participant", "Name card updated: user: $userID, new name card: $nameCard")
259
+ }
260
+
261
+ override fun onFailure(code: Int, desc: String) {
262
+ Log.e("Participant", "Name card update failed [Error code: $code]: $desc")
263
+ }
264
+ })
265
+ }
266
+
267
+ fun updateParticipantMetaData(userID: String, metaData: HashMap<String, ByteArray>) {
268
+ // Key length ≤ 50 bytes, value length ≤ 200 bytes
269
+ participantStore.updateParticipantMetaData(userID, metaData, object : CompletionHandler {
270
+ override fun onSuccess() {
271
+ Log.d("Participant", "Custom metadata updated: user: $userID, key count: ${metaData.size}")
272
+ }
273
+
274
+ override fun onFailure(code: Int, desc: String) {
275
+ Log.e("Participant", "Custom metadata update failed [Error code: $code]: $desc")
276
+ }
277
+ })
278
+ }
279
+ ```
280
+
281
+ ### Step 8: Invite Participants to Enable Their Devices
282
+
283
+ Owners or admins can call `inviteToOpenDevice` in `RoomParticipantStore` to invite participants to turn on their camera or microphone.
284
+ ``` java
285
+ import android.util.Log
286
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
287
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
288
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
289
+
290
+ private val roomID = "test_room_001"
291
+ private val participantStore = RoomParticipantStore.create(roomID)
292
+
293
+ fun inviteUserToOpenDevice(userID: String, device: DeviceType, timeout: Int = 30) {
294
+ // Invited participants will receive a notification and can accept or decline
295
+ participantStore.inviteToOpenDevice(userID, device, timeout, object : CompletionHandler {
296
+ override fun onSuccess() {
297
+ Log.d("Participant", "Device invitation sent: user: $userID, device: $device")
298
+ }
299
+
300
+ override fun onFailure(code: Int, desc: String) {
301
+ Log.e("Participant", "Device invitation failed [Error code: $code]: $desc")
302
+ }
303
+ })
304
+ }
305
+ ```
306
+
307
+ Participants should:
308
+ - Subscribe to `onDeviceInvitationReceived` in `RoomParticipantListener` to receive device invitations.
309
+
310
+ - Call `acceptOpenDeviceInvitation` or `declineOpenDeviceInvitation` to respond.
311
+
312
+ ``` java
313
+ import android.util.Log
314
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
315
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
316
+ import io.trtc.tuikit.atomicxcore.api.room.DeviceRequestInfo
317
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
318
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
319
+
320
+ private val roomID = "test_room_001"
321
+ private val participantStore = RoomParticipantStore.create(roomID)
322
+
323
+ private val participantListener = object : RoomParticipantListener() {
324
+ override fun onDeviceInvitationReceived(invitation: DeviceRequestInfo) {
325
+ Log.d("Participant", "Device invitation received: device: ${invitation.device}, sender: ${invitation.senderUserName}")
326
+ // Handle acceptance or decline
327
+ }
328
+ }
329
+
330
+ private fun subscribeParticipantEvents() {
331
+ participantStore.addRoomParticipantListener(participantListener)
332
+ }
333
+
334
+ fun acceptOpenDeviceInvitation(userID: String, device: DeviceType) {
335
+ participantStore.acceptOpenDeviceInvitation(userID, device, object : CompletionHandler {
336
+ override fun onSuccess() {
337
+ Log.d("Participant", "Accepted device invitation: device: $device")
338
+ }
339
+
340
+ override fun onFailure(code: Int, desc: String) {
341
+ Log.e("Participant", "Accept device invitation failed [Error code: $code]: $desc")
342
+ }
343
+ })
344
+ }
345
+
346
+ fun declineOpenDeviceInvitation(userID: String, device: DeviceType) {
347
+ participantStore.declineOpenDeviceInvitation(userID, device, object : CompletionHandler {
348
+ override fun onSuccess() {
349
+ Log.d("Participant", "Declined device invitation: device: $device")
350
+ }
351
+
352
+ override fun onFailure(code: Int, desc: String) {
353
+ Log.e("Participant", "Decline device invitation failed [Error code: $code]: $desc")
354
+ }
355
+ })
356
+ }
357
+ ```
358
+
359
+ ### Step 9: Close Remote Participant Devices
360
+
361
+ Owners or admins can call `closeParticipantDevice` in `RoomParticipantStore` to remotely disable a participant's camera or microphone.
362
+ ``` java
363
+ import android.util.Log
364
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
365
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
366
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
367
+
368
+ private val roomID = "test_room_001"
369
+ private val participantStore = RoomParticipantStore.create(roomID)
370
+
371
+ fun closeParticipantDevice(userID: String, device: DeviceType) {
372
+ participantStore.closeParticipantDevice(userID, device, object : CompletionHandler {
373
+ override fun onSuccess() {
374
+ Log.d("Participant", "Closed participant device: user: $userID, device: $device")
375
+ }
376
+
377
+ override fun onFailure(code: Int, desc: String) {
378
+ Log.e("Participant", "Close participant device failed [Error code: $code]: $desc")
379
+ }
380
+ })
381
+ }
382
+ ```
383
+
384
+ Participants can listen for `onParticipantDeviceClosed` in `RoomParticipantListener` to receive device closure notifications and update their UI.
385
+ ``` java
386
+ import android.util.Log
387
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
388
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
389
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
390
+ import io.trtc.tuikit.atomicxcore.api.room.RoomUser
391
+
392
+ private val roomID = "test_room_001"
393
+ private val participantStore = RoomParticipantStore.create(roomID)
394
+
395
+ private val participantListener = object : RoomParticipantListener() {
396
+ override fun onParticipantDeviceClosed(device: DeviceType, operator: RoomUser) {
397
+ Log.d("Participant", "Device closed: device: $device, operator: ${operator.userName}")
398
+ }
399
+ }
400
+
401
+ private fun subscribeParticipantEvents() {
402
+ participantStore.addRoomParticipantListener(participantListener)
403
+ }
404
+ ```
405
+
406
+ ### Step 10: Request Permission to Turn On Devices
407
+
408
+ Participants can call `requestToOpenDevice` in `RoomParticipantStore` to request permission to enable their camera or microphone if mute all or disable all video is active.
409
+ ``` java
410
+ import android.util.Log
411
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
412
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
413
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
414
+
415
+ private val roomID = "test_room_001"
416
+ private val participantStore = RoomParticipantStore.create(roomID)
417
+
418
+ fun requestToOpenDevice(device: DeviceType, timeout: Int = 30) {
419
+ participantStore.requestToOpenDevice(device, timeout, object : CompletionHandler {
420
+ override fun onSuccess() {
421
+ Log.d("Participant", "Request to enable device sent: device: $device")
422
+ }
423
+
424
+ override fun onFailure(code: Int, desc: String) {
425
+ Log.e("Participant", "Request to enable device failed [Error code: $code]: $desc")
426
+ }
427
+ })
428
+ }
429
+ ```
430
+
431
+ Owners or admins should:
432
+ - Subscribe to `onDeviceRequestReceived` in `RoomParticipantListener` to receive device requests.
433
+
434
+ - Use `approveOpenDeviceRequest` or `rejectOpenDeviceRequest` to respond.
435
+
436
+ ``` java
437
+ import android.util.Log
438
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
439
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
440
+ import io.trtc.tuikit.atomicxcore.api.room.DeviceRequestInfo
441
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
442
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
443
+
444
+ private val roomID = "test_room_001"
445
+ private val participantStore = RoomParticipantStore.create(roomID)
446
+
447
+ private val participantListener = object : RoomParticipantListener() {
448
+ override fun onDeviceRequestReceived(request: DeviceRequestInfo) {
449
+ Log.d("Participant", "Device request: user: ${request.senderUserName}, device: ${request.device}")
450
+ // Approve or reject the request
451
+ }
452
+ }
453
+
454
+ private fun subscribeParticipantEvents() {
455
+ participantStore.addRoomParticipantListener(participantListener)
456
+ }
457
+
458
+ fun approveOpenDeviceRequest(device: DeviceType, userID: String) {
459
+ participantStore.approveOpenDeviceRequest(device, userID, object : CompletionHandler {
460
+ override fun onSuccess() {
461
+ Log.d("Participant", "Device request approved: user: $userID, device: $device")
462
+ }
463
+
464
+ override fun onFailure(code: Int, desc: String) {
465
+ Log.e("Participant", "Device request approval failed: $desc")
466
+ }
467
+ })
468
+ }
469
+
470
+ fun rejectOpenDeviceRequest(device: DeviceType, userID: String) {
471
+ participantStore.rejectOpenDeviceRequest(device, userID, object : CompletionHandler {
472
+ override fun onSuccess() {
473
+ Log.d("Participant", "Device request rejected: user: $userID, device: $device")
474
+ }
475
+
476
+ override fun onFailure(code: Int, desc: String) {
477
+ Log.e("Participant", "Device request rejection failed [Error code: $code]: $desc")
478
+ }
479
+ })
480
+ }
481
+ ```
482
+
483
+ ### Step 11: Mute/Disable All Videos
484
+
485
+ Owners or admins can call `disableAllDevices` in `RoomParticipantStore` to mute all microphones or disable all cameras in the room. When enabled, participants cannot independently turn on their microphone or camera.
486
+ ``` java
487
+ import android.util.Log
488
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
489
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
490
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
491
+
492
+ private val roomID = "test_room_001"
493
+ private val participantStore = RoomParticipantStore.create(roomID)
494
+
495
+ fun disableAllDevices(device: DeviceType, disable: Boolean) {
496
+ participantStore.disableAllDevices(device, disable, object : CompletionHandler {
497
+ override fun onSuccess() {
498
+ val action = if (disable) "Disabled" else "Enabled"
499
+ Log.d("Participant", "${action} all ${device} successfully")
500
+ }
501
+
502
+ override fun onFailure(code: Int, desc: String) {
503
+ val action = if (disable) "Disabled" else "Enabled"
504
+ Log.e("Participant", "${action} all ${device} failed [Error code: $code]: $desc")
505
+ }
506
+ })
507
+ }
508
+ ```
509
+
510
+ Participants can subscribe to `onAllDevicesDisabled` in `RoomParticipantListener` to track mute all or disable all video actions and update their UI. When restricted, participants must submit requests to enable their camera or microphone.
511
+ ``` java
512
+ import android.util.Log
513
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceType
514
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
515
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
516
+ import io.trtc.tuikit.atomicxcore.api.room.RoomUser
517
+
518
+ private val roomID = "test_room_001"
519
+ private val participantStore = RoomParticipantStore.create(roomID)
520
+
521
+ private val participantListener = object : RoomParticipantListener() {
522
+ override fun onAllDevicesDisabled(device: DeviceType, disable: Boolean, operator: RoomUser) {
523
+ val action = if (disable) "Disabled" else "Enabled"
524
+ Log.d("Participant", "All ${device} ${action}: operator: ${operator.userName}")
525
+ }
526
+ }
527
+
528
+ private fun subscribeParticipantEvents() {
529
+ participantStore.addRoomParticipantListener(participantListener)
530
+ }
531
+ ```
532
+
533
+ ### Step 12: Listen for Participant Events
534
+
535
+ Subscribe to participant events in `RoomParticipantListener` to track who joins or leaves the room.
536
+ ``` java
537
+ import android.util.Log
538
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
539
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
540
+ import io.trtc.tuikit.atomicxcore.api.room.RoomUser
541
+
542
+ private val roomID = "test_room_001"
543
+ private val participantStore = RoomParticipantStore.create(roomID)
544
+
545
+ private val participantListener = object : RoomParticipantListener() {
546
+ override fun onParticipantJoined(participant: RoomUser) {
547
+ Log.d("Participant", "Participant joined: user: ${participant.userName}, ID: ${participant.userID}")
548
+ }
549
+
550
+ override fun onParticipantLeft(participant: RoomUser) {
551
+ Log.d("Participant", "Participant left: user: ${participant.userName}, ID: ${participant.userID}")
552
+ }
553
+ }
554
+
555
+ private fun subscribeParticipantEvents() {
556
+ participantStore.addRoomParticipantListener(participantListener)
557
+ }
558
+ ```
559
+
560
+ You can also subscribe to participant state changes in `RoomParticipantState`, such as tracking users who are currently speaking.
561
+ ``` java
562
+ import android.util.Log
563
+ import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
564
+ import kotlinx.coroutines.CoroutineScope
565
+ import kotlinx.coroutines.Dispatchers
566
+ import kotlinx.coroutines.launch
567
+
568
+ private val roomID = "test_room_001"
569
+ private val participantStore = RoomParticipantStore.create(roomID)
570
+
571
+ private fun subscribeParticipantState() {
572
+ CoroutineScope(Dispatchers.Main).launch {
573
+ participantStore.state.speakingUsers.collect { speakingUsers ->
574
+ Log.d("Participant", "Speaking users updated: count: ${speakingUsers.size}")
575
+ }
576
+ }
577
+ }
578
+ ```
579
+
580
+ ## API Documentation
581
+
582
+ |Store/Component|Description|API Documentation|
583
+ |---------|---------|---------|
584
+ |**RoomParticipantStore**|Manages room participants: assign admin, transfer ownership, retrieve participant list, remove participant, control participant devices (close, invite to enable camera/microphone, etc.), request device enablement.|[API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-store/index.html)|
585
+
586
+ ## Contact Us
587
+
588
+ If you have any questions or suggestions during integration or use, please contact info_rtc@tencent.com.