@tencent-rtc/mcp 1.3.8 → 1.4.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 (429) hide show
  1. package/package.json +2 -2
  2. package/resource/doc/{tuicallkit/iOS/faq.md → callkit/faq/android-faq.md} +10 -22
  3. package/resource/doc/{tuicallkit/android/faq.md → callkit/faq/flutter-faq.md} +10 -22
  4. package/resource/doc/{tuicallkit/flutter/faq.md → callkit/faq/ios-faq.md} +10 -22
  5. package/resource/doc/callkit/preset/android/api.md +296 -0
  6. package/resource/doc/callkit/preset/android/integration.md +430 -0
  7. package/resource/doc/callkit/preset/flutter/api.md +410 -0
  8. package/resource/doc/{tuicallkit → callkit/preset}/flutter/integration.md +35 -97
  9. package/resource/doc/callkit/preset/ios/api.md +80 -0
  10. package/resource/doc/{tuicallkit/iOS → callkit/preset/ios}/integration.md +37 -118
  11. package/resource/doc/callkit/preset/react/api.md +501 -0
  12. package/resource/doc/{tuicallkit → callkit/preset}/react/integration.md +5 -20
  13. package/resource/doc/callkit/preset/vue/api.md +501 -0
  14. package/resource/doc/{tuicallkit → callkit/preset}/vue/integration.md +4 -19
  15. package/resource/doc/{chatuikit → chatkit}/android/faq.md +29 -38
  16. package/resource/doc/{chatuikit → chatkit}/android/features/theme.md +22 -166
  17. package/resource/doc/chatkit/android/integration.md +490 -0
  18. package/resource/doc/chatkit/faq/android_sdk/client-api.md +281 -0
  19. package/resource/doc/{chatuikit → chatkit}/faq/common/product.md +0 -1
  20. package/resource/doc/{chatuikit → chatkit}/faq/common/server.md +1 -1
  21. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +199 -0
  22. package/resource/doc/{chatuikit → chatkit}/faq/flutter_sdk/faq.md +3 -3
  23. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +235 -0
  24. package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/faq.md +3 -3
  25. package/resource/doc/{chatuikit → chatkit}/flutter/features/theme.md +22 -166
  26. package/resource/doc/{chatuikit → chatkit}/flutter/integration.md +19 -88
  27. package/resource/doc/{chatuikit/iOS → chatkit/ios}/faq.md +29 -38
  28. package/resource/doc/{chatuikit/iOS → chatkit/ios}/features/theme.md +27 -176
  29. package/resource/doc/{chatuikit/iOS → chatkit/ios}/integration.md +47 -165
  30. package/resource/doc/{chatuikit → chatkit}/react/components/avatar.md +0 -33
  31. package/resource/doc/{chatuikit → chatkit}/react/components/chat-header.md +8 -49
  32. package/resource/doc/{chatuikit → chatkit}/react/components/chat-setting.md +6 -35
  33. package/resource/doc/{chatuikit → chatkit}/react/components/chat.md +0 -6
  34. package/resource/doc/{chatuikit → chatkit}/react/components/component-list.md +0 -11
  35. package/resource/doc/{chatuikit → chatkit}/react/components/contact-list.md +96 -502
  36. package/resource/doc/chatkit/react/components/conversation-actions.md +174 -0
  37. package/resource/doc/chatkit/react/components/conversation-list.md +333 -0
  38. package/resource/doc/chatkit/react/components/conversation-preview.md +118 -0
  39. package/resource/doc/chatkit/react/components/conversation-search.md +60 -0
  40. package/resource/doc/{chatuikit → chatkit}/react/components/message-input.md +36 -337
  41. package/resource/doc/{chatuikit → chatkit}/react/components/message-list.md +20 -212
  42. package/resource/doc/chatkit/react/components/search.md +243 -0
  43. package/resource/doc/{chatuikit → chatkit}/react/components/tuikit.md +1 -47
  44. package/resource/doc/{chatuikit → chatkit}/react/integration.md +21 -81
  45. package/resource/doc/{chatuikit → chatkit}/vue/components/avatar.md +0 -33
  46. package/resource/doc/{chatuikit → chatkit}/vue/components/chat-header.md +7 -48
  47. package/resource/doc/{chatuikit → chatkit}/vue/components/chat-setting.md +3 -5
  48. package/resource/doc/{chatuikit → chatkit}/vue/components/chat.md +0 -5
  49. package/resource/doc/{chatuikit → chatkit}/vue/components/component-list.md +0 -15
  50. package/resource/doc/chatkit/vue/components/contact-list.md +271 -0
  51. package/resource/doc/chatkit/vue/components/conversation-actions.md +228 -0
  52. package/resource/doc/{chatuikit → chatkit}/vue/components/conversation-list.md +42 -492
  53. package/resource/doc/chatkit/vue/components/conversation-preview.md +213 -0
  54. package/resource/doc/chatkit/vue/components/conversation-search.md +50 -0
  55. package/resource/doc/{chatuikit → chatkit}/vue/components/message-input.md +2 -223
  56. package/resource/doc/{chatuikit → chatkit}/vue/components/message-list.md +23 -252
  57. package/resource/doc/{chatuikit → chatkit}/vue/components/search.md +73 -640
  58. package/resource/doc/{chatuikit → chatkit}/vue/components/tuikit.md +7 -21
  59. package/resource/doc/{chatuikit → chatkit}/vue/components/userpicker.md +3 -62
  60. package/resource/doc/{chatuikit → chatkit}/vue/faq.md +1 -1
  61. package/resource/doc/{chatuikit → chatkit}/vue/integration.md +22 -23
  62. package/resource/doc/livekit/{live → core-sdk/live}/android/live-audience-list.md +18 -89
  63. package/resource/doc/livekit/{live → core-sdk/live}/android/live-audio-effect.md +34 -192
  64. package/resource/doc/livekit/{live → core-sdk/live}/android/live-barrage.md +28 -141
  65. package/resource/doc/livekit/{live → core-sdk/live}/android/live-base-beauty.md +20 -112
  66. package/resource/doc/livekit/{live → core-sdk/live}/android/live-co-guest-interaction.md +59 -193
  67. package/resource/doc/livekit/{live → core-sdk/live}/android/live-gift.md +75 -455
  68. package/resource/doc/livekit/{live → core-sdk/live}/android/live-host-interaction.md +94 -344
  69. package/resource/doc/livekit/{live → core-sdk/live}/android/live-integration.md +107 -515
  70. package/resource/doc/livekit/{live → core-sdk/live}/android/live-live-list.md +33 -173
  71. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audience-list.md +14 -93
  72. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audio-effect.md +34 -179
  73. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-barrage.md +19 -107
  74. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-base-beauty.md +24 -166
  75. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-co-guest-interaction.md +56 -163
  76. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-gift.md +69 -443
  77. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-host-interaction.md +117 -364
  78. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-integration.md +107 -492
  79. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-live-list.md +23 -165
  80. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audience-list.md +35 -111
  81. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audio-effect.md +35 -193
  82. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-barrage.md +31 -144
  83. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-base-beauty.md +24 -116
  84. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-co-guest-interaction.md +37 -171
  85. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-gift.md +79 -459
  86. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-host-interaction.md +69 -320
  87. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-integration.md +85 -502
  88. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-live-list.md +32 -169
  89. package/resource/doc/livekit/core-sdk/voice/android/voice-audience-list.md +263 -0
  90. package/resource/doc/livekit/core-sdk/voice/android/voice-audio-effect.md +222 -0
  91. package/resource/doc/livekit/core-sdk/voice/android/voice-barrage.md +452 -0
  92. package/resource/doc/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +536 -0
  93. package/resource/doc/livekit/core-sdk/voice/android/voice-gift.md +442 -0
  94. package/resource/doc/livekit/core-sdk/voice/android/voice-host-interaction.md +489 -0
  95. package/resource/doc/livekit/core-sdk/voice/android/voice-integration.md +574 -0
  96. package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +435 -0
  97. package/resource/doc/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +516 -0
  98. package/resource/doc/livekit/core-sdk/voice/flutter/voice-integration.md +576 -0
  99. package/resource/doc/livekit/core-sdk/voice/ios/voice-audience-list.md +263 -0
  100. package/resource/doc/livekit/core-sdk/voice/ios/voice-audio-effect.md +212 -0
  101. package/resource/doc/livekit/core-sdk/voice/ios/voice-barrage.md +404 -0
  102. package/resource/doc/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +499 -0
  103. package/resource/doc/livekit/core-sdk/voice/ios/voice-gift.md +403 -0
  104. package/resource/doc/livekit/core-sdk/voice/ios/voice-host-interaction.md +552 -0
  105. package/resource/doc/livekit/core-sdk/voice/ios/voice-integration.md +514 -0
  106. package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +348 -0
  107. package/resource/doc/livekit/faq/common/{error_code.md → error-code.md} +2 -2
  108. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +780 -0
  109. package/resource/doc/livekit/preset/live/vue/components/barrage.md +291 -0
  110. package/resource/doc/livekit/{live → preset/live}/vue/components/co-guest-panel.md +10 -49
  111. package/resource/doc/livekit/{live → preset/live}/vue/components/live-audience-list.md +26 -144
  112. package/resource/doc/livekit/{live → preset/live}/vue/components/live-scene-panel.md +12 -75
  113. package/resource/doc/livekit/{live → preset/live}/vue/components/live-view.md +36 -227
  114. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +215 -0
  115. package/resource/doc/livekit/preset/live/vue/faq.md +1 -0
  116. package/resource/doc/livekit/preset/live/vue/live-list-integration.md +241 -0
  117. package/resource/doc/livekit/preset/live/vue/live-player-desk-integration.md +299 -0
  118. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +300 -0
  119. package/resource/doc/livekit/preset/live/vue/live-pusher-integration.md +743 -0
  120. package/resource/doc/roomkit/vue/faq.md +1 -0
  121. package/resource/doc/roomkit/vue/features/call-user-to-room.md +17 -53
  122. package/resource/doc/roomkit/vue/features/device-detection.md +30 -48
  123. package/resource/doc/roomkit/vue/features/device-state.md +24 -44
  124. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +13 -36
  125. package/resource/doc/roomkit/vue/features/room-chat.md +31 -89
  126. package/resource/doc/roomkit/vue/features/room-participant-state.md +28 -50
  127. package/resource/doc/roomkit/vue/features/room-state.md +25 -34
  128. package/resource/doc/roomkit/vue/features/room-view.md +30 -125
  129. package/resource/doc/roomkit/vue/features/schedule-room.md +9 -40
  130. package/resource/doc/roomkit/vue/features/screen-share.md +22 -90
  131. package/resource/doc/roomkit/vue/features/virtual-background.md +13 -29
  132. package/resource/doc/roomkit/vue/integration.md +173 -337
  133. package/resource/doc/rtcengine/faq/common/error_code.md +1 -0
  134. package/resource/doc/rtcengine/faq/web/web.md +14 -24
  135. package/resource/doc/rtcengine/web/api.md +1 -3
  136. package/resource/doc/rtcengine/web/how_to_integrated_web_sdk.md +3 -10
  137. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +1 -5
  138. package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +1 -2
  139. package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +2 -4
  140. package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +3 -5
  141. package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +1 -7
  142. package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +0 -2
  143. package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +4 -8
  144. package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +11 -11
  145. package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +12 -88
  146. package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +5 -5
  147. package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +30 -37
  148. package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +13 -90
  149. package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +1 -2
  150. package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +1 -2
  151. package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +19 -19
  152. package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +1 -1
  153. package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +4 -5
  154. package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +3 -3
  155. package/resource/doc/trtc/C++/ITRTCCloud.md +686 -2835
  156. package/resource/doc/trtc/C++/ITRTCStatistics.md +53 -308
  157. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +202 -1022
  158. package/resource/doc/trtc/C++/ITXDeviceManager.md +126 -767
  159. package/resource/doc/trtc/C++/TRTCCloudCallback.md +579 -2147
  160. package/resource/doc/trtc/C++/TRTCTypeDef.md +703 -3378
  161. package/resource/doc/trtc/C++/TXLiteAVCode.md +116 -908
  162. package/resource/doc/trtc/android/TRTCCloud.md +606 -2573
  163. package/resource/doc/trtc/android/TRTCCloudDef.md +752 -3640
  164. package/resource/doc/trtc/android/TRTCCloudListener.md +581 -2008
  165. package/resource/doc/trtc/android/TRTCStatistics.md +48 -278
  166. package/resource/doc/trtc/android/TXAudioEffectManager.md +202 -1022
  167. package/resource/doc/trtc/android/TXBeautyManager.md +127 -704
  168. package/resource/doc/trtc/android/TXDeviceManager.md +51 -318
  169. package/resource/doc/trtc/android/TXLiteAVCode.md +114 -892
  170. package/resource/doc/trtc/iOS/TRTCCloud.md +694 -2904
  171. package/resource/doc/trtc/iOS/TRTCCloudDef.md +726 -3498
  172. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +543 -2028
  173. package/resource/doc/trtc/iOS/TRTCStatistics.md +48 -278
  174. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +174 -877
  175. package/resource/doc/trtc/iOS/TXBeautyManager.md +128 -710
  176. package/resource/doc/trtc/iOS/TXDeviceManager.md +129 -772
  177. package/resource/doc/trtc/iOS/TXLiteAVCode.md +117 -915
  178. package/server.js +1 -5
  179. package/server.js.map +1 -1
  180. package/tools/call/get_callkit_api.js +32 -0
  181. package/tools/call/get_callkit_api.js.map +1 -0
  182. package/tools/call/get_native_call_uikit_integration.js +34 -0
  183. package/tools/call/get_native_call_uikit_integration.js.map +1 -0
  184. package/tools/call/{get-web-call-integration.js → get_web_call_uikit_integration.js} +13 -8
  185. package/tools/call/get_web_call_uikit_integration.js.map +1 -0
  186. package/tools/chat/get_native_chat_uikit_feature_detail.js +34 -0
  187. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +1 -0
  188. package/tools/chat/get_native_chat_uikit_integration.js +45 -0
  189. package/tools/chat/get_native_chat_uikit_integration.js.map +1 -0
  190. package/tools/chat/get_web_chat_uikit_component_detail.js +34 -0
  191. package/tools/chat/get_web_chat_uikit_component_detail.js.map +1 -0
  192. package/tools/chat/get_web_chat_uikit_integration.js +45 -0
  193. package/tools/chat/get_web_chat_uikit_integration.js.map +1 -0
  194. package/tools/common/get_faq.js +265 -0
  195. package/tools/common/get_faq.js.map +1 -0
  196. package/tools/common/{get-usersig.js → get_usersig.js} +6 -3
  197. package/tools/common/get_usersig.js.map +1 -0
  198. package/tools/common/present_framework_choice.js +63 -0
  199. package/tools/common/present_framework_choice.js.map +1 -0
  200. package/tools/definitions/get_callkit_api_def.js +29 -0
  201. package/tools/definitions/get_callkit_api_def.js.map +1 -0
  202. package/tools/definitions/get_faq_def.js +17 -18
  203. package/tools/definitions/get_faq_def.js.map +1 -1
  204. package/tools/definitions/get_native_call_uikit_integration_def.js +15 -18
  205. package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
  206. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +31 -0
  207. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +1 -0
  208. package/tools/definitions/get_native_chat_uikit_integration_def.js +16 -19
  209. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  210. package/tools/definitions/get_native_livekit_core_features_def.js +34 -0
  211. package/tools/definitions/get_native_livekit_core_features_def.js.map +1 -0
  212. package/tools/definitions/get_native_livekit_core_integration_def.js +34 -0
  213. package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -0
  214. package/tools/definitions/get_native_trtc_sdk_docs_def.js +32 -0
  215. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +1 -0
  216. package/tools/definitions/get_usersig_def.js +17 -22
  217. package/tools/definitions/get_usersig_def.js.map +1 -1
  218. package/tools/definitions/get_web_call_uikit_integration_def.js +15 -7
  219. package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
  220. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +17 -49
  221. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
  222. package/tools/definitions/get_web_chat_uikit_integration_def.js +16 -19
  223. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
  224. package/tools/definitions/get_web_live_uikit_integration_def.js +15 -18
  225. package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
  226. package/tools/definitions/get_web_livekit_api_def.js +30 -0
  227. package/tools/definitions/get_web_livekit_api_def.js.map +1 -0
  228. package/tools/definitions/get_web_livekit_component_detail_def.js +32 -0
  229. package/tools/definitions/get_web_livekit_component_detail_def.js.map +1 -0
  230. package/tools/definitions/get_web_room_uikit_integration_def.js +15 -30
  231. package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
  232. package/tools/definitions/get_web_roomkit_feature_detail_def.js +31 -0
  233. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +1 -0
  234. package/tools/definitions/get_web_trtc_sdk_api_def.js +27 -0
  235. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +1 -0
  236. package/tools/definitions/get_web_trtc_sdk_integration_def.js +27 -0
  237. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +1 -0
  238. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +27 -0
  239. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +1 -0
  240. package/tools/definitions/present_framework_choice_def.js +24 -12
  241. package/tools/definitions/present_framework_choice_def.js.map +1 -1
  242. package/tools/index.js +47 -59
  243. package/tools/index.js.map +1 -1
  244. package/tools/live/get_native_livekit_core_features.js +65 -0
  245. package/tools/live/get_native_livekit_core_features.js.map +1 -0
  246. package/tools/live/get_native_livekit_core_integration.js +59 -0
  247. package/tools/live/get_native_livekit_core_integration.js.map +1 -0
  248. package/tools/live/get_web_live_uikit_integration.js +48 -0
  249. package/tools/live/get_web_live_uikit_integration.js.map +1 -0
  250. package/tools/live/get_web_livekit_api.js +32 -0
  251. package/tools/live/get_web_livekit_api.js.map +1 -0
  252. package/tools/live/get_web_livekit_component_detail.js +34 -0
  253. package/tools/live/get_web_livekit_component_detail.js.map +1 -0
  254. package/tools/room/{get-web-room-integration.js → get_web_room_uikit_integration.js} +13 -14
  255. package/tools/room/get_web_room_uikit_integration.js.map +1 -0
  256. package/tools/room/{get-web-room-feature-detail.js → get_web_roomkit_feature_detail.js} +30 -31
  257. package/tools/room/get_web_roomkit_feature_detail.js.map +1 -0
  258. package/tools/rtcengine/get_web_trtc_sdk_api.js +31 -0
  259. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +1 -0
  260. package/tools/rtcengine/get_web_trtc_sdk_integration.js +31 -0
  261. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +1 -0
  262. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +31 -0
  263. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +1 -0
  264. package/tools/trtc/get_native_trtc_sdk_docs.js +73 -0
  265. package/tools/trtc/get_native_trtc_sdk_docs.js.map +1 -0
  266. package/utils/generate-structured-result.js +61 -17
  267. package/utils/generate-structured-result.js.map +1 -1
  268. package/utils/report-cls-client.js +12 -1
  269. package/utils/report-cls-client.js.map +1 -1
  270. package/utils/report-es-client.js +2 -2
  271. package/resource/doc/chatuikit/android/integration.md +0 -287
  272. package/resource/doc/chatuikit/faq/android_sdk/client-api.md +0 -1371
  273. package/resource/doc/chatuikit/faq/flutter_sdk/client-api.md +0 -932
  274. package/resource/doc/chatuikit/faq/ios_sdk/client-api.md +0 -1119
  275. package/resource/doc/chatuikit/flutter/workflow.md +0 -941
  276. package/resource/doc/chatuikit/iOS/workflow.md +0 -0
  277. package/resource/doc/chatuikit/react/components/conversation-list.md +0 -1017
  278. package/resource/doc/chatuikit/react/components/search.md +0 -745
  279. package/resource/doc/chatuikit/react/create-group.md +0 -23
  280. package/resource/doc/chatuikit/react/init.md +0 -26
  281. package/resource/doc/chatuikit/react/workflow.md +0 -258
  282. package/resource/doc/chatuikit/vue/components/contact-list.md +0 -679
  283. package/resource/doc/chatuikit/vue/create-group.md +0 -25
  284. package/resource/doc/chatuikit/vue/init.md +0 -40
  285. package/resource/doc/chatuikit/vue/workflow.md +0 -395
  286. package/resource/doc/livekit/live/android/workflow.md +0 -320
  287. package/resource/doc/livekit/live/flutter/workflow.md +0 -353
  288. package/resource/doc/livekit/live/ios/workflow.md +0 -454
  289. package/resource/doc/livekit/live/vue/components/barrage.md +0 -616
  290. package/resource/doc/livekit/live/vue/components/stream-mixer.md +0 -446
  291. package/resource/doc/livekit/live/vue/faq.md +0 -0
  292. package/resource/doc/livekit/live/vue/live-list-integration.md +0 -200
  293. package/resource/doc/livekit/live/vue/live-player-desk-integration.md +0 -269
  294. package/resource/doc/livekit/live/vue/live-player-h5-integration.md +0 -269
  295. package/resource/doc/livekit/live/vue/live-pusher-integration.md +0 -595
  296. package/resource/doc/livekit/live/vue/states/live-state.md +0 -3591
  297. package/resource/doc/livekit/live/vue/workflow.md +0 -218
  298. package/resource/doc/native_live/android/V2TXLiveCode_api_android.md +0 -312
  299. package/resource/doc/native_live/android/V2TXLiveDef_api_android.md +0 -430
  300. package/resource/doc/native_live/android/V2TXLivePlayerObserver_api_android.md +0 -679
  301. package/resource/doc/native_live/android/V2TXLivePlayer_api_android.md +0 -671
  302. package/resource/doc/native_live/android/V2TXLivePremier_api_android.md +0 -271
  303. package/resource/doc/native_live/android/V2TXLivePusherObserver_api_android.md +0 -849
  304. package/resource/doc/native_live/android/V2TXLivePusher_api_android.md +0 -1046
  305. package/resource/doc/native_live/flutter/V2TXLiveCode_api_flutter.md +0 -460
  306. package/resource/doc/native_live/flutter/V2TXLiveDef_api_flutter.md +0 -558
  307. package/resource/doc/native_live/flutter/V2TXLivePlayerObserver_api_flutter.md +0 -865
  308. package/resource/doc/native_live/flutter/V2TXLivePlayer_api_flutter.md +0 -657
  309. package/resource/doc/native_live/flutter/V2TXLivePremier_api_flutter.md +0 -437
  310. package/resource/doc/native_live/flutter/V2TXLivePusherObserver_api_flutter.md +0 -335
  311. package/resource/doc/native_live/flutter/V2TXLivePusher_api_flutter.md +0 -748
  312. package/resource/doc/native_live/iOS/V2TXLiveCode_api_iOS.md +0 -327
  313. package/resource/doc/native_live/iOS/V2TXLiveDef_api_iOS.md +0 -507
  314. package/resource/doc/native_live/iOS/V2TXLivePlayerObserver_api_iOS.md +0 -507
  315. package/resource/doc/native_live/iOS/V2TXLivePlayer_api_iOS.md +0 -659
  316. package/resource/doc/native_live/iOS/V2TXLivePremier_api_iOS.md +0 -284
  317. package/resource/doc/native_live/iOS/V2TXLivePusherObserver_api_iOS.md +0 -814
  318. package/resource/doc/native_live/iOS/V2TXLivePusher_api_iOS.md +0 -1000
  319. package/resource/doc/roomkit/vue/features/workflow.md +0 -553
  320. package/resource/doc/roomkit/vue/workflow.md +0 -487
  321. package/resource/doc/tuicallkit/android/integration.md +0 -286
  322. package/resource/doc/tuicallkit/android/workflow.md +0 -0
  323. package/resource/doc/tuicallkit/faq/android_sdk/call-observer-api.md +0 -784
  324. package/resource/doc/tuicallkit/faq/android_sdk/callkit-api.md +0 -610
  325. package/resource/doc/tuicallkit/faq/flutter_sdk/call-define-api.md +0 -938
  326. package/resource/doc/tuicallkit/faq/flutter_sdk/call-observer-api.md +0 -897
  327. package/resource/doc/tuicallkit/faq/flutter_sdk/callkit-api.md +0 -469
  328. package/resource/doc/tuicallkit/faq/ios_sdk/call-observer-api.md +0 -781
  329. package/resource/doc/tuicallkit/faq/ios_sdk/callkit-api.md +0 -398
  330. package/resource/doc/tuicallkit/flutter/workflow.md +0 -331
  331. package/resource/doc/tuicallkit/react/api.md +0 -1404
  332. package/resource/doc/tuicallkit/vue/api.md +0 -1406
  333. package/resource/doc/tuicallkit/vue/faq.md +0 -36
  334. package/tools/call/get-native-call-integration.js +0 -43
  335. package/tools/call/get-native-call-integration.js.map +0 -1
  336. package/tools/call/get-web-call-api.js +0 -27
  337. package/tools/call/get-web-call-api.js.map +0 -1
  338. package/tools/call/get-web-call-integration.js.map +0 -1
  339. package/tools/chat/get-native-chat-feature-detail.js +0 -30
  340. package/tools/chat/get-native-chat-feature-detail.js.map +0 -1
  341. package/tools/chat/get-native-chat-integration.js +0 -45
  342. package/tools/chat/get-native-chat-integration.js.map +0 -1
  343. package/tools/chat/get-web-chat-component-detail.js +0 -31
  344. package/tools/chat/get-web-chat-component-detail.js.map +0 -1
  345. package/tools/chat/get-web-chat-integration.js +0 -45
  346. package/tools/chat/get-web-chat-integration.js.map +0 -1
  347. package/tools/chat/get-web-chat-uikit-init.js +0 -28
  348. package/tools/chat/get-web-chat-uikit-init.js.map +0 -1
  349. package/tools/chat/get-web-create-group-doc.js +0 -28
  350. package/tools/chat/get-web-create-group-doc.js.map +0 -1
  351. package/tools/common/get-faq.js +0 -91
  352. package/tools/common/get-faq.js.map +0 -1
  353. package/tools/common/get-usersig.js.map +0 -1
  354. package/tools/common/present-framework-choice.js +0 -16
  355. package/tools/common/present-framework-choice.js.map +0 -1
  356. package/tools/common/record-prompt.js +0 -55
  357. package/tools/common/record-prompt.js.map +0 -1
  358. package/tools/common/record-result.js +0 -60
  359. package/tools/common/record-result.js.map +0 -1
  360. package/tools/definitions/get_native_chat_feature_detail_def.js +0 -32
  361. package/tools/definitions/get_native_chat_feature_detail_def.js.map +0 -1
  362. package/tools/definitions/get_native_live_api_def.js +0 -23
  363. package/tools/definitions/get_native_live_api_def.js.map +0 -1
  364. package/tools/definitions/get_native_live_uikit_extra_features_def.js +0 -87
  365. package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +0 -1
  366. package/tools/definitions/get_native_live_uikit_integration_def.js +0 -49
  367. package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
  368. package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -74
  369. package/tools/definitions/get_native_live_uikit_interaction_def.js.map +0 -1
  370. package/tools/definitions/get_trtc_native_api_def.js +0 -16
  371. package/tools/definitions/get_trtc_native_api_def.js.map +0 -1
  372. package/tools/definitions/get_web_call_uikit_api_def.js +0 -23
  373. package/tools/definitions/get_web_call_uikit_api_def.js.map +0 -1
  374. package/tools/definitions/get_web_chat_uikit_init_def.js +0 -23
  375. package/tools/definitions/get_web_chat_uikit_init_def.js.map +0 -1
  376. package/tools/definitions/get_web_create_group_doc_def.js +0 -18
  377. package/tools/definitions/get_web_create_group_doc_def.js.map +0 -1
  378. package/tools/definitions/get_web_live_state_detail_def.js +0 -19
  379. package/tools/definitions/get_web_live_state_detail_def.js.map +0 -1
  380. package/tools/definitions/get_web_live_uikit_component_detail_def.js +0 -27
  381. package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +0 -1
  382. package/tools/definitions/get_web_room_feature_detail_def.js +0 -95
  383. package/tools/definitions/get_web_room_feature_detail_def.js.map +0 -1
  384. package/tools/definitions/get_web_room_state_detail_def.js +0 -19
  385. package/tools/definitions/get_web_room_state_detail_def.js.map +0 -1
  386. package/tools/definitions/record_prompt_def.js +0 -53
  387. package/tools/definitions/record_prompt_def.js.map +0 -1
  388. package/tools/definitions/record_result_def.js +0 -30
  389. package/tools/definitions/record_result_def.js.map +0 -1
  390. package/tools/live/get-native-live-uikit-integration.js +0 -101
  391. package/tools/live/get-native-live-uikit-integration.js.map +0 -1
  392. package/tools/live/get-web-live-component-detail.js +0 -31
  393. package/tools/live/get-web-live-component-detail.js.map +0 -1
  394. package/tools/live/get-web-live-state-detail.js +0 -31
  395. package/tools/live/get-web-live-state-detail.js.map +0 -1
  396. package/tools/live/get-web-live-uikit-integration.js +0 -52
  397. package/tools/live/get-web-live-uikit-integration.js.map +0 -1
  398. package/tools/live/get_native_live_uikit_extra_features.js +0 -105
  399. package/tools/live/get_native_live_uikit_extra_features.js.map +0 -1
  400. package/tools/live/get_native_live_uikit_interaction.js +0 -101
  401. package/tools/live/get_native_live_uikit_interaction.js.map +0 -1
  402. package/tools/native_live/get-native-live-api.js +0 -31
  403. package/tools/native_live/get-native-live-api.js.map +0 -1
  404. package/tools/room/get-web-room-feature-detail.js.map +0 -1
  405. package/tools/room/get-web-room-integration.js.map +0 -1
  406. package/tools/rtcengine/get-rtcengine-web-sdk-integration.js +0 -28
  407. package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +0 -1
  408. package/tools/rtcengine/get-trtc-sdk-faq.js +0 -32
  409. package/tools/rtcengine/get-trtc-sdk-faq.js.map +0 -1
  410. package/tools/rtcengine/get-trtc-web-sdk-api.js +0 -28
  411. package/tools/rtcengine/get-trtc-web-sdk-api.js.map +0 -1
  412. package/tools/rtcengine/get-trtc-web-sdk-faq.js +0 -30
  413. package/tools/rtcengine/get-trtc-web-sdk-faq.js.map +0 -1
  414. package/tools/rtcengine/get-trtc-web-sdk-integration.js +0 -29
  415. package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +0 -1
  416. package/tools/rtcengine/get-trtc-web-sdk-plugin.js +0 -45
  417. package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +0 -1
  418. package/tools/trtc/get-trtc-native-api.js +0 -31
  419. package/tools/trtc/get-trtc-native-api.js.map +0 -1
  420. package/utils/handle-component-name.js +0 -33
  421. package/utils/handle-component-name.js.map +0 -1
  422. /package/resource/doc/{chatuikit/android/workflow.md → callkit/core-sdk/.gitkeep} +0 -0
  423. /package/resource/doc/{tuicallkit/faq/common/error_code.md → callkit/faq/common/error-code.md} +0 -0
  424. /package/resource/doc/{tuicallkit/react/faq.md → callkit/faq/web-faq.md} +0 -0
  425. /package/resource/doc/{chatuikit → chatkit}/faq/common/server_error_code.md +0 -0
  426. /package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/error_code.md +0 -0
  427. /package/resource/doc/{chatuikit → chatkit}/flutter/faq.md +0 -0
  428. /package/resource/doc/{chatuikit → chatkit}/react/faq.md +0 -0
  429. /package/resource/doc/roomkit/faq/common/{error_code.md → error-code.md} +0 -0
