@tencent-rtc/mcp 1.3.9 → 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/{tuicallkit → callkit/preset}/android/integration.md +53 -365
- 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/{chatuikit → chatkit}/android/integration.md +28 -121
- 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 +18 -87
- 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/{voice → core-sdk/voice}/android/voice-audience-list.md +18 -89
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-audio-effect.md +34 -192
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-barrage.md +28 -141
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-co-guest-interaction.md +50 -259
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-gift.md +75 -455
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-host-interaction.md +51 -265
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-integration.md +61 -427
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-room-list.md +33 -173
- package/resource/doc/livekit/{voice → core-sdk/voice}/flutter/voice-co-guest-interaction.md +44 -203
- package/resource/doc/livekit/{voice → core-sdk/voice}/flutter/voice-integration.md +56 -416
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-audience-list.md +35 -111
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-audio-effect.md +35 -193
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-barrage.md +31 -144
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-co-guest-interaction.md +43 -252
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-gift.md +79 -459
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-host-interaction.md +46 -264
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-integration.md +61 -445
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-room-list.md +32 -169
- 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 +21 -76
- 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 -34
- 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 -41
- 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 -46
- 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 -61
- 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/workflow.md +0 -713
- 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/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 -733
- package/resource/doc/tuicallkit/android/workflow.md +0 -441
- 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/present-scenario-choice.js +0 -16
- package/tools/common/present-scenario-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 -75
- package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -63
- 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 -92
- 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/present_scenario_choice_def.js +0 -53
- package/tools/definitions/present_scenario_choice_def.js.map +0 -1
- package/tools/definitions/record_prompt_def.js +0 -58
- package/tools/definitions/record_prompt_def.js.map +0 -1
- package/tools/definitions/record_result_def.js +0 -46
- package/tools/definitions/record_result_def.js.map +0 -1
- package/tools/live/get-native-live-uikit-integration.js +0 -177
- 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 -194
- 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/iOS/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,8 +1,5 @@
|
|
|
1
1
|
`LiveAudienceStore` is a module in `AtomicXCore` designed for managing audience information in live streaming rooms. With `LiveAudienceStore`, you can implement a comprehensive audience list and management system for your live streaming application.
|
|
2
2
|
|
|
3
|
-

