@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
|
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.
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
This document provides a comprehensive guide for iOS developers to quickly integrate a feature-rich, high-performance live chat overlay (barrage/danmaku) system into your live streaming application using the `BarrageStore` module from the **AtomicXCore** framework.
|
|
2
2
|
|
|
3
|
-

|
|
4
|
-
|
|
5
|
-
|
|
6
3
|
## Core Features
|
|
7
4
|
|
|
8
5
|
`BarrageStore` delivers a complete barrage solution for your live streaming app. Core features include:
|
|
@@ -14,50 +11,19 @@ This document provides a comprehensive guide for iOS developers to quickly integ
|
|
|
14
11
|
|
|
15
12
|
- Inserting system tips into the local message list (for example, "Welcome XX to the live room").
|
|
16
13
|
|
|
17
|
-
|
|
18
14
|
## Core Concepts
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<td rowspan="1" colSpan="1" >**Core Responsibility & Description**</td>
|
|
26
|
-
</tr>
|
|
27
|
-
|
|
28
|
-
<tr>
|
|
29
|
-
<td rowspan="1" colSpan="1" >[Barrage](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barrage)</td>
|
|
30
|
-
|
|
31
|
-
<td rowspan="1" colSpan="1" >struct</td>
|
|
32
|
-
|
|
33
|
-
<td rowspan="1" colSpan="1" >Represents the data model for a single barrage message. Contains all essential information such as sender (sender), message content (textContent or data), message type (messageType), and more.</td>
|
|
34
|
-
</tr>
|
|
35
|
-
|
|
36
|
-
<tr>
|
|
37
|
-
<td rowspan="1" colSpan="1" >[BarrageState](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barragestate)</td>
|
|
38
|
-
|
|
39
|
-
<td rowspan="1" colSpan="1" >struct</td>
|
|
40
|
-
|
|
41
|
-
<td rowspan="1" colSpan="1" >Represents the current state of the barrage module. The main property, messageList, is an array of [Barrage] storing all barrage messages in chronological order for the current live room. This serves as the data source for UI rendering.</td>
|
|
42
|
-
</tr>
|
|
43
|
-
|
|
44
|
-
<tr>
|
|
45
|
-
<td rowspan="1" colSpan="1" >[BarrageStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barragestore)</td>
|
|
46
|
-
|
|
47
|
-
<td rowspan="1" colSpan="1" >class</td>
|
|
48
|
-
|
|
49
|
-
<td rowspan="1" colSpan="1" >The core management class for barrage functionality. Use it to send messages (sendTextMessage, sendCustomMessage), and subscribe to its state property to receive all barrage message updates.</td>
|
|
50
|
-
</tr>
|
|
51
|
-
</table>
|
|
52
|
-
|
|
15
|
+
| **Core Concept** | **Type** | **Core Responsibility & Description** |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| [Barrage](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barrage) | struct | Represents the data model for a single barrage message. Contains all essential information such as sender (sender), message content (textContent or data), message type (messageType), and more. |
|
|
18
|
+
| [BarrageState](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barragestate) | struct | Represents the current state of the barrage module. The main property, messageList, is an array of [Barrage] storing all barrage messages in chronological order for the current live room. This serves as the data source for UI rendering. |
|
|
19
|
+
| [BarrageStore](https://tencent-rtc.github.io/TUIKit_iOS/documentation/atomicxcore/barragestore) | class | The core management class for barrage functionality. Use it to send messages (sendTextMessage, sendCustomMessage), and subscribe to its state property to receive all barrage message updates. |
|
|
53
20
|
|
|
54
21
|
## Implementation
|
|
55
22
|
|
|
56
23
|
### Step 1: Component Integration
|
|
57
|
-
- **Video Live Streaming**: Please refer to
|
|
58
|
-
|
|
59
|
-
- **Voice Chat Room**: Please refer to [Quick Start](https://write.woa.com/document/194571595685527552) to integrate AtomicXCore.
|
|
24
|
+
- **Video Live Streaming**: Please refer to Quick Start to integrate AtomicXCore. Quick Start to
|
|
60
25
|
|
|
26
|
+
- **Voice Chat Room**: Please refer to Quick Start to integrate AtomicXCore.
|
|
61
27
|
|
|
62
28
|
### Step 2: Initialize and Listen for Barrage
|
|
63
29
|
|
|
@@ -71,10 +37,10 @@ class BarrageManager {
|
|
|
71
37
|
private let liveId: String
|
|
72
38
|
private let barrageStore: BarrageStore
|
|
73
39
|
private var cancellables = Set<AnyCancellable>()
|
|
74
|
-
|
|
40
|
+
|
|
75
41
|
// Publisher for the complete message list, for UI layer subscription
|
|
76
42
|
let messagesPublisher = PassthroughSubject<[Barrage], Never>()
|
|
77
|
-
|
|
43
|
+
|
|
78
44
|
init(liveId: String) {
|
|
79
45
|
self.liveId = liveId
|
|
80
46
|
// 1. Obtain the BarrageStore singleton for the given liveId
|
|
@@ -82,7 +48,7 @@ class BarrageManager {
|
|
|
82
48
|
// 2. Start listening for barrage messages immediately after initialization
|
|
83
49
|
subscribeToBarrageUpdates()
|
|
84
50
|
}
|
|
85
|
-
|
|
51
|
+
|
|
86
52
|
private func subscribeToBarrageUpdates() {
|
|
87
53
|
barrageStore.state
|
|
88
54
|
.subscribe() // Subscribe to all BarrageState changes
|
|
@@ -109,7 +75,7 @@ extension BarrageManager {
|
|
|
109
75
|
print("Barrage content cannot be empty")
|
|
110
76
|
return
|
|
111
77
|
}
|
|
112
|
-
|
|
78
|
+
|
|
113
79
|
// Send the message using the core API
|
|
114
80
|
barrageStore.sendTextMessage(text: text, extensionInfo: nil) { result in
|
|
115
81
|
// Handle the result in the callback, e.g., show a prompt to the user
|
|
@@ -125,40 +91,11 @@ extension BarrageManager {
|
|
|
125
91
|
```
|
|
126
92
|
|
|
127
93
|
#### API Parameters
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
135
|
-
</tr>
|
|
136
|
-
|
|
137
|
-
<tr>
|
|
138
|
-
<td rowspan="1" colSpan="1" >`text`</td>
|
|
139
|
-
|
|
140
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
141
|
-
|
|
142
|
-
<td rowspan="1" colSpan="1" >The text content to send.</td>
|
|
143
|
-
</tr>
|
|
144
|
-
|
|
145
|
-
<tr>
|
|
146
|
-
<td rowspan="1" colSpan="1" >`extensionInfo`</td>
|
|
147
|
-
|
|
148
|
-
<td rowspan="1" colSpan="1" >`[String: String]?`</td>
|
|
149
|
-
|
|
150
|
-
<td rowspan="1" colSpan="1" >Additional extension information for business customization.</td>
|
|
151
|
-
</tr>
|
|
152
|
-
|
|
153
|
-
<tr>
|
|
154
|
-
<td rowspan="1" colSpan="1" >`completion`</td>
|
|
155
|
-
|
|
156
|
-
<td rowspan="1" colSpan="1" >`CompletionClosure?`</td>
|
|
157
|
-
|
|
158
|
-
<td rowspan="1" colSpan="1" >Callback after sending is complete, containing the success or failure result.</td>
|
|
159
|
-
</tr>
|
|
160
|
-
</table>
|
|
161
|
-
|
|
94
|
+
| **Parameter** | **Type** | **Description** |
|
|
95
|
+
| --- | --- | --- |
|
|
96
|
+
| `text` | `String` | The text content to send. |
|
|
97
|
+
| `extensionInfo` | `[String: String]?` | Additional extension information for business customization. |
|
|
98
|
+
| `completion` | `CompletionClosure?` | Callback after sending is complete, containing the success or failure result. |
|
|
162
99
|
|
|
163
100
|
### Step 4: Send Custom Barrage
|
|
164
101
|
|
|
@@ -169,7 +106,7 @@ extension BarrageManager {
|
|
|
169
106
|
func sendGiftMessage(giftId: String, giftCount: Int) {
|
|
170
107
|
// 1. Define a business-recognizable ID
|
|
171
108
|
let businessId = "live_gift"
|
|
172
|
-
|
|
109
|
+
|
|
173
110
|
// 2. Encode business data as a JSON string
|
|
174
111
|
let giftData: [String: Any] = ["gift_id": giftId, "gift_count": giftCount]
|
|
175
112
|
guard let jsonData = try? JSONSerialization.data(withJSONObject: giftData),
|
|
@@ -177,7 +114,7 @@ extension BarrageManager {
|
|
|
177
114
|
print("Failed to encode gift data as JSON")
|
|
178
115
|
return
|
|
179
116
|
}
|
|
180
|
-
|
|
117
|
+
|
|
181
118
|
// 3. Send the custom message using the core API
|
|
182
119
|
barrageStore.sendCustomMessage(businessID: businessId, data: jsonString) { result in
|
|
183
120
|
switch result {
|
|
@@ -192,40 +129,11 @@ extension BarrageManager {
|
|
|
192
129
|
```
|
|
193
130
|
|
|
194
131
|
#### API Parameters
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
202
|
-
</tr>
|
|
203
|
-
|
|
204
|
-
<tr>
|
|
205
|
-
<td rowspan="1" colSpan="1" >`businessId`</td>
|
|
206
|
-
|
|
207
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
208
|
-
|
|
209
|
-
<td rowspan="1" colSpan="1" >Unique business identifier, e.g., "live_gift", used by the receiver to distinguish different custom messages.</td>
|
|
210
|
-
</tr>
|
|
211
|
-
|
|
212
|
-
<tr>
|
|
213
|
-
<td rowspan="1" colSpan="1" >`data`</td>
|
|
214
|
-
|
|
215
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
216
|
-
|
|
217
|
-
<td rowspan="1" colSpan="1" >Business data, usually a JSON-formatted string.</td>
|
|
218
|
-
</tr>
|
|
219
|
-
|
|
220
|
-
<tr>
|
|
221
|
-
<td rowspan="1" colSpan="1" >`completion`</td>
|
|
222
|
-
|
|
223
|
-
<td rowspan="1" colSpan="1" >`CompletionClosure?`</td>
|
|
224
|
-
|
|
225
|
-
<td rowspan="1" colSpan="1" >Callback after sending is complete.</td>
|
|
226
|
-
</tr>
|
|
227
|
-
</table>
|
|
228
|
-
|
|
132
|
+
| **Parameter** | **Type** | **Description** |
|
|
133
|
+
| --- | --- | --- |
|
|
134
|
+
| `businessId` | `String` | Unique business identifier, e.g., "live_gift", used by the receiver to distinguish different custom messages. |
|
|
135
|
+
| `data` | `String` | Business data, usually a JSON-formatted string. |
|
|
136
|
+
| `completion` | `CompletionClosure?` | Callback after sending is complete. |
|
|
229
137
|
|
|
230
138
|
### Step 5: Insert Local Tip Message
|
|
231
139
|
|
|
@@ -239,7 +147,7 @@ extension BarrageManager {
|
|
|
239
147
|
welcomeTip.messageType = .text // Reuse the text type for display
|
|
240
148
|
welcomeTip.textContent = "Welcome \(user.userName) to the live room!"
|
|
241
149
|
// sender can be left empty or set to a system user identifier
|
|
242
|
-
|
|
150
|
+
|
|
243
151
|
// 2. Insert the message into the local list
|
|
244
152
|
barrageStore.appendLocalTip(message: welcomeTip)
|
|
245
153
|
}
|
|
@@ -247,24 +155,9 @@ extension BarrageManager {
|
|
|
247
155
|
```
|
|
248
156
|
|
|
249
157
|
#### API Parameters
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
<td rowspan="1" colSpan="1" >**Type**</td>
|
|
255
|
-
|
|
256
|
-
<td rowspan="1" colSpan="1" >**Description**</td>
|
|
257
|
-
</tr>
|
|
258
|
-
|
|
259
|
-
<tr>
|
|
260
|
-
<td rowspan="1" colSpan="1" >message</td>
|
|
261
|
-
|
|
262
|
-
<td rowspan="1" colSpan="1" >Barrage</td>
|
|
263
|
-
|
|
264
|
-
<td rowspan="1" colSpan="1" >The message object to insert locally. The SDK appends this message to the messageList in BarrageState.</td>
|
|
265
|
-
</tr>
|
|
266
|
-
</table>
|
|
267
|
-
|
|
158
|
+
| **Parameter** | **Type** | **Description** |
|
|
159
|
+
| --- | --- | --- |
|
|
160
|
+
| message | Barrage | The message object to insert locally. The SDK appends this message to the messageList in BarrageState. |
|
|
268
161
|
|
|
269
162
|
### Step 6: Manage User Speaking Permissions (Mute and Unmute)
|
|
270
163
|
|
|
@@ -305,7 +198,7 @@ import AtomicXCore
|
|
|
305
198
|
let liveListStore = LiveListStore.shared
|
|
306
199
|
|
|
307
200
|
// 2. Get the current live room info and modify the global mute status
|
|
308
|
-
var currentLiveInfo = liveListStore.state.value.currentLive
|
|
201
|
+
var currentLiveInfo = liveListStore.state.value.currentLive
|
|
309
202
|
currentLiveInfo.isMessageDisable = true // true to enable global mute, false to disable
|
|
310
203
|
|
|
311
204
|
// 3. Call the update API and specify the modify flag
|
|
@@ -400,7 +293,7 @@ class BarrageUIManager {
|
|
|
400
293
|
|
|
401
294
|
private func refreshUIIfNeeded() {
|
|
402
295
|
guard let fullList = self.latestMessageList, let tableView = self.tableView else { return }
|
|
403
|
-
self.latestMessageList = nil
|
|
296
|
+
self.latestMessageList = nil
|
|
404
297
|
|
|
405
298
|
// Only keep the latest N messages
|
|
406
299
|
let cappedList = Array(fullList.suffix(self.capacity))
|
|
@@ -468,7 +361,7 @@ For detailed information on all public interfaces, properties, and methods of [B
|
|
|
468
361
|
|
|
469
362
|
### In addition to basic text barrages, we also want to implement richer styles such as "colored barrages" and "gift barrages." How can we achieve this?
|
|
470
363
|
|
|
471
|
-
You can implement these features using custom messages with `sendCustomMessage`.
|
|
364
|
+
You can implement these features using custom messages with `sendCustomMessage`.
|
|
472
365
|
|
|
473
366
|
**Implementation Steps**
|
|
474
367
|
1. **Define the Data Structure**: Collaborate with your client and server teams to define the JSON structure for custom messages. For example, a colored barrage can be defined as:
|
|
@@ -480,7 +373,6 @@ You can implement these features using custom messages with `sendCustomMessage`.
|
|
|
480
373
|
|
|
481
374
|
3. **Receiver**: Upon receiving a barrage message, check whether its messageType is `BarrageType.CUSTOM` and whether the `businessID` matches. If so, parse the data string (usually as JSON), and render your custom UI style based on the parsed data (such as `color`, `text`).
|
|
482
375
|
|
|
483
|
-
|
|
484
376
|
### If I call BarrageStore.create(liveID = "some_id") in different classes or files, will this create multiple instances and cause confusion?
|
|
485
377
|
|
|
486
378
|
No. The internal mechanism of **AtomicXCore** ensures that as long as you pass in the same liveID, you always get the same `BarrageStore` instance for that live room. You do not need to manage singletons manually.
|
|
@@ -496,7 +388,6 @@ No. The internal mechanism of **AtomicXCore** ensures that as long as you pass i
|
|
|
496
388
|
|
|
497
389
|
4. **Network issues**: Ensure the device's network connection is normal. Message sending depends on network connectivity.
|
|
498
390
|
|
|
499
|
-
|
|
500
391
|
### How can new viewers see historical barrage messages sent before they joined the live room?
|
|
501
392
|
|
|
502
393
|
`AtomicXCore` supports retrieving historical chat messages, but you need to enable this feature in the **server console**. Once configured, the SDK handles everything automatically—no additional client code is required.
|
|
@@ -506,12 +397,8 @@ No. The internal mechanism of **AtomicXCore** ensures that as long as you pass i
|
|
|
506
397
|
|
|
507
398
|
2. On the Live Configuration page, select **View Past Messages**, and set Previous Messages Viewable to specify the number of messages (up to a maximum of 50) that new viewers can see.
|
|
508
399
|
|
|
509
|
-
|
|
510
|
-

|
|
511
|
-
|
|
512
|
-
|
|
513
400
|
#### **Step 2: Automatic Retrieval on the Client Side**
|
|
514
401
|
|
|
515
402
|
After completing the above configuration, **no changes are needed** in your client code.
|
|
516
403
|
|
|
517
|
-
When a new user joins the live room, `AtomicXCore` automatically retrieves the configured number of historical chat messages in the background. These messages are delivered to the UI layer through the `BarrageState` subscription channel, just like real-time messages. Your application will receive and display these historical chat messages in the same way as live messages.
|
|
404
|
+
When a new user joins the live room, `AtomicXCore` automatically retrieves the configured number of historical chat messages in the background. These messages are delivered to the UI layer through the `BarrageState` subscription channel, just like real-time messages. Your application will receive and display these historical chat messages in the same way as live messages.
|