@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -7,26 +7,21 @@ The in-room call feature allows users within a meeting (inviter) to send real-ti
|
|
|
7
7
|
|
|
8
8
|
- **Internet Medical Consultation:** During case analysis, the primary physician can invite senior doctors to enter the virtual consultation room for multi-party consultation through the call feature, or doctors can call patients in the waiting room for consultations.
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
## Prerequisites
|
|
12
11
|
|
|
13
12
|
Before integrating this feature, please ensure the following conditions are met:
|
|
14
|
-
- **Inviter (User A):** The user has completed login authentication through `useLoginState`, refer to
|
|
13
|
+
- **Inviter (User A):** The user has completed login authentication through `useLoginState`, refer to Integration Overview, and is already in a room as the room owner or member, refer to Room Lifecycle.
|
|
15
14
|
|
|
16
|
-
- **Invitee (User B):** The user has completed login authentication through `useLoginState`, refer to
|
|
15
|
+
- **Invitee (User B):** The user has completed login authentication through `useLoginState`, refer to Integration Overview, to receive signaling events.
|
|
17
16
|
|
|
18
17
|
- **Environment Dependencies:** The project has correctly installed and imported `tuikit-atomicx-vue3`.
|
|
19
18
|
|
|
20
|
-
|
|
21
19
|
## Implementing In-Room Call Feature
|
|
22
20
|
|
|
23
21
|
The core process for implementing in-room calls is as follows:
|
|
24
22
|
|
|
25
|
-