@@ -0,0 +1,536 @@
1
+ AtomicXCore provides the [CoGuestStore](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-co-guest-store/index.html) and [LiveSeatStore](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-live-seat-store/index.html) modules, which are designed to streamline the entire audience co-hosting workflow for live streaming scenarios. You do not need to manage complex state synchronization or signaling logic—simply invoke a few intuitive methods to enable seamless audio and video interactions between hosts and audience members. This guide explains how to quickly implement voice co-hosting features in your Android app using `CoGuestStore` and `LiveSeatStore`.
2
+
3
+ ## Core Scenarios
4
+
5
+ `CoGuestStore` and `LiveSeatStore` support the following primary live streaming scenarios:
6
+ - **Audience Request to Join Mic**: Audience members can request to join the mic; hosts can approve or reject these requests.
7
+
8
+ - **Host Invites Audience to Mic**: The host can proactively invite any viewer in the live room to join the mic.
9
+
10
+ - **Host Manages Mic Seats**: Hosts can manage mic seat users, including removing users, muting, and locking mic seats.
11
+
12
+ ## Implementation
13
+
14
+ ### Step 1: Component Integration
15
+
16
+ Refer to the Quick Start guide to integrate **AtomicXCore** into your project.
17
+
18
+ ### Step 2: Implement Audience Mic-Link Request
19
+
20
+ #### Audience Side Implementation
21
+
22
+ As an audience member, your main tasks are **initiating a request, handling the response**, and **leaving the mic proactively**.
23
+ 1. **Initiate Mic-Link Request**
24
+
25
+ When the user taps the "Request to Co-host" button, call the `applyForSeat` method:
26
+
27
+ ``` java
28
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
29
+ import io.trtc.tuikit.atomicxcore.api.live.CoGuestStore
30
+
31
+ val liveId = "Room ID"
32
+ val guestStore = CoGuestStore.create(liveId)
33
+
34
+ // User taps "Request to Co-host"
35
+ fun requestToConnect() {
36
+ // timeout: request timeout, e.g., 30 seconds
37
+ guestStore.applyForSeat(-1, 30, null, object : CompletionHandler {
38
+ override fun onSuccess() {
39
+ print("Co-hosting request sent, waiting for host to respond...")
40
+ }
41
+
42
+ override fun onFailure(code: Int, desc: String) {
43
+ print("Failed to send request: $desc")
44
+ }
45
+ })
46
+ }
47
+ ```
48
+ 2. **Listen for Host Response**
49
+
50
+ Subscribe to `GuestListener` to handle the host’s approval or rejection:
51
+
52
+ ``` java
53
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceStore
54
+ import io.trtc.tuikit.atomicxcore.api.live.GuestListener
55
+ import io.trtc.tuikit.atomicxcore.api.live.LiveUserInfo
56
+
57
+ // Add listener during Activity/Fragment initialization
58
+ fun subscribeGuestEvents() {
59
+ val guestListener = object : GuestListener() {
60
+ override fun onGuestApplicationResponded(isAccept: Boolean, hostUser: LiveUserInfo) {
61
+ if (isAccept) {
62
+ print("Host ${hostUser.userName} approved your request. Preparing to join mic.")
63
+ // 1. Enable camera and microphone
64
+ DeviceStore.shared().openLocalCamera(true, null)
65
+ DeviceStore.shared().openLocalMicrophone(null)
66
+ // 2. Update UI, e.g., disable request button, show co-hosting status
67
+ } else {
68
+ print("Host ${hostUser.userName} rejected your request.")
69
+ // Notify user of rejection
70
+ }
71
+ }
72
+ }
73
+ guestStore.addGuestListener(guestListener)
74
+ }
75
+ ```
76
+ 3. **Leave Mic Proactively**
77
+
78
+ To leave the mic seat and revert to audience status, call `disconnect`:
79
+
80
+ ``` java
81
+ // User taps "Leave Mic"
82
+ fun leaveSeat() {
83
+ guestStore.disconnect(object : CompletionHandler {
84
+ override fun onSuccess() {
85
+ print("Successfully left the mic")
86
+ }
87
+
88
+ override fun onFailure(code: Int, desc: String) {
89
+ print("Failed to leave mic: $desc")
90
+ }
91
+ })
92
+ }
93
+ ```
94
+ 4. **(Optional) Cancel Request**
95
+
96
+ If the audience member wishes to withdraw their request before the host responds, call `cancelApplication`:
97
+
98
+ ``` java
99
+ // User taps "Cancel Request" while waiting
100
+ fun cancelRequest() {
101
+ guestStore.cancelApplication(object : CompletionHandler {
102
+ override fun onSuccess() {
103
+ print("Request cancelled")
104
+ }
105
+
106
+ override fun onFailure(code: Int, desc: String) {
107
+ print("Failed to cancel request: $desc")
108
+ }
109
+ })
110
+ }
111
+ ```
112
+
113
+ #### Host Side Implementation
114
+
115
+ As the host, your main tasks are **receiving requests, displaying the request list**, and **handling requests**.
116
+ 1. **Listen for New Mic-Link Requests**
117
+
118
+ Subscribe to `HostListener` to receive notifications when an audience member requests to join the mic:
119
+
120
+ ``` java
121
+ import io.trtc.tuikit.atomicxcore.api.live.CoGuestStore
122
+ import io.trtc.tuikit.atomicxcore.api.live.HostListener
123
+ import io.trtc.tuikit.atomicxcore.api.live.LiveUserInfo
124
+
125
+ val liveId = "Room ID"
126
+ val guestStore = CoGuestStore.create(liveId)
127
+
128
+ // Subscribe to host events
129
+ val hostListener = object : HostListener() {
130
+ override fun onGuestApplicationReceived(guestUser: LiveUserInfo) {
131
+ print("Received co-hosting request from ${guestUser.userName}")
132
+ // Update UI, e.g., show notification on "Request List" button
133
+ }
134
+ // ... Override other needed callback methods
135
+ }
136
+ guestStore.addHostListener(hostListener)
137
+ ```
138
+ 2. **Display Request List**
139
+
140
+ Subscribe to the `applicants` property in `CoGuestStore`’s state to update the UI in real time:
141
+
142
+ ``` java
143
+ import kotlinx.coroutines.CoroutineScope
144
+ import kotlinx.coroutines.Dispatchers
145
+ import kotlinx.coroutines.launch
146
+
147
+ // Subscribe to state changes
148
+ fun observeApplicants() {
149
+ CoroutineScope(Dispatchers.Main).launch {
150
+ guestStore.coGuestState.applicants.collect { applicants ->
151
+ print("Current number of applicants: ${applicants.size}")
152
+ // Update "Applicant List" UI
153
+ }
154
+ }
155
+ }
156
+ ```
157
+ 3. **Handle Mic-Link Requests**
158
+
159
+ Approve or reject requests using the following methods:
160
+
161
+ ``` java
162
+ // Host taps "Approve"
163
+ fun accept(userId: String) {
164
+ guestStore.acceptApplication(
165
+ userId,
166
+ object : CompletionHandler {
167
+ override fun onSuccess() {
168
+ print("Approved $userId's request. They are joining the mic.")
169
+ }
170
+
171
+ override fun onFailure(code: Int, desc: String) {
172
+ print("Failed to approve request: $desc")
173
+ }
174
+ }
175
+ )
176
+ }
177
+
178
+ // Host taps "Reject"
179
+ fun reject(userId: String) {
180
+ guestStore.rejectApplication(
181
+ userId,
182
+ object : CompletionHandler {
183
+ override fun onSuccess() {
184
+ print("Rejected $userId's request")
185
+ }
186
+
187
+ override fun onFailure(code: Int, desc: String) {
188
+ print("Failed to reject request: $desc")
189
+ }
190
+ }
191
+ )
192
+ }
193
+ ```
194
+
195
+ ### Step 3: Implement Host-Initiated Mic-Link Invitation
196
+
197
+ #### Host Side Implementation
198
+ 1. **Invite Audience Mic**
199
+
200
+ To invite an audience member, call `inviteToSeat`:
201
+
202
+ ``` java
203
+ // Host selects audience and sends invitation
204
+ fun invite(userId: String) {
205
+ // timeout: invitation timeout
206
+ guestStore.inviteToSeat(userId, -1, 30, null, object : CompletionHandler {
207
+ override fun onSuccess() {
208
+ print("Invitation sent to $userId, waiting for response...")
209
+ }
210
+
211
+ override fun onFailure(code: Int, desc: String) {
212
+ print("Failed to send invitation: $desc")
213
+ }
214
+ })
215
+ }
216
+ ```
217
+ 2. **Listen for Audience Response**
218
+
219
+ Handle the audience member’s response via `HostListener`:
220
+
221
+ ``` java
222
+ // Add to hostListener implementation
223
+ override fun onHostInvitationResponded(isAccept: Boolean, guestUser: LiveUserInfo) {
224
+ if (isAccept) {
225
+ print("Audience ${guestUser.userName} accepted your invitation")
226
+ } else {
227
+ print("Audience ${guestUser.userName} rejected your invitation")
228
+ }
229
+ }
230
+ ```
231
+
232
+ #### Audience Side Implementation
233
+ 1. **Receive Host Invitation**
234
+
235
+ Listen for invitations via `GuestListener`:
236
+
237
+ ``` java
238
+ // Add to guestListener implementation
239
+ override fun onHostInvitationReceived(hostUser: LiveUserInfo) {
240
+ print("Received co-hosting invitation from host ${hostUser.userName}")
241
+ // Show dialog for user to accept or reject
242
+ }
243
+ ```
244
+ 2. **Respond to Invitation**
245
+
246
+ Invoke the appropriate method based on the user’s choice:
247
+
248
+ ``` java
249
+ val inviterId = "Host ID who sent the invitation" // From onHostInvitationReceived
250
+
251
+ // User taps "Accept"
252
+ fun accept() {
253
+ guestStore.acceptInvitation(inviterId, object : CompletionHandler {
254
+ override fun onSuccess() {
255
+ // Enable microphone
256
+ DeviceStore.shared().openLocalMicrophone(null)
257
+ }
258
+
259
+ override fun onFailure(code: Int, desc: String) {
260
+ print("Failed to accept invitation: $desc")
261
+ }
262
+ })
263
+ }
264
+
265
+ // User taps "Reject"
266
+ fun reject() {
267
+ guestStore.rejectInvitation(inviterId, object : CompletionHandler {
268
+ override fun onSuccess() {
269
+ // ...
270
+ }
271
+ override fun onFailure(code: Int, desc: String) {
272
+ // ...
273
+ }
274
+ })
275
+ }
276
+ ```
277
+
278
+ ## Advanced Features
279
+
280
+ Once a user is on mic, the host may need to manage mic seats. The following features are primarily provided by `LiveSeatStore`, which functions with `CoGuestStore`.
281
+
282
+ ### On-Mic Users Control Their Own Microphone
283
+
284
+ On-mic users (including the host) can control their own microphone mute status via the `LiveSeatStore` interface.
285
+
286
+ #### Implementation
287
+ - **Mute:** Call `muteMicrophone()`. This is a one-way request with no callback.
288
+
289
+ - **Unmute:** Call `unmuteMicrophone(completion)`.
290
+
291
+ #### Example Code
292
+ ``` java
293
+ import io.trtc.tuikit.atomicxcore.api.live.LiveSeatStore
294
+
295
+ val seatStore = LiveSeatStore.create(liveId)
296
+
297
+ seatStore.muteMicrophone() // Mute
298
+
299
+ seatStore.unmuteMicrophone(null) // Unmute
300
+ ```
301
+
302
+ #### unmuteMicrophone Parameters
303
+ | **Parameter** | **Type** | **Description** |
304
+ | --- | --- | --- |
305
+ | `completion` | `CompletionHandler?` | Callback after operation completes. |
306
+
307
+ ### Host Remotely Controls Mic Seat User’s Microphone
308
+
309
+ Hosts can forcibly mute or invite mic seat users to unmute.
310
+
311
+ #### Implementation
312
+ 1. **Force Mute (Lock):** Hosts call `closeRemoteMicrophone` to mute and lock a user’s microphone. The user receives the `onLocalMicrophoneClosedByAdmin` event in `LiveSeatListener`, and their "Unmute Microphone" button should be disabled.
313
+
314
+ 2. **Invite to Unmute (Unlock):** Hosts call `openRemoteMicrophone` to unlock mic permissions. The user receives the `onLocalMicrophoneOpenedByAdmin` event and can unmute themselves.
315
+
316
+ 3. **User Unmutes Themselves:** After receiving an unlock notification, the user must call `unmuteMicrophone()` to resume audio transmission.
317
+
318
+ #### Example Code
319
+
320
+ ##### Host Side
321
+ ``` java
322
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
323
+ import io.trtc.tuikit.atomicxcore.api.live.DeviceControlPolicy
324
+
325
+ val targetUserId = "userD"
326
+
327
+ // 1. Force mute and lock
328
+ seatStore.closeRemoteMicrophone(targetUserId, object : CompletionHandler {
329
+ override fun onSuccess() {
330
+ print("$targetUserId has been muted and locked")
331
+ }
332
+ override fun onFailure(code: Int, desc: String) {
333
+ print("Operation failed: $desc")
334
+ }
335
+ })
336
+
337
+ // 2. Unlock mic permissions (userD remains muted)
338
+ seatStore.openRemoteMicrophone(targetUserId, DeviceControlPolicy.UNLOCK_ONLY, object : CompletionHandler {
339
+ override fun onSuccess() {
340
+ print("Invited $targetUserId to unmute (unlocked)")
341
+ }
342
+ override fun onFailure(code: Int, desc: String) {
343
+ print("Operation failed: $desc")
344
+ }
345
+ })
346
+ ```
347
+
348
+ ##### Audience Side
349
+ ``` java
350
+ import io.trtc.tuikit.atomicxcore.api.live.DeviceControlPolicy
351
+ import io.trtc.tuikit.atomicxcore.api.live.LiveSeatListener
352
+
353
+ // userD listens for host actions
354
+ val seatListener = object : LiveSeatListener() {
355
+ override fun onLocalMicrophoneClosedByAdmin() {
356
+ print("Muted by host")
357
+ }
358
+
359
+ override fun onLocalMicrophoneOpenedByAdmin(policy: DeviceControlPolicy) {
360
+ print("Host has unlocked mute")
361
+ }
362
+ }
363
+ seatStore.addLiveSeatEventListener(seatListener)
364
+ ```
365
+
366
+ #### closeRemoteMicrophone Parameters
367
+ | **Parameter** | **Type** | **Description** |
368
+ | --- | --- | --- |
369
+ | `userID` | `String` | The user ID of the target user. |
370
+ | `completion` | `CompletionHandler?` | Callback after request completes. |
371
+
372
+ #### openRemoteMicrophone Parameters
373
+ | **Parameter** | **Type** | **Description** |
374
+ | --- | --- | --- |
375
+ | `userID` | `String` | The user ID of the target user. |
376
+ | `completion` | `CompletionHandler?` | Callback after request completes. |
377
+
378
+ ### Host Removes On-Mic User from the Seat
379
+
380
+ #### Implementation
381
+ 1. **Remove User from Mic Seat:** Hosts call `kickUserOutOfSeat` to forcibly remove a user from a mic seat.
382
+
383
+ 2. **Event Notification:** The removed user receives the `onKickedOffSeat` event in `GuestListener`.
384
+
385
+ #### Example Code
386
+ ``` java
387
+ // Remove "userB" from mic seat
388
+ val targetUserId = "userB"
389
+ seatStore.kickUserOutOfSeat(targetUserId, object : CompletionHandler {
390
+ override fun onSuccess() {
391
+ print("$targetUserId has been removed from the mic seat")
392
+ }
393
+ override fun onFailure(code: Int, desc: String) {
394
+ print("Failed to remove user: $desc")
395
+ }
396
+ })
397
+
398
+ // "userB" receives the event in GuestListener
399
+ override fun onKickedOffSeat(seatIndex: Int, hostUser: LiveUserInfo) {
400
+ // Show notification
401
+ }
402
+ ```
403
+
404
+ #### kickUserOutOfSeat Parameters
405
+ | **Parameter** | **Type** | **Description** |
406
+ | --- | --- | --- |
407
+ | `userID` | `String` | The user ID of the user to remove. |
408
+ | `completion` | `CompletionHandler?` | Callback after request completes. |
409
+
410
+ ### Host Locks and Unlocks Mic Seats
411
+
412
+ Hosts can lock or unlock specific mic seats.
413
+
414
+ #### Implementation
415
+ 1. **Lock Mic Seat:** Call `lockSeat` to lock a mic seat at the specified index. Locked seats cannot be occupied via `applyForSeat` or `takeSeat`.
416
+
417
+ 2. **Unlock Mic Seat:** Call `unlockSeat` to make the seat available again.
418
+
419
+ #### Example Code
420
+ ``` java
421
+ // Lock mic seat 2
422
+ seatStore.lockSeat(2, object : CompletionHandler {
423
+ override fun onSuccess() {
424
+ print("Mic seat 2 locked")
425
+ }
426
+ override fun onFailure(code: Int, desc: String) {
427
+ print("Failed to lock: $desc")
428
+ }
429
+ })
430
+
431
+ // Unlock mic seat 2
432
+ seatStore.unlockSeat(2, object : CompletionHandler {
433
+ override fun onSuccess() {
434
+ print("Mic seat 2 unlocked")
435
+ }
436
+ override fun onFailure(code: Int, desc: String) {
437
+ print("Failed to unlock: $desc")
438
+ }
439
+ })
440
+ ```
441
+
442
+ #### lockSeat Parameters
443
+ | **Parameter** | **Type** | **Description** |
444
+ | --- | --- | --- |
445
+ | `seatIndex` | `Int` | Index of the mic seat to lock. |
446
+ | `completion` | `CompletionHandler?` | Callback after request completes. |
447
+
448
+ #### unlockSeat Parameters
449
+ | **Parameter** | **Type** | **Description** |
450
+ | --- | --- | --- |
451
+ | `seatIndex` | `Int` | Index of the mic seat to unlock. |
452
+ | `completion` | `CompletionHandler?` | Callback after request completes. |
453
+
454
+ ### Move Mic Seats
455
+
456
+ Hosts and mic seat users can call `moveUserToSeat` to move users between mic seats.
457
+
458
+ #### Implementation
459
+ 1. **Host Moves User to Mic Seat:** The host can use this API to move any user to a specified mic seat. Provide the target user's `userID`, the target seat index as `targetIndex`, and use the `policy` parameter to specify the seat movement strategy if the target seat is occupied (see parameter details below).
460
+
461
+ 2. **On-Mic User Moves Themselves:** On-mic users can also call this API to move themselves. In this case, `userID` must be the user's own ID, `targetIndex` is the desired new seat index, and the `policy` parameter is ignored. If the target seat is occupied, the move fails with an error.
462
+
463
+ #### Example Code
464
+ ``` java
465
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
466
+ import io.trtc.tuikit.atomicxcore.api.live.MoveSeatPolicy
467
+
468
+ seatStore.moveUserToSeat("userC",
469
+ newSeatIndex,
470
+ MoveSeatPolicy.ABORT_WHEN_OCCUPIED,
471
+ object : CompletionHandler {
472
+ override fun onSuccess() {
473
+ print("Successfully moved to mic seat $newSeatIndex")
474
+ }
475
+ override fun onFailure(code: Int, desc: String) {
476
+ print("Failed to switch seat, seat may be occupied: $desc")
477
+ }
478
+ })
479
+ ```
480
+
481
+ #### moveUserToSeat Parameters
482
+ | **Parameter** | **Type** | **Description** |
483
+ | --- | --- | --- |
484
+ | `userID` | `String` | The user ID of the user to move. |
485
+ | `targetIndex` | `Int` | Target mic seat index. |
486
+ | `policy` | `MoveSeatPolicy?` | Seat movement policy if the target seat is occupied:<br>- `abortWhenOccupied`: Abort move if seat is occupied (default)<br>- `forceReplace`: Force replace the user on the target seat; replaced user will be removed<br>- `swapPosition`: Swap positions with the user on the target seat. |
487
+ | `completion` | `CompletionHandler?` | Callback after request completes. |
488
+
489
+ ## API Documentation
490
+
491
+ For detailed information about all public interfaces, properties, and methods of [CoGuestStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/cogueststore), [LiveSeatStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/liveseatstore), and related classes, refer to the official [AtomicXCore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore) framework API documentation. The relevant stores used in this guide are as follows:
492
+ | **Store/Component** | **Feature Description** | **API Documentation** |
493
+ | --- | --- | --- |
494
+ | CoGuestStore | Audience co-hosting management: co-hosting requests/invitations, approval/rejection, co-host member permission control (microphone/camera), state synchronization. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-co-guest-store/index.html) |
495
+ | LiveSeatStore | Mic seat management: mute/unmute, lock/unlock mic seat, remove user from mic, remote microphone control, mic seat list state monitoring. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-live-seat-store/index.html) |
496
+
497
+ ## FAQs
498
+
499
+ ### What are the differences between voice room co-hosting and video live co-hosting?
500
+
501
+ The main differences are in business logic and UI design:
502
+ - `Video Live Streaming`**:** The video feed is central. Use `LiveCoreView` to render host and co-host video streams. The UI focuses on video layout, sizing, and overlays (such as nickname or placeholder images) via `VideoViewAdapter`. Both camera and microphone can be enabled.
503
+
504
+ - `Voice Room (Audio Chat Room)`**:** The mic seat grid is central. Do not use `LiveCoreView`; instead, build a grid UI (e.g., `RecyclerView`) based on `LiveSeatStore.state` (especially `seatList`). The UI displays each mic seat’s `SeatInfo`—occupied, muted, locked, or speaking—in real time. Only the microphone needs to be enabled.
505
+
506
+ ### How do I update mic seat information (such as occupancy and mute status) in the UI in real time?
507
+
508
+ Subscribe to the `seatList` property in `LiveSeatState`, which is a reactive `List<SeatInfo>`. When the array changes, update your mic seat UI. For each seat:
509
+ - Use `seatInfo.userInfo` for user details.
510
+
511
+ - Use `seatInfo.isLocked` to check if the seat is locked.
512
+
513
+ - Use `seatInfo.userInfo.microphoneStatus` for the user’s microphone status.
514
+
515
+ ### What is the difference between microphone interfaces in LiveSeatStore and DeviceStore?
516
+
517
+ `DeviceStore` manages the physical microphone device, while `LiveSeatStore` manages mic seat business logic (audio stream).
518
+
519
+ `DeviceStore:`
520
+ - `openLocalMicrophone`: Requests system permission and starts the microphone device for audio capture. This is a resource-intensive operation.
521
+
522
+ - `closeLocalMicrophone`: Stops audio capture and releases the microphone device.
523
+
524
+ `LiveSeatStore:`
525
+
526
+ - `muteMicrophone`: Mutes the audio stream sent to remote users; the microphone device remains active.
527
+
528
+ - `unmuteMicrophone`: Unmutes the audio stream.
529
+
530
+ **Recommended workflow:** "Open the device once, control mute/unmute while on mic"
531
+
532
+ 1. **When joining mic:** When an audience member successfully joins the mic, call `openLocalMicrophone` once to start the device.
533
+
534
+ 2. **While on mic:** All "mute" and "unmute" actions while on mic should use `muteMicrophone` and `unmuteMicrophone` to control the audio stream.
535
+
536
+ 3. **When leaving mic:** When leaving mic (e.g., calling `disconnect`), call `closeLocalMicrophone` to release the device.