@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,442 @@
1
+ `GiftStore` is a dedicated module within **AtomicXCore** for managing live room gifting features. It enables you to build a complete gifting system for your live streaming application, supporting robust monetization and interactive experiences.
2
+ | **Gift Panel** | **Barrage Gift** | **Full-Screen Gift** |
3
+ | --- | --- | --- |
4
+ | | | |
5
+
6
+ ## Core Features
7
+ - **Gift List Retrieval**: Retrieve gift panel data from the server, including gift categories and details.
8
+
9
+ - **Send Gift**: Viewers can send selected gifts and specify the quantity to the host.
10
+
11
+ - **Gift Event Broadcast:** Receive real-time gift events in the room for displaying gift animations and barrage notifications.
12
+
13
+ ## Core Concepts
14
+ | **Core Concept** | **Type** | **Core Responsibilities & Description** |
15
+ | --- | --- | --- |
16
+ | `Gift` | `data class` | Represents a gift data model, including ID, name, icon URL, animation resource URL (resourceURL), price (coins), and more. |
17
+ | `GiftCategory` | `data class` | Represents a gift category (e.g., "Popular", "Luxury"). Contains the category name and a list of Gift objects. |
18
+ | `GiftState` | `data class` | Represents the current state of the gift module. The core property, usableGifts, is a StateFlow containing the full gift list from the server. |
19
+ | `GiftEvent` | `abstract class` | Defines the event listener for gift events in the live room. Currently, only onReceiveGift is available; all users in the room receive this event when any user sends a gift. |
20
+ | `GiftStore` | `abstract class` | The core management class for gift features. Use it to fetch the gift list, send gifts, and receive gift events via listeners. |
21
+
22
+ ## Implementation
23
+
24
+ ### Step 1: Component Integration
25
+
26
+ > **Note:**
27
+ >
28
+
29
+ > To use the gifting system, activate either the **Free Trial,** or **Pro **edition. The number of configurable gifts depends on the selected package. For details, see the **Gift System** section in Feature and Billing Description and choose the package that fits your needs.
30
+ >
31
+
32
+ - **Video Live Streaming**: Please refer to Quick Start to integrate AtomicXCore.
33
+
34
+ - **Voice Chat Room**: Please refer to Quick Start to integrate AtomicXCore.
35
+
36
+ ### Step 2: Initialize and Listen for Gift Events
37
+
38
+ Obtain a `GiftStore` instance and set up listeners to receive gift events and updates to the gift list.
39
+
40
+ #### Implementation
41
+ 1. **Get Instance**: Use `GiftStore.create(liveID) `to obtain a `GiftStore` instance for the current live room.
42
+
43
+ 2. **Add Listener**: Add a `GiftListener` to receive `onReceiveGift` events.
44
+
45
+ 3. **Subscribe to State**: Subscribe to `giftStore.giftState.usableGifts`to receive gift list updates.
46
+
47
+ #### Code Example
48
+ ``` kotlin
49
+ import io.trtc.tuikit.atomicxcore.api.gift.Gift
50
+ import io.trtc.tuikit.atomicxcore.api.gift.GiftCategory
51
+ import io.trtc.tuikit.atomicxcore.api.gift.GiftListener
52
+ import io.trtc.tuikit.atomicxcore.api.gift.GiftStore
53
+ import io.trtc.tuikit.atomicxcore.api.live.LiveUserInfo
54
+ import kotlinx.coroutines.flow.StateFlow
55
+ import kotlinx.coroutines.flow.MutableStateFlow
56
+ import kotlinx.coroutines.flow.asStateFlow
57
+ import kotlinx.coroutines.CoroutineScope
58
+ import kotlinx.coroutines.Dispatchers
59
+ import kotlinx.coroutines.launch
60
+
61
+ class GiftManager(
62
+ private val liveId: String
63
+ ) {
64
+ private val giftStore: GiftStore = GiftStore.create(liveId)
65
+ private val coroutineScope = CoroutineScope(Dispatchers.Main)
66
+ // Expose gift list externally
67
+ private val _giftList = MutableStateFlow<List<GiftCategory>>(emptyList())
68
+ val giftList: StateFlow<List<GiftCategory>> = _giftList.asStateFlow()
69
+
70
+ init {
71
+ setupGiftListener()
72
+ subscribeToGiftState()
73
+ }
74
+
75
+ // Subscribe to gift events
76
+ private fun setupGiftListener() {
77
+ giftStore.addGiftListener(object : GiftListener() {
78
+ override fun onReceiveGift(liveID: String, gift: Gift, count: Int, sender: LiveUserInfo) {
79
+ // Forward event to UI layer for processing
80
+ }
81
+ })
82
+ }
83
+
84
+ // Subscribe to gift list state
85
+ private fun subscribeToGiftState() {
86
+ coroutineScope.launch(Dispatchers.Main) {
87
+ giftStore.giftState.usableGifts.collect { giftList ->
88
+ _giftList.value = giftList
89
+ }
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ #### Gift List Structure Parameters
96
+ - **GiftCategory Parameter Description**
97
+
98
+ | **Parameter** | **Type** | **Description** |
99
+ | --- | --- | --- |
100
+ | `categoryID` | `String` | Unique ID of the gift category. |
101
+ | `name` | `String` | Display name of the gift category. |
102
+ | `desc` | `String` | Description of the gift category. |
103
+ | `extensionInfo` | `Map<String, String>` | Extension information field. |
104
+ | `giftList` | `List` | Array of Gift objects in this category. |
105
+
106
+ - **Gift Parameter Description**
107
+
108
+ | **Parameter** | **Type** | **Description** |
109
+ | --- | --- | --- |
110
+ | `giftID` | `String` | Unique ID of the gift. |
111
+ | `name` | `String` | Display name of the gift. |
112
+ | `desc` | `String` | Description of the gift. |
113
+ | `iconURL` | `String` | Gift icon URL. |
114
+ | `resourceURL` | `String` | Gift animation resource URL. |
115
+ | `level` | `Long` | Gift level. |
116
+ | `coins` | `Long` | Gift price. |
117
+ | `extensionInfo` | `Map<String, String>` | Extension information field. |
118
+
119
+ ### Step 3: Retrieve Gift List
120
+
121
+ Call the `refreshUsableGifts` method to fetch gift data from the server.
122
+
123
+ #### Implementation
124
+ 1. **Call API**: Call `giftStore.refreshUsableGifts()` at the appropriate time (e.g., after entering the live room).
125
+
126
+ 2. **Handle Callback**: Optionally handle the completion callback to determine the result.
127
+
128
+ 3. **Receive Data**: After a successful fetch, the updated usableGifts list is delivered automatically via your subscription to `giftStore.giftState.usableGifts`.
129
+
130
+ #### Code Example
131
+ ``` kotlin
132
+ class GiftManager(
133
+ private val liveId: String
134
+ ) {
135
+ private val giftStore: GiftStore = GiftStore.create(liveId)
136
+
137
+ // Refresh the gift list from the server
138
+ fun fetchGiftList() {
139
+ giftStore.refreshUsableGifts(object : CompletionHandler {
140
+ override fun onSuccess() {
141
+ println("Gift list fetched successfully")
142
+ // Data will be updated via the giftState subscription
143
+ }
144
+
145
+ override fun onFailure(code: Int, desc: String) {
146
+ println("Failed to fetch gift list: $desc")
147
+ }
148
+ })
149
+ }
150
+ }
151
+ ```
152
+
153
+ ### Step 4: Send Gift
154
+
155
+ When a user selects a gift and clicks send, call the `sendGift` API.
156
+
157
+ #### Implementation
158
+ 1. **Get Parameters**: Obtain the selected `giftID` and `quantity (count)` from the UI.
159
+
160
+ 2. **Call API**: Call `giftStore.sendGift(giftID, count, completion)`.
161
+
162
+ 3. **Handle Callback**: Use the completion `callback` to handle failures (e.g., insufficient balance). UI updates (animations, barrage) after a successful send should be triggered by the `onReceiveGift` event.
163
+
164
+ #### Code Example
165
+ ``` kotlin
166
+ class GiftManager(
167
+ private val liveId: String
168
+ ) {
169
+ private val giftStore: GiftStore = GiftStore.create(liveId)
170
+
171
+ // Send a gift
172
+ fun sendGift(giftID: String, count: Int) {
173
+ giftStore.sendGift(giftID, count, object : CompletionHandler {
174
+ override fun onSuccess() {
175
+ println("Gift $giftID sent successfully")
176
+ // All users, including the sender, will receive the onReceiveGift event
177
+ }
178
+
179
+ override fun onFailure(code: Int, desc: String) {
180
+ println("Gift send failed: $desc")
181
+ // Prompt user if needed, e.g., "Insufficient balance" or "Network error"
182
+ }
183
+ })
184
+ }
185
+ }
186
+ ```
187
+
188
+ #### **sendGift API Parameters**
189
+ | **Parameter Name** | **Type** | **Description** |
190
+ | --- | --- | --- |
191
+ | `giftID` | `String` | Unique ID of the gift to send. |
192
+ | `count` | `Int` | Number of gifts to send. |
193
+ | `completion` | `CompletionHandler?` | Callback invoked after sending completes. |
194
+
195
+ ## Advanced Features
196
+
197
+ The capabilities of `GiftStore` are closely tied to your backend services. This section explains how to build a feature-rich gifting system through server-side configuration and client integration.
198
+
199
+ ### Gift Asset Configuration
200
+
201
+ Customize available gift types, categories, names, icons, prices, and animation effects to meet your operational and branding requirements.
202
+
203
+ #### Implementation
204
+ 1. **Server-Side Configuration**: Use the `LiveKit` server REST API to manage gift information, categories, and multi-language support. See the Gift Configuration Guide.
205
+
206
+ 2. **Client Fetch**: On the client, call `refreshUsableGifts` to retrieve configuration data.
207
+
208
+ 3. **UI Display**: Use the retrieved `List<GiftCategory>` to populate the gift panel.
209
+
210
+ #### Configuration Sequence Diagram
211
+
212
+ #### Related REST API Interfaces Overview
213
+ | **Interface Category** | **Interface** | **Request Example** |
214
+ | --- | --- | --- |
215
+ | **​Gift Management** | Add Gift Information | Example |
216
+ | Delete Gift Information | Example | |
217
+ | Query Gift Information | Example | |
218
+ | **Gift Category Management** | Add Gift Category Information | Example |
219
+ | Delete Specific Gift Category Information | Example | |
220
+ | Get Specific Gift Category Information | Example | |
221
+ | **Gift Relationship Management** | Add Relationship between a Specific Gift Category and Gift | Example |
222
+ | Delete Relationship between a Specific Gift Category and Gift | Example | |
223
+ | Get Gift Relationships under a Specific Gift Category | Example | |
224
+ | **Gift Multi-language Management** | Add Gift Multi-language Information | Example |
225
+ | Delete Specific Gift Multi-language Information | Example | |
226
+ | Get Gift Multi-language Information | Example | |
227
+ | Add Gift Category Multi-language Information | Example | |
228
+ | Delete Specific Gift Category Multi-language Information | Example | |
229
+ | Get Gift Category Multi-language Information | Example | |
230
+
231
+ ### Billing and Gift Deduction Process
232
+
233
+ When a viewer sends a gift, ensure their account balance is sufficient and complete the deduction before triggering the gift effect playback and broadcast.
234
+
235
+ #### Implementation
236
+ 1. **Backend Callback Configuration**: Configure your billing system's callback URL in the LiveKit backend. See Callback Configuration Documentation.
237
+
238
+ 2. **Client Send**: The client calls `sendGift`.
239
+
240
+ 3. **Backend Interaction**: The LiveKit backend calls your callback URL; your billing system processes the deduction and returns the result.
241
+
242
+ 4. **Result Synchronization**: If successful, **AtomicXCore** broadcasts the `onReceiveGift` event; if failed, the completion callback of sendGift receives an error.
243
+
244
+ #### Call Flow
245
+
246
+ #### Related REST API Interfaces Overview
247
+ | **Interface** | **Description** | **Request Example** |
248
+ | --- | --- | --- |
249
+ | **Callback Configuration - Callback before sending a gift** | The customer's backend can use this callback to decide whether to pass pre-gifting checks, etc. | Example |
250
+
251
+ ### Implement Full-Screen Gift Animation Playback
252
+
253
+ When a user sends a luxury gift (e.g., "Rocket", "Carnival"), play a full-screen animation (such as SVGA) to enhance engagement.
254
+
255
+ #### Implementation
256
+
257
+ **AtomicXCore** does not include a built-in gift animation player. Integrate a third-party library based on your requirements. Below is a comparison of two options:
258
+ | **Comparison Item** | **Basic Solution (SVGAPlayer)** | **Gift AR (TCEffectPlayerKit)** |
259
+ | --- | --- | --- |
260
+ | Billing | Free (open source) | Paid (requires license). See [Billing Guide](https://trtc.io/document/69949?product=beautyar&menulabel=core%20sdk&platform=android#X-Series-Capabilities) |
261
+ | Integration Method | Manual integration via Gradle | Requires additional integration and authentication |
262
+ | Supported Animation Formats | SVGA only | SVGA, PAG, WebP, Lottie, MP4, and more |
263
+ | Performance | Recommended SVGA file size ≤ 10MB | Supports larger files, better performance for complex/multiple/low-end scenarios |
264
+ | Recommended Scenario | Uniform SVGA format, controllable file size | Multiple formats or higher performance/device compatibility needs |
265
+
266
+ This section demonstrates the basic solution. For the **Gift AR** see the [TCEffectPlayer Integration Guide](https://trtc.io/document/70531?product=beautyar&menulabel=core%20sdk&platform=android).
267
+
268
+ #### Basic Solution: Using SVGAPlayer
269
+ 1. **Integrate SVGAPlayer**: Add the SVGAPlayer dependency to your build.gradle and sync the project.
270
+
271
+ ``` gradle
272
+ dependencies {
273
+ // ... other dependencies
274
+ implementation 'com.github.yyued:SVGAPlayer-Android:2.6.1'
275
+ }
276
+ ```
277
+ 2. **Listen for Gift Events**: Subscribe to the `GiftListener` in `GiftStore`.
278
+
279
+ 3. **Parse and Play**: On `onReceiveGift`, check if `gift.resourceURL` is a valid SVGA file. Use `SVGAParser` to parse and play the animation.
280
+
281
+ #### Code Example
282
+ ``` kotlin
283
+ import android.os.Bundle
284
+ import androidx.appcompat.app.AppCompatActivity
285
+ import com.opensource.svgaplayer.SVGACallback
286
+ import com.opensource.svgaplayer.SVGAParser
287
+ import com.opensource.svgaplayer.SVGAVideoEntity
288
+ import com.opensource.svgaplayer.SVGAImageView
289
+ import io.trtc.tuikit.atomicxcore.api.gift.Gift
290
+ import io.trtc.tuikit.atomicxcore.api.gift.GiftListener
291
+ import io.trtc.tuikit.atomicxcore.api.gift.GiftStore
292
+ import io.trtc.tuikit.atomicxcore.api.live.LiveUserInfo
293
+ import java.net.URL
294
+
295
+ class LiveRoomActivity : AppCompatActivity() {
296
+ private lateinit var giftStore: GiftStore
297
+ private lateinit var svgaImageView: SVGAImageView
298
+ private lateinit var svgaParser: SVGAParser
299
+
300
+ override fun onCreate(savedInstanceState: Bundle?) {
301
+ super.onCreate(savedInstanceState)
302
+ setContentView(R.layout.activity_live_room)
303
+ setupSVGAPlayer()
304
+
305
+ svgaImageView.loops = 1
306
+
307
+ svgaImageView.callback = object : SVGACallback {
308
+ override fun onFinished() {
309
+ svgaImageView.visibility = android.view.View.GONE
310
+ svgaImageView.clear()
311
+ }
312
+ override fun onPause() {}
313
+ override fun onRepeat() {}
314
+ override fun onStep(frame: Int, percentage: Double) {}
315
+ }
316
+
317
+ }
318
+
319
+ private fun setupSVGAPlayer() {
320
+ svgaImageView = findViewById(R.id.svga_player)
321
+ svgaParser = SVGAParser(this)
322
+ svgaImageView.visibility = android.view.View.GONE
323
+ }
324
+
325
+ fun setupGiftSubscription(liveId: String) {
326
+ giftStore = GiftStore.create(liveId)
327
+
328
+ giftStore.addGiftListener(object : GiftListener() {
329
+ override fun onReceiveGift(liveID: String, gift: Gift, count: Int, sender: LiveUserInfo) {
330
+ if (gift.resourceURL.isNotEmpty()) {
331
+ try {
332
+ val url = URL(gift.resourceURL)
333
+ playAnimation(url)
334
+ } catch (e: Exception) {
335
+ println("Invalid animation URL: ${gift.resourceURL}")
336
+ }
337
+ }
338
+ }
339
+ })
340
+ }
341
+
342
+ private fun playAnimation(url: URL) {
343
+ svgaParser.decodeFromURL(url, object : SVGAParser.ParseCompletion {
344
+ override fun onComplete(videoItem: SVGAVideoEntity) {
345
+ runOnUiThread {
346
+ svgaImageView.setVideoItem(videoItem)
347
+ svgaImageView.visibility = android.view.View.VISIBLE
348
+ svgaImageView.startAnimation()
349
+ }
350
+ }
351
+
352
+ override fun onError() {
353
+ println("SVGA animation parsing failed")
354
+ // Optionally add retry or error reporting
355
+ }
356
+ })
357
+ }
358
+ }
359
+ ```
360
+
361
+ ### Display Gift Messages in the Barrage Area
362
+
363
+ When a user sends a gift, display a system message in the public barrage area (e.g., "[Viewer Nickname] sent [Gift Name] x [Quantity]") for all viewers.
364
+
365
+ #### Implementation
366
+ 1. **Listen for Events**: Subscribe to the `GiftListener` in `giftStore`.
367
+
368
+ 2. **Obtain Information**: On `onReceiveGift`, extract the sender, gift, and count.
369
+
370
+ 3. **Get Barrage Store**: Use `BarrageStore.create(liveID)` for the current room.
371
+
372
+ 4. **Compose Message**: Create a Barrage object, set `messageType = BarrageType.TEXT`, and set textContent to your message.
373
+
374
+ 5. **Insert Locally**: Call `barrageStore.appendLocalTip(message: giftTip)` to add the message to the local barrage list.
375
+
376
+ #### Code Example
377
+ ``` kotlin
378
+ import io.trtc.tuikit.atomicxcore.api.barrage.Barrage
379
+ import io.trtc.tuikit.atomicxcore.api.barrage.BarrageStore
380
+ import io.trtc.tuikit.atomicxcore.api.barrage.BarrageType
381
+ import io.trtc.tuikit.atomicxcore.api.gift.Gift
382
+ import io.trtc.tuikit.atomicxcore.api.gift.GiftListener
383
+ import io.trtc.tuikit.atomicxcore.api.gift.GiftStore
384
+ import io.trtc.tuikit.atomicxcore.api.live.LiveUserInfo
385
+
386
+ class LiveRoomManager(
387
+ private val liveId: String
388
+ ) {
389
+ private val giftStore: GiftStore = GiftStore.create(liveId)
390
+ private val barrageStore: BarrageStore = BarrageStore.create(liveId)
391
+
392
+ private fun setupGiftToBarrageFlow() {
393
+ giftStore.addGiftListener(object : GiftListener() {
394
+ override fun onReceiveGift(liveID: String, gift: Gift, count: Int, sender: LiveUserInfo) {
395
+ val tipText = "${sender.userName} sent ${gift.name} x $count"
396
+ val giftTip = Barrage(
397
+ liveID = liveID,
398
+ messageType = BarrageType.TEXT,
399
+ textContent = tipText
400
+ sender = sender
401
+ )
402
+ barrageStore.appendLocalTip(giftTip)
403
+ }
404
+ })
405
+ }
406
+ }
407
+ ```
408
+
409
+ ## API Documentation
410
+
411
+ For complete details on all public interfaces, properties, and methods of [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) and related classes, see the official API documentation for [AtomicXCore](https://tencent-rtc.github.io/TUIKit_Android/index.html). Key stores referenced in this guide include:
412
+ | **Store/Component** | **Feature Description** | **API Documentation** |
413
+ | --- | --- | --- |
414
+ | GiftStore | Gift interactions: fetch gift list, send/receive gifts, listen for 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) |
415
+ | BarrageStore | Barrage features: send text/custom barrage, maintain barrage list, listen to barrage status in real time. | [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) |
416
+
417
+ ## FAQs
418
+
419
+ ### The gift list in GiftStore is empty. What should I do?
420
+
421
+ You must call `refreshUsableGifts(completion)` to fetch gift data from your backend. Ensure your backend is configured with gift data via the server REST API.
422
+
423
+ ### How do I implement multi-language display for gifts (e.g., Chinese, English)?
424
+
425
+ Use the `GiftStore.setLanguage(language: String)` API before calling `refreshUsableGifts`, passing the target language code (e.g., "en" or "zh-CN"). The server will return gift names and descriptions in the specified language.
426
+
427
+ ### I called sendGift, but the gift animation plays twice. Why?
428
+
429
+ The `onReceiveGift` event is broadcast to all room members, including the sender. If you update the UI both in the sendGift completion callback and in the `onReceiveGift` event, the animation will play twice.
430
+ - **Best Practice**: Only update the UI (e.g., play animations, show barrage) in the `onReceiveGift` event handler. Use the `sendGift` completion callback only for handling failures (such as "Send failed" or "Insufficient balance").
431
+
432
+ ### Where is the gift deduction logic implemented?
433
+
434
+ Gift deduction is handled entirely by your billing system. AtomicXCore integrates with your billing system via a backend callback. When the client calls sendGift, your backend performs the deduction. After returning the result to the AtomicXCore backend, it determines whether to broadcast the gift event.
435
+
436
+ ### Will gift notifications be blocked by mute or message frequency controls?
437
+
438
+ No. Gift notifications (`onReceiveGift` events) are not affected by mute or frequency controls and are always delivered reliably.
439
+
440
+ ### What should I do if gift animation playback stutters?
441
+
442
+ Check your SVGA file size; the basic player recommends files no larger than 10MB. For large or complex animations, consider integrating the **Gift AR** provided by TUILiveKit for improved performance.