|
|
26
|
-
|
|
27
23
|
In-room call sequence diagram
|
|
28
24
|
|
|
29
|
-
|
|
30
25
|
### Step 1: Initiate Call (Inviter)
|
|
31
26
|
|
|
32
27
|
The inviter calls the [callUserToRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#callUserToRoom) interface to initiate an invitation. Please ensure the inviter is currently in the room (i.e., [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#currentRoom) is not empty), otherwise the call cannot be initiated.
|
|
@@ -48,9 +43,9 @@ const inviteUser = async () => {
|
|
|
48
43
|
userIdList: ['user1', 'user2'], // Target user ID array, supports single or multiple users
|
|
49
44
|
timeout: 60, // Invitation validity period (seconds), both parties will trigger onCallTimeout after timeout
|
|
50
45
|
// extensionInfo can be used to pass business custom data, such as invitation type, additional messages, etc.
|
|
51
|
-
extensionInfo: JSON.stringify({ type: 'emergency', priority: 'high' })
|
|
46
|
+
extensionInfo: JSON.stringify({ type: 'emergency', priority: 'high' })
|
|
52
47
|
});
|
|
53
|
-
|
|
48
|
+
|
|
54
49
|
// resultMap returns the status corresponding to each userId, such as Success, AlreadyInRoom (already in room) or AlreadyInCalling (in call)
|
|
55
50
|
console.log('Invitation sent successfully, detailed status map:', resultMap);
|
|
56
51
|
} catch (error) {
|
|
@@ -66,13 +61,13 @@ The invitee needs to listen for the `onCallReceived` event. It is recommended to
|
|
|
66
61
|
import { ref, onMounted, onUnmounted } from 'vue';
|
|
67
62
|
import { useRoomState, RoomEvent } from 'tuikit-atomicx-vue3/room';
|
|
68
63
|
|
|
69
|
-
const {
|
|
70
|
-
subscribeEvent,
|
|
71
|
-
unsubscribeEvent,
|
|
72
|
-
acceptCall,
|
|
73
|
-
rejectCall,
|
|
74
|
-
joinRoom,
|
|
75
|
-
currentRoom
|
|
64
|
+
const {
|
|
65
|
+
subscribeEvent,
|
|
66
|
+
unsubscribeEvent,
|
|
67
|
+
acceptCall,
|
|
68
|
+
rejectCall,
|
|
69
|
+
joinRoom,
|
|
70
|
+
currentRoom
|
|
76
71
|
} = useRoomState();
|
|
77
72
|
|
|
78
73
|
const showInviteDialog = ref(false); // Control UI dialog visibility
|
|
@@ -98,9 +93,9 @@ const onUserAccept = async () => {
|
|
|
98
93
|
try {
|
|
99
94
|
// Key process A: Respond to signaling. Inform the inviter that it has been accepted so they can update UI (e.g., display "Other party answered")
|
|
100
95
|
await acceptCall({ roomId });
|
|
101
|
-
|
|
96
|
+
|
|
102
97
|
// Key process B: Execute room entry. Only by calling joinRoom will the audio and video push-pull stream link be truly opened
|
|
103
|
-
await joinRoom({ roomId });
|
|
98
|
+
await joinRoom({ roomId });
|
|
104
99
|
} catch (error) {
|
|
105
100
|
console.error('Room entry operation failed after accepting call:', error);
|
|
106
101
|
} finally {
|
|
@@ -125,7 +120,7 @@ const closeDialog = () => {
|
|
|
125
120
|
// Event full lifecycle management: Ensure listening on component mount and removal on destroy to prevent event overflow
|
|
126
121
|
onMounted(() => {
|
|
127
122
|
subscribeEvent(RoomEvent.onCallReceived, handleCallReceived);
|
|
128
|
-
|
|
123
|
+
|
|
129
124
|
// Listen for various exceptions/sync events that cause invitation to end, ensuring UI dialog can close in time
|
|
130
125
|
subscribeEvent(RoomEvent.onCallCancelled, closeDialog); // Inviter cancelled the call
|
|
131
126
|
subscribeEvent(RoomEvent.onCallTimeout, closeDialog); // Call timed out without response
|
|
@@ -152,13 +147,11 @@ Due to Web characteristics, browser mute or page running in background state may
|
|
|
152
147
|
|
|
153
148
|
- **Audio Reminder**: Play high-priority alert ringtone when the `onCallReceived` event is triggered. Note: Must comply with browser's [Autoplay Policy](https://developer.mozilla.org/zh-CN/docs/Web/Media/Guides/Autoplay), most browsers will restrict audio autoplay in the absence of user interaction (such as clicks, touches, or key presses).
|
|
154
149
|
|
|
155
|
-
|
|
156
150
|
### 2. Enrich Invitation Context (Improve Answering Willingness)
|
|
157
151
|
|
|
158
152
|
Invitations lacking clear intent are easily rejected by users. It is recommended to fully utilize the `extensionInfo` field to pass key business information to improve users' willingness to answer.
|
|
159
153
|
- **Pass Business Context**: Use `extensionInfo` to transparently pass business fields such as `reason` (e.g.: "Project emergency review"), `level` (e.g.: "P0 troubleshooting"), etc., to inform users of the urgency and importance of the call.
|
|
160
154
|
|
|
161
|
-
|
|
162
155
|
### 3. Multi-Channel Reach Backup (Ensure Message Delivery)
|
|
163
156
|
|
|
164
157
|
Limited by Web mechanisms, when the browser process ends, real-time signaling cannot be received. It is recommended to adopt the following alternative solutions to ensure reach:
|
|
@@ -166,91 +159,62 @@ Limited by Web mechanisms, when the browser process ends, real-time signaling ca
|
|
|
166
159
|
|
|
167
160
|
- **Multi-Channel Reach**: It is recommended to combine backend business logic to send meeting links through **SMS**, **Email**, or **Enterprise WeChat** and other external channels when detecting that users are offline or timeout without response, achieving all-around reach.
|
|
168
161
|
|
|
169
|
-
|
|
170
162
|
### 4. Intelligent Retry Mechanism (Solve "Room Entry Failed After Accepting Invitation")
|
|
171
163
|
|
|
172
164
|
In weak network or other unstable environments, calling `joinRoom` after users click accept invitation may experience occasional failures.
|
|
173
165
|
- **Automatic Retry**: It is recommended to introduce 2-3 automatic retry mechanisms (recommended combined with exponential backoff strategy) in the exception handling logic (`catch`) of `onUserAccept` to maximize ensuring users can successfully join the meeting after clicking "accept".
|
|
174
166
|
|
|
175
|
-
|
|
176
167
|
## Development Notes
|
|
177
168
|
1. **Accepting Invitation Does Not Equal Entering Room**
|
|
178
169
|
|
|
179
|
-
|
|
180
170
|
`acceptCall` is only a signaling layer reply (informing the other party that the call has been answered). Users must manually call `await joinRoom({ roomId })` immediately after calling `acceptCall` to truly enter the audio and video room.
|
|
181
171
|
|
|
182
172
|
2. **Lifecycle Management**
|
|
183
173
|
|
|
184
|
-
|
|
185
174
|
Please be sure to call `unsubscribeEvent` in the component destruction cycle (`onUnmounted`). If listeners are not cleaned up, when users switch pages, listeners from old pages will remain in memory, causing one invitation to pop up multiple windows or logic to execute repeatedly.
|
|
186
175
|
|
|
187
176
|
3. **Timeout Settings**
|
|
188
177
|
|
|
189
|
-
|
|
190
178
|
If the `timeout` parameter is not set, in some network exceptions or program crash situations, invitations may remain in a suspended state for a long time, making it impossible to initiate another call to that user. It is recommended to set it to 30-60 seconds.
|
|
191
179
|
|
|
192
|
-
|
|
193
180
|
## Common Questions
|
|
194
181
|
1. **How to pass custom parameters when calling (e.g., "Emergency meeting from XX")?**
|
|
195
182
|
|
|
196
|
-
|
|
197
183
|
Use the `extensionInfo` parameter of `callUserToRoom` to pass a JSON string. The invitee can parse the string to obtain business information in the `extensionInfo` field of the `onCallReceived` event.
|
|
198
184
|
|
|
199
185
|
2. **If the invitee is not online, can they receive the invitation after coming online?**
|
|
200
186
|
|
|
201
|
-
|
|
202
187
|
No. The invitation event is an instantaneous signaling action, and the SDK currently does not resend call notifications received while offline.
|
|
203
188
|
|
|
204
189
|
3. **Can issued invitations be cancelled?**
|
|
205
190
|
|
|
206
|
-
|
|
207
191
|
Yes. Call `cancelCall({ roomId, userIdList })` to cancel. At this time, the invitee will receive the `onCallCancelled` event, and you need to listen to this event to close the UI dialog on the invitee side.
|
|
208
192
|
|
|
209
193
|
4. **What to do if room entry fails after accepting?**
|
|
210
194
|
|
|
211
|
-
|
|
212
195
|
Check if you have logged in to `TUIRoomEngine`, retry `joinRoom({ roomId })` and capture error prompts to the user; if necessary, provide a "retry" button on the UI.
|
|
213
196
|
|
|
214
197
|
5. **How to prompt when the other party is busy or already in another room?**
|
|
215
198
|
|
|
216
|
-
|
|
217
199
|
If `AlreadyInRoom` / `AlreadyInCalling` appears in the return value `resultMap` of `callUserToRoom`, you should prompt on the inviter UI "The other party is busy/already in a meeting" and decide whether to retry later.
|
|
218
200
|
|
|
219
201
|
6. **Dialog not closing after timeout/cancellation?**
|
|
220
202
|
|
|
221
|
-
|
|
222
203
|
Make sure to listen to `onCallTimeout`, `onCallCancelled`, `onCallHandledByOtherDevice`, and uniformly close the dialog and clear current invitation data in the callback.
|
|
223
204
|
|
|
224
205
|
7. **How to handle simultaneous ringing on multiple devices?**
|
|
225
206
|
|
|
226
|
-
|
|
227
207
|
After accepting/rejecting on any device, other devices will receive `onCallHandledByOtherDevice`, and you need to close dialogs on other ends to avoid repeated processing.
|
|
228
208
|
|
|
229
209
|
8. **How should extensionInfo be agreed upon?**
|
|
230
210
|
|
|
231
|
-
|
|
232
211
|
It is recommended to use a JSON string and agree on fields (e.g., `type`, `priority`, `from`), parse and display friendly text (e.g., "Emergency meeting from XX") in `handleCallReceived`.
|
|
233
212
|
|
|
234
|
-
|
|
235
213
|
## **Sample Project**
|
|
236
214
|
|
|
237
215
|
Tencent Cloud provides a sample project [atomicx-vite-vue3-ts](https://github.com/Tencent-RTC/TUIRoomKit/tree/main/Web/example/atomicx-vite-vue3-ts) on GitHub, which you can refer to for implementing complete RoomKit functionality.
|
|
238
216
|
|
|
239
217
|
## API Documentation
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
<td rowspan="1" colSpan="1" >**Feature Description**</td>
|
|
245
|
-
|
|
246
|
-
<td rowspan="1" colSpan="1" >**API Documentation**</td>
|
|
247
|
-
</tr>
|
|
248
|
-
|
|
249
|
-
<tr>
|
|
250
|
-
<td rowspan="1" colSpan="1" >**useRoomState**</td>
|
|
251
|
-
|
|
252
|
-
<td rowspan="1" colSpan="1" >Room state management (create, join, schedule, etc.)</td>
|
|
253
|
-
|
|
254
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState)</td>
|
|
255
|
-
</tr>
|
|
256
|
-
</table>
|
|
218
|
+
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
219
|
+
| --- | --- | --- |
|
|
220
|
+
| **useRoomState** | Room state management (create, join, schedule, etc.) | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState) |
|
|
@@ -9,10 +9,8 @@ Device preview is an important part of ensuring the smooth operation of audio/vi
|
|
|
9
9
|
|
|
10
10
|
- **Speaker Calibration**: Confirm output device and volume settings by playing test audio.
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
## Prerequisites
|
|
14
|
-
- User has completed login authentication through [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState), please refer to
|
|
15
|
-
|
|
13
|
+
- User has completed login authentication through [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState), please refer to Integration Overview.
|
|
16
14
|
|
|
17
15
|
## Implementing Device Detection Features
|
|
18
16
|
|
|
@@ -36,13 +34,13 @@ Use the [startCameraTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.
|
|
|
36
34
|
<!-- Camera selection -->
|
|
37
35
|
<div class="camera-selector">
|
|
38
36
|
<label>Select Camera</label>
|
|
39
|
-
<select
|
|
40
|
-
:value="currentCamera?.deviceId"
|
|
37
|
+
<select
|
|
38
|
+
:value="currentCamera?.deviceId"
|
|
41
39
|
@change="handleCameraChange"
|
|
42
40
|
:disabled="isCameraTestLoading"
|
|
43
41
|
>
|
|
44
|
-
<option
|
|
45
|
-
v-for="camera in cameraList"
|
|
42
|
+
<option
|
|
43
|
+
v-for="camera in cameraList"
|
|
46
44
|
:key="camera.deviceId"
|
|
47
45
|
:value="camera.deviceId"
|
|
48
46
|
>
|
|
@@ -54,7 +52,7 @@ Use the [startCameraTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.
|
|
|
54
52
|
<!-- Control buttons -->
|
|
55
53
|
<div class="control-buttons">
|
|
56
54
|
<button @click="getCameraList">Get Camera List</button>
|
|
57
|
-
<button
|
|
55
|
+
<button
|
|
58
56
|
@click="toggleCameraTest"
|
|
59
57
|
:disabled="isCameraTestLoading"
|
|
60
58
|
>
|
|
@@ -67,14 +65,14 @@ Use the [startCameraTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.
|
|
|
67
65
|
<script setup lang="ts">
|
|
68
66
|
import { ref, computed, watch, onMounted, onUnmounted } from 'vue';
|
|
69
67
|
import { IconWarning } from '@tencentcloud/uikit-base-component-vue3';
|
|
70
|
-
import {
|
|
68
|
+
import {
|
|
71
69
|
useLoginState,
|
|
72
|
-
useDeviceState,
|
|
70
|
+
useDeviceState,
|
|
73
71
|
DeviceStatus,
|
|
74
72
|
DeviceError,
|
|
75
73
|
} from 'tuikit-atomicx-vue3/room';
|
|
76
74
|
|
|
77
|
-
const {
|
|
75
|
+
const {
|
|
78
76
|
isCameraTesting,
|
|
79
77
|
isCameraTestLoading,
|
|
80
78
|
cameraList,
|
|
@@ -129,8 +127,8 @@ Start microphone testing through [startMicrophoneTest](https://web.sdk.qcloud.co
|
|
|
129
127
|
<div class="volume-display">
|
|
130
128
|
<div class="volume-label">Microphone Volume</div>
|
|
131
129
|
<div class="volume-bar-container">
|
|
132
|
-
<div
|
|
133
|
-
class="volume-bar"
|
|
130
|
+
<div
|
|
131
|
+
class="volume-bar"
|
|
134
132
|
:style="{ width: `${testingMicVolume}%` }"
|
|
135
133
|
:class="volumeClass"
|
|
136
134
|
/>
|
|
@@ -141,13 +139,13 @@ Start microphone testing through [startMicrophoneTest](https://web.sdk.qcloud.co
|
|
|
141
139
|
<!-- Microphone selection -->
|
|
142
140
|
<div class="microphone-selector">
|
|
143
141
|
<label>Select Microphone</label>
|
|
144
|
-
<select
|
|
145
|
-
:value="currentMicrophone?.deviceId"
|
|
142
|
+
<select
|
|
143
|
+
:value="currentMicrophone?.deviceId"
|
|
146
144
|
@change="handleMicrophoneChange"
|
|
147
145
|
:disabled="isMicrophoneTesting"
|
|
148
146
|
>
|
|
149
|
-
<option
|
|
150
|
-
v-for="mic in microphoneList"
|
|
147
|
+
<option
|
|
148
|
+
v-for="mic in microphoneList"
|
|
151
149
|
:key="mic.deviceId"
|
|
152
150
|
:value="mic.deviceId"
|
|
153
151
|
>
|
|
@@ -158,12 +156,12 @@ Start microphone testing through [startMicrophoneTest](https://web.sdk.qcloud.co
|
|
|
158
156
|
|
|
159
157
|
<!-- Control buttons -->
|
|
160
158
|
<div class="control-buttons">
|
|
161
|
-
<button
|
|
159
|
+
<button
|
|
162
160
|
@click="getMicrophoneList"
|
|
163
161
|
>
|
|
164
162
|
Get Devices
|
|
165
163
|
</button>
|
|
166
|
-
<button
|
|
164
|
+
<button
|
|
167
165
|
@click="toggleMicrophoneTest"
|
|
168
166
|
>
|
|
169
167
|
{{ isMicrophoneTesting ? 'Stop Test' : 'Start Test' }}
|
|
@@ -179,12 +177,12 @@ Start microphone testing through [startMicrophoneTest](https://web.sdk.qcloud.co
|
|
|
179
177
|
|
|
180
178
|
<script setup lang="ts">
|
|
181
179
|
import { ref, computed, watch, onMounted, onUnmounted } from 'vue';
|
|
182
|
-
import {
|
|
183
|
-
useDeviceState,
|
|
180
|
+
import {
|
|
181
|
+
useDeviceState,
|
|
184
182
|
DeviceError,
|
|
185
183
|
} from 'tuikit-atomicx-vue3/room';
|
|
186
184
|
|
|
187
|
-
const {
|
|
185
|
+
const {
|
|
188
186
|
isMicrophoneTesting,
|
|
189
187
|
testingMicVolume,
|
|
190
188
|
microphoneList,
|
|
@@ -251,13 +249,13 @@ Use the [startSpeakerTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index
|
|
|
251
249
|
<!-- Speaker selection -->
|
|
252
250
|
<div class="speaker-selector">
|
|
253
251
|
<label>Select Speaker</label>
|
|
254
|
-
<select
|
|
255
|
-
:value="currentSpeaker?.deviceId"
|
|
252
|
+
<select
|
|
253
|
+
:value="currentSpeaker?.deviceId"
|
|
256
254
|
@change="handleSpeakerChange"
|
|
257
255
|
:disabled="isSpeakerTesting"
|
|
258
256
|
>
|
|
259
|
-
<option
|
|
260
|
-
v-for="speaker in speakerList"
|
|
257
|
+
<option
|
|
258
|
+
v-for="speaker in speakerList"
|
|
261
259
|
:key="speaker.deviceId"
|
|
262
260
|
:value="speaker.deviceId"
|
|
263
261
|
>
|
|
@@ -269,13 +267,13 @@ Use the [startSpeakerTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index
|
|
|
269
267
|
<!-- Control buttons -->
|
|
270
268
|
<div class="control-buttons">
|
|
271
269
|
<button @click="getSpeakerList">Get Speaker List</button>
|
|
272
|
-
<button
|
|
270
|
+
<button
|
|
273
271
|
@click="toggleSpeakerTest"
|
|
274
272
|
:disabled="isSpeakerTesting"
|
|
275
273
|
>
|
|
276
274
|
{{ isSpeakerTesting ? 'Playing...' : 'Play Test Audio' }}
|
|
277
275
|
</button>
|
|
278
|
-
<button
|
|
276
|
+
<button
|
|
279
277
|
v-if="isSpeakerTesting"
|
|
280
278
|
@click="stopSpeakerTest"
|
|
281
279
|
>
|
|
@@ -294,7 +292,7 @@ Use the [startSpeakerTest](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index
|
|
|
294
292
|
import { ref, onMounted, onUnmounted } from 'vue';
|
|
295
293
|
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
296
294
|
|
|
297
|
-
const {
|
|
295
|
+
const {
|
|
298
296
|
isSpeakerTesting,
|
|
299
297
|
speakerList,
|
|
300
298
|
currentSpeaker,
|
|
@@ -345,24 +343,9 @@ const handleSpeakerChange = async (event: Event) => {
|
|
|
345
343
|
```
|
|
346
344
|
|
|
347
345
|
## API Documentation
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
<td rowspan="1" colSpan="1" >**Feature Description**</td>
|
|
353
|
-
|
|
354
|
-
<td rowspan="1" colSpan="1" >**API Documentation**</td>
|
|
355
|
-
</tr>
|
|
356
|
-
|
|
357
|
-
<tr>
|
|
358
|
-
<td rowspan="1" colSpan="1" >**useDeviceState**</td>
|
|
359
|
-
|
|
360
|
-
<td rowspan="1" colSpan="1" >Contains audio/video device status, audio/video device list and operation interfaces.</td>
|
|
361
|
-
|
|
362
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState)</td>
|
|
363
|
-
</tr>
|
|
364
|
-
</table>
|
|
365
|
-
|
|
346
|
+
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
347
|
+
| --- | --- | --- |
|
|
348
|
+
| **useDeviceState** | Contains audio/video device status, audio/video device list and operation interfaces. | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState) |
|
|
366
349
|
|
|
367
350
|
## FAQ
|
|
368
351
|
|
|
@@ -377,7 +360,6 @@ Possible reasons include:
|
|
|
377
360
|
|
|
378
361
|
- **Browser not supported:** Use modern browsers such as Chrome, Edge, etc.
|
|
379
362
|
|
|
380
|
-
|
|
381
363
|
### Microphone test volume is always 0?
|
|
382
364
|
|
|
383
365
|
Possible reasons include:
|
|
@@ -9,9 +9,8 @@ This document guides you on how to use Atomicx components and the `useDeviceStat
|
|
|
9
9
|
|
|
10
10
|
- **Network Quality Monitoring:** Provides multi-dimensional network information including latency and packet loss rate.
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
## Prerequisites
|
|
14
|
-
- User has completed login authentication through [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState), please refer to
|
|
13
|
+
- User has completed login authentication through [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState), please refer to Integration Overview.
|
|
15
14
|
|
|
16
15
|
- If integrating within an `iframe`, permissions must be declared in the tag.
|
|
17
16
|
|
|
@@ -76,11 +75,10 @@ watch(currentCamera, (camera) => {
|
|
|
76
75
|
```
|
|
77
76
|
|
|
78
77
|
> **Note:**
|
|
79
|
-
>
|
|
78
|
+
>
|
|
80
79
|
|
|
81
80
|
> When calling [setCurrentCamera](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setCurrentCamera) to switch devices, if the camera is already on, Atomicx will automatically stop capturing from the current device and restart capture using the new device, with seamless video stream switching. If switching fails, it will continue using the original device.
|
|
82
|
-
>
|
|
83
|
-
|
|
81
|
+
>
|
|
84
82
|
|
|
85
83
|
#### Mobile Camera Switch Example
|
|
86
84
|
|
|
@@ -98,7 +96,7 @@ const toggleCamera = async () => {
|
|
|
98
96
|
console.warn('Front/rear camera switching is only supported on mobile devices');
|
|
99
97
|
return;
|
|
100
98
|
}
|
|
101
|
-
|
|
99
|
+
|
|
102
100
|
// Switch to opposite camera
|
|
103
101
|
await switchCamera({ isFrontCamera: !isFrontCamera.value });
|
|
104
102
|
console.log(`Switched to ${isFrontCamera.value ? 'front' : 'rear'} camera`);
|
|
@@ -110,10 +108,10 @@ const toggleCamera = async () => {
|
|
|
110
108
|
When camera capture errors occur, you can get error information through the [cameraLastError](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#cameraLastError) property.
|
|
111
109
|
|
|
112
110
|
> Note:
|
|
113
|
-
>
|
|
111
|
+
>
|
|
114
112
|
|
|
115
113
|
> Common camera errors include `NoSystemPermission` (no system permission) and `OccupiedError` (device occupied). You should display clear error messages to users based on this property.
|
|
116
|
-
>
|
|
114
|
+
>
|
|
117
115
|
|
|
118
116
|
``` typescript
|
|
119
117
|
import { useDeviceState, DeviceError } from 'tuikit-atomicx-vue3/room';
|
|
@@ -165,11 +163,11 @@ You can get all available microphone devices through [microphoneList](https://we
|
|
|
165
163
|
``` typescript
|
|
166
164
|
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
167
165
|
|
|
168
|
-
const {
|
|
169
|
-
microphoneList,
|
|
170
|
-
currentMicrophone,
|
|
171
|
-
getMicrophoneList,
|
|
172
|
-
setCurrentMicrophone
|
|
166
|
+
const {
|
|
167
|
+
microphoneList,
|
|
168
|
+
currentMicrophone,
|
|
169
|
+
getMicrophoneList,
|
|
170
|
+
setCurrentMicrophone
|
|
173
171
|
} = useDeviceState();
|
|
174
172
|
|
|
175
173
|
// Get microphone list
|
|
@@ -217,9 +215,9 @@ The [currentMicVolume](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.htm
|
|
|
217
215
|
<div class="mic-volume">
|
|
218
216
|
<label>Microphone Volume</label>
|
|
219
217
|
<div class="volume-bar-container">
|
|
220
|
-
<div
|
|
221
|
-
class="volume-bar"
|
|
222
|
-
:style="{ width: `${currentMicVolume}%` }"
|
|
218
|
+
<div
|
|
219
|
+
class="volume-bar"
|
|
220
|
+
:style="{ width: `${currentMicVolume}%` }"
|
|
223
221
|
/>
|
|
224
222
|
</div>
|
|
225
223
|
<span>{{ currentMicVolume }}</span>
|
|
@@ -285,11 +283,11 @@ Speaker (playback device) mainly involves switching devices and setting playback
|
|
|
285
283
|
You can get all available speaker devices through [speakerList](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#speakerList), and use [setCurrentSpeaker](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setCurrentSpeaker) method to switch the currently used speaker.
|
|
286
284
|
``` typescript
|
|
287
285
|
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
288
|
-
const {
|
|
289
|
-
speakerList,
|
|
290
|
-
currentSpeaker,
|
|
291
|
-
getSpeakerList,
|
|
292
|
-
setCurrentSpeaker
|
|
286
|
+
const {
|
|
287
|
+
speakerList,
|
|
288
|
+
currentSpeaker,
|
|
289
|
+
getSpeakerList,
|
|
290
|
+
setCurrentSpeaker
|
|
293
291
|
} = useDeviceState();
|
|
294
292
|
|
|
295
293
|
// Get speaker list
|
|
@@ -334,10 +332,10 @@ watch(outputVolume, (volume) => {
|
|
|
334
332
|
Using the [networkInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#networkInfo) data in [useDeviceState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState), you can monitor the local user's network quality in real-time.
|
|
335
333
|
|
|
336
334
|
> **Note:**
|
|
337
|
-
>
|
|
335
|
+
>
|
|
338
336
|
|
|
339
337
|
> Valid data can only be obtained in [networkInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#networkInfo) when the local user has joined the room through [joinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#joinRoom) and turned on the microphone or camera.
|
|
340
|
-
>
|
|
338
|
+
>
|
|
341
339
|
|
|
342
340
|
``` typescript
|
|
343
341
|
<template>
|
|
@@ -436,24 +434,9 @@ const networkText = computed(() => {
|
|
|
436
434
|
```
|
|
437
435
|
|
|
438
436
|
## API Documentation
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
<td rowspan="1" colSpan="1" >**Feature Description**</td>
|
|
444
|
-
|
|
445
|
-
<td rowspan="1" colSpan="1" >**API Documentation**</td>
|
|
446
|
-
</tr>
|
|
447
|
-
|
|
448
|
-
<tr>
|
|
449
|
-
<td rowspan="1" colSpan="1" >**useDeviceState**</td>
|
|
450
|
-
|
|
451
|
-
<td rowspan="1" colSpan="1" >Contains audio/video device status, audio/video device list and operation interfaces.</td>
|
|
452
|
-
|
|
453
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState)</td>
|
|
454
|
-
</tr>
|
|
455
|
-
</table>
|
|
456
|
-
|
|
437
|
+
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
438
|
+
| --- | --- | --- |
|
|
439
|
+
| **useDeviceState** | Contains audio/video device status, audio/video device list and operation interfaces. | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState) |
|
|
457
440
|
|
|
458
441
|
## FAQ
|
|
459
442
|
|
|
@@ -468,13 +451,10 @@ Yes, they can enter the room. Users can still successfully call the `joinRoom` i
|
|
|
468
451
|
|
|
469
452
|
- **Playback limitations:** Due to lack of speaker devices, users will not be able to hear audio from other participants in the room.
|
|
470
453
|
|
|
471
|
-
|
|
472
454
|
**Functions that can still be used:**
|
|
473
455
|
|
|
474
|
-
|
|
475
456
|
View-only mode: Users can still watch video streams or screen sharing from remote participants.
|
|
476
457
|
|
|
477
|
-
|
|
478
458
|
### How to implement device hot-plug detection?
|
|
479
459
|
|
|
480
460
|
Atomicx has built-in device hot-plug detection. When media devices are plugged in or unplugged, the device list and current device data will be automatically updated.
|