@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.
- package/package.json +2 -2
- package/resource/doc/{tuicallkit/iOS/faq.md → callkit/faq/android-faq.md} +10 -22
- package/resource/doc/{tuicallkit/android/faq.md → callkit/faq/flutter-faq.md} +10 -22
- package/resource/doc/{tuicallkit/flutter/faq.md → callkit/faq/ios-faq.md} +10 -22
- package/resource/doc/callkit/preset/android/api.md +296 -0
- package/resource/doc/callkit/preset/android/integration.md +430 -0
- package/resource/doc/callkit/preset/flutter/api.md +410 -0
- package/resource/doc/{tuicallkit → callkit/preset}/flutter/integration.md +35 -97
- package/resource/doc/callkit/preset/ios/api.md +80 -0
- package/resource/doc/{tuicallkit/iOS → callkit/preset/ios}/integration.md +37 -118
- package/resource/doc/callkit/preset/react/api.md +501 -0
- package/resource/doc/{tuicallkit → callkit/preset}/react/integration.md +5 -20
- package/resource/doc/callkit/preset/vue/api.md +501 -0
- package/resource/doc/{tuicallkit → callkit/preset}/vue/integration.md +4 -19
- package/resource/doc/{chatuikit → chatkit}/android/faq.md +29 -38
- package/resource/doc/{chatuikit → chatkit}/android/features/theme.md +22 -166
- package/resource/doc/chatkit/android/integration.md +490 -0
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +281 -0
- package/resource/doc/{chatuikit → chatkit}/faq/common/product.md +0 -1
- package/resource/doc/{chatuikit → chatkit}/faq/common/server.md +1 -1
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +199 -0
- package/resource/doc/{chatuikit → chatkit}/faq/flutter_sdk/faq.md +3 -3
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +235 -0
- package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/faq.md +3 -3
- package/resource/doc/{chatuikit → chatkit}/flutter/features/theme.md +22 -166
- package/resource/doc/{chatuikit → chatkit}/flutter/integration.md +19 -88
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/faq.md +29 -38
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/features/theme.md +27 -176
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/integration.md +47 -165
- package/resource/doc/{chatuikit → chatkit}/react/components/avatar.md +0 -33
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-header.md +8 -49
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-setting.md +6 -35
- package/resource/doc/{chatuikit → chatkit}/react/components/chat.md +0 -6
- package/resource/doc/{chatuikit → chatkit}/react/components/component-list.md +0 -11
- package/resource/doc/{chatuikit → chatkit}/react/components/contact-list.md +96 -502
- package/resource/doc/chatkit/react/components/conversation-actions.md +174 -0
- package/resource/doc/chatkit/react/components/conversation-list.md +333 -0
- package/resource/doc/chatkit/react/components/conversation-preview.md +118 -0
- package/resource/doc/chatkit/react/components/conversation-search.md +60 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/message-input.md +36 -337
- package/resource/doc/{chatuikit → chatkit}/react/components/message-list.md +20 -212
- package/resource/doc/chatkit/react/components/search.md +243 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/tuikit.md +1 -47
- package/resource/doc/{chatuikit → chatkit}/react/integration.md +21 -81
- package/resource/doc/{chatuikit → chatkit}/vue/components/avatar.md +0 -33
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-header.md +7 -48
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-setting.md +3 -5
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat.md +0 -5
- package/resource/doc/{chatuikit → chatkit}/vue/components/component-list.md +0 -15
- package/resource/doc/chatkit/vue/components/contact-list.md +271 -0
- package/resource/doc/chatkit/vue/components/conversation-actions.md +228 -0
- package/resource/doc/{chatuikit → chatkit}/vue/components/conversation-list.md +42 -492
- package/resource/doc/chatkit/vue/components/conversation-preview.md +213 -0
- package/resource/doc/chatkit/vue/components/conversation-search.md +50 -0
- package/resource/doc/{chatuikit → chatkit}/vue/components/message-input.md +2 -223
- package/resource/doc/{chatuikit → chatkit}/vue/components/message-list.md +23 -252
- package/resource/doc/{chatuikit → chatkit}/vue/components/search.md +73 -640
- package/resource/doc/{chatuikit → chatkit}/vue/components/tuikit.md +7 -21
- package/resource/doc/{chatuikit → chatkit}/vue/components/userpicker.md +3 -62
- package/resource/doc/{chatuikit → chatkit}/vue/faq.md +1 -1
- package/resource/doc/{chatuikit → chatkit}/vue/integration.md +22 -23
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-audience-list.md +18 -89
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-audio-effect.md +34 -192
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-barrage.md +28 -141
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-base-beauty.md +20 -112
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-co-guest-interaction.md +59 -193
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-gift.md +75 -455
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-host-interaction.md +94 -344
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-integration.md +107 -515
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-live-list.md +33 -173
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audience-list.md +14 -93
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audio-effect.md +34 -179
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-barrage.md +19 -107
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-base-beauty.md +24 -166
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-co-guest-interaction.md +56 -163
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-gift.md +69 -443
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-host-interaction.md +117 -364
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-integration.md +107 -492
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-live-list.md +23 -165
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audience-list.md +35 -111
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audio-effect.md +35 -193
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-barrage.md +31 -144
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-base-beauty.md +24 -116
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-co-guest-interaction.md +37 -171
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-gift.md +79 -459
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-host-interaction.md +69 -320
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-integration.md +85 -502
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-live-list.md +32 -169
- package/resource/doc/livekit/core-sdk/voice/android/voice-audience-list.md +263 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-audio-effect.md +222 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-barrage.md +452 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +536 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-gift.md +442 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-host-interaction.md +489 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-integration.md +574 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +435 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +516 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-integration.md +576 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audience-list.md +263 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audio-effect.md +212 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-barrage.md +404 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +499 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-gift.md +403 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-host-interaction.md +552 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-integration.md +514 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +348 -0
- package/resource/doc/livekit/faq/common/{error_code.md → error-code.md} +2 -2
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +780 -0
- package/resource/doc/livekit/preset/live/vue/components/barrage.md +291 -0
- package/resource/doc/livekit/{live → preset/live}/vue/components/co-guest-panel.md +10 -49
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-audience-list.md +26 -144
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-scene-panel.md +12 -75
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-view.md +36 -227
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +215 -0
- package/resource/doc/livekit/preset/live/vue/faq.md +1 -0
- package/resource/doc/livekit/preset/live/vue/live-list-integration.md +241 -0
- package/resource/doc/livekit/preset/live/vue/live-player-desk-integration.md +299 -0
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +300 -0
- package/resource/doc/livekit/preset/live/vue/live-pusher-integration.md +743 -0
- package/resource/doc/roomkit/vue/faq.md +1 -0
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +17 -53
- package/resource/doc/roomkit/vue/features/device-detection.md +30 -48
- package/resource/doc/roomkit/vue/features/device-state.md +24 -44
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +13 -36
- package/resource/doc/roomkit/vue/features/room-chat.md +31 -89
- package/resource/doc/roomkit/vue/features/room-participant-state.md +28 -50
- package/resource/doc/roomkit/vue/features/room-state.md +25 -34
- package/resource/doc/roomkit/vue/features/room-view.md +30 -125
- package/resource/doc/roomkit/vue/features/schedule-room.md +9 -40
- package/resource/doc/roomkit/vue/features/screen-share.md +22 -90
- package/resource/doc/roomkit/vue/features/virtual-background.md +13 -29
- package/resource/doc/roomkit/vue/integration.md +173 -337
- package/resource/doc/rtcengine/faq/common/error_code.md +1 -0
- package/resource/doc/rtcengine/faq/web/web.md +14 -24
- package/resource/doc/rtcengine/web/api.md +1 -3
- package/resource/doc/rtcengine/web/how_to_integrated_web_sdk.md +3 -10
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +1 -5
- package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +1 -2
- package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +2 -4
- package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +3 -5
- package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +1 -7
- package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +0 -2
- package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +4 -8
- package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +11 -11
- package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +12 -88
- package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +5 -5
- package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +30 -37
- package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +13 -90
- package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +1 -2
- package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +1 -2
- package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +19 -19
- package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +1 -1
- package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +4 -5
- package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +3 -3
- package/resource/doc/trtc/C++/ITRTCCloud.md +686 -2835
- package/resource/doc/trtc/C++/ITRTCStatistics.md +53 -308
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +202 -1022
- package/resource/doc/trtc/C++/ITXDeviceManager.md +126 -767
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +579 -2147
- package/resource/doc/trtc/C++/TRTCTypeDef.md +703 -3378
- package/resource/doc/trtc/C++/TXLiteAVCode.md +116 -908
- package/resource/doc/trtc/android/TRTCCloud.md +606 -2573
- package/resource/doc/trtc/android/TRTCCloudDef.md +752 -3640
- package/resource/doc/trtc/android/TRTCCloudListener.md +581 -2008
- package/resource/doc/trtc/android/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/android/TXAudioEffectManager.md +202 -1022
- package/resource/doc/trtc/android/TXBeautyManager.md +127 -704
- package/resource/doc/trtc/android/TXDeviceManager.md +51 -318
- package/resource/doc/trtc/android/TXLiteAVCode.md +114 -892
- package/resource/doc/trtc/iOS/TRTCCloud.md +694 -2904
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +726 -3498
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +543 -2028
- package/resource/doc/trtc/iOS/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +174 -877
- package/resource/doc/trtc/iOS/TXBeautyManager.md +128 -710
- package/resource/doc/trtc/iOS/TXDeviceManager.md +129 -772
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +117 -915
- package/server.js +1 -5
- package/server.js.map +1 -1
- package/tools/call/get_callkit_api.js +32 -0
- package/tools/call/get_callkit_api.js.map +1 -0
- package/tools/call/get_native_call_uikit_integration.js +34 -0
- package/tools/call/get_native_call_uikit_integration.js.map +1 -0
- package/tools/call/{get-web-call-integration.js → get_web_call_uikit_integration.js} +13 -8
- package/tools/call/get_web_call_uikit_integration.js.map +1 -0
- package/tools/chat/get_native_chat_uikit_feature_detail.js +34 -0
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +1 -0
- package/tools/chat/get_native_chat_uikit_integration.js +45 -0
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -0
- package/tools/chat/get_web_chat_uikit_component_detail.js +34 -0
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +1 -0
- package/tools/chat/get_web_chat_uikit_integration.js +45 -0
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -0
- package/tools/common/get_faq.js +265 -0
- package/tools/common/get_faq.js.map +1 -0
- package/tools/common/{get-usersig.js → get_usersig.js} +6 -3
- package/tools/common/get_usersig.js.map +1 -0
- package/tools/common/present_framework_choice.js +63 -0
- package/tools/common/present_framework_choice.js.map +1 -0
- package/tools/definitions/get_callkit_api_def.js +29 -0
- package/tools/definitions/get_callkit_api_def.js.map +1 -0
- package/tools/definitions/get_faq_def.js +17 -18
- package/tools/definitions/get_faq_def.js.map +1 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js +15 -18
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +31 -0
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_native_chat_uikit_integration_def.js +16 -19
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +34 -0
- package/tools/definitions/get_native_livekit_core_features_def.js.map +1 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +34 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -0
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +32 -0
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +1 -0
- package/tools/definitions/get_usersig_def.js +17 -22
- package/tools/definitions/get_usersig_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +15 -7
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +17 -49
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +16 -19
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +15 -18
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_livekit_api_def.js +30 -0
- package/tools/definitions/get_web_livekit_api_def.js.map +1 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js +32 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +15 -30
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +31 -0
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +24 -12
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/index.js +47 -59
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_features.js +65 -0
- package/tools/live/get_native_livekit_core_features.js.map +1 -0
- package/tools/live/get_native_livekit_core_integration.js +59 -0
- package/tools/live/get_native_livekit_core_integration.js.map +1 -0
- package/tools/live/get_web_live_uikit_integration.js +48 -0
- package/tools/live/get_web_live_uikit_integration.js.map +1 -0
- package/tools/live/get_web_livekit_api.js +32 -0
- package/tools/live/get_web_livekit_api.js.map +1 -0
- package/tools/live/get_web_livekit_component_detail.js +34 -0
- package/tools/live/get_web_livekit_component_detail.js.map +1 -0
- package/tools/room/{get-web-room-integration.js → get_web_room_uikit_integration.js} +13 -14
- package/tools/room/get_web_room_uikit_integration.js.map +1 -0
- package/tools/room/{get-web-room-feature-detail.js → get_web_roomkit_feature_detail.js} +30 -31
- package/tools/room/get_web_roomkit_feature_detail.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_api.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +1 -0
- package/tools/trtc/get_native_trtc_sdk_docs.js +73 -0
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +1 -0
- package/utils/generate-structured-result.js +61 -17
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/report-cls-client.js +12 -1
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +2 -2
- package/resource/doc/chatuikit/android/integration.md +0 -287
- package/resource/doc/chatuikit/faq/android_sdk/client-api.md +0 -1371
- package/resource/doc/chatuikit/faq/flutter_sdk/client-api.md +0 -932
- package/resource/doc/chatuikit/faq/ios_sdk/client-api.md +0 -1119
- package/resource/doc/chatuikit/flutter/workflow.md +0 -941
- package/resource/doc/chatuikit/iOS/workflow.md +0 -0
- package/resource/doc/chatuikit/react/components/conversation-list.md +0 -1017
- package/resource/doc/chatuikit/react/components/search.md +0 -745
- package/resource/doc/chatuikit/react/create-group.md +0 -23
- package/resource/doc/chatuikit/react/init.md +0 -26
- package/resource/doc/chatuikit/react/workflow.md +0 -258
- package/resource/doc/chatuikit/vue/components/contact-list.md +0 -679
- package/resource/doc/chatuikit/vue/create-group.md +0 -25
- package/resource/doc/chatuikit/vue/init.md +0 -40
- package/resource/doc/chatuikit/vue/workflow.md +0 -395
- package/resource/doc/livekit/live/android/workflow.md +0 -320
- package/resource/doc/livekit/live/flutter/workflow.md +0 -353
- package/resource/doc/livekit/live/ios/workflow.md +0 -454
- package/resource/doc/livekit/live/vue/components/barrage.md +0 -616
- package/resource/doc/livekit/live/vue/components/stream-mixer.md +0 -446
- package/resource/doc/livekit/live/vue/faq.md +0 -0
- package/resource/doc/livekit/live/vue/live-list-integration.md +0 -200
- package/resource/doc/livekit/live/vue/live-player-desk-integration.md +0 -269
- package/resource/doc/livekit/live/vue/live-player-h5-integration.md +0 -269
- package/resource/doc/livekit/live/vue/live-pusher-integration.md +0 -595
- package/resource/doc/livekit/live/vue/states/live-state.md +0 -3591
- package/resource/doc/livekit/live/vue/workflow.md +0 -218
- package/resource/doc/native_live/android/V2TXLiveCode_api_android.md +0 -312
- package/resource/doc/native_live/android/V2TXLiveDef_api_android.md +0 -430
- package/resource/doc/native_live/android/V2TXLivePlayerObserver_api_android.md +0 -679
- package/resource/doc/native_live/android/V2TXLivePlayer_api_android.md +0 -671
- package/resource/doc/native_live/android/V2TXLivePremier_api_android.md +0 -271
- package/resource/doc/native_live/android/V2TXLivePusherObserver_api_android.md +0 -849
- package/resource/doc/native_live/android/V2TXLivePusher_api_android.md +0 -1046
- package/resource/doc/native_live/flutter/V2TXLiveCode_api_flutter.md +0 -460
- package/resource/doc/native_live/flutter/V2TXLiveDef_api_flutter.md +0 -558
- package/resource/doc/native_live/flutter/V2TXLivePlayerObserver_api_flutter.md +0 -865
- package/resource/doc/native_live/flutter/V2TXLivePlayer_api_flutter.md +0 -657
- package/resource/doc/native_live/flutter/V2TXLivePremier_api_flutter.md +0 -437
- package/resource/doc/native_live/flutter/V2TXLivePusherObserver_api_flutter.md +0 -335
- package/resource/doc/native_live/flutter/V2TXLivePusher_api_flutter.md +0 -748
- package/resource/doc/native_live/iOS/V2TXLiveCode_api_iOS.md +0 -327
- package/resource/doc/native_live/iOS/V2TXLiveDef_api_iOS.md +0 -507
- package/resource/doc/native_live/iOS/V2TXLivePlayerObserver_api_iOS.md +0 -507
- package/resource/doc/native_live/iOS/V2TXLivePlayer_api_iOS.md +0 -659
- package/resource/doc/native_live/iOS/V2TXLivePremier_api_iOS.md +0 -284
- package/resource/doc/native_live/iOS/V2TXLivePusherObserver_api_iOS.md +0 -814
- package/resource/doc/native_live/iOS/V2TXLivePusher_api_iOS.md +0 -1000
- package/resource/doc/roomkit/vue/features/workflow.md +0 -553
- package/resource/doc/roomkit/vue/workflow.md +0 -487
- package/resource/doc/tuicallkit/android/integration.md +0 -286
- package/resource/doc/tuicallkit/android/workflow.md +0 -0
- package/resource/doc/tuicallkit/faq/android_sdk/call-observer-api.md +0 -784
- package/resource/doc/tuicallkit/faq/android_sdk/callkit-api.md +0 -610
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-define-api.md +0 -938
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-observer-api.md +0 -897
- package/resource/doc/tuicallkit/faq/flutter_sdk/callkit-api.md +0 -469
- package/resource/doc/tuicallkit/faq/ios_sdk/call-observer-api.md +0 -781
- package/resource/doc/tuicallkit/faq/ios_sdk/callkit-api.md +0 -398
- package/resource/doc/tuicallkit/flutter/workflow.md +0 -331
- package/resource/doc/tuicallkit/react/api.md +0 -1404
- package/resource/doc/tuicallkit/vue/api.md +0 -1406
- package/resource/doc/tuicallkit/vue/faq.md +0 -36
- package/tools/call/get-native-call-integration.js +0 -43
- package/tools/call/get-native-call-integration.js.map +0 -1
- package/tools/call/get-web-call-api.js +0 -27
- package/tools/call/get-web-call-api.js.map +0 -1
- package/tools/call/get-web-call-integration.js.map +0 -1
- package/tools/chat/get-native-chat-feature-detail.js +0 -30
- package/tools/chat/get-native-chat-feature-detail.js.map +0 -1
- package/tools/chat/get-native-chat-integration.js +0 -45
- package/tools/chat/get-native-chat-integration.js.map +0 -1
- package/tools/chat/get-web-chat-component-detail.js +0 -31
- package/tools/chat/get-web-chat-component-detail.js.map +0 -1
- package/tools/chat/get-web-chat-integration.js +0 -45
- package/tools/chat/get-web-chat-integration.js.map +0 -1
- package/tools/chat/get-web-chat-uikit-init.js +0 -28
- package/tools/chat/get-web-chat-uikit-init.js.map +0 -1
- package/tools/chat/get-web-create-group-doc.js +0 -28
- package/tools/chat/get-web-create-group-doc.js.map +0 -1
- package/tools/common/get-faq.js +0 -91
- package/tools/common/get-faq.js.map +0 -1
- package/tools/common/get-usersig.js.map +0 -1
- package/tools/common/present-framework-choice.js +0 -16
- package/tools/common/present-framework-choice.js.map +0 -1
- package/tools/common/record-prompt.js +0 -55
- package/tools/common/record-prompt.js.map +0 -1
- package/tools/common/record-result.js +0 -60
- package/tools/common/record-result.js.map +0 -1
- package/tools/definitions/get_native_chat_feature_detail_def.js +0 -32
- package/tools/definitions/get_native_chat_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_live_api_def.js +0 -23
- package/tools/definitions/get_native_live_api_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_extra_features_def.js +0 -87
- package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +0 -49
- package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -74
- package/tools/definitions/get_native_live_uikit_interaction_def.js.map +0 -1
- package/tools/definitions/get_trtc_native_api_def.js +0 -16
- package/tools/definitions/get_trtc_native_api_def.js.map +0 -1
- package/tools/definitions/get_web_call_uikit_api_def.js +0 -23
- package/tools/definitions/get_web_call_uikit_api_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_init_def.js +0 -23
- package/tools/definitions/get_web_chat_uikit_init_def.js.map +0 -1
- package/tools/definitions/get_web_create_group_doc_def.js +0 -18
- package/tools/definitions/get_web_create_group_doc_def.js.map +0 -1
- package/tools/definitions/get_web_live_state_detail_def.js +0 -19
- package/tools/definitions/get_web_live_state_detail_def.js.map +0 -1
- package/tools/definitions/get_web_live_uikit_component_detail_def.js +0 -27
- package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_room_feature_detail_def.js +0 -95
- package/tools/definitions/get_web_room_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_room_state_detail_def.js +0 -19
- package/tools/definitions/get_web_room_state_detail_def.js.map +0 -1
- package/tools/definitions/record_prompt_def.js +0 -53
- package/tools/definitions/record_prompt_def.js.map +0 -1
- package/tools/definitions/record_result_def.js +0 -30
- package/tools/definitions/record_result_def.js.map +0 -1
- package/tools/live/get-native-live-uikit-integration.js +0 -101
- package/tools/live/get-native-live-uikit-integration.js.map +0 -1
- package/tools/live/get-web-live-component-detail.js +0 -31
- package/tools/live/get-web-live-component-detail.js.map +0 -1
- package/tools/live/get-web-live-state-detail.js +0 -31
- package/tools/live/get-web-live-state-detail.js.map +0 -1
- package/tools/live/get-web-live-uikit-integration.js +0 -52
- package/tools/live/get-web-live-uikit-integration.js.map +0 -1
- package/tools/live/get_native_live_uikit_extra_features.js +0 -105
- package/tools/live/get_native_live_uikit_extra_features.js.map +0 -1
- package/tools/live/get_native_live_uikit_interaction.js +0 -101
- package/tools/live/get_native_live_uikit_interaction.js.map +0 -1
- package/tools/native_live/get-native-live-api.js +0 -31
- package/tools/native_live/get-native-live-api.js.map +0 -1
- package/tools/room/get-web-room-feature-detail.js.map +0 -1
- package/tools/room/get-web-room-integration.js.map +0 -1
- package/tools/rtcengine/get-rtcengine-web-sdk-integration.js +0 -28
- package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +0 -1
- package/tools/rtcengine/get-trtc-sdk-faq.js +0 -32
- package/tools/rtcengine/get-trtc-sdk-faq.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-api.js +0 -28
- package/tools/rtcengine/get-trtc-web-sdk-api.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-faq.js +0 -30
- package/tools/rtcengine/get-trtc-web-sdk-faq.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-integration.js +0 -29
- package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js +0 -45
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +0 -1
- package/tools/trtc/get-trtc-native-api.js +0 -31
- package/tools/trtc/get-trtc-native-api.js.map +0 -1
- package/utils/handle-component-name.js +0 -33
- package/utils/handle-component-name.js.map +0 -1
- /package/resource/doc/{chatuikit/android/workflow.md → callkit/core-sdk/.gitkeep} +0 -0
- /package/resource/doc/{tuicallkit/faq/common/error_code.md → callkit/faq/common/error-code.md} +0 -0
- /package/resource/doc/{tuicallkit/react/faq.md → callkit/faq/web-faq.md} +0 -0
- /package/resource/doc/{chatuikit → chatkit}/faq/common/server_error_code.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/error_code.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/flutter/faq.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/react/faq.md +0 -0
- /package/resource/doc/roomkit/faq/common/{error_code.md → error-code.md} +0 -0
|
@@ -1,22 +1,7 @@
|
|
|
1
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<td rowspan="1" colSpan="1" >**Barrage Gift**</td>
|
|
7
|
-
|
|
8
|
-
<td rowspan="1" colSpan="1" >**Full-Screen Gift**</td>
|
|
9
|
-
</tr>
|
|
10
|
-
|
|
11
|
-
<tr>
|
|
12
|
-
<td rowspan="1" colSpan="1" ></td>
|
|
13
|
-
|
|
14
|
-
<td rowspan="1" colSpan="1" ></td>
|
|
15
|
-
|
|
16
|
-
<td rowspan="1" colSpan="1" ></td>
|
|
17
|
-
</tr>
|
|
18
|
-
</table>
|
|
19
|
-
|
|
2
|
+
| **Gift Panel** | **Barrage Gift** | **Full-Screen Gift** |
|
|
3
|
+
| --- | --- | --- |
|
|
4
|
+
| | | |
|
|
20
5
|
|
|
21
6
|
## Core Features
|
|
22
7
|
- **Gift List Retrieval**: Retrieve gift panel data from the server, including gift categories and details.
|
|
@@ -25,73 +10,28 @@
|
|
|
25
10
|
|
|
26
11
|
- **Gift Event Broadcast:** Receive real-time gift events in the room for displaying gift animations and barrage notifications.
|
|
27
12
|
|
|
28
|
-
|
|
29
13
|
## Core Concepts
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
</tr>
|
|
38
|
-
|
|
39
|
-
<tr>
|
|
40
|
-
<td rowspan="1" colSpan="1" >`Gift`</td>
|
|
41
|
-
|
|
42
|
-
<td rowspan="1" colSpan="1" >`data class`</td>
|
|
43
|
-
|
|
44
|
-
<td rowspan="1" colSpan="1" >Represents a gift data model, including ID, name, icon URL, animation resource URL (resourceURL), price (coins), and more.</td>
|
|
45
|
-
</tr>
|
|
46
|
-
|
|
47
|
-
<tr>
|
|
48
|
-
<td rowspan="1" colSpan="1" >`GiftCategory`</td>
|
|
49
|
-
|
|
50
|
-
<td rowspan="1" colSpan="1" >`data class`</td>
|
|
51
|
-
|
|
52
|
-
<td rowspan="1" colSpan="1" >Represents a gift category (e.g., "Popular", "Luxury"). Contains the category name and a list of Gift objects.</td>
|
|
53
|
-
</tr>
|
|
54
|
-
|
|
55
|
-
<tr>
|
|
56
|
-
<td rowspan="1" colSpan="1" >`GiftState`</td>
|
|
57
|
-
|
|
58
|
-
<td rowspan="1" colSpan="1" >`data class`</td>
|
|
59
|
-
|
|
60
|
-
<td rowspan="1" colSpan="1" >Represents the current state of the gift module. The core property, usableGifts, is a StateFlow containing the full gift list from the server.</td>
|
|
61
|
-
</tr>
|
|
62
|
-
|
|
63
|
-
<tr>
|
|
64
|
-
<td rowspan="1" colSpan="1" >`GiftEvent`</td>
|
|
65
|
-
|
|
66
|
-
<td rowspan="1" colSpan="1" >`abstract class`</td>
|
|
67
|
-
|
|
68
|
-
<td rowspan="1" colSpan="1" >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.</td>
|
|
69
|
-
</tr>
|
|
70
|
-
|
|
71
|
-
<tr>
|
|
72
|
-
<td rowspan="1" colSpan="1" >`GiftStore`</td>
|
|
73
|
-
|
|
74
|
-
<td rowspan="1" colSpan="1" >`abstract class`</td>
|
|
75
|
-
|
|
76
|
-
<td rowspan="1" colSpan="1" >The core management class for gift features. Use it to fetch the gift list, send gifts, and receive gift events via listeners.</td>
|
|
77
|
-
</tr>
|
|
78
|
-
</table>
|
|
79
|
-
|
|
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. |
|
|
80
21
|
|
|
81
22
|
## Implementation
|
|
82
23
|
|
|
83
24
|
### Step 1: Component Integration
|
|
84
25
|
|
|
85
26
|
> **Note:**
|
|
86
|
-
>
|
|
87
|
-
|
|
88
|
-
> 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](https://write.woa.com/document/137771241658241024) and choose the package that fits your needs.
|
|
89
|
-
>
|
|
27
|
+
>
|
|
90
28
|
|
|
91
|
-
|
|
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
|
+
>
|
|
92
31
|
|
|
93
|
-
- **
|
|
32
|
+
- **Video Live Streaming**: Please refer to Quick Start to integrate AtomicXCore.
|
|
94
33
|
|
|
34
|
+
- **Voice Chat Room**: Please refer to Quick Start to integrate AtomicXCore.
|
|
95
35
|
|
|
96
36
|
### Step 2: Initialize and Listen for Gift Events
|
|
97
37
|
|
|
@@ -104,7 +44,6 @@ Obtain a `GiftStore` instance and set up listeners to receive gift events and up
|
|
|
104
44
|
|
|
105
45
|
3. **Subscribe to State**: Subscribe to `giftStore.giftState.usableGifts`to receive gift list updates.
|
|
106
46
|
|
|
107
|
-
|
|
108
47
|
#### Code Example
|
|
109
48
|
``` kotlin
|
|
110
49
|
import io.trtc.tuikit.atomicxcore.api.gift.Gift
|
|
@@ -156,132 +95,26 @@ class GiftManager(
|
|
|
156
95
|
#### Gift List Structure Parameters
|
|
157
96
|
- **GiftCategory Parameter Description**
|
|
158
97
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
</tr>
|
|
167
|
-
|
|
168
|
-
<tr>
|
|
169
|
-
<td rowspan="1" colSpan="1" >`categoryID`</td>
|
|
170
|
-
|
|
171
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
172
|
-
|
|
173
|
-
<td rowspan="1" colSpan="1" >Unique ID of the gift category.</td>
|
|
174
|
-
</tr>
|
|
175
|
-
|
|
176
|
-
<tr>
|
|
177
|
-
<td rowspan="1" colSpan="1" >`name`</td>
|
|
178
|
-
|
|
179
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
180
|
-
|
|
181
|
-
<td rowspan="1" colSpan="1" >Display name of the gift category.</td>
|
|
182
|
-
</tr>
|
|
183
|
-
|
|
184
|
-
<tr>
|
|
185
|
-
<td rowspan="1" colSpan="1" >`desc`</td>
|
|
186
|
-
|
|
187
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
188
|
-
|
|
189
|
-
<td rowspan="1" colSpan="1" >Description of the gift category.</td>
|
|
190
|
-
</tr>
|
|
191
|
-
|
|
192
|
-
<tr>
|
|
193
|
-
<td rowspan="1" colSpan="1" >`extensionInfo`</td>
|
|
194
|
-
|
|
195
|
-
<td rowspan="1" colSpan="1" >`Map<String, String>`</td>
|
|
196
|
-
|
|
197
|
-
<td rowspan="1" colSpan="1" >Extension information field.</td>
|
|
198
|
-
</tr>
|
|
199
|
-
|
|
200
|
-
<tr>
|
|
201
|
-
<td rowspan="1" colSpan="1" >`giftList`</td>
|
|
202
|
-
|
|
203
|
-
<td rowspan="1" colSpan="1" >`List`</td>
|
|
204
|
-
|
|
205
|
-
<td rowspan="1" colSpan="1" >Array of Gift objects in this category.</td>
|
|
206
|
-
</tr>
|
|
207
|
-
</table>
|
|
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. |
|
|
208
105
|
|
|
209
106
|
- **Gift Parameter Description**
|
|
210
107
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
<
|
|
221
|
-
<td rowspan="1" colSpan="1" >`giftID`</td>
|
|
222
|
-
|
|
223
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
224
|
-
|
|
225
|
-
<td rowspan="1" colSpan="1" >Unique ID of the gift.</td>
|
|
226
|
-
</tr>
|
|
227
|
-
|
|
228
|
-
<tr>
|
|
229
|
-
<td rowspan="1" colSpan="1" >`name`</td>
|
|
230
|
-
|
|
231
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
232
|
-
|
|
233
|
-
<td rowspan="1" colSpan="1" >Display name of the gift.</td>
|
|
234
|
-
</tr>
|
|
235
|
-
|
|
236
|
-
<tr>
|
|
237
|
-
<td rowspan="1" colSpan="1" >`desc`</td>
|
|
238
|
-
|
|
239
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
240
|
-
|
|
241
|
-
<td rowspan="1" colSpan="1" >Description of the gift.</td>
|
|
242
|
-
</tr>
|
|
243
|
-
|
|
244
|
-
<tr>
|
|
245
|
-
<td rowspan="1" colSpan="1" >`iconURL`</td>
|
|
246
|
-
|
|
247
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
248
|
-
|
|
249
|
-
<td rowspan="1" colSpan="1" >Gift icon URL.</td>
|
|
250
|
-
</tr>
|
|
251
|
-
|
|
252
|
-
<tr>
|
|
253
|
-
<td rowspan="1" colSpan="1" >`resourceURL`</td>
|
|
254
|
-
|
|
255
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
256
|
-
|
|
257
|
-
<td rowspan="1" colSpan="1" >Gift animation resource URL.</td>
|
|
258
|
-
</tr>
|
|
259
|
-
|
|
260
|
-
<tr>
|
|
261
|
-
<td rowspan="1" colSpan="1" >`level`</td>
|
|
262
|
-
|
|
263
|
-
<td rowspan="1" colSpan="1" >`Long`</td>
|
|
264
|
-
|
|
265
|
-
<td rowspan="1" colSpan="1" >Gift level.</td>
|
|
266
|
-
</tr>
|
|
267
|
-
|
|
268
|
-
<tr>
|
|
269
|
-
<td rowspan="1" colSpan="1" >`coins`</td>
|
|
270
|
-
|
|
271
|
-
<td rowspan="1" colSpan="1" >`Long`</td>
|
|
272
|
-
|
|
273
|
-
<td rowspan="1" colSpan="1" >Gift price.</td>
|
|
274
|
-
</tr>
|
|
275
|
-
|
|
276
|
-
<tr>
|
|
277
|
-
<td rowspan="1" colSpan="1" >`extensionInfo`</td>
|
|
278
|
-
|
|
279
|
-
<td rowspan="1" colSpan="1" >`Map<String, String>`</td>
|
|
280
|
-
|
|
281
|
-
<td rowspan="1" colSpan="1" >Extension information field.</td>
|
|
282
|
-
</tr>
|
|
283
|
-
</table>
|
|
284
|
-
|
|
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. |
|
|
285
118
|
|
|
286
119
|
### Step 3: Retrieve Gift List
|
|
287
120
|
|
|
@@ -294,7 +127,6 @@ Call the `refreshUsableGifts` method to fetch gift data from the server.
|
|
|
294
127
|
|
|
295
128
|
3. **Receive Data**: After a successful fetch, the updated usableGifts list is delivered automatically via your subscription to `giftStore.giftState.usableGifts`.
|
|
296
129
|
|
|
297
|
-
|
|
298
130
|
#### Code Example
|
|
299
131
|
``` kotlin
|
|
300
132
|
class GiftManager(
|
|
@@ -329,7 +161,6 @@ When a user selects a gift and clicks send, call the `sendGift` API.
|
|
|
329
161
|
|
|
330
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.
|
|
331
163
|
|
|
332
|
-
|
|
333
164
|
#### Code Example
|
|
334
165
|
``` kotlin
|
|
335
166
|
class GiftManager(
|
|
@@ -355,40 +186,11 @@ class GiftManager(
|
|
|
355
186
|
```
|
|
356
187
|
|
|
357
188
|
#### **sendGift API Parameters**
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
365
|
-
</tr>
|
|
366
|
-
|
|
367
|
-
<tr>
|
|
368
|
-
<td rowspan="1" colSpan="1" >`giftID`</td>
|
|
369
|
-
|
|
370
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
371
|
-
|
|
372
|
-
<td rowspan="1" colSpan="1" >Unique ID of the gift to send.</td>
|
|
373
|
-
</tr>
|
|
374
|
-
|
|
375
|
-
<tr>
|
|
376
|
-
<td rowspan="1" colSpan="1" >`count`</td>
|
|
377
|
-
|
|
378
|
-
<td rowspan="1" colSpan="1" >`Int`</td>
|
|
379
|
-
|
|
380
|
-
<td rowspan="1" colSpan="1" >Number of gifts to send.</td>
|
|
381
|
-
</tr>
|
|
382
|
-
|
|
383
|
-
<tr>
|
|
384
|
-
<td rowspan="1" colSpan="1" >`completion`</td>
|
|
385
|
-
|
|
386
|
-
<td rowspan="1" colSpan="1" >`CompletionHandler?`</td>
|
|
387
|
-
|
|
388
|
-
<td rowspan="1" colSpan="1" >Callback invoked after sending completes.</td>
|
|
389
|
-
</tr>
|
|
390
|
-
</table>
|
|
391
|
-
|
|
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. |
|
|
392
194
|
|
|
393
195
|
## Advanced Features
|
|
394
196
|
|
|
@@ -399,134 +201,39 @@ The capabilities of `GiftStore` are closely tied to your backend services. This
|
|
|
399
201
|
Customize available gift types, categories, names, icons, prices, and animation effects to meet your operational and branding requirements.
|
|
400
202
|
|
|
401
203
|
#### Implementation
|
|
402
|
-
1. **Server-Side Configuration**: Use the `LiveKit` server REST API to manage gift information, categories, and multi-language support. See the
|
|
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.
|
|
403
205
|
|
|
404
206
|
2. **Client Fetch**: On the client, call `refreshUsableGifts` to retrieve configuration data.
|
|
405
207
|
|
|
406
208
|
3. **UI Display**: Use the retrieved `List<GiftCategory>` to populate the gift panel.
|
|
407
209
|
|
|
408
|
-
|
|
409
210
|
#### Configuration Sequence Diagram
|
|
410
211
|
|
|
411
|
-

|
|
412
|
-
|
|
413
|
-
|
|
414
212
|
#### Related REST API Interfaces Overview
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
<tr>
|
|
433
|
-
<td rowspan="1" colSpan="1" >Delete Gift Information</td>
|
|
434
|
-
|
|
435
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131021432451072)</td>
|
|
436
|
-
</tr>
|
|
437
|
-
|
|
438
|
-
<tr>
|
|
439
|
-
<td rowspan="1" colSpan="1" >Query Gift Information</td>
|
|
440
|
-
|
|
441
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185130925608591360)</td>
|
|
442
|
-
</tr>
|
|
443
|
-
|
|
444
|
-
<tr>
|
|
445
|
-
<td rowspan="3" colSpan="1" >**Gift Category Management**</td>
|
|
446
|
-
|
|
447
|
-
<td rowspan="1" colSpan="1" >Add Gift Category Information</td>
|
|
448
|
-
|
|
449
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131054187974656)</td>
|
|
450
|
-
</tr>
|
|
451
|
-
|
|
452
|
-
<tr>
|
|
453
|
-
<td rowspan="1" colSpan="1" >Delete Specific Gift Category Information</td>
|
|
454
|
-
|
|
455
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131288984932352)</td>
|
|
456
|
-
</tr>
|
|
457
|
-
|
|
458
|
-
<tr>
|
|
459
|
-
<td rowspan="1" colSpan="1" >Get Specific Gift Category Information</td>
|
|
460
|
-
|
|
461
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131164168736768)</td>
|
|
462
|
-
</tr>
|
|
463
|
-
|
|
464
|
-
<tr>
|
|
465
|
-
<td rowspan="3" colSpan="1" >**Gift Relationship Management**</td>
|
|
466
|
-
|
|
467
|
-
<td rowspan="1" colSpan="1" >Add Relationship between a Specific Gift Category and Gift</td>
|
|
468
|
-
|
|
469
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131388068356096)</td>
|
|
470
|
-
</tr>
|
|
471
|
-
|
|
472
|
-
<tr>
|
|
473
|
-
<td rowspan="1" colSpan="1" >Delete Relationship between a Specific Gift Category and Gift</td>
|
|
474
|
-
|
|
475
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131491225227264)</td>
|
|
476
|
-
</tr>
|
|
477
|
-
|
|
478
|
-
<tr>
|
|
479
|
-
<td rowspan="1" colSpan="1" >Get Gift Relationships under a Specific Gift Category</td>
|
|
480
|
-
|
|
481
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131634710056960)</td>
|
|
482
|
-
</tr>
|
|
483
|
-
|
|
484
|
-
<tr>
|
|
485
|
-
<td rowspan="6" colSpan="1" >**Gift Multi-language Management**</td>
|
|
486
|
-
|
|
487
|
-
<td rowspan="1" colSpan="1" >Add Gift Multi-language Information</td>
|
|
488
|
-
|
|
489
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131766094020608)</td>
|
|
490
|
-
</tr>
|
|
491
|
-
|
|
492
|
-
<tr>
|
|
493
|
-
<td rowspan="1" colSpan="1" >Delete Specific Gift Multi-language Information</td>
|
|
494
|
-
|
|
495
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185132041665441792)</td>
|
|
496
|
-
</tr>
|
|
497
|
-
|
|
498
|
-
<tr>
|
|
499
|
-
<td rowspan="1" colSpan="1" >Get Gift Multi-language Information</td>
|
|
500
|
-
|
|
501
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185131910582956032)</td>
|
|
502
|
-
</tr>
|
|
503
|
-
|
|
504
|
-
<tr>
|
|
505
|
-
<td rowspan="1" colSpan="1" >Add Gift Category Multi-language Information</td>
|
|
506
|
-
|
|
507
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185132145524985856)</td>
|
|
508
|
-
</tr>
|
|
509
|
-
|
|
510
|
-
<tr>
|
|
511
|
-
<td rowspan="1" colSpan="1" >Delete Specific Gift Category Multi-language Information</td>
|
|
512
|
-
|
|
513
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185132396568891392)</td>
|
|
514
|
-
</tr>
|
|
515
|
-
|
|
516
|
-
<tr>
|
|
517
|
-
<td rowspan="1" colSpan="1" >Get Gift Category Multi-language Information</td>
|
|
518
|
-
|
|
519
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/185132283123777536)</td>
|
|
520
|
-
</tr>
|
|
521
|
-
</table>
|
|
522
|
-
|
|
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 | |
|
|
523
230
|
|
|
524
231
|
### Billing and Gift Deduction Process
|
|
525
232
|
|
|
526
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.
|
|
527
234
|
|
|
528
235
|
#### Implementation
|
|
529
|
-
1. **Backend Callback Configuration**: Configure your billing system's callback URL in the LiveKit backend. See
|
|
236
|
+
1. **Backend Callback Configuration**: Configure your billing system's callback URL in the LiveKit backend. See Callback Configuration Documentation.
|
|
530
237
|
|
|
531
238
|
2. **Client Send**: The client calls `sendGift`.
|
|
532
239
|
|
|
@@ -534,31 +241,12 @@ When a viewer sends a gift, ensure their account balance is sufficient and compl
|
|
|
534
241
|
|
|
535
242
|
4. **Result Synchronization**: If successful, **AtomicXCore** broadcasts the `onReceiveGift` event; if failed, the completion callback of sendGift receives an error.
|
|
536
243
|
|
|
537
|
-
|
|
538
244
|
#### Call Flow
|
|
539
245
|
|
|
540
|
-