|
|
4
|
-
|
|
5
|
-
|
|
6
3
|
## Core Features
|
|
7
4
|
- **Real-Time Audience List**: Fetch and display the list of users currently in the room.
|
|
8
5
|
|
|
@@ -14,72 +11,34 @@
|
|
|
14
11
|
|
|
15
12
|
- **Room Management**: The host or administrator can remove specific viewers from the live room.
|
|
16
13
|
|
|
17
|
-
|
|
18
14
|
## Core Concepts
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<td rowspan="1" colSpan="1" >**Core Responsibilities & Description**</td>
|
|
26
|
-
</tr>
|
|
27
|
-
|
|
28
|
-
<tr>
|
|
29
|
-
<td rowspan="1" colSpan="1" >`LiveUserInfo`</td>
|
|
30
|
-
|
|
31
|
-
<td rowspan="1" colSpan="1" >`class`</td>
|
|
32
|
-
|
|
33
|
-
<td rowspan="1" colSpan="1" >- Data model representing a viewer.<br>- Contains basic profile information such as userID, userName, and avatarURL.</td>
|
|
34
|
-
</tr>
|
|
35
|
-
|
|
36
|
-
<tr>
|
|
37
|
-
<td rowspan="1" colSpan="1" >`LiveAudienceState`</td>
|
|
38
|
-
|
|
39
|
-
<td rowspan="1" colSpan="1" >`struct`</td>
|
|
40
|
-
|
|
41
|
-
<td rowspan="1" colSpan="1" >- State container for the audience module.<br>- Exposes `audienceList` (StateFlow) for the real-time user list and `audienceCount` for the total viewer count.</td>
|
|
42
|
-
</tr>
|
|
43
|
-
|
|
44
|
-
<tr>
|
|
45
|
-
<td rowspan="1" colSpan="1" >`LiveAudienceEvent`</td>
|
|
46
|
-
|
|
47
|
-
<td rowspan="1" colSpan="1" >`enum`</td>
|
|
48
|
-
|
|
49
|
-
<td rowspan="1" colSpan="1" >- Event listener for audience changes.<br>- Provides callbacks like `.onAudienceJoined` and` .onAudienceLeft` to handle incremental list updates.</td>
|
|
50
|
-
</tr>
|
|
51
|
-
|
|
52
|
-
<tr>
|
|
53
|
-
<td rowspan="1" colSpan="1" >`LiveAudienceStore`</td>
|
|
54
|
-
|
|
55
|
-
<td rowspan="1" colSpan="1" >`class`</td>
|
|
56
|
-
|
|
57
|
-
<td rowspan="1" colSpan="1" >- Primary interface for audience management.<br>- Used to fetch list snapshots, perform admin operations (e.g., kicking users), and subscribe to real-time events.</td>
|
|
58
|
-
</tr>
|
|
59
|
-
</table>
|
|
60
|
-
|
|
15
|
+
| **Core Concept** | **Type** | **Core Responsibilities & Description** |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| `LiveUserInfo` | `class` | - Data model representing a viewer.<br>- Contains basic profile information such as userID, userName, and avatarURL. |
|
|
18
|
+
| `LiveAudienceState` | `struct` | - State container for the audience module.<br>- Exposes `audienceList` (StateFlow) for the real-time user list and `audienceCount` for the total viewer count. |
|
|
19
|
+
| `LiveAudienceEvent` | `enum` | - Event listener for audience changes.<br>- Provides callbacks like `.onAudienceJoined` and` .onAudienceLeft` to handle incremental list updates. |
|
|
20
|
+
| `LiveAudienceStore` | `class` | - Primary interface for audience management.<br>- Used to fetch list snapshots, perform admin operations (e.g., kicking users), and subscribe to real-time events. |
|
|
61
21
|
|
|
62
22
|
## Implementation
|
|
63
23
|
|
|
64
24
|
### Step 1: Component Integration
|
|
65
|
-
- **Video Live Streaming**: Please refer to
|
|
66
|
-
|
|
67
|
-
- **Voice Chat Room**: Please refer to [Quick Start](https://write.woa.com/document/194571595685527552) to integrate AtomicXCore.
|
|
25
|
+
- **Video Live Streaming**: Please refer to Quick Start to integrate AtomicXCore.
|
|
68
26
|
|
|
27
|
+
- **Voice Chat Room**: Please refer to Quick Start to integrate AtomicXCore.
|
|
69
28
|
|
|
70
29
|
### Step 2: Initialize and Retrieve the Audience List
|
|
71
30
|
|
|
72
|
-
Get a `LiveAudienceStore` instance linked to the `liveId` and fetch the initial audience snapshot.
|
|
31
|
+
Get a `LiveAudienceStore` instance linked to the `liveId` and fetch the initial audience snapshot.
|
|
73
32
|
``` swift
|
|
74
33
|
import Foundation
|
|
75
|
-
import AtomicXCore
|
|
76
|
-
import Combine
|
|
34
|
+
import AtomicXCore
|
|
35
|
+
import Combine
|
|
77
36
|
|
|
78
37
|
class AudienceManager {
|
|
79
38
|
private let liveId: String
|
|
80
39
|
private let audienceStore: LiveAudienceStore
|
|
81
40
|
private var cancellables = Set<AnyCancellable>()
|
|
82
|
-
|
|
41
|
+
|
|
83
42
|
// Expose the [full] audience list publisher for UI layer subscription
|
|
84
43
|
let audienceListPublisher = CurrentValueSubject<[LiveUserInfo], Never>([])
|
|
85
44
|
// Expose the audience count publisher
|
|
@@ -89,11 +48,11 @@ class AudienceManager {
|
|
|
89
48
|
self.liveId = liveId
|
|
90
49
|
// 1. Get the LiveAudienceStore instance by liveId
|
|
91
50
|
self.audienceStore = LiveAudienceStore.create(liveID: liveId)
|
|
92
|
-
|
|
51
|
+
|
|
93
52
|
// 2. Subscribe to state and events
|
|
94
53
|
subscribeToAudienceState()
|
|
95
54
|
subscribeToAudienceEvents()
|
|
96
|
-
|
|
55
|
+
|
|
97
56
|
// 3. Proactively fetch initial data for the first screen
|
|
98
57
|
fetchInitialAudienceList()
|
|
99
58
|
}
|
|
@@ -110,7 +69,7 @@ class AudienceManager {
|
|
|
110
69
|
}
|
|
111
70
|
}
|
|
112
71
|
}
|
|
113
|
-
|
|
72
|
+
|
|
114
73
|
// ... subsequent code
|
|
115
74
|
}
|
|
116
75
|
```
|
|
@@ -140,9 +99,9 @@ extension AudienceManager {
|
|
|
140
99
|
.receive(on: DispatchQueue.main)
|
|
141
100
|
.sink { [weak self] event in
|
|
142
101
|
guard let self = self else { return }
|
|
143
|
-
|
|
102
|
+
|
|
144
103
|
var currentList = self.audienceListPublisher.value
|
|
145
|
-
|
|
104
|
+
|
|
146
105
|
switch event {
|
|
147
106
|
case .onAudienceJoined(let newAudience):
|
|
148
107
|
print("Audience \(newAudience.userName) joined the live room")
|
|
@@ -151,7 +110,7 @@ extension AudienceManager {
|
|
|
151
110
|
currentList.append(newAudience)
|
|
152
111
|
self.audienceListPublisher.send(currentList)
|
|
153
112
|
}
|
|
154
|
-
|
|
113
|
+
|
|
155
114
|
case .onAudienceLeft(let departedAudience):
|
|
156
115
|
print("Audience \(departedAudience.userName) left the live room")
|
|
157
116
|
// Incremental update: remove the departed audience member from the current list
|
|
@@ -225,32 +184,32 @@ When a new audience member enters the live room, a welcome message is automatica
|
|
|
225
184
|
|
|
226
185
|
``` swift
|
|
227
186
|
import Foundation
|
|
228
|
-
import AtomicXCore
|
|
187
|
+
import AtomicXCore
|
|
229
188
|
import Combine
|
|
230
|
-
|
|
189
|
+
|
|
231
190
|
class LiveRoomManager {
|
|
232
191
|
private let liveId: String
|
|
233
192
|
private let audienceManager: AudienceManager
|
|
234
193
|
private let barrageManager: BarrageManager // Assume you have implemented BarrageManager as described in the barrage documentation
|
|
235
194
|
private var cancellables = Set<AnyCancellable>()
|
|
236
|
-
|
|
195
|
+
|
|
237
196
|
init(liveId: String) {
|
|
238
197
|
self.liveId = liveId
|
|
239
198
|
// Initialize two core managers
|
|
240
199
|
self.audienceManager = AudienceManager(liveId: liveId)
|
|
241
200
|
self.barrageManager = BarrageManager(liveId: liveId)
|
|
242
|
-
|
|
201
|
+
|
|
243
202
|
// Set up linkage
|
|
244
203
|
setupWelcomeMessageFlow()
|
|
245
204
|
}
|
|
246
|
-
|
|
205
|
+
|
|
247
206
|
private func setupWelcomeMessageFlow() {
|
|
248
207
|
// 1. Get the LiveAudienceStore instance
|
|
249
208
|
let audienceStore = LiveAudienceStore.create(liveID: self.liveId)
|
|
250
|
-
|
|
209
|
+
|
|
251
210
|
// 2. Get the BarrageStore instance (thanks to internal mechanisms, this will be the same instance)
|
|
252
211
|
let barrageStore = BarrageStore.create(liveID: self.liveId)
|
|
253
|
-
|
|
212
|
+
|
|
254
213
|
// 3. Subscribe to audience events
|
|
255
214
|
audienceStore.liveAudienceEventPublisher
|
|
256
215
|
.receive(on: DispatchQueue.main)
|
|
@@ -259,12 +218,12 @@ When a new audience member enters the live room, a welcome message is automatica
|
|
|
259
218
|
guard case .onAudienceJoined(let newAudience) = event else {
|
|
260
219
|
return
|
|
261
220
|
}
|
|
262
|
-
|
|
221
|
+
|
|
263
222
|
// 5. Create a local tip message
|
|
264
223
|
var welcomeTip = Barrage()
|
|
265
|
-
welcomeTip.messageType = .text
|
|
224
|
+
welcomeTip.messageType = .text
|
|
266
225
|
welcomeTip.textContent = "Welcome \(newAudience.userName) to the live room!"
|
|
267
|
-
|
|
226
|
+
|
|
268
227
|
// 6. Call BarrageStore's API to insert it into the barrage list
|
|
269
228
|
barrageStore.appendLocalTip(message: welcomeTip)
|
|
270
229
|
}
|
|
@@ -276,40 +235,11 @@ When a new audience member enters the live room, a welcome message is automatica
|
|
|
276
235
|
## API Documentation
|
|
277
236
|
|
|
278
237
|
For detailed information on all public interfaces, properties, and methods of [LiveAudienceStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/liveaudiencestore) and its related classes, refer to the official API documentation included with the [AtomicX Core](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore) framework. The relevant Stores used in this document are as follows:
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
<td rowspan="1" colSpan="1" >**API Documentation**</td>
|
|
286
|
-
</tr>
|
|
287
|
-
|
|
288
|
-
<tr>
|
|
289
|
-
<td rowspan="1" colSpan="1" >LiveCoreView</td>
|
|
290
|
-
|
|
291
|
-
<td rowspan="1" colSpan="1" >Core view component for live video stream display and interaction: responsible for video stream rendering and view widget handling, supporting scenarios such as host streaming, audience co-hosting, and host-to-host connection.</td>
|
|
292
|
-
|
|
293
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/livecoreview)</td>
|
|
294
|
-
</tr>
|
|
295
|
-
|
|
296
|
-
<tr>
|
|
297
|
-
<td rowspan="1" colSpan="1" >LiveAudienceStore</td>
|
|
298
|
-
|
|
299
|
-
<td rowspan="1" colSpan="1" >Audience management: obtain real-time audience list (ID / name / avatar), count audience numbers, and listen for audience join/leave events.</td>
|
|
300
|
-
|
|
301
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/liveaudiencestore)</td>
|
|
302
|
-
</tr>
|
|
303
|
-
|
|
304
|
-
<tr>
|
|
305
|
-
<td rowspan="1" colSpan="1" >BarrageStore</td>
|
|
306
|
-
|
|
307
|
-
<td rowspan="1" colSpan="1" >Barrage feature: send text/custom barrage, maintain barrage list, and listen to barrage status in real time.</td>
|
|
308
|
-
|
|
309
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barragestore)</td>
|
|
310
|
-
</tr>
|
|
311
|
-
</table>
|
|
312
|
-
|
|
238
|
+
| **Store/Component** | **Feature Description** | **API Documentation** |
|
|
239
|
+
| --- | --- | --- |
|
|
240
|
+
| LiveCoreView | Core view component for live video stream display and interaction: responsible for video stream rendering and view widget handling, supporting scenarios such as host streaming, audience co-hosting, and host-to-host connection. | [API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/livecoreview) |
|
|
241
|
+
| LiveAudienceStore | Audience management: obtain real-time audience list (ID / name / avatar), count audience numbers, and listen for audience join/leave events. | [API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/liveaudiencestore) |
|
|
242
|
+
| BarrageStore | Barrage feature: send text/custom barrage, maintain barrage list, and listen to barrage status in real time. | [API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barragestore) |
|
|
313
243
|
|
|
314
244
|
## FAQs
|
|
315
245
|
|
|
@@ -321,19 +251,13 @@ The `audienceCount` is a high-precision estimate. Updates occur based on specifi
|
|
|
321
251
|
- **Unexpected Disconnection (Delayed)**:If a user disconnects abnormally (e.g., app crash, network loss), the system uses a heartbeat mechanism to verify status. The user is marked offline only after 90 seconds of inactivity, triggering a delayed count update.
|
|
322
252
|
|
|
323
253
|
- **Frequency Control & Rate Limiting**: Audience count updates are broadcast as room messages. The system enforces a limit of 40 messages per second per room.
|
|
324
|
-
|
|
325
254
|
|
|
326
255
|
> **Note:**
|
|
327
|
-
>
|
|
256
|
+
>
|
|
328
257
|
|
|
329
258
|
> During high-traffic spikes (e.g., chat floods or rapid gifting), if the message rate exceeds this threshold, the system prioritizes core messages (like chat/barrage). Consequently, audience count update messages may be dropped to maintain stability.
|
|
330
|
-
>
|
|
259
|
+
>
|
|
331
260
|
|
|
332
261
|
- **What does this mean for developers?**
|
|
333
262
|
|
|
334
|
-
|
|
335
263
|
Treat `audienceCount` as a metric for UI display purposes only. Do not rely on it for billing, critical statistics, or scenarios requiring 100% accuracy, as brief delays or data loss may occur during high-concurrency events.
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
This document provides guidance on integrating audio effect controls into your live streaming application using the `AudioEffectStore` and `DeviceStore` modules from the **AtomicXCore** framework. These modules enable features such as microphone volume control, ear monitoring, and a variety of voice changing and reverb effects.
|
|
2
2
|
|
|
3
|
-

|
|
4
|
-
|
|
5
|
-
|
|
6
3
|
## Core Features
|
|
7
4
|
|
|
8
5
|
By combining `AudioEffectStore` and `DeviceStore`, you can implement the following core features:
|
|
@@ -14,74 +11,22 @@ By combining `AudioEffectStore` and `DeviceStore`, you can implement the followi
|
|
|
14
11
|
|
|
15
12
|
- **Reverb Effects**: Simulate different acoustic environments, such as KTV, metallic, deep, bright, and others.
|
|
16
13
|
|
|
17
|
-
|
|
18
14
|
## Core Concepts
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<tr>
|
|
29
|
-
<td rowspan="1" colSpan="1" >`AudioChangerType`</td>
|
|
30
|
-
|
|
31
|
-
<td rowspan="1" colSpan="1" >`enum`</td>
|
|
32
|
-
|
|
33
|
-
<td rowspan="1" colSpan="1" >Enumerates available voice changing effects, such as "child", "man", etc.</td>
|
|
34
|
-
</tr>
|
|
35
|
-
|
|
36
|
-
<tr>
|
|
37
|
-
<td rowspan="1" colSpan="1" >`AudioReverbType`</td>
|
|
38
|
-
|
|
39
|
-
<td rowspan="1" colSpan="1" >`enum`</td>
|
|
40
|
-
|
|
41
|
-
<td rowspan="1" colSpan="1" >Enumerates available reverb effects, such as "ktv", "hall", etc.</td>
|
|
42
|
-
</tr>
|
|
43
|
-
|
|
44
|
-
<tr>
|
|
45
|
-
<td rowspan="1" colSpan="1" >`AudioEffectState`</td>
|
|
46
|
-
|
|
47
|
-
<td rowspan="1" colSpan="1" >`struct`</td>
|
|
48
|
-
|
|
49
|
-
<td rowspan="1" colSpan="1" >Represents the current state of the audio effect module, typically used for UI rendering. Includes voice changing effect state, reverb state, ear monitoring enabled state, and ear monitor volume.</td>
|
|
50
|
-
</tr>
|
|
51
|
-
|
|
52
|
-
<tr>
|
|
53
|
-
<td rowspan="1" colSpan="1" >`AudioEffectStore`</td>
|
|
54
|
-
|
|
55
|
-
<td rowspan="1" colSpan="1" >`class`</td>
|
|
56
|
-
|
|
57
|
-
<td rowspan="1" colSpan="1" >Singleton data management class for audio effects. Use it to invoke audio effect APIs. After calling an API, the corresponding state property is automatically updated. Subscribe to this reactive state to receive and monitor updates.</td>
|
|
58
|
-
</tr>
|
|
59
|
-
|
|
60
|
-
<tr>
|
|
61
|
-
<td rowspan="1" colSpan="1" >`DeviceState`</td>
|
|
62
|
-
|
|
63
|
-
<td rowspan="1" colSpan="1" >`struct`</td>
|
|
64
|
-
|
|
65
|
-
<td rowspan="1" colSpan="1" >Represents the current state of the device module, typically used for UI rendering. Core properties include camera and microphone status.</td>
|
|
66
|
-
</tr>
|
|
67
|
-
|
|
68
|
-
<tr>
|
|
69
|
-
<td rowspan="1" colSpan="1" >`DeviceStore`</td>
|
|
70
|
-
|
|
71
|
-
<td rowspan="1" colSpan="1" >`class`</td>
|
|
72
|
-
|
|
73
|
-
<td rowspan="1" colSpan="1" >Singleton data management class for device operations. Use it to control the camera and microphone. After calling an API, the corresponding state property is automatically updated. Subscribe to this reactive state to receive and monitor updates.</td>
|
|
74
|
-
</tr>
|
|
75
|
-
</table>
|
|
76
|
-
|
|
15
|
+
| **Core Concept** | **Type** | **Core Responsibility & Description** |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| `AudioChangerType` | `enum` | Enumerates available voice changing effects, such as "child", "man", etc. |
|
|
18
|
+
| `AudioReverbType` | `enum` | Enumerates available reverb effects, such as "ktv", "hall", etc. |
|
|
19
|
+
| `AudioEffectState` | `struct` | Represents the current state of the audio effect module, typically used for UI rendering. Includes voice changing effect state, reverb state, ear monitoring enabled state, and ear monitor volume. |
|
|
20
|
+
| `AudioEffectStore` | `class` | Singleton data management class for audio effects. Use it to invoke audio effect APIs. After calling an API, the corresponding state property is automatically updated. Subscribe to this reactive state to receive and monitor updates. |
|
|
21
|
+
| `DeviceState` | `struct` | Represents the current state of the device module, typically used for UI rendering. Core properties include camera and microphone status. |
|
|
22
|
+
| `DeviceStore` | `class` | Singleton data management class for device operations. Use it to control the camera and microphone. After calling an API, the corresponding state property is automatically updated. Subscribe to this reactive state to receive and monitor updates. |
|
|
77
23
|
|
|
78
24
|
## Implementation
|
|
79
25
|
|
|
80
26
|
### Step 1: Component Integration
|
|
81
|
-
- **Video Live Streaming**: Please refer to
|
|
82
|
-
|
|
83
|
-
- **Voice Chat Room**: Please refer to [Quick Start](https://write.woa.com/document/194571595685527552) to integrate **AtomicXCore**.
|
|
27
|
+
- **Video Live Streaming**: Please refer to Quick Start to integrate **AtomicXCore**.
|
|
84
28
|
|
|
29
|
+
- **Voice Chat Room**: Please refer to Quick Start to integrate **AtomicXCore**.
|
|
85
30
|
|
|
86
31
|
### Step 2: Obtain Store Instances
|
|
87
32
|
|
|
@@ -100,11 +45,10 @@ let deviceStore = DeviceStore.shared
|
|
|
100
45
|
In-ear monitoring allows users to hear their microphone audio in real time. Manage in-ear monitoring by calling the interfaces described below.
|
|
101
46
|
|
|
102
47
|
> **Note:**
|
|
103
|
-
>
|
|
48
|
+
>
|
|
104
49
|
|
|
105
50
|
> In-ear monitoring typically requires headphones to function properly.
|
|
106
|
-
>
|
|
107
|
-
|
|
51
|
+
>
|
|
108
52
|
|
|
109
53
|
#### Implementation
|
|
110
54
|
1. **Toggle Ear Monitoring**: Use a `UISwitch` control to enable or disable in-ear monitoring.
|
|
@@ -113,7 +57,6 @@ In-ear monitoring allows users to hear their microphone audio in real time. Mana
|
|
|
113
57
|
|
|
114
58
|
3. **Subscribe to State Updates**: Listen for real-time ear monitor state changes to update the UI.
|
|
115
59
|
|
|
116
|
-
|
|
117
60
|
#### Code Example
|
|
118
61
|
``` swift
|
|
119
62
|
// 1. Enable ear monitoring
|
|
@@ -137,44 +80,14 @@ audioEffectStore.state
|
|
|
137
80
|
```
|
|
138
81
|
|
|
139
82
|
#### setVoiceEarMonitorEnable Parameters
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
<
|
|
143
|
-
|
|
144
|
-
<td rowspan="1" colSpan="1" >**Type**</td>
|
|
145
|
-
|
|
146
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
147
|
-
</tr>
|
|
148
|
-
|
|
149
|
-
<tr>
|
|
150
|
-
<td rowspan="1" colSpan="1" >`enable`</td>
|
|
151
|
-
|
|
152
|
-
<td rowspan="1" colSpan="1" >`Bool`</td>
|
|
153
|
-
|
|
154
|
-
<td rowspan="1" colSpan="1" >Whether to enable ear monitoring.<br>- true: Enable<br>- false: Disable</td>
|
|
155
|
-
</tr>
|
|
156
|
-
</table>
|
|
157
|
-
|
|
83
|
+
| **Parameter Name** | **Type** | **Description** |
|
|
84
|
+
| --- | --- | --- |
|
|
85
|
+
| `enable` | `Bool` | Whether to enable ear monitoring.<br>- true: Enable<br>- false: Disable |
|
|
158
86
|
|
|
159
87
|
#### setVoiceEarMonitorVolume Parameters
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
<
|
|
163
|
-
|
|
164
|
-
<td rowspan="1" colSpan="1" >**Type**</td>
|
|
165
|
-
|
|
166
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
167
|
-
</tr>
|
|
168
|
-
|
|
169
|
-
<tr>
|
|
170
|
-
<td rowspan="1" colSpan="1" >`volume`</td>
|
|
171
|
-
|
|
172
|
-
<td rowspan="1" colSpan="1" >`Int`</td>
|
|
173
|
-
|
|
174
|
-
<td rowspan="1" colSpan="1" >Ear monitor volume.<br>- Value range: [0, 150]<br>- Default: 100</td>
|
|
175
|
-
</tr>
|
|
176
|
-
</table>
|
|
177
|
-
|
|
88
|
+
| **Parameter Name** | **Type** | **Description** |
|
|
89
|
+
| --- | --- | --- |
|
|
90
|
+
| `volume` | `Int` | Ear monitor volume.<br>- Value range: [0, 150]<br>- Default: 100 |
|
|
178
91
|
|
|
179
92
|
### Step 4: Implement Microphone Volume Adjustment
|
|
180
93
|
|
|
@@ -185,7 +98,6 @@ To adjust the microphone (capture) volume, call the `setCaptureVolume(volume:)`
|
|
|
185
98
|
|
|
186
99
|
2. **Subscribe to State Updates**: Listen for real-time volume state changes to update the UI.
|
|
187
100
|
|
|
188
|
-
|
|
189
101
|
#### Code Example
|
|
190
102
|
``` swift
|
|
191
103
|
// 1. Adjust capture volume
|
|
@@ -203,24 +115,9 @@ deviceStore.state
|
|
|
203
115
|
```
|
|
204
116
|
|
|
205
117
|
#### setCaptureVolume Parameters
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
<
|
|
209
|
-
|
|
210
|
-
<td rowspan="1" colSpan="1" >**Type**</td>
|
|
211
|
-
|
|
212
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
213
|
-
</tr>
|
|
214
|
-
|
|
215
|
-
<tr>
|
|
216
|
-
<td rowspan="1" colSpan="1" >`volume`</td>
|
|
217
|
-
|
|
218
|
-
<td rowspan="1" colSpan="1" >`Int`</td>
|
|
219
|
-
|
|
220
|
-
<td rowspan="1" colSpan="1" >Microphone (capture) volume.<br>- Value range: [0, 150]<br>- Default: 100</td>
|
|
221
|
-
</tr>
|
|
222
|
-
</table>
|
|
223
|
-
|
|
118
|
+
| **Parameter Name** | **Type** | **Description** |
|
|
119
|
+
| --- | --- | --- |
|
|
120
|
+
| `volume` | `Int` | Microphone (capture) volume.<br>- Value range: [0, 150]<br>- Default: 100 |
|
|
224
121
|
|
|
225
122
|
### Step 5: Implement Voice Effects
|
|
226
123
|
|
|
@@ -235,24 +132,9 @@ audioEffectStore.setAudioChangerType(type: .none)
|
|
|
235
132
|
```
|
|
236
133
|
|
|
237
134
|
#### setAudioChangerType Parameters
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
<td rowspan="1" colSpan="1" >**Type**</td>
|
|
243
|
-
|
|
244
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
245
|
-
</tr>
|
|
246
|
-
|
|
247
|
-
<tr>
|
|
248
|
-
<td rowspan="1" colSpan="1" >`type`</td>
|
|
249
|
-
|
|
250
|
-
<td rowspan="1" colSpan="1" >`AudioChangerType`</td>
|
|
251
|
-
|
|
252
|
-
<td rowspan="1" colSpan="1" >Voice changer effect enumeration.</td>
|
|
253
|
-
</tr>
|
|
254
|
-
</table>
|
|
255
|
-
|
|
135
|
+
| **Parameter Name** | **Type** | **Description** |
|
|
136
|
+
| --- | --- | --- |
|
|
137
|
+
| `type` | `AudioChangerType` | Voice changer effect enumeration. |
|
|
256
138
|
|
|
257
139
|
### Step 6: Implement Reverb Effects
|
|
258
140
|
|
|
@@ -265,33 +147,17 @@ audioEffectStore.setAudioReverbType(type: .none)
|
|
|
265
147
|
```
|
|
266
148
|
|
|
267
149
|
#### setAudioReverbType Parameters
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
<td rowspan="1" colSpan="1" >**Type**</td>
|
|
273
|
-
|
|
274
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
275
|
-
</tr>
|
|
276
|
-
|
|
277
|
-
<tr>
|
|
278
|
-
<td rowspan="1" colSpan="1" >`type`</td>
|
|
279
|
-
|
|
280
|
-
<td rowspan="1" colSpan="1" >`AudioReverbType`</td>
|
|
281
|
-
|
|
282
|
-
<td rowspan="1" colSpan="1" >Reverb effect enumeration.</td>
|
|
283
|
-
</tr>
|
|
284
|
-
</table>
|
|
285
|
-
|
|
150
|
+
| **Parameter Name** | **Type** | **Description** |
|
|
151
|
+
| --- | --- | --- |
|
|
152
|
+
| `type` | `AudioReverbType` | Reverb effect enumeration. |
|
|
286
153
|
|
|
287
154
|
### Step 7: Reset Audio Effect Settings
|
|
288
155
|
|
|
289
156
|
> **Note:**
|
|
290
|
-
>
|
|
157
|
+
>
|
|
291
158
|
|
|
292
159
|
> AudioEffectStore and DeviceStore are singletons, so audio effect and device settings apply globally. To prevent settings from one live room affecting others, reset the audio effect and device settings when the current live room ends.
|
|
293
|
-
>
|
|
294
|
-
|
|
160
|
+
>
|
|
295
161
|
|
|
296
162
|
Reset audio effect settings in the following scenarios:
|
|
297
163
|
1. When the current live room ends.
|
|
@@ -299,7 +165,7 @@ Reset audio effect settings in the following scenarios:
|
|
|
299
165
|
2. To provide a "one-click restore" feature, call the store's `reset()` method.
|
|
300
166
|
|
|
301
167
|
``` swift
|
|
302
|
-
class YourMainViewController: UIViewController {
|
|
168
|
+
class YourMainViewController: UIViewController {
|
|
303
169
|
func reset() {
|
|
304
170
|
AudioEffectStore.shared.reset()
|
|
305
171
|
DeviceStore.shared.reset()
|
|
@@ -310,32 +176,10 @@ Reset audio effect settings in the following scenarios:
|
|
|
310
176
|
## API Documentation
|
|
311
177
|
|
|
312
178
|
For detailed information on all public interfaces and properties of [AudioEffectStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/audioeffectstore), [DeviceStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/devicestore), and related classes, refer to the official API documentation for the [AtomicXCore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore) framework.
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
318
|
-
|
|
319
|
-
<td rowspan="1" colSpan="1" >**API Reference**</td>
|
|
320
|
-
</tr>
|
|
321
|
-
|
|
322
|
-
<tr>
|
|
323
|
-
<td rowspan="1" colSpan="1" >DeviceStore</td>
|
|
324
|
-
|
|
325
|
-
<td rowspan="1" colSpan="1" >Controls audio/video devices: microphone (on/off, volume), camera (on/off, switch, quality), screen sharing, and real-time device status monitoring.</td>
|
|
326
|
-
|
|
327
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/devicestore)</td>
|
|
328
|
-
</tr>
|
|
329
|
-
|
|
330
|
-
<tr>
|
|
331
|
-
<td rowspan="1" colSpan="1" >AudioEffectStore</td>
|
|
332
|
-
|
|
333
|
-
<td rowspan="1" colSpan="1" >Audio effects: voice changing (child/male), reverb (KTV, etc.), ear monitoring adjustment, and real-time effect switching.</td>
|
|
334
|
-
|
|
335
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/audioeffectstore)</td>
|
|
336
|
-
</tr>
|
|
337
|
-
</table>
|
|
338
|
-
|
|
179
|
+
| **Store/Component** | **Description** | **API Reference** |
|
|
180
|
+
| --- | --- | --- |
|
|
181
|
+
| DeviceStore | Controls audio/video devices: microphone (on/off, volume), camera (on/off, switch, quality), screen sharing, and real-time device status monitoring. | [API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/devicestore) |
|
|
182
|
+
| AudioEffectStore | Audio effects: voice changing (child/male), reverb (KTV, etc.), ear monitoring adjustment, and real-time effect switching. | [API Documentation](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/audioeffectstore) |
|
|
339
183
|
|
|
340
184
|
## FAQs
|
|
341
185
|
|
|
@@ -350,7 +194,6 @@ This is a common point of confusion:
|
|
|
350
194
|
|
|
351
195
|
- **Ear Monitor Volume**: Set via `AudioEffectStore.setVoiceEarMonitorVolume()`. It only determines the volume level you hear in your in-ear monitor and does not affect the audience.
|
|
352
196
|
|
|
353
|
-
|
|
354
197
|
### Why does a newly created live room already have audio effects, or why is the volume too high or too low?
|
|
355
198
|
|
|
356
199
|
Because `AudioEffectStore` and `DeviceStore` are singletons, audio effect and device settings are globally applied. If you previously set audio effects and did not reset them, those settings persist. Call the `reset()` method at the appropriate time to clear them.
|
|
@@ -364,7 +207,6 @@ Check the following:
|
|
|
364
207
|
|
|
365
208
|
3. **Is the microphone enabled?** Confirm that the microphone is enabled in DeviceStore (i.e., openLocalMicrophone has been called).
|
|
366
209
|
|
|
367
|
-
|
|
368
210
|
### Can voice effects and reverb be enabled at the same time?
|
|
369
211
|
|
|
370
|
-
Yes. `AudioChangerType` and `AudioReverbType` can be enabled simultaneously. For example, you can set both `AudioChangerType.LITTLE_GIRL`and `AudioReverbType.KTV` at the same time.
|
|
212
|
+
Yes. `AudioChangerType` and `AudioReverbType` can be enabled simultaneously. For example, you can set both `AudioChangerType.LITTLE_GIRL`and `AudioReverbType.KTV` at the same time.
|