@tencent-rtc/mcp 1.4.7 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/cursor-setting.png +0 -0
  2. package/index.js +0 -1
  3. package/knowledge/bm25-cache.js +73 -0
  4. package/knowledge/bm25.js +147 -0
  5. package/knowledge/build-index.js +69 -0
  6. package/knowledge/chunker.js +167 -0
  7. package/knowledge/content-loader.js +39 -0
  8. package/knowledge/doc-url-resolver.js +142 -0
  9. package/knowledge/extractors.js +25 -0
  10. package/knowledge/path-meta.js +184 -0
  11. package/knowledge/search/exact-lookup.js +497 -0
  12. package/knowledge/search/filter-pool.js +104 -0
  13. package/knowledge/search/product-scope-intent.js +40 -0
  14. package/knowledge/search/requires-framework.js +81 -0
  15. package/knowledge/search/search-knowledge.js +229 -0
  16. package/mcp-server-prompt.png +0 -0
  17. package/package.json +1 -1
  18. package/resource/_schema/feature-aliases.yaml +10 -0
  19. package/resource/_schema/goal-tags.yaml +72 -0
  20. package/resource/_schema/products.yaml +19 -0
  21. package/resource/_schema/trtc-intents.yaml +27 -0
  22. package/resource/_schema/types.yaml +43 -0
  23. package/resource/index/component-slugs.json +1 -0
  24. package/resource/index/doc-source-urls.json +1 -0
  25. package/resource/index/manifest.json +1 -0
  26. package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
  27. package/resource/integration/callkit/preset/flutter/integration.md +346 -0
  28. package/resource/integration/callkit/preset/ios/integration.md +408 -0
  29. package/resource/integration/callkit/preset/react/integration.md +362 -0
  30. package/resource/integration/callkit/preset/vue/integration.md +356 -0
  31. package/resource/integration/chat/preset/android/integration.md +500 -0
  32. package/resource/integration/chat/preset/flutter/integration.md +370 -0
  33. package/resource/integration/chat/preset/ios/integration.md +566 -0
  34. package/resource/integration/chat/preset/react/integration.md +490 -0
  35. package/resource/integration/chat/preset/vue/integration.md +504 -0
  36. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
  37. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
  38. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
  39. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
  40. package/resource/integration/roomkit/preset/vue/integration.md +562 -0
  41. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
  42. package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
  43. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
  44. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
  45. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
  46. package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
  47. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
  48. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
  49. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
  50. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  51. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  52. package/resource/knowledge/callkit/faq/android.md +92 -0
  53. package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
  54. package/resource/knowledge/callkit/faq/error-code.md +67 -0
  55. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  56. package/resource/knowledge/callkit/faq/ios.md +104 -0
  57. package/resource/knowledge/callkit/faq/web.md +74 -0
  58. package/resource/knowledge/callkit/preset/android/api.md +412 -0
  59. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  60. package/resource/knowledge/callkit/preset/ios/api.md +234 -0
  61. package/resource/knowledge/callkit/preset/web/api.md +83 -0
  62. package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
  63. package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
  64. package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
  65. package/resource/knowledge/chat/preset/android/features/language.md +136 -0
  66. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  67. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  68. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  69. package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
  70. package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
  71. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
  72. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  73. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  74. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  75. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  76. package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
  77. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  78. package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
  79. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
  80. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  81. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  82. package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
  83. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  84. package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
  85. package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
  86. package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
  87. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
  88. package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
  89. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
  90. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
  91. package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
  92. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
  93. package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
  94. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
  95. package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
  96. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
  97. package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
  98. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  99. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
  100. package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
  101. package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
  102. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
  103. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
  104. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
  105. package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
  106. package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
  107. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
  108. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  109. package/resource/knowledge/chat/urls/error-code.md +17 -0
  110. package/resource/knowledge/chat/urls/product.md +43 -0
  111. package/resource/knowledge/chat/urls/restapi.md +204 -0
  112. package/resource/knowledge/chat/urls/sdk/android.md +80 -0
  113. package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
  114. package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
  115. package/resource/knowledge/chat/urls/sdk/web.md +80 -0
  116. package/resource/knowledge/chat/urls/webhook.md +68 -0
  117. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
  118. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  119. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  120. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
  121. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  122. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  123. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  124. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  125. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
  126. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  127. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  128. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
  129. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
  130. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  135. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  136. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
  137. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  138. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  140. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
  141. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  148. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  149. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  154. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
  155. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
  156. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
  157. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
  158. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
  159. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
  160. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
  161. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
  162. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
  163. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
  164. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
  165. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
  166. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
  167. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
  168. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
  172. package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
  181. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
  182. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
  183. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
  184. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
  185. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
  186. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
  187. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
  188. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
  189. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
  190. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
  191. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
  192. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
  193. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
  194. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
  195. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
  196. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
  198. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
  203. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
  204. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
  205. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
  206. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
  207. package/resource/knowledge/livekit/faq/error-code.md +193 -0
  208. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
  209. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
  210. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
  211. package/resource/knowledge/push/config/android.md +92 -0
  212. package/resource/knowledge/push/config/harmonyos.md +83 -0
  213. package/resource/knowledge/push/config/ios.md +254 -0
  214. package/resource/knowledge/push/config/react-native.md +254 -0
  215. package/resource/knowledge/push/config/unity.md +209 -0
  216. package/resource/knowledge/push/config/unreal-engine.md +194 -0
  217. package/resource/knowledge/push/integration/android.md +404 -0
  218. package/resource/knowledge/push/integration/flutter.md +465 -0
  219. package/resource/knowledge/push/integration/harmonyos.md +63 -0
  220. package/resource/knowledge/push/integration/ios.md +246 -0
  221. package/resource/knowledge/push/integration/react-native.md +366 -0
  222. package/resource/knowledge/push/integration/uni-app.md +208 -0
  223. package/resource/knowledge/push/integration/unity.md +389 -0
  224. package/resource/knowledge/push/integration/unreal-engine.md +390 -0
  225. package/resource/knowledge/push/overview/prepare.md +60 -0
  226. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
  227. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
  228. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
  229. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
  230. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  231. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
  232. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
  233. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
  234. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
  235. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
  236. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
  237. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
  238. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
  239. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
  240. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
  241. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
  242. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
  243. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
  244. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
  245. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
  246. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
  247. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
  248. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
  249. package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
  250. package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
  251. package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
  252. package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
  253. package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
  254. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
  255. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
  256. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  257. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
  258. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  259. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
  260. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
  261. package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
  262. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  263. package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
  264. package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
  265. package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
  266. package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
  267. package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
  268. package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
  269. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
  270. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  271. package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
  272. package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
  273. package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
  274. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
  275. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  276. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
  277. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
  278. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
  279. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
  280. package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
  281. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
  282. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
  283. package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
  284. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
  285. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  286. package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
  287. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
  288. package/server-config.js +0 -1
  289. package/server.js +35 -12
  290. package/streamable-http.js +0 -1
  291. package/tools/call/get_native_call_uikit_integration.js +2 -4
  292. package/tools/call/get_native_callkit_core_integration.js +2 -6
  293. package/tools/call/get_web_call_uikit_integration.js +2 -4
  294. package/tools/chat/get_native_chat_uikit_integration.js +2 -4
  295. package/tools/chat/get_web_chat_uikit_integration.js +2 -4
  296. package/tools/common/get_usersig.js +0 -1
  297. package/tools/common/present_framework_choice.js +19 -14
  298. package/tools/common/record_answer.js +19 -26
  299. package/tools/common/record_feedback.js +17 -31
  300. package/tools/common/search_trtc_knowledge.js +44 -0
  301. package/tools/definitions/get_native_call_uikit_integration_def.js +3 -2
  302. package/tools/definitions/get_native_callkit_core_integration_def.js +5 -4
  303. package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -3
  304. package/tools/definitions/get_native_livekit_core_integration_def.js +6 -6
  305. package/tools/definitions/get_usersig_def.js +0 -1
  306. package/tools/definitions/get_web_call_uikit_integration_def.js +4 -3
  307. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
  308. package/tools/definitions/get_web_live_uikit_integration_def.js +5 -6
  309. package/tools/definitions/get_web_room_core_integration_def.js +49 -0
  310. package/tools/definitions/get_web_room_uikit_integration_def.js +5 -5
  311. package/tools/definitions/integration-boundary.js +5 -0
  312. package/tools/definitions/present_framework_choice_def.js +12 -11
  313. package/tools/definitions/record_answer_def.js +19 -18
  314. package/tools/definitions/record_feedback_def.js +14 -14
  315. package/tools/definitions/search_trtc_knowledge_def.js +39 -0
  316. package/tools/index.js +5 -37
  317. package/tools/live/get_native_livekit_core_integration.js +1 -4
  318. package/tools/live/get_web_live_uikit_integration.js +2 -5
  319. package/tools/room/get_web_room_core_integration.js +47 -0
  320. package/tools/room/get_web_room_uikit_integration.js +2 -4
  321. package/utils/generate-structured-result.js +24 -31
  322. package/utils/generate-usersig.js +0 -1
  323. package/utils/get-device-identifier.js +0 -1
  324. package/utils/get-doc-content.js +14 -9
  325. package/utils/http-get.js +0 -1
  326. package/utils/http-post.js +0 -1
  327. package/utils/report-cls-client.js +18 -21
  328. package/utils/report-es-client.js +1 -2
  329. package/index.js.map +0 -1
  330. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  331. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
  332. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
  333. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
  334. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
  335. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
  336. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
  337. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
  338. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
  339. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
  340. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
  341. package/resource/doc/callkit/faq/common/error-code.md +0 -47
  342. package/resource/doc/callkit/faq/flutter-faq.md +0 -115
  343. package/resource/doc/callkit/faq/ios-faq.md +0 -115
  344. package/resource/doc/callkit/faq/web-faq.md +0 -36
  345. package/resource/doc/callkit/preset/android/api.md +0 -296
  346. package/resource/doc/callkit/preset/flutter/api.md +0 -410
  347. package/resource/doc/callkit/preset/flutter/integration.md +0 -164
  348. package/resource/doc/callkit/preset/ios/api.md +0 -80
  349. package/resource/doc/callkit/preset/ios/integration.md +0 -187
  350. package/resource/doc/callkit/preset/react/api.md +0 -501
  351. package/resource/doc/callkit/preset/react/integration.md +0 -86
  352. package/resource/doc/callkit/preset/vue/api.md +0 -501
  353. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  354. package/resource/doc/chatkit/android/faq.md +0 -111
  355. package/resource/doc/chatkit/android/features/theme.md +0 -219
  356. package/resource/doc/chatkit/android/integration.md +0 -490
  357. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
  358. package/resource/doc/chatkit/faq/common/product.md +0 -7
  359. package/resource/doc/chatkit/faq/common/server.md +0 -44
  360. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  361. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
  362. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
  363. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
  364. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  365. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
  366. package/resource/doc/chatkit/flutter/faq.md +0 -23
  367. package/resource/doc/chatkit/flutter/features/theme.md +0 -235
  368. package/resource/doc/chatkit/flutter/integration.md +0 -344
  369. package/resource/doc/chatkit/ios/faq.md +0 -111
  370. package/resource/doc/chatkit/ios/features/theme.md +0 -267
  371. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  372. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  373. package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
  374. package/resource/doc/chatkit/react/components/chat.md +0 -38
  375. package/resource/doc/chatkit/react/components/component-list.md +0 -37
  376. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  377. package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
  378. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
  379. package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
  380. package/resource/doc/chatkit/react/components/message-list.md +0 -293
  381. package/resource/doc/chatkit/react/components/tuikit.md +0 -34
  382. package/resource/doc/chatkit/react/faq.md +0 -26
  383. package/resource/doc/chatkit/react/integration.md +0 -416
  384. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  385. package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
  386. package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
  387. package/resource/doc/chatkit/vue/components/chat.md +0 -45
  388. package/resource/doc/chatkit/vue/components/component-list.md +0 -87
  389. package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
  390. package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
  391. package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
  392. package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
  393. package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
  394. package/resource/doc/chatkit/vue/components/message-list.md +0 -433
  395. package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
  396. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  397. package/resource/doc/chatkit/vue/faq.md +0 -36
  398. package/resource/doc/chatkit/vue/integration.md +0 -428
  399. package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
  400. package/resource/doc/livekit/faq/common/error-code.md +0 -88
  401. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  402. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
  403. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
  404. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
  405. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
  406. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  407. package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
  408. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  409. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
  410. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  411. package/resource/doc/roomkit/vue/features/room-state.md +0 -282
  412. package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
  413. package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
  414. package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
  415. package/resource/doc/roomkit/vue/integration.md +0 -315
  416. package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
  417. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  418. package/resource/doc/rtcengine/web/.gitkeep +0 -0
  419. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
  420. package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
  421. package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
  422. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
  423. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
  424. package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
  425. package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
  426. package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
  427. package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
  428. package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
  429. package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
  430. package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
  431. package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
  432. package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
  433. package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
  434. package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
  435. package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
  436. package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
  437. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
  438. package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
  439. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
  440. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
  441. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
  442. package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
  443. package/server-config.js.map +0 -1
  444. package/server.js.map +0 -1
  445. package/streamable-http.js.map +0 -1
  446. package/tools/call/get_callkit_api.js +0 -33
  447. package/tools/call/get_callkit_api.js.map +0 -1
  448. package/tools/call/get_native_call_uikit_integration.js.map +0 -1
  449. package/tools/call/get_native_callkit_core_integration.js.map +0 -1
  450. package/tools/call/get_web_call_uikit_integration.js.map +0 -1
  451. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  452. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  453. package/tools/chat/get_native_chat_uikit_integration.js.map +0 -1
  454. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  455. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  456. package/tools/chat/get_web_chat_uikit_integration.js.map +0 -1
  457. package/tools/common/get_faq.js +0 -266
  458. package/tools/common/get_faq.js.map +0 -1
  459. package/tools/common/get_usersig.js.map +0 -1
  460. package/tools/common/present_framework_choice.js.map +0 -1
  461. package/tools/common/record_answer.js.map +0 -1
  462. package/tools/common/record_feedback.js.map +0 -1
  463. package/tools/common/record_skill_session.js +0 -69
  464. package/tools/common/record_skill_session.js.map +0 -1
  465. package/tools/definitions/get_callkit_api_def.js +0 -29
  466. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  467. package/tools/definitions/get_faq_def.js +0 -47
  468. package/tools/definitions/get_faq_def.js.map +0 -1
  469. package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
  470. package/tools/definitions/get_native_callkit_core_integration_def.js.map +0 -1
  471. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  472. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  473. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +0 -1
  474. package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
  475. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  476. package/tools/definitions/get_native_livekit_core_integration_def.js.map +0 -1
  477. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  478. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  479. package/tools/definitions/get_usersig_def.js.map +0 -1
  480. package/tools/definitions/get_web_call_uikit_integration_def.js.map +0 -1
  481. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  482. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  483. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +0 -1
  484. package/tools/definitions/get_web_live_uikit_integration_def.js.map +0 -1
  485. package/tools/definitions/get_web_livekit_api_def.js +0 -30
  486. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  487. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
  488. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  489. package/tools/definitions/get_web_room_uikit_integration_def.js.map +0 -1
  490. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
  491. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  492. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
  493. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  494. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
  495. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  496. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
  497. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  498. package/tools/definitions/present_framework_choice_def.js.map +0 -1
  499. package/tools/definitions/record_answer_def.js.map +0 -1
  500. package/tools/definitions/record_feedback_def.js.map +0 -1
  501. package/tools/definitions/record_skill_session_def.js +0 -31
  502. package/tools/definitions/record_skill_session_def.js.map +0 -1
  503. package/tools/index.js.map +0 -1
  504. package/tools/live/get_native_livekit_core_features.js +0 -68
  505. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  506. package/tools/live/get_native_livekit_core_integration.js.map +0 -1
  507. package/tools/live/get_web_live_uikit_integration.js.map +0 -1
  508. package/tools/live/get_web_livekit_api.js +0 -33
  509. package/tools/live/get_web_livekit_api.js.map +0 -1
  510. package/tools/live/get_web_livekit_component_detail.js +0 -35
  511. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  512. package/tools/room/get_web_room_uikit_integration.js.map +0 -1
  513. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  514. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  515. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  516. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  517. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  518. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  519. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  520. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  521. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  522. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  523. package/utils/build-session-directives.js +0 -120
  524. package/utils/build-session-directives.js.map +0 -1
  525. package/utils/generate-structured-result.js.map +0 -1
  526. package/utils/generate-usersig.js.map +0 -1
  527. package/utils/get-device-identifier.js.map +0 -1
  528. package/utils/get-doc-content.js.map +0 -1
  529. package/utils/handle-framework.js +0 -9
  530. package/utils/handle-framework.js.map +0 -1
  531. package/utils/handle-state-name.js +0 -29
  532. package/utils/handle-state-name.js.map +0 -1
  533. package/utils/http-get.js.map +0 -1
  534. package/utils/http-post.js.map +0 -1
  535. package/utils/report-cls-client.js.map +0 -1
  536. package/utils/report-es-client.js.map +0 -1
  537. package/utils/report-runtime-error-cls-client.js +0 -91
  538. package/utils/report-runtime-error-cls-client.js.map +0 -1
  539. /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
  540. /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
  541. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  542. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  552. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  553. /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
@@ -0,0 +1,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.