@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,576 @@
1
+ This document guides you 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
+
5
+ Before starting integration, please go through the following table to understand several core concepts related to `LiveSeatStore`:
6
+ | **Core Concepts** | **Type** | **Core Responsibilities and Description** |
7
+ | --- | --- | --- |
8
+ | [LiveSeatStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_seat_store/LiveSeatStore-class.html) | `class` | The core of seat management is responsible for managing ALL seat information and related operations in the room.<br>Expose the real-time microphone position list data stream through `liveSeatState.seatList`. |
9
+ | [LiveSeatState](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_seat_store/LiveSeatState-class.html) | `class` | Represent the current status of the microphone position.<br>- `seatList` is a `ValueListenable<List<SeatInfo>>` type that stores the real-time status of the seat position list;<br>- `speakingUsers` signifies the person currently speaking and the corresponding volume. |
10
+ | [SeatInfo](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_seat_store/SeatInfo-class.html) | `class` | The data model of one microphone position. The seat position list (`seatList`) pushed by `LiveSeatStore` consists of multiple `SeatInfo` objects. Key field:<br>- `index` (the index of the seat position).<br>- `isLocked` (whether the seat position is locked).<br>- `userInfo` (user information on the seat position. If the seat position is empty, this field is also an empty object). |
11
+ | [SeatUserInfo](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_seat_store/SeatUserInfo-class.html) | `class` | The detailed data model of the on-mic user. When a user successfully gets on mic, the `userInfo` field in `SeatInfo` will be filled with this user. Key field:<br>- `userID` (user's unique ID)<br>- `userName` (user's nickname)<br>- `avatarURL` (user's profile photo URL)<br>- `microphoneStatus` (Mic status)<br>- `cameraStatus` (Camera status). |
12
+
13
+ ## Preparations
14
+
15
+ ### Step 1: Activate the Services
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
+ 1. **Install component**: Please add `atomic_x_core` dependency in your `pubspec.yaml` file, then execute `flutter pub get`.
24
+
25
+ ``` yaml
26
+ dependencies:
27
+ atomic_x_core: ^3.6.0
28
+ ```
29
+ 2. **Configure project permissions:** Android and iOS projects all are needed to configure permissions.
30
+
31
+ 【Android】
32
+
33
+ Add permission to use microphone in file `android/app/src/main/AndroidManifest.xml`.
34
+ ``` xml
35
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
36
+ ```
37
+
38
+ 【iOS】
39
+
40
+ Add permission to use microphone in file `ios` directory **Podfile** and `ios/Runner` directory `Info.plist`.
41
+
42
+ **Podfile**
43
+ ``` ruby
44
+ post_install do |installer|
45
+ installer.pods_project.targets.each do |target|
46
+ flutter_additional_ios_build_settings(target)
47
+ target.build_configurations.each do |config|
48
+ config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
49
+ '$(inherited)',
50
+ 'PERMISSION_MICROPHONE=1',
51
+ ]
52
+ end
53
+ end
54
+ end
55
+ ```
56
+
57
+ **Info.plist**
58
+ ``` xml
59
+ <key>NSMicrophoneUsageDescription</key>
60
+ <string>TUILiveKit needs to access your microphone permission. Recorded video will have sound when enabled</string>
61
+ ```
62
+
63
+ ### Step 3: Implement Login Logic
64
+
65
+ Call `LoginStore.shared.login` in the project to complete login. **This is the key premise for using **`AtomicXCore`** all functions**.
66
+
67
+ > **Important:**
68
+ >
69
+
70
+ > We recommend calling LoginStore.shared.login after successful log-in to your App's user account to ensure clear and consistent login service logic.
71
+ >
72
+
73
+ ``` java
74
+ import 'package:flutter/material.dart';
75
+ import 'package:atomic_x_core/atomicxcore.dart';
76
+
77
+ // main.dart
78
+ void main() async {
79
+ WidgetsFlutterBinding.ensureInitialized();
80
+
81
+ // Log in.
82
+ final result = await LoginStore.shared.login(
83
+ sdkAppID: 1400000001, // Replace with your sdkAppID
84
+ userID: "test_001", // Replace with your user ID
85
+ userSig: "xxxxxxxxxxx", // Replace with your userSig
86
+ );
87
+
88
+ if (result.isSuccess) {
89
+ debugPrint("login success");
90
+ } else {
91
+ debugPrint("login failed code: ${result.code}, message: ${result.message}");
92
+ }
93
+
94
+ runApp(const MyApp());
95
+ }
96
+ ```
97
+
98
+ **Login API parameter description:**
99
+ | **Parameter** | **Type** | **Description** |
100
+ | --- | --- | --- |
101
+ | `sdkAppID` | `Int` | Get this from [TRTC console > Application management](https://console.trtc.io/app). |
102
+ | `userID` | `String` | The unique ID for the current user. Must contain only English letters, numbers, hyphens, and underscores. |
103
+ | `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. |
104
+
105
+ ## Building a Basic Voice Chat Room
106
+
107
+ ### Step 1: Host Room Creation
108
+
109
+ Follow these steps to quickly set up a voice chat room as the host.
110
+
111
+ #### 1. **Initialize the Seat Store**
112
+
113
+ On your anchor page, create a `LiveSeatStore` instance. You need to listen to changes in `liveSeatStore.liveSeatState` for real-time seat updates and UI rendering.
114
+ ``` java
115
+ import 'package:flutter/material.dart';
116
+ import 'package:atomic_x_core/atomicxcore.dart';
117
+
118
+ // YourAnchorPage represents your host homepage
119
+ class YourAnchorPage extends StatefulWidget {
120
+ const YourAnchorPage({super.key});
121
+
122
+ @override
123
+ State<YourAnchorPage> createState() => _YourAnchorPageState();
124
+ }
125
+
126
+ class _YourAnchorPageState extends State<YourAnchorPage> {
127
+ final _liveListStore = LiveListStore.shared;
128
+ final _deviceStore = DeviceStore.shared;
129
+
130
+ // Initialize LiveSeatStore with liveID
131
+ final String _liveID = "test_voice_room_001";
132
+ late final LiveSeatStore _liveSeatStore;
133
+ late final VoidCallback _seatListListener = _onSeatListChanged;
134
+
135
+ @override
136
+ void initState() {
137
+ super.initState();
138
+ _liveSeatStore = LiveSeatStore.create(_liveID);
139
+
140
+ // Listen to microphone position list adjustment
141
+ _observeSeatList();
142
+ }
143
+
144
+ void _observeSeatList() {
145
+ // Listen to changes in liveSeatState.seatList and refresh your mic seat UI
146
+ _liveSeatStore.liveSeatState.seatList.addListener(_seatListListener);
147
+ }
148
+
149
+ void _onSeatListChanged() {
150
+ // Render your mic seat UI here based on seatInfoList
151
+ final seatInfoList = _liveSeatStore.liveSeatState.seatList.value;
152
+ debugPrint("Seat list updated: ${seatInfoList.length} seats");
153
+ setState(() {});
154
+ }
155
+
156
+ @override
157
+ void dispose() {
158
+ _liveSeatStore.liveSeatState.seatList.removeListener(_seatListListener);
159
+ super.dispose();
160
+ }
161
+
162
+ @override
163
+ Widget build(BuildContext context) {
164
+ // Assume that you have your own layout
165
+ return Container();
166
+ }
167
+ }
168
+ ```
169
+
170
+ #### Turn on Microphone
171
+
172
+ Turn on the microphone by calling the `DeviceStore``openLocalMicrophone` API. Sample code:
173
+ ``` java
174
+ class _YourAnchorPageState extends State<YourAnchorPage> {
175
+ // ... Other code ...
176
+
177
+ void _openDevices() {
178
+ // Turn the mic on
179
+ DeviceStore.shared.openLocalMicrophone();
180
+ }
181
+ }
182
+ ```
183
+
184
+ #### 3. Start Voice Chat
185
+
186
+ By calling the `LiveListStore``createLive` API to start a voice chat room live stream, sample code:
187
+ ``` java
188
+ class _YourAnchorPageState extends State<YourAnchorPage> {
189
+ // ... Other code ...
190
+ final String _liveID = "test_voice_room_001";
191
+
192
+ @override
193
+ void initState() {
194
+ super.initState();
195
+ // ... Other code ...
196
+
197
+ // Start Voice Chat
198
+ _startLive();
199
+ }
200
+
201
+ Future<void> _startLive() async {
202
+ // 1. Prepare the LiveInfo object
203
+ final liveInfo = LiveInfo(
204
+ // 2. Set the room id
205
+ liveID: _liveID,
206
+ // 3. Set the room name
207
+ liveName: "test voice chat room",
208
+ // 4. Configured as a voice chat room (enable seat)
209
+ isSeatEnabled: true,
210
+ // 5. Room owner on seat by default
211
+ keepOwnerOnSeat: true,
212
+ // 6. Set the seat layout template (for example, 70 is the 10-seat template)
213
+ // Important: According to the product specification, input the correct ID
214
+ seatLayoutTemplateID: 70,
215
+ // 7. Set the microphone mode, such as apply for microphone mode
216
+ seatMode: TakeSeatMode.apply,
217
+ // 8. Set the maximum number of microphone slots
218
+ maxSeatCount: 10,
219
+ );
220
+
221
+ // 9. Call createLive to start live streaming
222
+ final result = await _liveListStore.createLive(liveInfo);
223
+
224
+ if (result.isSuccess) {
225
+ debugPrint("Response startLive onSuccess");
226
+ // Once created successfully, the room owner will join the stage by default. At this point, you can call unmuteMicrophone
227
+ _liveSeatStore.unmuteMicrophone();
228
+ } else {
229
+ debugPrint("Response startLive onError: ${result.message}");
230
+ }
231
+ }
232
+ }
233
+ ```
234
+
235
+ **LiveInfo parameter description:**
236
+ | **Parameter Name** | **Type** | **Attribute** | **Description** |
237
+ | --- | --- | --- | --- |
238
+ | `liveID` | `String` | Required | Unique identifier of the live streaming room. |
239
+ | `liveName` | `String` | Optional. | Title of the live streaming room. |
240
+ | `notice` | `String` | Optional. | Announcement information of the live streaming room. |
241
+ | `isMessageDisable` | `bool` | Optional. | Whether to mute (`true`: yes, `false`: no). |
242
+ | `isPublicVisible` | `bool` | Optional. | Whether publicly visible (`true`: yes, `false`: no). |
243
+ | `isSeatEnabled` | `bool` | Optional. | Whether to enable the seat feature (`true`: yes, `false`: no). |
244
+ | `keepOwnerOnSeat` | `bool` | Optional. | Whether to keep the room owner on the seat. |
245
+ | `maxSeatCount` | `int` | Optional. | Maximum number of microphones. |
246
+ | `seatMode` | `TakeSeatMode` | Optional. | Microphone mode (`free`: Free to Join the Podium, `apply`: request to speak). |
247
+ | `seatLayoutTemplateID` | `int` | Required | Mic position layout template `ID.` |
248
+ | `coverURL` | `String` | Optional. | thumbnail URL of the live streaming room. |
249
+ | `backgroundURL` | `String` | Optional. | background image URL of the live streaming room. |
250
+ | `categoryList` | `List<int>` | Optional. | Category tag list of the live streaming room. |
251
+ | `activityStatus` | `int` | Optional. | Live stream status. |
252
+ | `isGiftEnabled` | `bool` | Optional. | Whether to enable the gift function (`true`: yes, `false`: no). |
253
+
254
+ #### 4. Build a Mic Seat UI
255
+
256
+ > **Note:**
257
+ >
258
+
259
+ > For the business code of the Mic Seat `UI` effect, see the [seat_grid_widget.dart](https://github.com/Tencent-RTC/TUIKit_Flutter/blob/main/live/livekit/lib/seat_grid_widget/seat_grid_widget.dart) file in the `TUILiveKit` open-source project to learn about the complete implementation logic.
260
+ >
261
+
262
+ Through the `LiveSeatStore` instance, listen to changes in `liveSeatState.seatList` to get seat data in real time for rendering your UI. You can listen to the data on the page (such as `YourAnchorPage` or `YourAudiencePage`) in the following ways:
263
+ ``` java
264
+ class _YourAnchorPageState extends State<YourAnchorPage> {
265
+ // ... Other code ...
266
+ late final LiveSeatStore _liveSeatStore;
267
+ late final VoidCallback _seatListListener = _onSeatListChanged;
268
+
269
+ @override
270
+ void initState() {
271
+ super.initState();
272
+ _liveSeatStore = LiveSeatStore.create("your_live_id");
273
+ // ... Other code ...
274
+
275
+ // Listen to seatList transition
276
+ _observeSeatList();
277
+ }
278
+
279
+ void _observeSeatList() {
280
+ // Listen to changes in liveSeatState.seatList and refresh your mic seat UI
281
+ _liveSeatStore.liveSeatState.seatList.addListener(_seatListListener);
282
+ }
283
+
284
+ void _onSeatListChanged() {
285
+ // seatInfoList is the latest microphone position list (List<SeatInfo>)
286
+ final seatInfoList = _liveSeatStore.liveSeatState.seatList.value;
287
+ // Render your mic seat UI here based on seatInfoList
288
+ debugPrint("Seat list updated: ${seatInfoList.length} seats");
289
+ setState(() {});
290
+ }
291
+
292
+ @override
293
+ void dispose() {
294
+ _liveSeatStore.liveSeatState.seatList.removeListener(_seatListListener);
295
+ super.dispose();
296
+ }
297
+
298
+ @override
299
+ Widget build(BuildContext context) {
300
+ return ValueListenableBuilder<List<SeatInfo>>(
301
+ valueListenable: _liveSeatStore.liveSeatState.seatList,
302
+ builder: (context, seatList, child) {
303
+ return GridView.builder(
304
+ gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
305
+ crossAxisCount: 4,
306
+ ),
307
+ itemCount: seatList.length,
308
+ itemBuilder: (context, index) {
309
+ final seat = seatList[index];
310
+ return _buildSeatItem(seat);
311
+ },
312
+ );
313
+ },
314
+ );
315
+ }
316
+
317
+ Widget _buildSeatItem(SeatInfo seat) {
318
+ // Build one mic seat UI
319
+ return Container();
320
+ }
321
+ }
322
+ ```
323
+
324
+ #### 5. End Voice Chat
325
+
326
+ After the voice chat, the room owner can call the `LiveListStore`'s `endLive` API to end the chat. The `SDK` will handle the logic of stopping streaming and terminating the room.
327
+ ``` java
328
+ class _YourAnchorPageState extends State<YourAnchorPage> {
329
+ // ... Other code ...
330
+
331
+ // End Voice Chat
332
+ Future<void> _stopLive() async {
333
+ final result = await _liveListStore.endLive();
334
+
335
+ if (result.isSuccess) {
336
+ debugPrint("endLive success");
337
+ } else {
338
+ debugPrint("endLive error: ${result.message}");
339
+ }
340
+ }
341
+ }
342
+ ```
343
+
344
+ ### Step 2: Audience Joins the Voice Chat Room
345
+
346
+ Enable audience members to join the voice chat room with the following steps.
347
+
348
+ #### 1. **Initialize the Seat Store**
349
+
350
+ On your audience page, create a `LiveSeatStore` instance and listen to changes in `liveSeatState.seatList` to render the mic seat UI.
351
+ ``` java
352
+ import 'package:flutter/material.dart';
353
+ import 'package:atomic_x_core/atomicxcore.dart';
354
+
355
+ // YourAudiencePage represents your audience page
356
+ class YourAudiencePage extends StatefulWidget {
357
+ const YourAudiencePage({super.key});
358
+
359
+ @override
360
+ State<YourAudiencePage> createState() => _YourAudiencePageState();
361
+ }
362
+
363
+ class _YourAudiencePageState extends State<YourAudiencePage> {
364
+ final _liveListStore = LiveListStore.shared;
365
+
366
+ // Ensure the liveID matches the room owner
367
+ final String _liveID = "test_voice_room_001";
368
+ late final LiveSeatStore _liveSeatStore;
369
+ late final VoidCallback _seatListListener = _onSeatListChanged;
370
+
371
+ @override
372
+ void initState() {
373
+ super.initState();
374
+ _liveSeatStore = LiveSeatStore.create(_liveID);
375
+
376
+ // Listen to microphone position list adjustment
377
+ _observeSeatList();
378
+ }
379
+
380
+ void _observeSeatList() {
381
+ // Listen to changes in liveSeatState.seatList and refresh your mic seat UI
382
+ _liveSeatStore.liveSeatState.seatList.addListener(_seatListListener);
383
+ }
384
+
385
+ void _onSeatListChanged() {
386
+ // Render your mic seat UI here based on seatInfoList
387
+ final seatInfoList = _liveSeatStore.liveSeatState.seatList.value;
388
+ debugPrint("AudiencePage Seat list updated: ${seatInfoList.length} seats");
389
+ setState(() {});
390
+ }
391
+
392
+ @override
393
+ void dispose() {
394
+ _liveSeatStore.liveSeatState.seatList.removeListener(_seatListListener);
395
+ super.dispose();
396
+ }
397
+
398
+ @override
399
+ Widget build(BuildContext context) {
400
+ // Assume that you have your own layout
401
+ return Container();
402
+ }
403
+ }
404
+ ```
405
+
406
+ #### 2. **Join the Voice Chat Room**
407
+
408
+ By calling the `LiveListStore``joinLive` API to join a voice chat room, sample code:
409
+ ``` java
410
+ class _YourAudiencePageState extends State<YourAudiencePage> {
411
+ // ... Other code ...
412
+
413
+ @override
414
+ void initState() {
415
+ super.initState();
416
+ // ... Other code ...
417
+
418
+ // Enter a voice chat room
419
+ _joinLive();
420
+ }
421
+
422
+ Future<void> _joinLive() async {
423
+ // Call joinLive to enter a voice chat room
424
+ final result = await _liveListStore.joinLive(_liveID);
425
+
426
+ if (result.isSuccess) {
427
+ debugPrint("joinLive success");
428
+ } else {
429
+ debugPrint("joinLive error: ${result.message}");
430
+ }
431
+ }
432
+ }
433
+ ```
434
+
435
+ #### 3. Build a Mic Seat UI
436
+
437
+ The process for the audience to build a Mic Seat UI is the same as that for the Anchor. Refer to Build a Mic Seat UI.
438
+
439
+ #### 4. **Leave the Voice Chat Room**
440
+
441
+ When the audience logs out of the voice chat room, they need to call the `LiveListStore`'s `leaveLive` API to exit.
442
+ ``` java
443
+ class _YourAudiencePageState extends State<YourAudiencePage> {
444
+ // ... Other code ...
445
+
446
+ Future<void> _leaveLive() async {
447
+ final result = await _liveListStore.leaveLive();
448
+
449
+ if (result.isSuccess) {
450
+ debugPrint("leaveLive success");
451
+ } else {
452
+ debugPrint("leaveLive error: ${result.message}");
453
+ }
454
+ }
455
+ }
456
+ ```
457
+
458
+ ### Run and Test
459
+
460
+ After completing the above steps, you can complete a most basic voice chat live streaming scenario. You can refer to various voice chat room scenarios to refine the voice chat scenario.
461
+
462
+ ## Advanced Features
463
+
464
+ ### Implementing On-Mic User Voice Waves
465
+
466
+ In a voice chat room scenario, a common need is to display a wave animation on the avatar of an on-mic user when they speak, notifying all room users "who is speaking". `LiveSeatStore` provides the `speakingUsers` data stream, specialized for implementing this feature.
467
+
468
+ #### Implementation
469
+
470
+ > **Note:**
471
+ >
472
+
473
+ > When an Anchor speaks, a wave animation effect is shown. See the [seat_grid_widget.dart](https://github.com/Tencent-RTC/TUIKit_Flutter/blob/main/live/livekit/lib/seat_grid_widget/seat_grid_widget.dart) file in the `TUILiveKit` open-source project to learn about the complete implementation logic.
474
+ >
475
+
476
+ On `YourAnchorPage` or `YourAudiencePage`, listen for `speakingUsers` transition and refresh the "speaking" status. Sample code:
477
+ ``` java
478
+ class _YourAnchorPageState extends State<YourAnchorPage> {
479
+ late final VoidCallback _speakingUsersListener = _onSpeakingUsersChanged;
480
+ // ... Other code ...
481
+
482
+ @override
483
+ void initState() {
484
+ super.initState();
485
+ // ... Other code ...
486
+
487
+ // Listen to speakingUsers transition
488
+ _observeSpeakingUsersState();
489
+ }
490
+
491
+ void _observeSpeakingUsersState() {
492
+ // Listen for liveSeatState.speakingUsers transition and refresh the "speaking" status
493
+ _liveSeatStore.liveSeatState.speakingUsers.addListener(_speakingUsersListener);
494
+ }
495
+
496
+ void _onSpeakingUsersChanged() {
497
+ // Pass the user ID collection of "speaking" users to the UI and update the UI state
498
+ final speakingUserMap = _liveSeatStore.liveSeatState.speakingUsers.value;
499
+ debugPrint("Speaking users updated: ${speakingUserMap.length} users");
500
+ setState(() {});
501
+ }
502
+
503
+ @override
504
+ void dispose() {
505
+ _liveSeatStore.liveSeatState.speakingUsers.removeListener(_speakingUsersListener);
506
+ super.dispose();
507
+ }
508
+
509
+ @override
510
+ Widget build(BuildContext context) {
511
+ return ValueListenableBuilder<Map<String, int>>(
512
+ valueListenable: _liveSeatStore.liveSeatState.speakingUsers,
513
+ builder: (context, speakingUsers, child) {
514
+ // speakingUsers is a Map where the key is userID and the value is volume
515
+ return YourSpeakingIndicatorWidget(speakingUsers: speakingUsers);
516
+ },
517
+ );
518
+ }
519
+ }
520
+
521
+ // Example: Speaking indicator component
522
+ class YourSpeakingIndicatorWidget extends StatelessWidget {
523
+ final Map<String, int> speakingUsers;
524
+
525
+ const YourSpeakingIndicatorWidget({
526
+ super.key,
527
+ required this.speakingUsers,
528
+ });
529
+
530
+ @override
531
+ Widget build(BuildContext context) {
532
+ return Container();
533
+ }
534
+ }
535
+ ```
536
+
537
+ ## Enriching Voice Chat Room Scenario
538
+
539
+ After completing the basic voice chat room features, you can refer to the following feature guide to add various interactive gameplay features to the voice chat room.
540
+ | **Feature** | **Feature Description** | **Feature Stores** | **Implementation Guide** |
541
+ | --- | --- | --- | --- |
542
+ | **Audience Take Seat** | Audience members can apply to take a seat and interact with the host in real time. | [CoGuestStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_co_guest_store/CoGuestStore-class.html) | Implementation |
543
+ | **Add Barrage Chat** | Room members can send and receive real-time text messages. | [BarrageStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_barrage_barrage_store/BarrageStore-class.html) | Implementation |
544
+ | **Gift System** | Audience can send virtual gifts to hosts to increase interaction and engagement. | [GiftStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftStore-class.html) | Implementation |
545
+
546
+ ## API documentation
547
+ | **Store/Component** | **Feature Description** | **API Reference** |
548
+ | --- | --- | --- |
549
+ | **LiveListStore** | Full lifecycle management of live streaming room: create/join/leave/terminate room, query room list, modify live information (name, notice), listen to live streaming status (for example, being kicked out, ended). | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_list_store/LiveListStore-class.html) |
550
+ | **LiveSeatStore** | Core of seat management: manage seat list, Anchor status, and related operations (taking a seat, leaving a seat, removing user, locking seat, switching microphone on or off/camera), listen to seat events. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_seat_store/LiveSeatStore-class.html) |
551
+ | **DeviceStore** | Audio/Video device control: microphone (on/off, volume), camera (on/off, switchover, video quality), screen sharing, monitor device status in real time. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_device_device_store/DeviceStore-class.html) |
552
+ | **CoGuestStore** | Audience co-broadcasting management: join microphone application/invite/grant/deny, member permission control (microphone/camera), state synchronization. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_co_guest_store/CoGuestStore-class.html) |
553
+ | **CoHostStore** | Anchor cross-room connection: support for multiple layout templates (dynamic grid, etc.), initiate/accept/reject connection, and interactive management of co-broadcasting Anchors. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_co_host_store/CoHostStore-class.html) |
554
+ | **BattleStore** | Anchor PK battle: initiate PK (duration configuration/competitor), manage PK status (start/end), synchronize score, listen to battle results. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_battle_store/BattleStore-class.html) |
555
+ | **GiftStore** | Gift interaction: get gift list, send/receive gifts, listen to gift events (including sender, gift details). | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftStore-class.html) |
556
+ | **BarrageStore** | Danmaku function: send text/custom barrage item, maintain bullet screen list, monitor danmaku status in real time. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_barrage_barrage_store/BarrageStore-class.html) |
557
+ | **LikeStore** | Like interaction: send likes, listen to like events, sync total likes. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_like_store/LikeStore-class.html) |
558
+ | **LiveAudienceStore** | Audience management: get real-time audience list (ID/name/avatar), check audience size, listen to Enter/Exit Event. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_audience_store/LiveAudienceStore-class.html) |
559
+ | **AudioEffectStore** | Audio effects: voice-changing (child voice/male voice), reverberation (KTV), ear monitoring adjustment, switch special effects in real time. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_device_audio_effect_store/AudioEffectStore-class.html) |
560
+ | **BaseBeautyStore** | Basic beauty filter: adjust skin smoothing/whitening/rosy (0-100 levels), reset beauty status, sync effect parameters. | [API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_device_base_beauty_store/BaseBeautyStore-class.html) |
561
+
562
+ ## FAQs
563
+
564
+ ### Audience Enters the Room with No Sound
565
+ - **Check device permissions**: Please ensure `App` has declared and obtained system authorization for microphone in `Info.plist` (iOS) or `AndroidManifest.xml` (Android).
566
+
567
+ - **Check the homeowner side**: Whether the room owner has normally called `DeviceStore.shared.openLocalMicrophone()` to open the microphone.
568
+
569
+ - **Check the network**: Please check whether the device network connection is normal.
570
+
571
+ ### Microphone Position List Not Displayed or Refreshed
572
+ - **Check Store initialization**: Please ensure you have already used the same `liveID` to correctly create the `LiveSeatStore` instance (`LiveSeatStore.create(liveID)`) before `createLive` or `joinLive`.
573
+
574
+ - **Check data listening**: Please check whether you have used `addListener` correctly to listen to `liveSeatStore.liveSeatState.seatList`, and ensure to call `removeListener` in `dispose` to remove listener.
575
+
576
+ - **Check API call**: Please ensure the `createLive` (room owner) or `joinLive` (listener) API has been successfully called (confirm when `isSuccess` in the callback result is `true`).