@tencentcloud/sdk-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/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/resource/doc/{tuicallkit/android/faq.md → callkit/faq/android-faq.md} +75 -308
- package/resource/doc/{tuicallkit/faq/common/error_code.md → callkit/faq/common/error-code.md} +2 -2
- package/resource/doc/{tuicallkit/flutter/faq.md → callkit/faq/flutter-faq.md} +83 -315
- package/resource/doc/{tuicallkit/iOS/faq.md → callkit/faq/ios-faq.md} +76 -313
- package/resource/doc/{tuicallkit/react/faq.md → callkit/faq/web-faq.md} +78 -311
- package/resource/doc/callkit/preset/android/api.md +330 -0
- package/resource/doc/callkit/preset/android/integration.md +530 -0
- package/resource/doc/callkit/preset/flutter/api.md +401 -0
- package/resource/doc/{tuicallkit → callkit/preset}/flutter/integration.md +53 -273
- package/resource/doc/callkit/preset/ios/api.md +282 -0
- package/resource/doc/{tuicallkit/iOS → callkit/preset/ios}/integration.md +39 -120
- package/resource/doc/callkit/preset/react/api.md +600 -0
- package/resource/doc/{tuicallkit → callkit/preset}/react/integration.md +6 -6
- package/resource/doc/callkit/preset/vue/api.md +600 -0
- package/resource/doc/{tuicallkit → callkit/preset}/vue/integration.md +5 -5
- package/resource/doc/{chatuikit → chatkit}/android/faq.md +29 -37
- package/resource/doc/{chatuikit → chatkit}/android/features/theme.md +22 -166
- package/resource/doc/chatkit/android/integration.md +498 -0
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +280 -0
- package/resource/doc/{chatuikit → chatkit}/faq/common/product.md +4 -17
- package/resource/doc/{chatuikit → chatkit}/faq/common/server.md +1 -2
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +183 -0
- package/resource/doc/{chatuikit → chatkit}/faq/flutter_sdk/faq.md +3 -3
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +279 -0
- package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/error_code.md +1 -1
- package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/faq.md +4 -4
- package/resource/doc/{chatuikit → chatkit}/flutter/features/theme.md +22 -166
- package/resource/doc/{chatuikit → chatkit}/flutter/integration.md +20 -95
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/faq.md +29 -37
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/features/theme.md +27 -176
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/integration.md +78 -280
- package/resource/doc/{chatuikit/vue → chatkit/react}/components/avatar.md +0 -1
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-header.md +7 -12
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-setting.md +10 -17
- package/resource/doc/{chatuikit → chatkit}/react/components/chat.md +1 -1
- package/resource/doc/{chatuikit → chatkit}/react/components/component-list.md +0 -1
- package/resource/doc/{chatuikit → chatkit}/react/components/contact-list.md +122 -703
- 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 +116 -0
- package/resource/doc/chatkit/react/components/conversation-search.md +57 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/message-input.md +36 -186
- package/resource/doc/{chatuikit → chatkit}/react/components/message-list.md +21 -113
- package/resource/doc/chatkit/react/components/search.md +282 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/tuikit.md +5 -26
- package/resource/doc/{chatuikit → chatkit}/react/integration.md +37 -104
- package/resource/doc/{chatuikit/react → chatkit/vue}/components/avatar.md +0 -1
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-header.md +7 -13
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-setting.md +13 -18
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat.md +1 -2
- package/resource/doc/{chatuikit → chatkit}/vue/components/component-list.md +0 -1
- 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 -316
- 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 +1 -23
- package/resource/doc/{chatuikit → chatkit}/vue/components/message-list.md +23 -134
- package/resource/doc/{chatuikit → chatkit}/vue/components/search.md +73 -640
- package/resource/doc/chatkit/vue/components/tuikit.md +45 -0
- package/resource/doc/{chatuikit → chatkit}/vue/components/userpicker.md +4 -4
- package/resource/doc/{chatuikit → chatkit}/vue/faq.md +1 -1
- package/resource/doc/{chatuikit → chatkit}/vue/integration.md +53 -121
- package/resource/doc/livekit/core-sdk/live/android/api-reference/AudioEffectStore.md +283 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/BarrageStore.md +148 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/BattleStore.md +316 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/CameraView.md +57 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/CoGuestStore.md +419 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/CoHostStore.md +325 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/DeviceStore.md +436 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/GiftStore.md +165 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LikeStore.md +49 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveAudienceStore.md +239 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveCoreView.md +74 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveSeatStore.md +417 -0
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LoginStore.md +207 -0
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-audience-list.md +17 -88
- 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 +26 -139
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-base-beauty.md +16 -99
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-co-guest-interaction.md +54 -161
- 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 +91 -338
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-integration.md +108 -492
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-live-list.md +27 -165
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/AudioEffectStore.md +279 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BarrageStore.md +158 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BaseBeautyStore.md +155 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BattleStore.md +304 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoGuestStore.md +394 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoHostStore.md +303 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/DeviceStore.md +410 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/GiftStore.md +160 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LikeStore.md +51 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveAudienceStore.md +231 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveCoreView.md +143 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveSeatStore.md +375 -0
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LoginStore.md +170 -0
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audience-list.md +13 -91
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audio-effect.md +34 -177
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-barrage.md +18 -102
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-base-beauty.md +24 -164
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-co-guest-interaction.md +56 -161
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-gift.md +66 -460
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-host-interaction.md +117 -364
- package/resource/doc/livekit/core-sdk/live/flutter/live-integration.md +687 -0
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-live-list.md +22 -161
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/AudioEffectStore.md +287 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/BarrageStore.md +165 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/BaseBeautyStore.md +143 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/BattleStore.md +298 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoGuestStore.md +349 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoHostStore.md +297 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/DeviceStore.md +471 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/GiftStore.md +179 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LikeStore.md +49 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveAudienceStore.md +238 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveCoreView.md +74 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveSeatStore.md +412 -0
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LoginStore.md +173 -0
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audience-list.md +23 -96
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audio-effect.md +33 -195
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-barrage.md +35 -150
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-base-beauty.md +20 -105
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-co-guest-interaction.md +35 -140
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-gift.md +77 -457
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-host-interaction.md +70 -317
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-integration.md +90 -473
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-live-list.md +28 -163
- package/resource/doc/livekit/core-sdk/voice/android/voice-audience-list.md +264 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-audio-effect.md +226 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-barrage.md +456 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +539 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-gift.md +453 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-host-interaction.md +516 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-integration.md +509 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +365 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-audience-list.md +259 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-audio-effect.md +596 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-barrage.md +494 -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-gift.md +418 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-integration.md +563 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-room-list.md +709 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audience-list.md +262 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audio-effect.md +211 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-barrage.md +414 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +492 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-gift.md +405 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-host-interaction.md +611 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-integration.md +478 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +336 -0
- package/resource/doc/livekit/core-sdk/voice/uni-app/voice-audience-list.md +234 -0
- package/resource/doc/livekit/core-sdk/voice/uni-app/voice-audio-effect.md +218 -0
- package/resource/doc/livekit/core-sdk/voice/uni-app/voice-barrage.md +376 -0
- package/resource/doc/livekit/core-sdk/voice/uni-app/voice-co-guest-interaction.md +648 -0
- package/resource/doc/livekit/core-sdk/voice/uni-app/voice-gift.md +362 -0
- package/resource/doc/livekit/core-sdk/voice/uni-app/voice-integration.md +323 -0
- package/resource/doc/livekit/core-sdk/voice/uni-app/voice-room-list.md +470 -0
- package/resource/doc/livekit/faq/common/{error_code.md → error-code.md} +2 -3
- 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 +9 -48
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-audience-list.md +27 -145
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-scene-panel.md +13 -76
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-view.md +33 -224
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +211 -0
- package/resource/doc/livekit/preset/live/vue/faq.md +1 -0
- package/resource/doc/livekit/preset/live/vue/live-list-integration.md +244 -0
- package/resource/doc/livekit/preset/live/vue/live-player-desk-integration.md +301 -0
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +307 -0
- package/resource/doc/livekit/preset/live/vue/live-pusher-integration.md +754 -0
- package/resource/doc/roomkit/android/features/call-user-to-room.md +234 -0
- package/resource/doc/roomkit/android/features/room-participant-state.md +850 -0
- package/resource/doc/roomkit/android/features/room-state.md +358 -0
- package/resource/doc/roomkit/android/features/schedule-room.md +336 -0
- package/resource/doc/roomkit/android/integration.md +433 -0
- package/resource/doc/roomkit/{common/error_code.md → faq/common/error-code.md} +1 -1
- package/resource/doc/roomkit/flutter/features/call-user-to-room.md +228 -0
- package/resource/doc/roomkit/flutter/features/room-participant-state.md +796 -0
- package/resource/doc/roomkit/flutter/features/room-state.md +324 -0
- package/resource/doc/roomkit/flutter/features/schedule-room.md +324 -0
- package/resource/doc/roomkit/flutter/integration.md +405 -0
- package/resource/doc/roomkit/ios/features/call-user-to-room.md +226 -0
- package/resource/doc/roomkit/ios/features/room-participant-state.md +821 -0
- package/resource/doc/roomkit/ios/features/room-state.md +320 -0
- package/resource/doc/roomkit/ios/features/schedule-room.md +318 -0
- package/resource/doc/roomkit/ios/integration.md +384 -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 -36
- package/resource/doc/roomkit/vue/features/room-view.md +30 -127
- 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 -34
- package/resource/doc/roomkit/vue/integration.md +118 -282
- package/resource/doc/rtcengine/faq/common/userSig.md +17 -141
- package/resource/doc/rtcengine/faq/web/web.md +15 -22
- package/resource/doc/rtcengine/web/api.md +17 -21
- package/resource/doc/rtcengine/web/how_to_integrated_web_sdk.md +4 -10
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +4 -8
- package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +3 -3
- package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +2 -3
- package/resource/doc/rtcengine/web/plugin/22-advanced-audio-mixer.md +6 -6
- package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +2 -2
- package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +2 -4
- package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +1 -2
- package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +2 -6
- package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +13 -14
- package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +10 -90
- package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +5 -8
- package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +31 -35
- package/resource/doc/rtcengine/web/plugin/35-advanced-ai-denoiser.md +0 -2
- package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +7 -49
- package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +1 -1
- package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -3
- package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +20 -20
- 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 -4
- package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +3 -3
- package/resource/doc/trtc/C++/ITRTCCloud.md +718 -2847
- package/resource/doc/trtc/C++/ITRTCStatistics.md +53 -308
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +207 -1041
- package/resource/doc/trtc/C++/ITXDeviceManager.md +127 -768
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +634 -2259
- package/resource/doc/trtc/C++/TRTCTypeDef.md +726 -3465
- package/resource/doc/trtc/C++/TXLiteAVCode.md +117 -916
- package/resource/doc/trtc/android/TRTCCloud.md +638 -2612
- package/resource/doc/trtc/android/TRTCCloudDef.md +769 -3697
- package/resource/doc/trtc/android/TRTCCloudListener.md +609 -2070
- package/resource/doc/trtc/android/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/android/TXAudioEffectManager.md +207 -1049
- 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 +115 -900
- package/resource/doc/trtc/iOS/TRTCCloud.md +726 -2930
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +580 -2099
- package/resource/doc/trtc/iOS/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +179 -896
- 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/resource/doc/trtc/iOS/TXLiveSDKTypeDef.md +747 -3559
- 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 +28 -0
- package/tools/definitions/get_callkit_api_def.js.map +1 -0
- package/tools/definitions/get_faq_def.js +18 -19
- 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 +33 -0
- package/tools/definitions/get_native_livekit_core_features_def.js.map +1 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +33 -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 -24
- 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 +13 -18
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_livekit_api_def.js +27 -0
- package/tools/definitions/get_web_livekit_api_def.js.map +1 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js +29 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +13 -30
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +30 -0
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js +25 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +25 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +25 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +23 -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 +1 -1
- package/resource/doc/chatuikit/android/integration.md +0 -612
- package/resource/doc/chatuikit/android/workflow.md +0 -0
- package/resource/doc/chatuikit/faq/android_sdk/client-api.md +0 -1376
- package/resource/doc/chatuikit/faq/flutter_sdk/client-api.md +0 -860
- package/resource/doc/chatuikit/faq/ios_sdk/client-api.md +0 -1371
- package/resource/doc/chatuikit/flutter/workflow.md +0 -816
- package/resource/doc/chatuikit/iOS/workflow.md +0 -0
- package/resource/doc/chatuikit/react/components/conversation-list.md +0 -765
- package/resource/doc/chatuikit/react/components/search.md +0 -885
- package/resource/doc/chatuikit/react/create-group.md +0 -22
- package/resource/doc/chatuikit/react/init.md +0 -25
- package/resource/doc/chatuikit/react/workflow.md +0 -254
- package/resource/doc/chatuikit/uniapp-app/faq.md +0 -0
- package/resource/doc/chatuikit/uniapp-app/integration.md +0 -619
- package/resource/doc/chatuikit/uniapp-app/workflow.md +0 -576
- package/resource/doc/chatuikit/vue/components/contact-list.md +0 -679
- package/resource/doc/chatuikit/vue/components/tuikit.md +0 -110
- package/resource/doc/chatuikit/vue/create-group.md +0 -26
- package/resource/doc/chatuikit/vue/init.md +0 -35
- package/resource/doc/chatuikit/vue/workflow.md +0 -395
- package/resource/doc/livekit/live/android/workflow.md +0 -322
- package/resource/doc/livekit/live/flutter/live-integration.md +0 -1029
- package/resource/doc/livekit/live/flutter/workflow.md +0 -353
- package/resource/doc/livekit/live/ios/workflow.md +0 -352
- package/resource/doc/livekit/live/vue/components/barrage.md +0 -615
- package/resource/doc/livekit/live/vue/components/stream-mixer.md +0 -442
- package/resource/doc/livekit/live/vue/faq.md +0 -0
- package/resource/doc/livekit/live/vue/live-list-integration.md +0 -195
- package/resource/doc/livekit/live/vue/live-player-desk-integration.md +0 -293
- package/resource/doc/livekit/live/vue/live-player-h5-integration.md +0 -381
- package/resource/doc/livekit/live/vue/live-pusher-integration.md +0 -598
- package/resource/doc/livekit/live/vue/states/live-state.md +0 -2656
- package/resource/doc/livekit/live/vue/workflow.md +0 -219
- package/resource/doc/native_live/android/V2TXLiveCode_api_android.md +0 -334
- package/resource/doc/native_live/android/V2TXLiveDef_api_android.md +0 -434
- package/resource/doc/native_live/android/V2TXLivePlayerObserver_api_android.md +0 -685
- package/resource/doc/native_live/android/V2TXLivePlayer_api_android.md +0 -712
- package/resource/doc/native_live/android/V2TXLivePremier_api_android.md +0 -284
- 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 -879
- package/resource/doc/native_live/flutter/V2TXLivePlayer_api_flutter.md +0 -668
- package/resource/doc/native_live/flutter/V2TXLivePremier_api_flutter.md +0 -456
- package/resource/doc/native_live/flutter/V2TXLivePusherObserver_api_flutter.md +0 -332
- package/resource/doc/native_live/flutter/V2TXLivePusher_api_flutter.md +0 -748
- package/resource/doc/native_live/iOS/V2TXLiveCode_api_iOS.md +0 -328
- package/resource/doc/native_live/iOS/V2TXLiveDef_api_iOS.md +0 -505
- package/resource/doc/native_live/iOS/V2TXLivePlayerObserver_api_iOS.md +0 -507
- package/resource/doc/native_live/iOS/V2TXLivePlayer_api_iOS.md +0 -676
- package/resource/doc/native_live/iOS/V2TXLivePremier_api_iOS.md +0 -284
- package/resource/doc/native_live/iOS/V2TXLivePusherObserver_api_iOS.md +0 -820
- package/resource/doc/native_live/iOS/V2TXLivePusher_api_iOS.md +0 -1065
- 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 -302
- package/resource/doc/tuicallkit/android/workflow.md +0 -0
- package/resource/doc/tuicallkit/faq/android_sdk/call-observer-api.md +0 -786
- package/resource/doc/tuicallkit/faq/android_sdk/callkit-api.md +0 -663
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-define-api.md +0 -932
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-observer-api.md +0 -926
- package/resource/doc/tuicallkit/faq/flutter_sdk/callkit-api.md +0 -452
- package/resource/doc/tuicallkit/faq/ios_sdk/call-observer-api.md +0 -779
- package/resource/doc/tuicallkit/faq/ios_sdk/callkit-api.md +0 -635
- package/resource/doc/tuicallkit/flutter/workflow.md +0 -331
- package/resource/doc/tuicallkit/react/api.md +0 -1512
- package/resource/doc/tuicallkit/vue/api.md +0 -1512
- package/resource/doc/tuicallkit/vue/faq.md +0 -986
- 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 -22
- package/tools/definitions/get_native_live_api_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_extra_features_def.js +0 -109
- 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 -50
- package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -115
- package/tools/definitions/get_native_live_uikit_interaction_def.js.map +0 -1
- package/tools/definitions/get_trtc_native_api_def.js +0 -17
- 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/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/{rtcengine/web → callkit/core-sdk}/.gitkeep +0 -0
- /package/resource/doc/{chatuikit → chatkit}/faq/common/server_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
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
`GiftStore` 是 `AtomicXCore` 中专门负责管理直播间礼物功能的模块。通过它,您可以为您的直播应用构建一套完整的礼物系统,实现丰富的营收和互动场景。
|
|
2
|
+
| **礼物面板** | **弹幕礼物** | **全屏礼物** |
|
|
3
|
+
| --- | --- | --- |
|
|
4
|
+
| | | |
|
|
5
|
+
|
|
6
|
+
## 核心功能
|
|
7
|
+
- **礼物列表获取**:从服务端拉取礼物面板所需的数据,包括礼物分类和礼物详情。
|
|
8
|
+
|
|
9
|
+
- **发送礼物**:观众可以向主播发送选定的礼物,并附带数量。
|
|
10
|
+
|
|
11
|
+
- **礼物事件广播**:实时接收房间内发生的礼物赠送事件,用于展示礼物动画和弹幕通知。
|
|
12
|
+
|
|
13
|
+
## 核心概念
|
|
14
|
+
|
|
15
|
+
在开始集成之前,我们先通过下表了解一下 `GiftStore` 相关的几个核心概念:
|
|
16
|
+
| **核心概念** | **类型** | **核心职责与描述** |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| [Gift](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/Gift-class.html) | `class` | 代表一个具体的礼物数据模型。包含了礼物的 ID、名称、图标地址、动画资源地址 (resourceURL) 和价格 (coins) 等。 |
|
|
19
|
+
| [GiftCategory](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftCategory-class.html) | `class` | 代表一个礼物分类,例如“热门”、“豪华”等。它包含了分类的名称以及该分类下的 **Gift** 列表。 |
|
|
20
|
+
| [GiftState](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftState-class.html) | `class` | 代表礼物模块的当前状态。其核心属性 `usableGifts` 是一个 `ValueListenable<List<GiftCategory>>`,存储了从服务端拉取到的完整礼物列表。 |
|
|
21
|
+
| [GiftListener](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftListener-class.html) | `class` | 礼物事件监听器,通过 `onReceiveGift` 回调接收礼物赠送事件,当有任何人(包括自己)发送礼物时,房间内所有人都会收到此事件。 |
|
|
22
|
+
| [GiftStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftStore-class.html) | `class` | 这是与礼物功能交互的核心管理类。通过它,您可以拉取礼物列表、发送礼物,并通过 `addGiftListener` 来接收礼物事件。 |
|
|
23
|
+
|
|
24
|
+
## 实现步骤
|
|
25
|
+
|
|
26
|
+
### 步骤1:组件集成
|
|
27
|
+
|
|
28
|
+
请参考 开始直播 集成 **AtomicXCore**,完成接入。
|
|
29
|
+
|
|
30
|
+
### 步骤2:初始化并监听礼物事件
|
|
31
|
+
|
|
32
|
+
获取 `GiftStore` 实例,并设置监听器以接收礼物事件和礼物列表更新。
|
|
33
|
+
|
|
34
|
+
#### 实现方式:
|
|
35
|
+
1. **获取实例**:使用 `GiftStore.create(liveId)` 获取与当前直播间绑定的 `GiftStore` 实例。
|
|
36
|
+
|
|
37
|
+
2. **订阅事件**:通过 `giftStore.addGiftListener(listener)` 添加礼物事件监听器。
|
|
38
|
+
|
|
39
|
+
3. **订阅状态**:监听 `giftStore.giftState.usableGifts` 获取礼物列表更新。
|
|
40
|
+
|
|
41
|
+
#### 代码示例:
|
|
42
|
+
``` java
|
|
43
|
+
import 'package:flutter/foundation.dart';
|
|
44
|
+
import 'package:atomic_x_core/atomicxcore.dart';
|
|
45
|
+
|
|
46
|
+
class GiftManager {
|
|
47
|
+
final String liveId;
|
|
48
|
+
late final GiftStore giftStore;
|
|
49
|
+
late final GiftListener _giftListener;
|
|
50
|
+
late final VoidCallback _giftListChangedListener = _onGiftListChanged;
|
|
51
|
+
|
|
52
|
+
// 对外暴露礼物事件回调
|
|
53
|
+
void Function(String liveID, Gift gift, int count, LiveUserInfo sender)? onReceiveGift;
|
|
54
|
+
|
|
55
|
+
// 对外暴露礼物列表
|
|
56
|
+
ValueNotifier<List<GiftCategory>> giftListNotifier = ValueNotifier([]);
|
|
57
|
+
|
|
58
|
+
GiftManager({required this.liveId}) {
|
|
59
|
+
// 1. 通过 liveId 获取 GiftStore 的实例
|
|
60
|
+
giftStore = GiftStore.create(liveId);
|
|
61
|
+
|
|
62
|
+
_subscribeToGiftState();
|
|
63
|
+
_subscribeToGiftEvents();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/// 2. 订阅礼物事件
|
|
67
|
+
void _subscribeToGiftEvents() {
|
|
68
|
+
_giftListener = GiftListener(
|
|
69
|
+
onReceiveGift: (liveID, gift, count, sender) {
|
|
70
|
+
// 收到事件后,将其转发给外部处理
|
|
71
|
+
onReceiveGift?.call(liveID, gift, count, sender);
|
|
72
|
+
},
|
|
73
|
+
);
|
|
74
|
+
giftStore.addGiftListener(_giftListener);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/// 3. 订阅礼物列表状态
|
|
78
|
+
void _subscribeToGiftState() {
|
|
79
|
+
giftStore.giftState.usableGifts.addListener(_giftListChangedListener);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
void _onGiftListChanged() {
|
|
83
|
+
giftListNotifier.value = giftStore.giftState.usableGifts.value;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// 在退出直播间时可调用 dispose 方法回收资源
|
|
87
|
+
void dispose() {
|
|
88
|
+
giftStore.removeGiftListener(_giftListener);
|
|
89
|
+
giftStore.giftState.usableGifts.removeListener(_giftListChangedListener);
|
|
90
|
+
giftListNotifier.dispose();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### 礼物列表结构体参数
|
|
96
|
+
- `GiftCategory`**参数说明**
|
|
97
|
+
|
|
98
|
+
| **参数** | **类型** | **描述** |
|
|
99
|
+
| --- | --- | --- |
|
|
100
|
+
| `categoryID` | `String` | 礼物分类的唯一 ID。 |
|
|
101
|
+
| `name` | `String` | 礼物分类的显示名称。 |
|
|
102
|
+
| `desc` | `String` | 礼物分类的描述信息。 |
|
|
103
|
+
| `extensionInfo` | `Map<String, String>` | 扩展信息字段。 |
|
|
104
|
+
| `giftList` | `List<Gift>` | 该分类下包含的 Gift 礼物对象数组。 |
|
|
105
|
+
|
|
106
|
+
- `Gift`**参数说明**
|
|
107
|
+
|
|
108
|
+
| **参数** | **类型** | **描述** |
|
|
109
|
+
| --- | --- | --- |
|
|
110
|
+
| `giftID` | `String` | 礼物的唯一 ID。 |
|
|
111
|
+
| `name` | `String` | 礼物的显示名称。 |
|
|
112
|
+
| `desc` | `String` | 礼物的描述信息。 |
|
|
113
|
+
| `iconURL` | `String` | 礼物图标 URL。 |
|
|
114
|
+
| `resourceURL` | `String` | 礼物动画资源 URL。 |
|
|
115
|
+
| `level` | `int` | 礼物等级。 |
|
|
116
|
+
| `coins` | `int` | 礼物价格。 |
|
|
117
|
+
| `extensionInfo` | `Map<String, String>` | 扩展信息字段。 |
|
|
118
|
+
|
|
119
|
+
### 步骤3:获取礼物列表
|
|
120
|
+
|
|
121
|
+
调用 `refreshUsableGifts` 方法,从服务端拉取礼物数据。
|
|
122
|
+
|
|
123
|
+
#### 实现方式:
|
|
124
|
+
1. **调用接口**:在合适的时机(例如进入直播间后)调用 `giftStore.refreshUsableGifts()`。
|
|
125
|
+
|
|
126
|
+
2. **处理结果**:可选地处理返回结果以获知拉取结果。
|
|
127
|
+
|
|
128
|
+
3. **接收数据**:拉取成功后,通过步骤2中对 `giftStore.giftState.usableGifts` 的监听,自动接收到更新后的礼物列表。
|
|
129
|
+
|
|
130
|
+
#### 代码示例:
|
|
131
|
+
``` java
|
|
132
|
+
extension GiftManagerFetch on GiftManager {
|
|
133
|
+
/// 从服务端刷新礼物列表
|
|
134
|
+
Future<void> fetchGiftList() async {
|
|
135
|
+
final result = await giftStore.refreshUsableGifts();
|
|
136
|
+
if (result.isSuccess) {
|
|
137
|
+
debugPrint("礼物列表拉取成功");
|
|
138
|
+
// 成功后,数据会通过 usableGifts 监听自动更新
|
|
139
|
+
} else {
|
|
140
|
+
debugPrint("礼物列表拉取失败: ${result.errorMessage}");
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 步骤4:发送礼物
|
|
147
|
+
|
|
148
|
+
当用户在礼物面板选择一个礼物并点击发送时,调用 `sendGift` 接口将礼物发送出去。
|
|
149
|
+
|
|
150
|
+
#### 实现方式:
|
|
151
|
+
1. **获取参数**:从 UI 获取用户选择的 giftID 和发送数量 count。
|
|
152
|
+
|
|
153
|
+
2. **调用接口**:调用 `giftStore.sendGift(giftID:, count:)`。
|
|
154
|
+
|
|
155
|
+
3. **处理结果**:在返回结果中处理发送失败的情况(例如余额不足提示);发送成功后的 UI 更新(动画、弹幕)应由 `onReceiveGift` 事件驱动。
|
|
156
|
+
|
|
157
|
+
#### 代码示例:
|
|
158
|
+
``` java
|
|
159
|
+
extension GiftManagerSend on GiftManager {
|
|
160
|
+
/// 用户发送一个礼物
|
|
161
|
+
Future<void> sendGift(String giftID, int count) async {
|
|
162
|
+
final result = await giftStore.sendGift(giftID: giftID, count: count);
|
|
163
|
+
if (result.isSuccess) {
|
|
164
|
+
debugPrint("礼物 $giftID 发送成功");
|
|
165
|
+
// 发送成功后,包括发送者在内的所有人都会收到 onReceiveGift 事件
|
|
166
|
+
} else {
|
|
167
|
+
debugPrint("礼物发送失败: ${result.errorMessage}");
|
|
168
|
+
// 可以在此提示用户,例如“余额不足”或“网络错误”
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
#### `sendGift` 接口参数
|
|
175
|
+
| **参数名** | **类型** | **描述** |
|
|
176
|
+
| --- | --- | --- |
|
|
177
|
+
| `giftID` | `String` | 要发送的礼物的唯一 ID。 |
|
|
178
|
+
| `count` | `int` | 发送的数量。 |
|
|
179
|
+
|
|
180
|
+
## 功能进阶
|
|
181
|
+
|
|
182
|
+
`GiftStore` 的功能高度依赖于您的业务后台服务。本章将指导您如何通过服务端配置和客户端实现,构建功能丰富、体验卓越的礼物互动系统。
|
|
183
|
+
|
|
184
|
+
### **礼物素材配置**
|
|
185
|
+
|
|
186
|
+
您需要自定义直播间可用的礼物种类、分类、名称、图标、价格以及动画效果,以满足运营需求和品牌特色。
|
|
187
|
+
|
|
188
|
+
#### **实现方式**
|
|
189
|
+
1. **服务端配置**:使用 LiveKit 服务端 REST API 管理礼物信息、分类、多语言等。请参考 礼物配置指引文档。
|
|
190
|
+
|
|
191
|
+
2. **客户端拉取**:在客户端调用 `refreshUsableGifts` 获取配置数据。
|
|
192
|
+
|
|
193
|
+
3. **UI 展示**:使用拉取到的 `List<GiftCategory>` 数据填充礼物面板。
|
|
194
|
+
|
|
195
|
+
#### **配置时序图**
|
|
196
|
+
|
|
197
|
+
#### **涉及 REST API 接口一览**
|
|
198
|
+
| **接口分类** | **接口** | **请求示例** |
|
|
199
|
+
| --- | --- | --- |
|
|
200
|
+
| 礼物管理 | 添加礼物信息 | 请求示例 |
|
|
201
|
+
| 礼物管理 | 删除礼物信息 | 请求示例 |
|
|
202
|
+
| 礼物管理 | 查询礼物信息 | 请求示例 |
|
|
203
|
+
| 礼物分类管理 | 添加礼物分类信息 | 请求示例 |
|
|
204
|
+
| 礼物分类管理 | 删除指定礼物分类信息 | 请求示例 |
|
|
205
|
+
| 礼物分类管理 | 获取指定礼物分类信息 | 请求示例 |
|
|
206
|
+
| 礼物关系管理 | 添加指定礼物分类和礼物间的关系 | 请求示例 |
|
|
207
|
+
| 礼物关系管理 | 删除指定礼物分类和礼物间的关系 | 请求示例 |
|
|
208
|
+
| 礼物关系管理 | 获取指定礼物分类下的礼物关系 | 请求示例 |
|
|
209
|
+
| 礼物多语言管理 | 添加礼物多语言信息 | 请求示例 |
|
|
210
|
+
| 礼物多语言管理 | 删除指定礼物多语言信息 | 请求示例 |
|
|
211
|
+
| 礼物多语言管理 | 获取礼物多语言信息 | 请求示例 |
|
|
212
|
+
| 礼物多语言管理 | 添加礼物分类多语言信息 | 请求示例 |
|
|
213
|
+
| 礼物多语言管理 | 删除指定礼物分类多语言信息 | 请求示例 |
|
|
214
|
+
| 礼物多语言管理 | 获取礼物分类多语言信息 | 请求示例 |
|
|
215
|
+
|
|
216
|
+
### 计费与送礼扣费流程
|
|
217
|
+
|
|
218
|
+
当观众赠送礼物时,需要确保其账户余额充足,并完成实际的扣费操作,然后才能触发礼物特效的播放和广播。
|
|
219
|
+
|
|
220
|
+
#### 实现方式
|
|
221
|
+
1. **后台配置回调**:在 LiveKit 后台配置您的自建计费系统的回调 URL。参考 回调配置文档。
|
|
222
|
+
|
|
223
|
+
2. **客户端发送**:客户端调用 `sendGift`。
|
|
224
|
+
|
|
225
|
+
3. **后台交互**:LiveKit 后台调用您的回调 URL,您的计费系统执行扣费并返回结果。
|
|
226
|
+
|
|
227
|
+
4. **结果同步**:扣费成功,AtomicXCore 广播 `onReceiveGift` 事件。扣费失败,`sendGift` 返回错误。
|
|
228
|
+
|
|
229
|
+
#### 调用流程图
|
|
230
|
+
|
|
231
|
+
#### 涉及 REST API 接口一览
|
|
232
|
+
| **接口** | **说明** | **请求示例** |
|
|
233
|
+
| --- | --- | --- |
|
|
234
|
+
| 回调配置 - 发送礼物之前回调 | 客户后台可以通过该回调决定是否通过送礼前校验等场景 | 调用示例 |
|
|
235
|
+
|
|
236
|
+
### 播放全屏礼物动画
|
|
237
|
+
|
|
238
|
+
当直播间有用户(包括自己)发送了“火箭”、“嘉年华”等豪华礼物时,全屏播放一个酷炫的礼物动画(例如 SVGA 动画),营造热烈的氛围。
|
|
239
|
+
|
|
240
|
+
#### 实现方式
|
|
241
|
+
|
|
242
|
+
`AtomicXCore` 本身不包含礼物动画播放器,您需要根据业务需求选择并集成第三方库。以下是两种方案的对比:
|
|
243
|
+
| **对比项** | **基础方案 (svgaplayer_flutter)** | **高级方案 (TCEffectPlayerKit)** |
|
|
244
|
+
| --- | --- | --- |
|
|
245
|
+
| 计费 | 免费 (开源库) | 付费 (需购买 License),请参见 [付费指引](https://cloud.tencent.com/document/product/616/116461) |
|
|
246
|
+
| 集成方式 | 需手动集成 [svgaplayer_flutter](https://pub.dev/packages/svgaplayer_flutter) 库 | 需额外集成 [flutter_effect_player](https://github.com/Tencent-RTC/EffectPlayer_Flutter)库并进行鉴权 |
|
|
247
|
+
| 动画格式支持 | 仅支持 SVGA | SVGA、PAG、WebP、Lottie、MP4 等多种格式 |
|
|
248
|
+
| 性能 | 建议 SVGA 文件 ≤ 10MB | 支持更大的动画文件,复杂特效/多动画并发/低端机表现更优 |
|
|
249
|
+
| 推荐场景 | 礼物动画格式统一为 SVGA,且文件大小可控 | 需要支持多种动画格式,或对动画性能/设备兼容性有更高要求 |
|
|
250
|
+
|
|
251
|
+
本章节主要演示基础方案的集成。如果您选择高级方案,请参考 [EffectPlayer Flutter 集成指引](https://cloud.tencent.com/document/product/616/123945)。
|
|
252
|
+
|
|
253
|
+
#### 基础方案实现:使用 svgaplayer_flutter
|
|
254
|
+
1. **集成 svgaplayer_flutter**:在您的 `pubspec.yaml` 文件中,添加依赖并运行 `flutter pub get`。
|
|
255
|
+
|
|
256
|
+
``` yaml
|
|
257
|
+
dependencies:
|
|
258
|
+
svgaplayer_flutter: ^2.0.0
|
|
259
|
+
```
|
|
260
|
+
2. **监听礼物事件**:通过 `GiftStore` 的 `addGiftListener` 添加监听器。
|
|
261
|
+
|
|
262
|
+
3. **解析并播放**:当收到 `onReceiveGift` 事件时,检查 `gift.resourceURL` 是否有效且指向一个 SVGA 文件。如果是,则使用 `SVGAAnimationController` 播放动画。
|
|
263
|
+
|
|
264
|
+
#### 代码示例
|
|
265
|
+
``` java
|
|
266
|
+
import 'package:flutter/material.dart';
|
|
267
|
+
import 'package:atomic_x_core/atomicxcore.dart';
|
|
268
|
+
import 'package:svgaplayer_flutter/svgaplayer_flutter.dart';
|
|
269
|
+
|
|
270
|
+
class LiveRoomWidget extends StatefulWidget {
|
|
271
|
+
final String liveId;
|
|
272
|
+
const LiveRoomWidget({Key? key, required this.liveId}) : super(key: key);
|
|
273
|
+
|
|
274
|
+
@override
|
|
275
|
+
State<LiveRoomWidget> createState() => _LiveRoomWidgetState();
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
class _LiveRoomWidgetState extends State<LiveRoomWidget> with SingleTickerProviderStateMixin {
|
|
279
|
+
late GiftManager giftManager;
|
|
280
|
+
|
|
281
|
+
// SVGA 播放器
|
|
282
|
+
late SVGAAnimationController _svgaController;
|
|
283
|
+
bool _showAnimation = false;
|
|
284
|
+
|
|
285
|
+
@override
|
|
286
|
+
void initState() {
|
|
287
|
+
super.initState();
|
|
288
|
+
_svgaController = SVGAAnimationController(vsync: this);
|
|
289
|
+
_setupGiftSubscription();
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
void _setupGiftSubscription() {
|
|
293
|
+
giftManager = GiftManager(liveId: widget.liveId);
|
|
294
|
+
|
|
295
|
+
giftManager.onReceiveGift = (liveID, gift, count, sender) {
|
|
296
|
+
if (gift.resourceURL.isNotEmpty) {
|
|
297
|
+
_playAnimation(gift.resourceURL);
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
Future<void> _playAnimation(String url) async {
|
|
303
|
+
try {
|
|
304
|
+
final videoItem = await SVGAParser.shared.decodeFromURL(url);
|
|
305
|
+
_svgaController.videoItem = videoItem;
|
|
306
|
+
setState(() {
|
|
307
|
+
_showAnimation = true;
|
|
308
|
+
});
|
|
309
|
+
_svgaController.forward().whenComplete(() {
|
|
310
|
+
setState(() {
|
|
311
|
+
_showAnimation = false;
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
} catch (e) {
|
|
315
|
+
debugPrint("SVGA 动画解析失败: $e");
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
@override
|
|
320
|
+
void dispose() {
|
|
321
|
+
_svgaController.dispose();
|
|
322
|
+
giftManager.dispose();
|
|
323
|
+
super.dispose();
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@override
|
|
327
|
+
Widget build(BuildContext context) {
|
|
328
|
+
return Stack(
|
|
329
|
+
children: [
|
|
330
|
+
// 直播画面
|
|
331
|
+
// ...
|
|
332
|
+
|
|
333
|
+
// 全屏礼物动画
|
|
334
|
+
if (_showAnimation)
|
|
335
|
+
Positioned.fill(
|
|
336
|
+
child: SVGAImage(_svgaController),
|
|
337
|
+
),
|
|
338
|
+
],
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### 在弹幕区展示礼物赠送消息
|
|
345
|
+
|
|
346
|
+
当有用户发送礼物时,不仅播放动画,同时在公屏弹幕区域显示一条系统消息,例如:“【观众昵称】送出了【礼物名称】x【数量】”,让所有观众都能看到。
|
|
347
|
+
|
|
348
|
+
#### 实现方式
|
|
349
|
+
1. **监听事件**:通过 `giftStore.addGiftListener` 添加监听器。
|
|
350
|
+
|
|
351
|
+
2. **获取信息**:收到 `onReceiveGift` 事件后,提取发送者 sender、礼物 gift 和数量 count。
|
|
352
|
+
|
|
353
|
+
3. **获取弹幕 Store**:使用 `BarrageStore.create(liveId)` 获取与当前房间绑定的实例。
|
|
354
|
+
|
|
355
|
+
4. **拼接消息**:创建一条 `Barrage` 对象,设置 `messageType = BarrageType.text`,`textContent` 为拼接好的字符串(例如 “[`sender.userName`] 送出了 [`gift.name`] x [`count`]”)。
|
|
356
|
+
|
|
357
|
+
5. **本地插入**:调用 `barrageStore.appendLocalTip(giftTip)` 将消息插入本地列表。
|
|
358
|
+
|
|
359
|
+
#### 代码示例
|
|
360
|
+
``` java
|
|
361
|
+
// 在 LiveRoomManager 或类似的顶层管理器中
|
|
362
|
+
void _setupGiftToBarrageFlow() {
|
|
363
|
+
final giftStore = GiftStore.create(liveId);
|
|
364
|
+
final barrageStore = BarrageStore.create(liveId);
|
|
365
|
+
|
|
366
|
+
final giftListener = GiftListener(
|
|
367
|
+
onReceiveGift: (liveID, gift, count, sender) {
|
|
368
|
+
// 拼接消息
|
|
369
|
+
final tipText = "${sender.userName} 送出了 ${gift.name} x $count";
|
|
370
|
+
final giftTip = Barrage(
|
|
371
|
+
messageType: BarrageType.text,
|
|
372
|
+
textContent: tipText,
|
|
373
|
+
);
|
|
374
|
+
// 可选:设置一个特殊的sender
|
|
375
|
+
|
|
376
|
+
// 本地插入
|
|
377
|
+
barrageStore.appendLocalTip(giftTip);
|
|
378
|
+
},
|
|
379
|
+
);
|
|
380
|
+
|
|
381
|
+
giftStore.addGiftListener(giftListener);
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
## API 文档
|
|
386
|
+
|
|
387
|
+
关于 [GiftStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftStore-class.html) 及其相关类的所有公开接口、属性和方法的详细信息,请参阅 [AtomicXCore](https://tencent-rtc.github.io/TUIKit_Flutter/index.html) 框架的官方 API 文档。本指南使用到的相关 Store 如下:
|
|
388
|
+
| **Store/Component** | **功能描述** | **API 文档** |
|
|
389
|
+
| --- | --- | --- |
|
|
390
|
+
| **GiftStore** | 礼物互动:获取礼物列表,发送 / 接收礼物,监听礼物事件(含发送者、礼物详情)。 | [API 文档](https://tencent-rtc.github.io/TUIKit_Flutter/api_gift_gift_store/GiftStore-class.html) |
|
|
391
|
+
| **BarrageStore** | 弹幕功能:发送文本 / 自定义弹幕,维护弹幕列表,实时监听弹幕状态。 | [API 文档](https://tencent-rtc.github.io/TUIKit_Flutter/api_barrage_barrage_store/BarrageStore-class.html) |
|
|
392
|
+
|
|
393
|
+
## 常见问题
|
|
394
|
+
|
|
395
|
+
### `GiftStore` 的礼物列表是空的,我该怎么办?
|
|
396
|
+
|
|
397
|
+
您必须主动调用 `refreshUsableGifts()` 来从您的业务后台拉取礼物数据。这些礼物数据需要在您的业务后台通过服务端 REST API 进行配置。
|
|
398
|
+
|
|
399
|
+
### 如何实现礼物的多语言展示(例如中文、英文)?
|
|
400
|
+
|
|
401
|
+
`GiftStore` 提供了 `setLanguage(String language)` 接口。您可以在 `refreshUsableGifts` 之前调用此方法,传入目标语言代码(例如 “en” 或 “zh-CN”)。服务端会根据此语言代码,返回对应语言的礼物名称和描述。
|
|
402
|
+
|
|
403
|
+
### 我调用 sendGift 发送了礼物,礼物动画为什么重复播放了两次?
|
|
404
|
+
|
|
405
|
+
`onReceiveGift` 事件是对房间内所有成员的广播(包括发送者自己)。如果您在 `sendGift` 的成功回调里执行了一次 UI 操作,同时又在 `onReceiveGift` 回调中执行了相同的 UI 操作,就会造成重复。
|
|
406
|
+
- **最佳实践**:UI 的更新(例如播放动画、弹幕提示)只在 `onReceiveGift` 事件的回调中处理。`sendGift` 的返回结果仅用于处理发送失败的逻辑(例如提示用户“发送失败”或“余额不足”)。
|
|
407
|
+
|
|
408
|
+
### 礼物扣费逻辑在哪里实现?
|
|
409
|
+
|
|
410
|
+
礼物扣费逻辑完全由您的自建计费系统负责。`AtomicXCore` 通过后台回调机制与您的计费系统对接。客户端调用 `sendGift` 触发回调,您的后台服务完成扣费后,将结果返回给 `AtomicXCore` 后台,从而决定礼物事件是否广播。
|
|
411
|
+
|
|
412
|
+
### 送礼通知会被禁言或频控拦截吗?
|
|
413
|
+
|
|
414
|
+
不会。送礼通知(`onReceiveGift` 事件)不受禁言或消息频控影响,确保可靠投递。
|
|
415
|
+
|
|
416
|
+
### 礼物动画播放卡顿怎么办?
|
|
417
|
+
|
|
418
|
+
请检查您的 SVGA 文件大小,基础播放器建议不要超过 10MB。如果文件过大或动画复杂,您可以考虑集成 TUILiveKit 提供的高级特效播放器,以获得更优的性能表现。
|