@tencent-rtc/mcp 1.6.3 → 1.6.5
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 +0 -4
- package/knowledge/chunker.js +83 -54
- package/knowledge/path-meta.js +179 -26
- package/knowledge/search/exact-lookup.js +153 -0
- package/knowledge/search/filter-pool.js +73 -19
- package/knowledge/search/product-scope-intent.js +2 -2
- package/knowledge/search/requires-framework.js +2 -2
- package/knowledge/search/search-knowledge.js +235 -58
- package/package.json +1 -1
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +2 -4
- package/resource/integration/callkit/preset/flutter/integration.md +4 -5
- package/resource/integration/callkit/preset/ios/integration.md +1 -4
- package/resource/integration/callkit/preset/react/integration.md +13 -20
- package/resource/integration/callkit/preset/vue/integration.md +14 -21
- package/resource/integration/chat/preset/android/integration.md +6 -9
- package/resource/integration/chat/preset/flutter/integration.md +9 -12
- package/resource/integration/chat/preset/ios/integration.md +2 -4
- package/resource/integration/chat/preset/react/integration.md +0 -10
- package/resource/integration/livekit/preset/live/android/live-audience-integration.md +129 -0
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +219 -0
- package/resource/integration/livekit/preset/live/android/live-list-integration.md +261 -0
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +254 -0
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +202 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +369 -0
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +229 -0
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +204 -0
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +0 -3
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -5
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -6
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +5 -10
- package/resource/integration/roomkit/preset/vue/integration.md +0 -4
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +24 -0
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +7 -8
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -7
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +3 -5
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +2 -6
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +2 -6
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +4 -9
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1 -4
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +8 -11
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +17 -23
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +33 -0
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +327 -0
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +33 -0
- package/resource/knowledge/callkit/faq/android.md +0 -2
- package/resource/knowledge/callkit/faq/error-code.md +0 -2
- package/resource/knowledge/callkit/faq/flutter.md +2 -2
- package/resource/knowledge/callkit/faq/ios.md +3 -5
- package/resource/knowledge/callkit/faq/web.md +2 -3
- package/resource/knowledge/callkit/preset/android/api.md +2 -5
- package/resource/knowledge/callkit/preset/ios/api.md +0 -2
- package/resource/knowledge/callkit/preset/react/api.md +445 -0
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +445 -0
- package/resource/knowledge/callkit/preset/vue/api.md +465 -0
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +465 -0
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -1
- package/resource/knowledge/chat/preset/android/features/language.md +0 -1
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
- package/resource/knowledge/chat/preset/android/features/message-list.md +2 -3
- package/resource/knowledge/chat/preset/android/features/search.md +0 -1
- package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/android-view/integration.md +3 -11
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -2
- package/resource/knowledge/chat/preset/flutter/features/search.md +5 -6
- package/resource/knowledge/chat/preset/flutter/features/theme.md +2 -2
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -2
- package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -2
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +13 -15
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +5 -5
- package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/react/features/theme.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +7 -14
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +5 -8
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +15 -18
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +15 -20
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +10 -13
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +8 -10
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +5 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +7 -14
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +6 -9
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +15 -18
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +15 -20
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +10 -13
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +8 -10
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +3 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +7 -14
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +5 -8
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +6 -9
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +5 -10
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +3 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +24 -24
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +1 -2
- package/resource/knowledge/livekit/core-sdk/{live/android/live-gift.md → features/android/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-room-list.md → features/android/live-list.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{live/flutter/live-gift.md → features/flutter/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -2
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-gift.md → features/ios/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-room-list.md → features/ios/live-list.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
- package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +5 -7
- package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +3 -6
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -4
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +2 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +3 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +3 -6
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +1 -2
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +6 -9
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +4 -6
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +1 -4
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +0 -2
- package/resource/knowledge/push/api-reference/android.md +123 -0
- package/resource/knowledge/push/api-reference/flutter.md +176 -0
- package/resource/knowledge/push/api-reference/harmonyos.md +138 -0
- package/resource/knowledge/push/api-reference/ios.md +176 -0
- package/resource/knowledge/push/api-reference/react-native.md +147 -0
- package/resource/knowledge/push/api-reference/uni-app.md +147 -0
- package/resource/knowledge/push/api-reference/unity.md +119 -0
- package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
- package/resource/knowledge/push/config/android.md +4 -7
- package/resource/knowledge/push/config/harmonyos.md +0 -3
- package/resource/knowledge/push/config/ios.md +12 -20
- package/resource/knowledge/push/config/react-native.md +18 -26
- package/resource/knowledge/push/config/unity.md +20 -28
- package/resource/knowledge/push/config/unreal-engine.md +21 -29
- package/resource/knowledge/push/integration/android.md +6 -8
- package/resource/knowledge/push/integration/flutter.md +6 -9
- package/resource/knowledge/push/integration/harmonyos.md +1 -0
- package/resource/knowledge/push/integration/ios.md +7 -9
- package/resource/knowledge/push/integration/react-native.md +9 -13
- package/resource/knowledge/push/integration/uni-app.md +7 -7
- package/resource/knowledge/push/integration/unity.md +10 -13
- package/resource/knowledge/push/integration/unreal-engine.md +6 -9
- package/resource/knowledge/push/overview/prepare.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +3 -3
- package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +6 -6
- package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +79 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +79 -0
- package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +79 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +5 -7
- package/resource/knowledge/roomkit/preset/flutter/integration.md +2 -7
- package/resource/knowledge/roomkit/preset/ios/integration.md +3 -9
- package/resource/knowledge/roomkit/preset/react/integration.md +12 -16
- package/resource/knowledge/trtc/android/TRTCCloud.md +154 -238
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +133 -134
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +86 -120
- package/resource/knowledge/trtc/android/TRTCStatistics.md +10 -10
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +10 -30
- package/resource/knowledge/trtc/android/TXBeautyManager.md +25 -25
- package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +12 -12
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +166 -261
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +12 -12
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +10 -30
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +9 -11
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +96 -130
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +122 -123
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +12 -12
- package/resource/knowledge/trtc/ios/TRTCCloud.md +168 -255
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +124 -125
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +89 -124
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +10 -10
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +9 -28
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +25 -25
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +9 -11
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +12 -12
- package/server-config.js +7 -4
- package/server.js +21 -21
- package/tools/common/finalize_answer.js +1 -1
- package/tools/common/present_framework_choice.js +2 -2
- package/tools/common/search_trtc_knowledge.js +3 -3
- package/tools/common/submit_feedback.js +1 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +61 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +3 -3
- package/tools/definitions/present_framework_choice_def.js +2 -2
- package/tools/definitions/search_trtc_knowledge_def.js +5 -5
- package/tools/index.js +2 -0
- package/tools/live/get_native_live_uikit_integration.js +69 -0
- package/tools/live/get_native_livekit_core_integration.js +6 -6
- package/utils/is-valid-sdkappid.js +4 -0
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/knowledge/callkit/preset/web/api.md +0 -83
- package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -226
- package/resource/knowledge/livekit/core-sdk/live/android/live-live-list.md +0 -438
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -490
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -264
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -216
- package/resource/knowledge/livekit/core-sdk/live/ios/live-gift.md +0 -407
- package/resource/knowledge/livekit/core-sdk/live/ios/live-live-list.md +0 -349
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -269
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -456
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-gift.md +0 -455
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -260
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -598
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +0 -424
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-barrage.md +0 -408
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/ios/live-barrage.md → features/ios/barrage.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -0
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
`LiveAudienceStore` is a module in `AtomicXCore` specialized in managing live streaming room audience information. With `LiveAudienceStore`, you can build a complete audience list and management system for your live stream application.
|
|
2
|
-
|
|
3
|
-
## Core Features
|
|
4
|
-
- **Real-Time Audience List**: Access and display details for all current audience members in the live room.
|
|
5
|
-
|
|
6
|
-
- **Audience Count Statistics**: Get the real-time total number of audience members in the live room.
|
|
7
|
-
|
|
8
|
-
- **Audience Events**: Subscribe to events to instantly detect when audience members join or leave.
|
|
9
|
-
|
|
10
|
-
- **Admin Privileges**: Hosts can promote audience members to administrators or revoke their admin status.
|
|
11
|
-
|
|
12
|
-
- **Room Management**: Hosts or administrators can remove (kick out) any regular audience member from the live room.
|
|
13
|
-
|
|
14
|
-
## Core Concepts
|
|
15
|
-
|
|
16
|
-
The following table introduces the core concepts of `LiveAudienceStore`:
|
|
17
|
-
|
|
18
|
-
|**Core Concepts**|**Type**|**Core Responsibilities and Description**|
|
|
19
|
-
|---------|---------|---------|
|
|
20
|
-
|[LiveUserInfo](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_audience_store/LiveUserInfo-class.html)|`class`|Represents the basic information model for an audience member. Includes the user’s unique identifier (`userID`), nickname (`userName`), and avatar URL (`avatarURL`).|
|
|
21
|
-
|[LiveAudienceState](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_audience_store/LiveAudienceState-class.html)|`class`|Represents the current status of the audience module. Its core attribute `audienceList` is a `ValueListenable<List<LiveUserInfo>>`, storing a snapshot of the audience list; `audienceCount` signifies the total number of current audience.|
|
|
22
|
-
|[LiveAudienceListener](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_audience_store/LiveAudienceListener-class.html)|`class`|Handles real-time event listening for audience activity. Includes two callbacks: `onAudienceJoined` (audience member joins) and `onAudienceLeft` (audience member leaves), used for incremental updates to the audience list.|
|
|
23
|
-
|[LiveAudienceStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_audience_store/LiveAudienceStore-class.html)|`class`|The main management class for audience list operations. Use it to get audience snapshots, perform management actions, and receive real-time updates via `addLiveAudienceListener`.|
|
|
24
|
-
|
|
25
|
-
## Implementation Steps
|
|
26
|
-
|
|
27
|
-
### Step 1: Integrate the Components
|
|
28
|
-
- **Live streaming**: Refer to Quick Access for seamless integration with **AtomicXCore** and service access.
|
|
29
|
-
|
|
30
|
-
- **Voice chat room**: Refer to Quick Access for integration with **AtomicXCore** and access completed.
|
|
31
|
-
|
|
32
|
-
### Step 2: Initialize and Obtain Audience List
|
|
33
|
-
|
|
34
|
-
Retrieve a `LiveAudienceStore` instance bound to the current live streaming room `liveId`, actively pull the current audience list once for first-time show.
|
|
35
|
-
|
|
36
|
-
To release resources when leaving the live room, call the `dispose` method on AudienceManager.
|
|
37
|
-
``` java
|
|
38
|
-
import 'package:atomic_x_core/atomicxcore.dart';
|
|
39
|
-
|
|
40
|
-
class AudienceManager {
|
|
41
|
-
final String liveId;
|
|
42
|
-
late final LiveAudienceStore audienceStore;
|
|
43
|
-
late LiveAudienceListener _audienceListener;
|
|
44
|
-
late final VoidCallback _audienceListChangedListener = _onAudienceListChanged;
|
|
45
|
-
late final VoidCallback _audienceCountChangedListener = _onAudienceCountChanged;
|
|
46
|
-
|
|
47
|
-
// Externally exposed [full] audience list
|
|
48
|
-
List<LiveUserInfo> audienceList = [];
|
|
49
|
-
// Externally exposed total audience count
|
|
50
|
-
int audienceCount = 0;
|
|
51
|
-
|
|
52
|
-
// Status change callback
|
|
53
|
-
Function()? onStateChanged;
|
|
54
|
-
|
|
55
|
-
AudienceManager({required this.liveId}) {
|
|
56
|
-
// 1. Retrieve an instance of LiveAudienceStore by liveId
|
|
57
|
-
audienceStore = LiveAudienceStore.create(liveId);
|
|
58
|
-
|
|
59
|
-
// 2. Subscribe to status and events
|
|
60
|
-
_subscribeToAudienceState();
|
|
61
|
-
_subscribeToAudienceEvents();
|
|
62
|
-
|
|
63
|
-
// 3. Actively pull first screen data
|
|
64
|
-
fetchInitialAudienceList();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/// Proactively retrieve an audience list snapshot once
|
|
68
|
-
Future<void> fetchInitialAudienceList() async {
|
|
69
|
-
final result = await audienceStore.fetchAudienceList();
|
|
70
|
-
if (result.isSuccess) {
|
|
71
|
-
print("First pull audience list successfully");
|
|
72
|
-
// Upon success, data will be auto-updated via the state subscription channel below
|
|
73
|
-
} else {
|
|
74
|
-
print("First pull audience list failed: ${result.errorMessage}");
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
void dispose() {
|
|
79
|
-
audienceStore.liveAudienceState.audienceList.removeListener(_audienceListChangedListener);
|
|
80
|
-
audienceStore.liveAudienceState.audienceCount.removeListener(_audienceCountChangedListener);
|
|
81
|
-
audienceStore.removeLiveAudienceListener(_audienceListener);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
The audience list and other `state` subscriptions will be explained in detail in the next step.
|
|
87
|
-
|
|
88
|
-
### Step 3: Monitoring the Audience List Status and Real-Time Updates
|
|
89
|
-
|
|
90
|
-
Subscribe to `liveAudienceState` and `LiveAudienceListener` on `audienceStore` to receive full audience list snapshots and real-time join/leave events, driving UI updates.
|
|
91
|
-
``` java
|
|
92
|
-
extension AudienceManagerSubscription on AudienceManager {
|
|
93
|
-
/// Subscribe to state to obtain the total count of audience and list snapshots
|
|
94
|
-
void _subscribeToAudienceState() {
|
|
95
|
-
// Listen to audience list adjustments
|
|
96
|
-
audienceStore.liveAudienceState.audienceList.addListener(_audienceListChangedListener);
|
|
97
|
-
// Listen to audience change rate
|
|
98
|
-
audienceStore.liveAudienceState.audienceCount.addListener(_audienceCountChangedListener);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
void _onAudienceListChanged() {
|
|
102
|
-
// audienceList is a full snapshot
|
|
103
|
-
audienceList = audienceStore.liveAudienceState.audienceList.value;
|
|
104
|
-
onStateChanged?.call();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
void _onAudienceCountChanged() {
|
|
108
|
-
// audienceCount is the real-time total count
|
|
109
|
-
audienceCount = audienceStore.liveAudienceState.audienceCount.value;
|
|
110
|
-
onStateChanged?.call();
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/// Subscribe to events for processing real-time audience entry and exit
|
|
114
|
-
void _subscribeToAudienceEvents() {
|
|
115
|
-
_audienceListener = LiveAudienceListener(
|
|
116
|
-
onAudienceJoined: (audience) {
|
|
117
|
-
print("Audience ${audience.userName} joined the live streaming room");
|
|
118
|
-
// Incremental update: Add new audience at the end of the current list
|
|
119
|
-
if (!audienceList.any((a) => a.userID == audience.userID)) {
|
|
120
|
-
audienceList.add(audience);
|
|
121
|
-
onStateChanged?.call();
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
onAudienceLeft: (audience) {
|
|
125
|
-
print("Audience ${audience.userName} left the live streaming room");
|
|
126
|
-
// Incremental update: Remove leaving audience from the current list
|
|
127
|
-
audienceList.removeWhere((a) => a.userID == audience.userID);
|
|
128
|
-
onStateChanged?.call();
|
|
129
|
-
},
|
|
130
|
-
);
|
|
131
|
-
audienceStore.addLiveAudienceListener(_audienceListener);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Step 4: Manage Audience Members
|
|
137
|
-
|
|
138
|
-
As a host or administrator, you can manage audience members in the live room.
|
|
139
|
-
|
|
140
|
-
#### 4.1 Remove Audience Member from Live Room
|
|
141
|
-
|
|
142
|
-
Call the `kickUserOutOfRoom` API to remove designated users from the live streaming room.
|
|
143
|
-
``` java
|
|
144
|
-
extension AudienceManagerActions on AudienceManager {
|
|
145
|
-
Future<void> kick(String userId) async {
|
|
146
|
-
final result = await audienceStore.kickUserOutOfRoom(userId);
|
|
147
|
-
if (result.isSuccess) {
|
|
148
|
-
print("Successfully kicked user $userId out of room");
|
|
149
|
-
// Upon success, you will receive the onAudienceLeft event
|
|
150
|
-
} else {
|
|
151
|
-
print("Failed to kick out user $userId: ${result.errorMessage}");
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
#### 4.2 Set or Revoke Administrator Privileges
|
|
158
|
-
|
|
159
|
-
Use the `setAdministrator` and `revokeAdministrator` APIs to manage user administrator privileges.
|
|
160
|
-
``` java
|
|
161
|
-
extension AudienceManagerAdmin on AudienceManager {
|
|
162
|
-
/// Set the user as administrator
|
|
163
|
-
Future<void> promoteToAdmin(String userId) async {
|
|
164
|
-
final result = await audienceStore.setAdministrator(userId);
|
|
165
|
-
if (result.isSuccess) {
|
|
166
|
-
print("Successfully set user $userId as administrator");
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/// Revoke the user's administrator privileges
|
|
171
|
-
Future<void> revokeAdmin(String userId) async {
|
|
172
|
-
final result = await audienceStore.revokeAdministrator(userId);
|
|
173
|
-
if (result.isSuccess) {
|
|
174
|
-
print("Successfully revoked user $userId's administrator privileges");
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
## Advanced Features
|
|
181
|
-
|
|
182
|
-
### Show Welcome Message in Live Comments
|
|
183
|
-
|
|
184
|
-
When a new audience enters the live room, the bullet screen/chat area will automatically display a welcome message locally, such as "Welcome [user nickname] to the live room."
|
|
185
|
-
|
|
186
|
-
#### Implementation
|
|
187
|
-
|
|
188
|
-
Subscribe to the `onAudienceJoined` event from `LiveAudienceStore` to receive real-time notifications when a new audience member joins. When triggered, extract the user’s nickname and call the `appendLocalTip` API from BarrageStore to insert the welcome message.
|
|
189
|
-
|
|
190
|
-
Release resources when leaving the live room by calling the `dispose` method on `LiveRoomManager`.
|
|
191
|
-
``` java
|
|
192
|
-
import 'package:atomic_x_core/atomicxcore.dart';
|
|
193
|
-
|
|
194
|
-
class LiveRoomManager {
|
|
195
|
-
final String liveId;
|
|
196
|
-
late LiveAudienceListener _welcomeListener;
|
|
197
|
-
|
|
198
|
-
LiveRoomManager({required this.liveId}) {
|
|
199
|
-
_setupWelcomeMessageFlow();
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
void _setupWelcomeMessageFlow() {
|
|
203
|
-
// 1. Retrieve an instance of LiveAudienceStore
|
|
204
|
-
final audienceStore = LiveAudienceStore.create(liveId);
|
|
205
|
-
|
|
206
|
-
// 2. Retrieve an instance of BarrageStore (thanks to the internal mechanism, this will be the same instance)
|
|
207
|
-
final barrageStore = BarrageStore.create(liveId);
|
|
208
|
-
|
|
209
|
-
// 3. Subscribe to audience events
|
|
210
|
-
_welcomeListener = LiveAudienceListener(
|
|
211
|
-
onAudienceJoined: (audience) {
|
|
212
|
-
// 4. Create a local Prompt message
|
|
213
|
-
final welcomeTip = Barrage(
|
|
214
|
-
messageType: BarrageType.text,
|
|
215
|
-
textContent: "Welcome ${audience.userName} to the live streaming room."
|
|
216
|
-
);
|
|
217
|
-
|
|
218
|
-
// 5. Call the BarrageStore API to insert it into the bullet screen list
|
|
219
|
-
barrageStore.appendLocalTip(welcomeTip);
|
|
220
|
-
},
|
|
221
|
-
);
|
|
222
|
-
audienceStore.addLiveAudienceListener(_welcomeListener);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
void dispose() {
|
|
226
|
-
final audienceStore = LiveAudienceStore.create(liveId);
|
|
227
|
-
audienceStore.removeLiveAudienceListener(_welcomeListener);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
## API documentation
|
|
233
|
-
|
|
234
|
-
For detailed information on all public APIs, properties, and methods for [LiveAudienceStore](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_audience_store/LiveAudienceStore-class.html) and related classes, see the official [AtomicXCore](https://tencent-rtc.github.io/TUIKit_Flutter/index.html) API documentation. The relevant Stores used in this guide are listed below:
|
|
235
|
-
|
|
236
|
-
|**Store/Component**|**Feature Description**|**API Reference**|
|
|
237
|
-
|---------|---------|---------|
|
|
238
|
-
|**LiveCoreWidget**|Core view component for live video stream display and interaction. Handles video stream rendering and widget management, supporting host live streaming, audience co-hosting, and host connection scenarios.|[API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_view_live_live_core_widget/LiveCoreWidget-class.html)|
|
|
239
|
-
|**LiveCoreController**|LiveCoreWidget controller: used to set up live streaming ID, control preview, and perform other operations.|[API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_view_live_live_core_widget/LiveCoreController-class.html)|
|
|
240
|
-
|**LiveAudienceStore**|Audience management: get real-time audience list (ID/name/avatar), check audience size, listen to Enter/Exit Event.|[API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_live_live_audience_store/LiveAudienceStore-class.html)|
|
|
241
|
-
|**BarrageStore**|Live comments: send text/custom comments, maintain the comment list, and monitor comment status in real time.|[API documentation](https://tencent-rtc.github.io/TUIKit_Flutter/api_barrage_barrage_store/api_barrage_barrage_store-library.html)|
|
|
242
|
-
|
|
243
|
-
## FAQs
|
|
244
|
-
|
|
245
|
-
### How is the online audience count (audienceCount) in LiveAudienceState updated? What are the timing and frequency?
|
|
246
|
-
- **Active Room Entry/Exit:** When a user joins or leaves the live room normally, the audience count notification is triggered instantly. You will immediately see the change in audienceCount in LiveAudienceState.
|
|
247
|
-
|
|
248
|
-
- **Abnormal Disconnection**: If a user disconnects due to network issues, app crashes, or similar problems, the system uses a heartbeat mechanism to determine their status. Only after missing heartbeats for 90 consecutive seconds will the system consider the user offline and trigger a count change notification.
|
|
249
|
-
|
|
250
|
-
- **Update Mechanism & Frequency Control**:
|
|
251
|
-
|
|
252
|
-
- Whether triggered instantly or delayed, all audience count change notifications are sent as messages within the room.
|
|
253
|
-
|
|
254
|
-
- Each room is limited to a maximum of 40 messages per second.
|
|
255
|
-
|
|
256
|
-
- Key Point: In high-traffic scenarios, such as live comment storms or gift spamming, if the room’s message rate exceeds 40 messages per second, the system prioritizes core messages (like live comments). Audience count change messages may be dropped due to frequency control.
|
|
257
|
-
|
|
258
|
-
**What does this mean for developers?**
|
|
259
|
-
|
|
260
|
-
`audienceCount` is a **high-precision estimate** very close to real time, but under extreme high concurrency scenarios, it may have brief delay or data loss. Therefore, we recommend that you use it for **UI display** and should not take it as the only basis for scenarios requiring absolute accuracy such as billing or statistics.
|