@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,574 @@
1
+ This document guides developers through building a voice chat room application with host broadcasting and audience participation features using the **AtomicXCore** SDK's `LiveListStore` and `LiveSeatStore`.
2
+
3
+ ## Core Concepts
4
+ | **Core Concept** | **Type** | **Core Responsibilities & Description** |
5
+ | --- | --- | --- |
6
+ | `LiveListStore` | `abstract class` | - `createLive()`: Start live stream as host.<br>- `endLive()`: End live stream as host.<br>- `joinLive()`: Audience joins live room.<br>- `leaveLive()`: Leave live room. |
7
+ | `LiveInfo` | `data class` | - `liveID`: Unique room identifier.<br>- `seatTemplate`: Layout template. |
8
+ | `LiveSeatStore` | `abstract class` | Core seat management class. Manages all seat information and seat-related operations in the room.<br>Provides a real-time seat list data stream via liveSeatState.seatList. |
9
+ | `LiveSeatState` | `data class` | Represents the current state of all seats.<br>- `seatList`: a StateFlow containing the real-time seat list.<br>- `speakingUsers`: users currently speaking and their volume. |
10
+ | `SeatInfo` | `data class` | Data model for a single seat. The seat list (seatList) emitted by LiveSeatStore is a list of SeatInfo objects.<br>Key fields:<br>- `index`: seat position.<br>- `isLocked`: whether the seat is locked.<br>- `userInfo`: user information for the seat. If the seat is empty, this field is empty. |
11
+ | `SeatUserInfo` | `data class` | Detailed data model for the user occupying a seat. When a user successfully takes a seat, the userInfo field in SeatInfo is populated.<br>Key fields:<br>- `userID`: unique user ID.<br>- `userName`: user nickname.<br>- `avatarURL`: user avatar URL.<br>- `microphoneStatus`: microphone status (on/off).<br>- `cameraStatus`: camera status (on/off). |
12
+
13
+ ## Prerequisites
14
+
15
+ ### Step 1: Activate the Service
16
+
17
+ See Activate Service to obtain either the trial or paid version of the SDK.Then, go to [the Console](https://console.trtc.io/app) for application management, and get the following:
18
+ - `SDKAppID`: Application identifier (required). Tencent Cloud uses `SDKAppId` for billing and details.
19
+
20
+ - `SDKSecretKey`: Application secret key, used to initialize the configuration file with secret information.
21
+
22
+ ### Step 2: Import AtomicXCore into Your Project
23
+
24
+ **Install the component**: Add the dependency `implementation 'com.tencent.atomicx:atomicxcore:latest`' to your `build.gradle` file, then perform a **Gradle****Sync**.
25
+ ``` gradle
26
+ dependencies {
27
+ implementation 'io.trtc.uikit:atomicx-core:latest.release'
28
+ api "io.trtc.uikit:rtc_room_engine:3.4.0.1306"
29
+ api "io.trtc.uikit:atomicx-core:3.4.0.1307"
30
+ api "com.tencent.liteav:LiteAVSDK_Professional:12.8.0.19279"
31
+ api "com.tencent.imsdk:imsdk-plus:8.7.7201"
32
+ // Other dependencies...
33
+ }
34
+ ```
35
+
36
+ ### Step 3: Implement Login Logic
37
+
38
+ Call `LoginStore.shared.login` in your project to complete authentication. **This is required before using any functionality of AtomicXCore**.
39
+
40
+ > **Note:**
41
+ >
42
+
43
+ > We recommend calling `LoginStore.shared.login` after your app's own user authentication is successful to ensure clear and consistent login logic.
44
+ >
45
+
46
+ ``` java
47
+ import android.os.Bundle
48
+ import androidx.appcompat.app.AppCompatActivity
49
+ import io.trtc.tuikit.atomicxcore.api.login.LoginStore
50
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
51
+ import android.util.Log
52
+
53
+ class MainActivity : AppCompatActivity() {
54
+ override fun onCreate(savedInstanceState: Bundle?) {
55
+ super.onCreate(savedInstanceState)
56
+
57
+ LoginStore.shared.login(
58
+ this, // context
59
+ 1400000001, // Replace with your SDKAppID
60
+ "test_001", // Replace with your UserID
61
+ "xxxxxxxxxxx", // Replace with your UserSig
62
+ object : CompletionHandler {
63
+ override fun onSuccess() {
64
+ // Handle login success
65
+ Log.d("Login", "login success")
66
+ }
67
+
68
+ override fun onFailure(code: Int, desc: String) {
69
+ // Handle login failure
70
+ Log.e("Login", "login failed, code: $code, error: $desc")
71
+ }
72
+ }
73
+ )
74
+ }
75
+ }
76
+ ```
77
+
78
+ **Login API Parameter Description**
79
+ | Parameter | Type | Description |
80
+ | --- | --- | --- |
81
+ | `sdkAppID` | `Int` | Get this from [TRTC console > Application management](https://console.trtc.io/app). |
82
+ | `userID` | `String` | The unique ID for the current user. Must contain only English letters, numbers, hyphens, and underscores. |
83
+ | `userSig` | `String` | A ticket for Tencent Cloud authentication. Please note:<br>- **Development Environment**: You can use the local `GenerateTestUserSig.genTestSig` function to generate a UserSig or generate a temporary UserSig via the [UserSig Generation Tool](https://console.trtc.io/usersig).<br>- **Production Environment**: To prevent key leakage, you must use a server-side method to generate UserSig. For details, see Generating UserSig on the Server.<br>- For more information, see How to Calculate and Use UserSig. |
84
+
85
+ ## Building a Basic Voice Chat Room
86
+
87
+ ### Step 1: Host Room Creation
88
+
89
+ Follow the steps below to quickly set up a voice chat room as the host.
90
+
91
+ #### **1. Initialize the Seat **`Store`
92
+
93
+ In your host `Activity`, create a `LiveSeatStore` instance. Observe changes in `liveSeatState.seatList` to get real-time mic seat data and update your UI.
94
+ ``` java
95
+ import android.os.Bundle
96
+ import android.util.Log
97
+ import androidx.appcompat.app.AppCompatActivity
98
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceStore
99
+ import io.trtc.tuikit.atomicxcore.api.live.LiveListStore
100
+ import io.trtc.tuikit.atomicxcore.api.live.LiveSeatStore
101
+ import kotlinx.coroutines.CoroutineScope
102
+ import kotlinx.coroutines.Dispatchers
103
+ import kotlinx.coroutines.launch
104
+
105
+ // YourHostActivity represents your Host Activity
106
+ class YourHostActivity : AppCompatActivity() {
107
+
108
+ private lateinit var liveListStore: LiveListStore
109
+ private lateinit var liveSeatStore: LiveSeatStore
110
+ private lateinit var deviceStore: DeviceStore
111
+ private val liveID = "test_voice_room_001"
112
+
113
+ override fun onCreate(savedInstanceState: Bundle?) {
114
+ super.onCreate(savedInstanceState)
115
+ setContentView(R.layout.activity_host) // Assume you have your own layout
116
+
117
+ // 1. Initialize Stores
118
+ liveListStore = LiveListStore.shared()
119
+ liveSeatStore = LiveSeatStore.create(liveID)
120
+ deviceStore = DeviceStore.shared()
121
+
122
+ // 2. Listen for mic seat list changes
123
+ observeSeatList()
124
+ }
125
+
126
+ private fun observeSeatList() {
127
+ // Listen for seatList changes and update your mic seat UI
128
+ CoroutineScope(Dispatchers.Main).launch {
129
+ liveSeatStore.liveSeatState.seatList.collect { seatInfoList ->
130
+ // Render your mic seat UI here based on seatInfoList
131
+ // Example: updateMicSeatView(seatInfoList)
132
+ Log.d("HostActivity", "Seat list updated: ${seatInfoList.size} seats")
133
+ }
134
+ }
135
+ }
136
+ }
137
+ ```
138
+
139
+ #### **2. **Turn On Microphone
140
+
141
+ Turn On Microphone by calling the `openLocalMicrophone` method from `DeviceStore`:
142
+ ``` java
143
+ import androidx.appcompat.app.AppCompatActivity
144
+ import io.trtc.tuikit.atomicxcore.api.device.DeviceStore
145
+
146
+ class YourHostActivity : AppCompatActivity() {
147
+ // ... Other code ...
148
+
149
+ private fun openDevices() {
150
+ // 1. Turn on the microphone
151
+ DeviceStore.shared().openLocalMicrophone(completion = null)
152
+ }
153
+ }
154
+ ```
155
+
156
+ #### **3. Start Voice Chat**
157
+
158
+ Start the live voice chat by calling the `createLive` method of `LiveListStore`:
159
+ ``` java
160
+ import android.os.Bundle
161
+ import android.util.Log
162
+ import androidx.appcompat.app.AppCompatActivity
163
+ import io.trtc.tuikit.atomicxcore.api.live.LiveInfo
164
+ import io.trtc.tuikit.atomicxcore.api.live.LiveInfoCompletionHandler
165
+ import io.trtc.tuikit.atomicxcore.api.live.TakeSeatMode
166
+
167
+ class YourHostActivity : AppCompatActivity() {
168
+ // ... Other code ...
169
+
170
+ override fun onCreate(savedInstanceState: Bundle?) {
171
+ super.onCreate(savedInstanceState)
172
+ // ... Other code ...
173
+
174
+ // Start voice chat
175
+ startLive()
176
+ }
177
+
178
+ private fun startLive() {
179
+ val liveInfo = LiveInfo().apply {
180
+ // 1. Set room id
181
+ liveID = this@YourHostActivity.liveID
182
+ // 2. Set room name
183
+ liveName = "test voice room"
184
+ // 3. Set the live streaming template to the voice chat room template, with 9 seat.
185
+ seatTemplate = SeatLayoutTemplate.AudioSalon(seatCount = 9)
186
+ // 4. Set mic-taking mode, e.g., apply to take mic
187
+ seatMode = TakeSeatMode.APPLY
188
+ }
189
+
190
+ // 8. Call createLive to start the stream
191
+ liveListStore.createLive(liveInfo, object : LiveInfoCompletionHandler {
192
+ override fun onFailure(code: Int, desc: String) {
193
+ Log.e("Live", "Response startLive onError: $desc")
194
+ }
195
+
196
+ override fun onSuccess(liveInfo: LiveInfo) {
197
+ Log.d("Live", "Response startLive onSuccess")
198
+ // After successful creation, the Host is on the mic by default, now you can call unmuteMicrophone
199
+ liveSeatStore.unmuteMicrophone(null)
200
+ }
201
+ })
202
+ }
203
+ }
204
+ ```
205
+
206
+ **LiveInfo Parameter Description**
207
+ | **Parameter Name** | **Type** | **Required** | **Description** |
208
+ | --- | --- | --- | --- |
209
+ | `liveID` | `String` | Required | Unique identifier for the live room |
210
+ | `liveName` | `String` | Optional | Title of the live room |
211
+ | `notice` | `String` | Optional | Announcement information for the live room |
212
+ | `isMessageDisable` | `Boolean` | Optional | Mute status (`true`: muted, `false`: not muted) |
213
+ | `isPublicVisible` | `Boolean` | Optional | Public visibility (`true`: visible, `false`: hidden) |
214
+ | `seatMode` | [TakeSeatMode](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-take-seat-mode/index.html) | Optional | Mic seat mode (`FREE`: free to take seat, `APPLY`: apply to take seat) |
215
+ | `seatTemplate` | `SeatLayoutTemplate` | Required | Mic seat layout template ID |
216
+ | `coverURL` | `String` | Optional | Cover image URL for the live room |
217
+ | `backgroundURL` | `String` | Optional | Background image URL for the live room |
218
+ | `categoryList` | `List<Int>` | Optional | Category tag list for the live room |
219
+ | `activityStatus` | `Int` | Optional | Live activity status |
220
+
221
+ #### **4. Build the Mic Seat UI**
222
+
223
+ > **Note:**
224
+ >
225
+
226
+ > For the complete business logic of mic seat UI effects, refer to the open-source [SeatGridView.kt](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/voiceroomcore/SeatGridView.kt) in the TUILiveKit project.
227
+ >
228
+
229
+ Use the `LiveSeatStore` instance to observe changes in `liveSeatState.seatList` and update your UI in real time. In your Activity (such as `YourAnchorActivity` or `YourAudienceActivity`), observe the data as follows:
230
+ ``` java
231
+ import android.os.Bundle
232
+ import android.util.Log
233
+ import androidx.appcompat.app.AppCompatActivity
234
+ import kotlinx.coroutines.CoroutineScope
235
+ import kotlinx.coroutines.Dispatchers
236
+ import kotlinx.coroutines.launch
237
+
238
+ class YourHostActivity : AppCompatActivity() {
239
+ // ... Other code ...
240
+
241
+ override fun onCreate(savedInstanceState: Bundle?) {
242
+ super.onCreate(savedInstanceState)
243
+ // ... Other code ...
244
+
245
+ // Listen for seatList changes
246
+ observeSeatList()
247
+ }
248
+
249
+ private fun observeSeatList() {
250
+ // Listen for seatList changes and update your mic seat UI
251
+ CoroutineScope(Dispatchers.Main).launch {
252
+ liveSeatStore.liveSeatState.seatList.collect { seatInfoList ->
253
+ // seatInfoList is the latest mic seat list (List<SeatInfo>), render your mic seat UI here based on seatInfoList
254
+ Log.d("HostActivity", "Seat list updated: ${seatInfoList.size} seats")
255
+ }
256
+ }
257
+ }
258
+ }
259
+ ```
260
+
261
+ #### **5. End Voice Chat**
262
+
263
+ To end the voice chat, call the `endLive` method of `LiveListStore`. The SDK will handle stopping the stream and destroying the room.
264
+ ``` java
265
+ import android.util.Log
266
+ import androidx.appcompat.app.AppCompatActivity
267
+ import com.tencent.cloud.tuikit.engine.extension.TUILiveListManager
268
+ import io.trtc.tuikit.atomicxcore.api.live.StopLiveCompletionHandler
269
+
270
+ class YourHostActivity : AppCompatActivity() {
271
+ // ... Other code ...
272
+
273
+ // End voice chat
274
+ private fun stopLive() {
275
+ liveListStore.endLive(object : StopLiveCompletionHandler {
276
+ override fun onSuccess(statisticsData: TUILiveListManager.LiveStatisticsData) {
277
+ Log.d("Live", "endLive success, duration: ${statisticsData.liveDuration}")
278
+ }
279
+
280
+ override fun onFailure(code: Int, desc: String) {
281
+ Log.e("Live", "endLive error: $desc")
282
+ }
283
+ })
284
+ }
285
+
286
+ // Ensure this is also called when the Activity is destroyed
287
+ override fun onDestroy() {
288
+ super.onDestroy()
289
+ stopLive()
290
+ Log.d("Live", "YourHostActivity onDestroy")
291
+ }
292
+ }
293
+ ```
294
+
295
+ ### Step 2: Audience Joins the Voice Chat Room
296
+
297
+ Follow these steps to allow audience members to join the voice chat room.
298
+
299
+ #### **1. Initialize the Mic Seat Store**
300
+
301
+ In your audience `Activity`, create a `LiveSeatStore` instance and observe changes in `liveSeatState.seatList` to update the mic seat UI.
302
+ ``` java
303
+ import io.trtc.tuikit.atomicxcore.api.live.LiveListStore
304
+ import io.trtc.tuikit.atomicxcore.api.live.LiveSeatStore
305
+ import android.os.Bundle
306
+ import androidx.appcompat.app.AppCompatActivity
307
+ import kotlinx.coroutines.CoroutineScope
308
+ import kotlinx.coroutines.Dispatchers
309
+ import kotlinx.coroutines.launch
310
+ import android.util.Log
311
+
312
+ // YourAudienceActivity represents your Audience Activity
313
+ class YourAudienceActivity : AppCompatActivity() {
314
+
315
+ private lateinit var liveListStore: LiveListStore
316
+ private lateinit var liveSeatStore: LiveSeatStore
317
+ private val liveID = "test_voice_room_001" // Ensure liveID matches the Host's
318
+
319
+ override fun onCreate(savedInstanceState: Bundle?) {
320
+ super.onCreate(savedInstanceState)
321
+ setContentView(R.layout.activity_audience) // Assume you have your own layout
322
+
323
+ // 1. Initialize Stores
324
+ liveListStore = LiveListStore.shared()
325
+ liveSeatStore = LiveSeatStore.create(liveID)
326
+
327
+ // 2. Listen for mic seat list changes
328
+ observeSeatList()
329
+ }
330
+
331
+ private fun observeSeatList() {
332
+ // 3. Listen for seatList changes and update your mic seat UI
333
+ CoroutineScope(Dispatchers.Main).launch {
334
+ liveSeatStore.liveSeatState.seatList.collect { seatInfoList ->
335
+ // Render your mic seat UI here based on seatInfoList
336
+ // Example: updateMicSeatView(seatInfoList)
337
+ Log.d("AudienceActivity", "Seat list updated: ${seatInfoList.size} seats")
338
+ }
339
+ }
340
+ }
341
+ }
342
+ ```
343
+
344
+ #### **2. Join Voice Chat Room**
345
+
346
+ Join the voice chat room by calling the `joinLive` method of `LiveListStore`:
347
+ ``` java
348
+ import android.os.Bundle
349
+ import androidx.appcompat.app.AppCompatActivity
350
+ import android.util.Log
351
+ import io.trtc.tuikit.atomicxcore.api.live.LiveInfo
352
+ import io.trtc.tuikit.atomicxcore.api.live.LiveInfoCompletionHandler
353
+
354
+ // YourAudienceActivity represents your Audience Activity
355
+ class YourAudienceActivity : AppCompatActivity() {
356
+
357
+ // ... Other code ...
358
+ override fun onCreate(savedInstanceState: Bundle?) {
359
+ super.onCreate(savedInstanceState)
360
+ setContentView(R.layout.activity_audience) // Assume you have your own layout
361
+ // ... Other code ...
362
+
363
+ // Enter voice chat room
364
+ joinLive()
365
+ }
366
+
367
+ private fun joinLive() {
368
+ // 1. Call joinLive to enter the voice chat room
369
+ liveListStore.joinLive(liveID, object : LiveInfoCompletionHandler {
370
+ override fun onSuccess(liveInfo: LiveInfo) {
371
+ Log.d("Live", "joinLive success")
372
+ }
373
+ override fun onFailure(code: Int, desc: String) {
374
+ Log.e("Live", "joinLive error: $desc")
375
+ }
376
+ })
377
+ }
378
+ }
379
+ ```
380
+
381
+ #### **3. Build the Mic Seat UI**
382
+
383
+ The process for building the mic seat UI as an audience member is the same as for the host. Refer to the host Build the Mic Seat UI.
384
+
385
+ #### **4. Leave the Voice Chat Room**
386
+
387
+ When an audience member leaves the voice chat room, call the `leaveLive` method of `LiveListStore`:
388
+ ``` java
389
+ import android.util.Log
390
+ import androidx.appcompat.app.AppCompatActivity
391
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
392
+
393
+ // YourAudienceActivity represents your Audience Activity
394
+ class YourAudienceActivity : AppCompatActivity() {
395
+ // ... Other code ...
396
+
397
+ private fun leaveLive() {
398
+ liveListStore.leaveLive(object : CompletionHandler {
399
+ override fun onSuccess() {
400
+ Log.d("Live", "leaveLive success")
401
+ }
402
+
403
+ override fun onFailure(code: Int, desc: String) {
404
+ Log.e("Live", "leaveLive error: $desc")
405
+ }
406
+ })
407
+ }
408
+
409
+ // Ensure this is also called when the Activity is destroyed
410
+ override fun onDestroy() {
411
+ super.onDestroy()
412
+ leaveLive()
413
+ Log.d("Live", "YourAudienceActivity onDestroy")
414
+ }
415
+ }
416
+ ```
417
+
418
+ ### Run and Test
419
+
420
+ After completing the steps above, you will have a basic voice chat live streaming setup. For more advanced features, see the "Enrich Voice Chat Room Scenarios" section.
421
+
422
+ ## Advanced Features
423
+
424
+ ### **Implementing Speaking Wave Animation for Mic Seat Users**
425
+
426
+ In voice chat rooms, it is common to show a wave animation on the avatar of users who are speaking, so everyone can see who is currently talking. `LiveSeatStore` provides a `speakingUsers` data stream for this purpose.
427
+
428
+ #### Example
429
+
430
+ ####
431
+
432
+ #### Implementation
433
+
434
+ > **Note:**
435
+ >
436
+
437
+ > For a complete implementation of the speaking wave animation, refer to [SeatGridView.kt](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/voiceroomcore/SeatGridView.kt) in the open-source TUILiveKit project.
438
+ >
439
+
440
+ In `YourAnchorActivity`, observe changes in `speakingUsers` and update the UI to reflect the speaking status:
441
+ ``` java
442
+ import android.os.Bundle
443
+ import android.util.Log
444
+ import androidx.appcompat.app.AppCompatActivity
445
+ import kotlinx.coroutines.CoroutineScope
446
+ import kotlinx.coroutines.Dispatchers
447
+ import kotlinx.coroutines.launch
448
+
449
+ // In YourHostActivity or YourAudienceActivity
450
+ class YourHostActivity : AppCompatActivity() {
451
+ // ... (omitting other code) ...
452
+
453
+ override fun onCreate(savedInstanceState: Bundle?) {
454
+ super.onCreate(savedInstanceState)
455
+ // ... (omitting other code) ...
456
+
457
+ // Listen for speakingUsers changes
458
+ observeSpeakingUsersState()
459
+ }
460
+
461
+ private fun observeSpeakingUsersState() {
462
+ // Listen for speakingUsers changes and update the "currently speaking" status
463
+ CoroutineScope(Dispatchers.Main).launch {
464
+ liveSeatStore.liveSeatState.speakingUsers.collect { speakingUserSet ->
465
+ // Pass the set of "currently speaking" user IDs to the UI, update UI state
466
+ Log.d("HostActivity", "Speaking users updated: ${speakingUserSet.size} users")
467
+ }
468
+ }
469
+ }
470
+ }
471
+ ```
472
+
473
+ ### Synchronizing Custom State in Live Streaming Room
474
+
475
+ In Live Streaming Room, hosts may need to synchronize custom information with all participants, such as the current room topic or background music. The `metaData` feature of `LiveListStore` supports this use case.
476
+
477
+ #### Implementation
478
+ 1. On the host side, set custom information using the `updateLiveMetaData` API. `AtomicXCore` synchronizes these changes in real time to all participants.
479
+
480
+ 2. On the audience side, subscribe to `LiveListState.currentLive` and listen for changes in `metaData`. When a relevant key is updated, parse its value and update your business logic.
481
+
482
+ #### Code Example
483
+ ``` kotlin
484
+ import io.trtc.tuikit.atomicxcore.api.LiveListStore
485
+ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
486
+ import com.google.gson.Gson
487
+ import io.trtc.tuikit.atomicxcore.api.MetaDataCompletionHandler
488
+ import io.trtc.tuikit.atomicxcore.api.LiveListStore
489
+
490
+ // 1. Define a background music model (using data class)
491
+ data class MusicModel(
492
+ val musicId: String,
493
+ val musicName: String
494
+ )
495
+
496
+ // 2. Host side: Add a method to push background music in your Host business logic
497
+ fun updateBackgroundMusic(music: MusicModel) {
498
+ val gson = Gson()
499
+ val jsonString = gson.toJson(music) ?: ""
500
+
501
+ // The metaData to be updated
502
+ val metaData = hashMapOf("music_info" to jsonString)
503
+
504
+ // Update metaData
505
+ LiveListStore.shared()
506
+ .updateLiveMetaData(
507
+ metaData,
508
+ object : CompletionHandler {
509
+ override fun onSuccess() {
510
+ print("Background music ${music.musicName} pushed successfully")
511
+ }
512
+
513
+ override fun onFailure(code: Int, desc: String) {
514
+ print("Failed to push background music: $desc")
515
+ }
516
+ }
517
+ )
518
+ }
519
+
520
+ // 3. Audience side: Add a method to listen for background music changes in your Audience business logic
521
+ private fun subscribeToDataUpdates() {
522
+ CoroutineScope(Dispatchers.Main).launch {
523
+ LiveListStore.shared()
524
+ .liveState
525
+ .currentLive
526
+ .map { it.metaData }
527
+ .collect {
528
+ val musicInfo = it["music_info"]
529
+ // Refresh business state, e.g., play new background music
530
+ }
531
+ }
532
+ }
533
+ ```
534
+
535
+ ## Enrich Voice Chat Room Scenarios
536
+
537
+ After implementing the basic voice chat room, you can add more interactive features by referring to the following guides:
538
+ | **Feature** | **Feature Description** | **Feature Stores** | **Implementation Guide** |
539
+ | --- | --- | --- | --- |
540
+ | **Enable Audience to Take Mic Seat** | Audience can apply to take a mic seat and interact with the host in real time. | [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) | Implementation |
541
+ | **Host Cross-Room Connection & PK** | Hosts from different rooms can connect for interaction or PK. | [CoHostStore](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-co-host-store/index.html)<br>[BattleStore](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-battle-store/index.html) | Implementation |
542
+ | **Add Barrage Chat** | Members in the room can send and receive real-time text messages. | [BarrageStore](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.barrage/-barrage-store/index.html) | Implementation |
543
+ | **Build Gift System** | Audience can send virtual gifts to hosts to increase engagement and fun. | [GiftStore](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.gift/-gift-store/index.html) | Implementation |
544
+
545
+ ## API Documentation
546
+ | **Store/Component** | **Feature Description** | **API Documentation** |
547
+ | --- | --- | --- |
548
+ | `LiveListStore` | Manages the full lifecycle of live rooms: create, join, leave, destroy rooms; query room list; modify live info (name, announcement, etc.); listen to live status (such as being kicked out, ended). | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-live-list-store/index.html) |
549
+ | `LiveSeatStore` | Core mic seat management: manage mic seat list, user status, seat operations (take seat, leave seat, kick, lock, toggle microphone/camera, etc.), listen to mic seat events. | [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) |
550
+ | `DeviceStore` | Audio/video device control: microphone (toggle/volume), camera (toggle/switch/quality), screen sharing, real-time device status monitoring. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-device-store/index.html) |
551
+ | `CoGuestStore` | Audience co-host management: co-host application/invitation/approval/rejection, member permission control (microphone/camera), status 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) |
552
+ | `CoHostStore` | Host cross-room connection: supports multiple layout templates (dynamic grid, etc.), initiate/accept/reject connection, manage co-host interaction. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-co-host-store/index.html) |
553
+ | `BattleStore` | Host PK battle: initiate PK (set duration/opponent), manage PK status (start/end), synchronize scores, listen to battle results. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-battle-store/index.html) |
554
+ | `GiftStore` | Gift interaction: get gift list, send/receive gifts, listen to gift events (including sender and gift details). | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.gift/-gift-store/index.html) |
555
+ | `BarrageStore` | Bullet chat feature: send text/custom barrage, maintain barrage list, real-time barrage status monitoring. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.barrage/-barrage-store/index.html) |
556
+ | `LikeStore` | Like interaction: send likes, listen to like events, synchronize total like count. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-like-store/index.html) |
557
+ | `LiveAudienceStore` | Audience management: get real-time audience list (ID/name/avatar), count audience number, listen to audience join/leave events. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-live-audience-store/index.html) |
558
+ | `AudioEffectStore` | Audio effects: voice changer (child/male), reverb (KTV, etc.), ear monitor adjustment, real-time effect switching. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-audio-effect-store/index.html) |
559
+
560
+ ## FAQs
561
+
562
+ ### Why is there no sound after the audience calls joinLive?
563
+ - **Check device permissions:** Ensure the app has system permission to use the microphone.
564
+
565
+ - **Check the host:** Confirm the host has called `DeviceStore.shared().openLocalMicrophone(null)` to enable the microphone.
566
+
567
+ - **Check the network:** Ensure the device's network connection is stable.
568
+
569
+ ### Why is the mic seat list not displayed or not updating?
570
+ - **Check store initialization:** Make sure you have created the `LiveSeatStore` instance with the same `liveID` before calling `createLive` or `joinLive` (`LiveSeatStore.create(liveID)`).
571
+
572
+ - **Check data observation:** Ensure you are observing the `liveSeatStore.liveSeatState.seatList` data stream.
573
+
574
+ - **Check API calls:** Confirm that `createLive` (host) or `joinLive` (audience) was successfully called (check the `onSuccess` callback).