|
|
541
|
-
|
|
542
|
-
|
|
543
246
|
#### Related REST API Interfaces Overview
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
549
|
-
|
|
550
|
-
<td rowspan="1" colSpan="1" >**Request Example**</td>
|
|
551
|
-
</tr>
|
|
552
|
-
|
|
553
|
-
<tr>
|
|
554
|
-
<td rowspan="1" colSpan="1" >**Callback Configuration - Callback before sending a gift**</td>
|
|
555
|
-
|
|
556
|
-
<td rowspan="1" colSpan="1" >The customer's backend can use this callback to decide whether to pass pre-gifting checks, etc.</td>
|
|
557
|
-
|
|
558
|
-
<td rowspan="1" colSpan="1" >[Example](https://write.woa.com/document/183772991768039424)</td>
|
|
559
|
-
</tr>
|
|
560
|
-
</table>
|
|
561
|
-
|
|
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 |
|
|
562
250
|
|
|
563
251
|
### Implement Full-Screen Gift Animation Playback
|
|
564
252
|
|
|
@@ -567,56 +255,13 @@ When a user sends a luxury gift (e.g., "Rocket", "Carnival"), play a full-screen
|
|
|
567
255
|
#### Implementation
|
|
568
256
|
|
|
569
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:
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
</tr>
|
|
578
|
-
|
|
579
|
-
<tr>
|
|
580
|
-
<td rowspan="1" colSpan="1" >Billing</td>
|
|
581
|
-
|
|
582
|
-
<td rowspan="1" colSpan="1" >Free (open source)</td>
|
|
583
|
-
|
|
584
|
-
<td rowspan="1" colSpan="1" >Paid (requires license). See [Billing Guide](https://trtc.io/document/69949?product=beautyar&menulabel=core%20sdk&platform=android#X-Series-Capabilities)</td>
|
|
585
|
-
</tr>
|
|
586
|
-
|
|
587
|
-
<tr>
|
|
588
|
-
<td rowspan="1" colSpan="1" >Integration Method</td>
|
|
589
|
-
|
|
590
|
-
<td rowspan="1" colSpan="1" >Manual integration via Gradle</td>
|
|
591
|
-
|
|
592
|
-
<td rowspan="1" colSpan="1" >Requires additional integration and authentication</td>
|
|
593
|
-
</tr>
|
|
594
|
-
|
|
595
|
-
<tr>
|
|
596
|
-
<td rowspan="1" colSpan="1" >Supported Animation Formats</td>
|
|
597
|
-
|
|
598
|
-
<td rowspan="1" colSpan="1" >SVGA only</td>
|
|
599
|
-
|
|
600
|
-
<td rowspan="1" colSpan="1" >SVGA, PAG, WebP, Lottie, MP4, and more</td>
|
|
601
|
-
</tr>
|
|
602
|
-
|
|
603
|
-
<tr>
|
|
604
|
-
<td rowspan="1" colSpan="1" >Performance</td>
|
|
605
|
-
|
|
606
|
-
<td rowspan="1" colSpan="1" >Recommended SVGA file size ≤ 10MB</td>
|
|
607
|
-
|
|
608
|
-
<td rowspan="1" colSpan="1" >Supports larger files, better performance for complex/multiple/low-end scenarios</td>
|
|
609
|
-
</tr>
|
|
610
|
-
|
|
611
|
-
<tr>
|
|
612
|
-
<td rowspan="1" colSpan="1" >Recommended Scenario</td>
|
|
613
|
-
|
|
614
|
-
<td rowspan="1" colSpan="1" >Uniform SVGA format, controllable file size</td>
|
|
615
|
-
|
|
616
|
-
<td rowspan="1" colSpan="1" >Multiple formats or higher performance/device compatibility needs</td>
|
|
617
|
-
</tr>
|
|
618
|
-
</table>
|
|
619
|
-
|
|
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 |
|
|
620
265
|
|
|
621
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).
|
|
622
267
|
|
|
@@ -633,7 +278,6 @@ This section demonstrates the basic solution. For the **Gift AR** see the [TCEff
|
|
|
633
278
|
|
|
634
279
|
3. **Parse and Play**: On `onReceiveGift`, check if `gift.resourceURL` is a valid SVGA file. Use `SVGAParser` to parse and play the animation.
|
|
635
280
|
|
|
636
|
-
|
|
637
281
|
#### Code Example
|
|
638
282
|
``` kotlin
|
|
639
283
|
import android.os.Bundle
|
|
@@ -662,10 +306,10 @@ private fun setupSVGAPlayer() {
|
|
|
662
306
|
svgaImageView = findViewById(R.id.svga_player)
|
|
663
307
|
svgaParser = SVGAParser(this)
|
|
664
308
|
svgaImageView.visibility = android.view.View.GONE
|
|
665
|
-
|
|
309
|
+
|
|
666
310
|
// Set the gift animation to play only once.
|
|
667
311
|
svgaImageView.loops = 1
|
|
668
|
-
|
|
312
|
+
|
|
669
313
|
// Set a completion callback to hide and clean up resources after playback.
|
|
670
314
|
svgaImageView.callback = object : SVGACallback {
|
|
671
315
|
override fun onFinished() {
|
|
@@ -694,7 +338,7 @@ private fun setupSVGAPlayer() {
|
|
|
694
338
|
}
|
|
695
339
|
})
|
|
696
340
|
}
|
|
697
|
-
|
|
341
|
+
|
|
698
342
|
private fun playAnimation(url: URL) {
|
|
699
343
|
svgaParser.decodeFromURL(url, object : SVGAParser.ParseCompletion {
|
|
700
344
|
override fun onComplete(videoItem: SVGAVideoEntity) {
|
|
@@ -704,7 +348,7 @@ private fun setupSVGAPlayer() {
|
|
|
704
348
|
svgaImageView.startAnimation()
|
|
705
349
|
}
|
|
706
350
|
}
|
|
707
|
-
|
|
351
|
+
|
|
708
352
|
override fun onError() {
|
|
709
353
|
println("SVGA animation parsing failed")
|
|
710
354
|
// Optionally add retry or error reporting
|
|
@@ -729,7 +373,6 @@ When a user sends a gift, display a system message in the public barrage area (e
|
|
|
729
373
|
|
|
730
374
|
5. **Insert Locally**: Call `barrageStore.appendLocalTip(message: giftTip)` to add the message to the local barrage list.
|
|
731
375
|
|
|
732
|
-
|
|
733
376
|
#### Code Example
|
|
734
377
|
``` kotlin
|
|
735
378
|
import io.trtc.tuikit.atomicxcore.api.barrage.Barrage
|
|
@@ -766,32 +409,10 @@ class LiveRoomManager(
|
|
|
766
409
|
## API Documentation
|
|
767
410
|
|
|
768
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:
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
<td rowspan="1" colSpan="1" >**Feature Description**</td>
|
|
774
|
-
|
|
775
|
-
<td rowspan="1" colSpan="1" >**API Documentation**</td>
|
|
776
|
-
</tr>
|
|
777
|
-
|
|
778
|
-
<tr>
|
|
779
|
-
<td rowspan="1" colSpan="1" >GiftStore</td>
|
|
780
|
-
|
|
781
|
-
<td rowspan="1" colSpan="1" >Gift interactions: fetch gift list, send/receive gifts, listen for gift events (including sender and gift details).</td>
|
|
782
|
-
|
|
783
|
-
<td rowspan="1" colSpan="1" >[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)</td>
|
|
784
|
-
</tr>
|
|
785
|
-
|
|
786
|
-
<tr>
|
|
787
|
-
<td rowspan="1" colSpan="1" >BarrageStore</td>
|
|
788
|
-
|
|
789
|
-
<td rowspan="1" colSpan="1" >Barrage features: send text/custom barrage, maintain barrage list, listen to barrage status in real time.</td>
|
|
790
|
-
|
|
791
|
-
<td rowspan="1" colSpan="1" >[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)</td>
|
|
792
|
-
</tr>
|
|
793
|
-
</table>
|
|
794
|
-
|
|
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) |
|
|
795
416
|
|
|
796
417
|
## FAQs
|
|
797
418
|
|
|
@@ -808,7 +429,6 @@ Use the `GiftStore.setLanguage(language: String)` API before calling `refreshUsa
|
|
|
808
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.
|
|
809
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").
|
|
810
431
|
|
|
811
|
-
|
|
812
432
|
### Where is the gift deduction logic implemented?
|
|
813
433
|
|
|
814
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.
|
|
@@ -819,4 +439,4 @@ No. Gift notifications (`onReceiveGift` events) are not affected by mute or freq
|
|
|
819
439
|
|
|
820
440
|
### What should I do if gift animation playback stutters?
|
|
821
441
|
|
|
822
|
-
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.
|
|
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.
|