@tencentcloud/sdk-mcp 1.6.3 → 1.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +0 -4
- package/knowledge/build-index.js +1 -1
- package/knowledge/chunker.js +81 -52
- package/knowledge/path-meta.js +181 -21
- package/knowledge/search/exact-lookup.js +166 -0
- package/knowledge/search/filter-pool.js +73 -19
- package/knowledge/search/product-scope-intent.js +2 -2
- package/knowledge/search/requires-framework.js +1 -1
- package/knowledge/search/search-knowledge.js +234 -57
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +1 -0
- package/resource/integration/callkit/preset/android/integration.md +3 -5
- package/resource/integration/callkit/preset/flutter/integration.md +2 -3
- package/resource/integration/callkit/preset/ios/integration.md +2 -5
- package/resource/integration/callkit/preset/react/integration.md +12 -26
- package/resource/integration/callkit/preset/vue/integration.md +17 -33
- package/resource/integration/chat/preset/android/integration.md +44 -14
- package/resource/integration/chat/preset/flutter/integration.md +54 -13
- package/resource/integration/chat/preset/ios/integration.md +42 -6
- package/resource/integration/chat/preset/react/integration.md +30 -28
- package/resource/integration/chat/preset/uni-app/integration.md +101 -40
- package/resource/integration/chat/preset/vue/integration.md +62 -28
- package/resource/integration/livekit/preset/live/android/live-audience-integration.md +133 -0
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +225 -0
- package/resource/integration/livekit/preset/live/android/live-list-integration.md +278 -0
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +271 -0
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +207 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +358 -0
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +246 -0
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +218 -0
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +4 -7
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +5 -12
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +4 -11
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +250 -482
- package/resource/integration/roomkit/preset/vue/integration.md +399 -106
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +20 -0
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +11 -15
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +10 -13
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +2 -4
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +10 -17
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +11 -17
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +11 -20
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +10 -15
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +9 -14
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +12 -18
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +390 -0
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +317 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +16 -22
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +17 -23
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +39 -0
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +341 -0
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +39 -0
- package/resource/knowledge/callkit/faq/android.md +1 -5
- package/resource/knowledge/callkit/faq/common.md +10 -12
- package/resource/knowledge/callkit/faq/ios.md +5 -7
- package/resource/knowledge/callkit/faq/uniapp-app.md +7 -7
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +9 -12
- package/resource/knowledge/callkit/faq/web.md +2 -12
- package/resource/knowledge/callkit/preset/android/api.md +5 -8
- package/resource/knowledge/callkit/preset/ios/api.md +4 -6
- package/resource/knowledge/callkit/preset/miniprogram/api.md +295 -0
- package/resource/knowledge/callkit/preset/react/api.md +622 -0
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +475 -0
- package/resource/knowledge/callkit/preset/vue/api.md +622 -0
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +587 -0
- package/resource/knowledge/callkit/preset/web/api.md +1 -1
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/android/features/language.md +2 -4
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
- package/resource/knowledge/chat/preset/android/features/message-list.md +1 -2
- package/resource/knowledge/chat/preset/android/features/search.md +0 -1
- package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/android-view/integration.md +35 -10
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/language.md +1 -1
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/search.md +4 -5
- package/resource/knowledge/chat/preset/flutter/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/language.md +2 -5
- package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +57 -166
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -1
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +3 -3
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +3 -3
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -1
- package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -1
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -4
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +4 -4
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +1 -1
- package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -2
- package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -2
- package/resource/knowledge/chat/preset/vue/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/theme.md +4 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +2 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +12 -15
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +12 -15
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +2 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/vue/capability-matrix.md +82 -0
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-gift.md → features/android/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{live/android/live-live-list.md → features/android/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-gift.md → features/flutter/gift.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-barrage.md → features/ios/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-gift.md → features/ios/gift.md} +8 -9
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-live-list.md → features/ios/live-list.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audio-effect.md → features/uni-app/audio-effect.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-barrage.md → features/uni-app/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +145 -0
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-gift.md → features/uni-app/gift.md} +6 -7
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-room-list.md → features/uni-app/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +6 -9
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -6
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +3 -5
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +7 -10
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +561 -0
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +323 -0
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +312 -0
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +11 -14
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -1
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +1 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +7 -10
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-co-guest-interaction.md → co-guest-interaction.md} +6 -6
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-integration.md → integration.md} +6 -7
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +1 -1
- package/resource/knowledge/push/api-reference/android.md +337 -0
- package/resource/knowledge/push/api-reference/donut.md +190 -0
- package/resource/knowledge/push/api-reference/flutter.md +176 -0
- package/resource/knowledge/push/api-reference/harmonyos.md +140 -0
- package/resource/knowledge/push/api-reference/ios.md +537 -0
- package/resource/knowledge/push/api-reference/react-native.md +154 -0
- package/resource/knowledge/push/api-reference/uni-app.md +148 -0
- package/resource/knowledge/push/api-reference/unity.md +119 -0
- package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
- package/resource/knowledge/push/config/android/fcm.md +1 -8
- package/resource/knowledge/push/config/android/honor.md +3 -7
- package/resource/knowledge/push/config/android/huawei.md +0 -5
- package/resource/knowledge/push/config/android/meizu.md +0 -5
- package/resource/knowledge/push/config/android/oppo.md +0 -4
- package/resource/knowledge/push/config/android/vivo.md +0 -4
- package/resource/knowledge/push/config/android/xiaomi.md +0 -2
- package/resource/knowledge/push/config/donut.md +33 -46
- package/resource/knowledge/push/config/harmonyos.md +6 -9
- package/resource/knowledge/push/config/ios.md +2 -9
- package/resource/knowledge/push/config/react-native.md +17 -25
- package/resource/knowledge/push/config/unity.md +16 -24
- package/resource/knowledge/push/config/unreal-engine.md +16 -24
- package/resource/knowledge/push/integration/android.md +21 -21
- package/resource/knowledge/push/integration/donut.md +24 -34
- package/resource/knowledge/push/integration/flutter.md +12 -1
- package/resource/knowledge/push/integration/harmonyos.md +2 -1
- package/resource/knowledge/push/integration/ios.md +16 -10
- package/resource/knowledge/push/integration/react-native.md +10 -14
- package/resource/knowledge/push/integration/uni-app.md +10 -6
- package/resource/knowledge/push/integration/unity.md +19 -22
- package/resource/knowledge/push/integration/unreal-engine.md +7 -9
- package/resource/knowledge/push/overview/prepare.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +2 -5
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +2 -6
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -1
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +2 -4
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +2 -3
- package/resource/knowledge/roomkit/preset/android/integration.md +14 -16
- package/resource/knowledge/roomkit/preset/flutter/integration.md +9 -17
- package/resource/knowledge/roomkit/preset/ios/integration.md +9 -17
- package/resource/knowledge/roomkit/preset/react/integration.md +0 -4
- package/resource/knowledge/trtc/android/TRTCCloud.md +97 -180
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +20 -20
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +43 -77
- package/resource/knowledge/trtc/android/TRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +4 -24
- package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +96 -189
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +1 -21
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -6
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +42 -76
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +18 -19
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/ios/TRTCCloud.md +95 -181
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +43 -78
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +1 -20
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -6
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +20 -20
- package/server-config.js +7 -4
- package/server.js +2 -2
- package/tools/common/finalize_answer.js +1 -1
- package/tools/common/present_framework_choice.js +2 -2
- package/tools/common/search_trtc_knowledge.js +3 -3
- package/tools/common/submit_feedback.js +1 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +60 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +1 -1
- package/tools/definitions/present_framework_choice_def.js +2 -2
- package/tools/definitions/search_trtc_knowledge_def.js +5 -5
- package/tools/index.js +2 -0
- package/tools/live/get_native_live_uikit_integration.js +69 -0
- package/tools/live/get_native_livekit_core_integration.js +6 -6
- package/utils/is-valid-sdkappid.js +4 -0
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/index/component-slugs.json +0 -1
- package/resource/index/doc-source-urls.json +0 -1
- package/resource/index/manifest.json +0 -1
- package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -229
- package/resource/knowledge/livekit/core-sdk/live/android/live-gift.md +0 -459
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -506
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-gift.md +0 -427
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -265
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -214
- package/resource/knowledge/livekit/core-sdk/live/ios/live-barrage.md +0 -427
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -272
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -486
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +0 -523
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -262
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -600
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-gift.md +0 -411
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +0 -404
- /package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audience-list.md → features/uni-app/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -0
|
@@ -1,106 +1,440 @@
|
|
|
1
|
-
|
|
1
|
+
本文档介绍如何在 Vue 3 业务项目中集成 TUIRoomKit,快速获得开箱即用的多人音视频会议能力。
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
|
|
3
|
+
<style>
|
|
4
|
+
.vsdk-survey-card * {
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
}
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
.vsdk-survey-card {
|
|
9
|
+
position: relative;
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
gap: 20px;
|
|
14
|
+
padding: 18px 22px;
|
|
15
|
+
margin: 16px 0;
|
|
16
|
+
border-radius: 14px;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
|
|
19
|
+
border: 1px solid #D7E8FF;
|
|
20
|
+
box-shadow: 0 4px 16px rgba(0,110,255,.05);
|
|
21
|
+
transition: all .25s ease;
|
|
22
|
+
}
|
|
8
23
|
|
|
9
|
-
|
|
10
|
-
|
|
24
|
+
.vsdk-survey-card::before{
|
|
25
|
+
content:"";
|
|
26
|
+
position:absolute;
|
|
27
|
+
right:-60px;
|
|
28
|
+
top:-60px;
|
|
29
|
+
width:180px;
|
|
30
|
+
height:180px;
|
|
31
|
+
background:radial-gradient(circle,
|
|
32
|
+
rgba(0,110,255,.16) 0%,
|
|
33
|
+
rgba(0,110,255,.08) 45%,
|
|
34
|
+
transparent 75%);
|
|
35
|
+
pointer-events:none;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.vsdk-survey-card::after{
|
|
39
|
+
content:"";
|
|
40
|
+
position:absolute;
|
|
41
|
+
left:-40px;
|
|
42
|
+
bottom:-60px;
|
|
43
|
+
width:120px;
|
|
44
|
+
height:120px;
|
|
45
|
+
background:radial-gradient(circle,
|
|
46
|
+
rgba(76,169,255,.08),
|
|
47
|
+
transparent 70%);
|
|
48
|
+
pointer-events:none;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.vsdk-survey-card:hover{
|
|
52
|
+
border-color:#006EFF;
|
|
53
|
+
box-shadow:
|
|
54
|
+
0 10px 28px rgba(0,110,255,.10),
|
|
55
|
+
0 0 36px rgba(0,110,255,.08);
|
|
56
|
+
transform:translateY(-2px);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.vsdk-card-left{
|
|
60
|
+
display:flex;
|
|
61
|
+
align-items:center;
|
|
62
|
+
gap:14px;
|
|
63
|
+
flex:1;
|
|
64
|
+
min-width:0;
|
|
65
|
+
position:relative;
|
|
66
|
+
z-index:1;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.vsdk-ico{
|
|
70
|
+
width:46px;
|
|
71
|
+
height:46px;
|
|
72
|
+
flex:0 0 46px;
|
|
73
|
+
border-radius:12px;
|
|
74
|
+
background:linear-gradient(180deg,#EDF5FF,#DCEBFF);
|
|
75
|
+
display:flex;
|
|
76
|
+
align-items:center;
|
|
77
|
+
justify-content:center;
|
|
78
|
+
font-size:22px;
|
|
79
|
+
box-shadow:
|
|
80
|
+
inset 0 1px 0 rgba(255,255,255,.8),
|
|
81
|
+
0 6px 18px rgba(0,110,255,.12);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.vsdk-text{
|
|
85
|
+
min-width:0;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.vsdk-title{
|
|
89
|
+
display:flex;
|
|
90
|
+
align-items:center;
|
|
91
|
+
gap:8px;
|
|
92
|
+
flex-wrap:wrap;
|
|
93
|
+
font-size:18px;
|
|
94
|
+
font-weight:600;
|
|
95
|
+
color:#1F2329;
|
|
96
|
+
line-height:1.4;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.vsdk-badge{
|
|
100
|
+
padding:2px 8px;
|
|
101
|
+
border-radius:999px;
|
|
102
|
+
background:#EAF3FF;
|
|
103
|
+
color:#006EFF;
|
|
104
|
+
font-size:11px;
|
|
105
|
+
font-weight:600;
|
|
106
|
+
}
|
|
11
107
|
|
|
12
|
-
|
|
13
|
-
-
|
|
108
|
+
.vsdk-desc{
|
|
109
|
+
margin-top:6px;
|
|
110
|
+
font-size:13px;
|
|
111
|
+
line-height:1.7;
|
|
112
|
+
color:#4E5969;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.vsdk-card-right{
|
|
116
|
+
flex-shrink:0;
|
|
117
|
+
position:relative;
|
|
118
|
+
z-index:1;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.vsdk-cta{
|
|
122
|
+
display:inline-flex;
|
|
123
|
+
align-items:center;
|
|
124
|
+
justify-content:center;
|
|
125
|
+
min-width:112px;
|
|
126
|
+
height:40px;
|
|
127
|
+
padding:0 22px;
|
|
128
|
+
border-radius:8px;
|
|
129
|
+
background:#006EFF;
|
|
130
|
+
color:#FFFFFF;
|
|
131
|
+
text-decoration:none;
|
|
132
|
+
font-size:14px;
|
|
133
|
+
font-weight:600;
|
|
134
|
+
box-shadow:0 8px 20px rgba(0,110,255,.25);
|
|
135
|
+
transition:all .2s ease;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.vsdk-cta:hover{
|
|
139
|
+
background:#0052D9;
|
|
140
|
+
box-shadow:0 10px 24px rgba(0,110,255,.35);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@media (max-width:768px){
|
|
144
|
+
|
|
145
|
+
.vsdk-survey-card{
|
|
146
|
+
flex-direction:column;
|
|
147
|
+
align-items:flex-start;
|
|
148
|
+
}
|
|
14
149
|
|
|
15
|
-
-
|
|
150
|
+
.vsdk-card-left{
|
|
151
|
+
width:100%;
|
|
152
|
+
align-items:flex-start;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.vsdk-title{
|
|
156
|
+
font-size:16px;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.vsdk-desc{
|
|
160
|
+
font-size:12px;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.vsdk-card-right{
|
|
164
|
+
width:100%;
|
|
165
|
+
margin-top:14px;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.vsdk-cta{
|
|
169
|
+
width:100%;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
</style>
|
|
174
|
+
|
|
175
|
+
<div class="vsdk-survey-card">
|
|
176
|
+
|
|
177
|
+
<div class="vsdk-card-left">
|
|
178
|
+
|
|
179
|
+
<div class="vsdk-ico">💡</div>
|
|
180
|
+
|
|
181
|
+
<div class="vsdk-text">
|
|
182
|
+
|
|
183
|
+
<div class="vsdk-title">
|
|
184
|
+
缺少您想要的功能?
|
|
185
|
+
<span class="vsdk-badge">优先内测</span>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<div class="vsdk-desc">
|
|
189
|
+
如果您在使用视频会议 SDK 时遇到过问题,或希望支持新的能力,欢迎与我们分享。<br />
|
|
190
|
+
您的反馈将帮助我们持续优化产品,并优先邀请有相关需求的用户参与新功能内测。
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
</div>
|
|
194
|
+
|
|
195
|
+
</div>
|
|
196
|
+
|
|
197
|
+
<div class="vsdk-card-right">
|
|
198
|
+
<a class="vsdk-cta" href="https://wj.qq.com/s2/27306813/b61d/" target="_blank">
|
|
199
|
+
填写问卷
|
|
200
|
+
</a>
|
|
201
|
+
</div>
|
|
202
|
+
|
|
203
|
+
</div>
|
|
16
204
|
|
|
17
205
|
## 前提条件
|
|
18
206
|
|
|
19
207
|
### 开通服务
|
|
20
208
|
|
|
21
209
|
请参考 [开通服务](https://cloud.tencent.com/document/product/647/104842) 领取 TUIRoomKit 体验版或开通 TUIRoomKit 正式版,并在 [应用管理](https://console.cloud.tencent.com/trtc) 页面获取以下信息:
|
|
22
|
-
- SDKAppID
|
|
210
|
+
- **SDKAppID:** 应用标识,腾讯云基于 `SDKAppID` 完成计费统计。
|
|
23
211
|
|
|
24
|
-
- SDKSecretKey
|
|
212
|
+
- **SDKSecretKey:** 应用密钥,用于本地调试时生成 UserSig。
|
|
25
213
|
|
|
26
214
|
### 环境准备
|
|
27
|
-
- Node.js
|
|
215
|
+
- **Node.js:** ≥ 18.19.1 (推荐使用官方 LTS 版本)。
|
|
216
|
+
|
|
217
|
+
- **浏览器:**推荐使用最新版 Chrome,或其他支持 [WebRTC API](https://cloud.tencent.com/document/product/647/17249#.E6.94.AF.E6.8C.81.E7.9A.84.E5.B9.B3.E5.8F.B0) 的浏览器。
|
|
28
218
|
|
|
29
|
-
-
|
|
219
|
+
- **媒体设备:**建议配备摄像头、麦克风和扬声器。缺少相应设备时仍可入会,但对应音视频能力不可用。
|
|
30
220
|
|
|
31
|
-
|
|
221
|
+
### 准备 Vue3 项目
|
|
32
222
|
|
|
33
|
-
|
|
223
|
+
若您尚未创建 Vue 3 项目,可先执行以下命令初始化;若已有 Vue 3 项目,可跳过本节。
|
|
224
|
+
``` bash
|
|
225
|
+
# 创建名为 roomkit-demo 的 Vue3 + TypeScript 项目
|
|
226
|
+
npm create vite@5 roomkit-demo -- --template vue-ts
|
|
227
|
+
# 进入项目目录
|
|
228
|
+
cd roomkit-demo
|
|
229
|
+
# 安装基础依赖
|
|
230
|
+
npm install
|
|
231
|
+
```
|
|
34
232
|
|
|
35
233
|
## 快速接入
|
|
36
234
|
|
|
37
|
-
|
|
235
|
+
完成前提条件后,按以下步骤在 Vue 3 项目中快速完成 TUIRoomKit 接入,并体验会中能力。
|
|
236
|
+
|
|
237
|
+
### 步骤1:安装 SDK 依赖
|
|
38
238
|
|
|
39
239
|
在您的业务项目中安装以下依赖。
|
|
40
240
|
|
|
41
241
|
【npm】
|
|
42
242
|
``` bash
|
|
43
|
-
npm install @tencentcloud/roomkit-web-vue3
|
|
243
|
+
npm install @tencentcloud/roomkit-web-vue3 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
44
244
|
```
|
|
45
245
|
|
|
46
246
|
【pnpm】
|
|
47
247
|
``` bash
|
|
48
|
-
pnpm install @tencentcloud/roomkit-web-vue3
|
|
248
|
+
pnpm install @tencentcloud/roomkit-web-vue3 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
49
249
|
```
|
|
50
250
|
|
|
51
251
|
【yarn】
|
|
52
252
|
``` bash
|
|
53
|
-
yarn add @tencentcloud/roomkit-web-vue3
|
|
253
|
+
yarn add @tencentcloud/roomkit-web-vue3 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
54
254
|
```
|
|
55
255
|
|
|
56
|
-
### 步骤2
|
|
256
|
+
### 步骤2:集成会中界面
|
|
257
|
+
|
|
258
|
+
将以下示例代码复制至 `src/App.vue`,并根据控制台信息替换 `SDKAppID` 与 `SDKSecretKey`。
|
|
259
|
+
|
|
260
|
+
> **注意**:
|
|
261
|
+
>
|
|
262
|
+
> 快速接入示例采用客户端生成 UserSig 的方式,**仅可用于本地开发调试**。正式环境请改为由业务服务端生成 UserSig,详见 [正式运行阶段如何计算 UserSig](https://cloud.tencent.com/document/product/647/17275#formal)。
|
|
263
|
+
>
|
|
264
|
+
|
|
57
265
|
``` typescript
|
|
58
266
|
<template>
|
|
59
267
|
<UIKitProvider theme="light" language="zh-CN">
|
|
60
|
-
<ConferenceMainView v-if="isPC"
|
|
61
|
-
<ConferenceMainViewH5 v-else
|
|
268
|
+
<ConferenceMainView v-if="inRoom && isPC" />
|
|
269
|
+
<ConferenceMainViewH5 v-else-if="inRoom" />
|
|
270
|
+
<div v-else class="entry">
|
|
271
|
+
<TUIInput v-model="entry.userId" placeholder="请输入用户 ID" />
|
|
272
|
+
<TUIInput v-model="entry.userName" placeholder="请输入昵称" />
|
|
273
|
+
<TUIInput v-model="entry.roomId" placeholder="如 123456" />
|
|
274
|
+
<TUIButton type="primary" :disabled="!entry.userId || !entry.roomId" @click="handleEnterRoom">进入会议</TUIButton>
|
|
275
|
+
</div>
|
|
62
276
|
</UIKitProvider>
|
|
63
277
|
</template>
|
|
64
278
|
|
|
65
279
|
<script setup lang="ts">
|
|
66
|
-
import { ref } from 'vue';
|
|
67
|
-
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
68
|
-
import { ConferenceMainView, ConferenceMainViewH5 } from '@tencentcloud/roomkit-web-vue3';
|
|
280
|
+
import { ref, onMounted, onUnmounted } from 'vue';
|
|
281
|
+
import { UIKitProvider, TUIInput, TUIButton, TUIToast } from '@tencentcloud/uikit-base-component-vue3';
|
|
282
|
+
import { conference, ConferenceMainView, ConferenceMainViewH5, RoomEvent, genTestUserSig } from '@tencentcloud/roomkit-web-vue3';
|
|
69
283
|
import { getPlatform } from '@tencentcloud/universal-api';
|
|
70
284
|
|
|
71
|
-
const
|
|
285
|
+
const SDKAppID = 0; // 替换为您在开通服务阶段获取的 SDKAppID
|
|
286
|
+
const SDKSecretKey = ''; // 替换为您在开通服务阶段获取的 SDKSecretKey
|
|
287
|
+
|
|
288
|
+
const isPC = getPlatform() === 'pc';
|
|
289
|
+
const inRoom = ref(false);
|
|
290
|
+
const stored = JSON.parse(sessionStorage.getItem('tuiRoom-entry') || '{}');
|
|
291
|
+
const entry = ref({ userId: stored.userId || '', userName: stored.userName || '', roomId: stored.roomId || '' });
|
|
292
|
+
|
|
293
|
+
const handleEnterRoom = async () => {
|
|
294
|
+
sessionStorage.setItem('tuiRoom-entry', JSON.stringify(entry.value));
|
|
295
|
+
if (!SDKAppID || !SDKSecretKey) {
|
|
296
|
+
TUIToast.warning({ message: '请先在代码中配置 SDKAppID 和 SDKSecretKey' });
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
try {
|
|
300
|
+
const { userSig } = genTestUserSig({ userId: entry.value.userId, sdkAppId: SDKAppID, secretKey: SDKSecretKey });
|
|
301
|
+
await conference.login({ sdkAppId: SDKAppID, userId: entry.value.userId, userSig });
|
|
302
|
+
await conference.setSelfInfo({ userName: entry.value.userName, avatarUrl: '' });
|
|
303
|
+
await conference.createAndJoinRoom({ roomId: entry.value.roomId, options: { roomName: `${entry.value.userName || entry.value.userId} 的会议` } });
|
|
304
|
+
inRoom.value = true;
|
|
305
|
+
} catch (error) {
|
|
306
|
+
console.error('进入会议失败:', error);
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
const handleLeave = () => { inRoom.value = false; };
|
|
311
|
+
|
|
312
|
+
onMounted(() => {
|
|
313
|
+
conference.on(RoomEvent.ROOM_LEAVE, handleLeave);
|
|
314
|
+
conference.on(RoomEvent.ROOM_DISMISS, handleLeave);
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
onUnmounted(() => {
|
|
318
|
+
conference.off(RoomEvent.ROOM_LEAVE, handleLeave);
|
|
319
|
+
conference.off(RoomEvent.ROOM_DISMISS, handleLeave);
|
|
320
|
+
});
|
|
72
321
|
</script>
|
|
322
|
+
|
|
323
|
+
<style>
|
|
324
|
+
html, body, #app { width: 100%; height: 100%; max-width: 100%; max-height: 100%; margin: 0; padding: 0; }
|
|
325
|
+
.entry { display: flex; flex-direction: column; gap: 12px; align-items: center; justify-content: center; height: 100vh; width: 260px; margin: 0 auto; }
|
|
326
|
+
</style>
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 步骤3:启动并验证
|
|
330
|
+
|
|
331
|
+
【npm】
|
|
332
|
+
``` bash
|
|
333
|
+
npm run dev
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
【pnpm】
|
|
337
|
+
``` bash
|
|
338
|
+
pnpm run dev
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
【yarn】
|
|
342
|
+
``` bash
|
|
343
|
+
yarn run dev
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
启动成功后,在浏览器访问本地调试地址(通常为 `http://localhost:5173`),填写用户 ID 与房间号,点击 **进入会议**,即可进入 TUIRoomKit 会中界面。
|
|
347
|
+
|
|
348
|
+
**验证多人会议:**建议打开两个浏览器标签页,分别模拟不同用户进入同一房间,验证音视频互通与会中功能。操作步骤如下:
|
|
349
|
+
|
|
350
|
+
**步骤1:**打开两个浏览器标签页,分别填写用户 ID `userA`、`userB` 及相同房间号 `room_123456`,点击 **进入会议**。`userA` 先进入时将自动创建房间并成为房主;`userB` 后进入时将作为参会者加入。
|
|
351
|
+
| 测试用户 A | 测试用户 B |
|
|
352
|
+
| --- | --- |
|
|
353
|
+
| | |
|
|
354
|
+
|
|
355
|
+
**步骤2:** 测试用户均进入会中界面后,可在成员列表中互相看到对方;开启摄像头、麦克风,确认能否看到彼此的画面并听到声音。
|
|
356
|
+
| 测试用户 A | 测试用户 B |
|
|
357
|
+
| --- | --- |
|
|
358
|
+
| | |
|
|
359
|
+
|
|
360
|
+
**步骤3:** 您还可以体验屏幕共享、聊天、成员管理等会中能力,确认多人场景下的基础功能正常。
|
|
361
|
+
|
|
362
|
+
## 接入详解
|
|
363
|
+
|
|
364
|
+
快速接入章节以一体化示例帮助您完成首次进房体验。若需将会议能力集成至实际业务,可按会议流程分步集成。本节依次介绍 SDK 依赖安装、TUIRoomKit 组件引用、登录鉴权、创建与加入会议、离开会议、监听会议状态等核心能力的用法。
|
|
365
|
+
|
|
366
|
+
> **推荐使用更高效的 AI 集成助手**
|
|
367
|
+
>
|
|
368
|
+
> 我们为您提供 AI 集成助手:描述业务需求即可自动生成集成代码;接入过程中遇到问题,也可向 AI 咨询答疑。点击这里,立即体验 AI 集成
|
|
369
|
+
>
|
|
370
|
+
|
|
371
|
+
### 步骤1:安装 SDK 依赖
|
|
372
|
+
|
|
373
|
+
在您的业务项目中安装 TUIRoomKit 及配套依赖包。
|
|
374
|
+
|
|
375
|
+
【npm】
|
|
376
|
+
``` bash
|
|
377
|
+
npm install @tencentcloud/roomkit-web-vue3 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
73
378
|
```
|
|
74
379
|
|
|
380
|
+
【pnpm】
|
|
381
|
+
``` bash
|
|
382
|
+
pnpm install @tencentcloud/roomkit-web-vue3 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
【yarn】
|
|
386
|
+
``` bash
|
|
387
|
+
yarn add @tencentcloud/roomkit-web-vue3 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### 步骤2:引用 TUIRoomKit 组件
|
|
391
|
+
|
|
392
|
+
TUIRoomKit 提供 Web 桌面端与 H5 移动端两套会中完整界面组件,均从 `@tencentcloud/roomkit-web-vue3` 导出。根据终端类型按需引用:
|
|
393
|
+
- `ConferenceMainView`:面向 Web 桌面端,提供九宫格 / 侧边栏 / 顶部栏等视频布局,内置摄像头、麦克风、屏幕共享、成员管理、聊天、邀请入会等完整会中能力。
|
|
394
|
+
|
|
395
|
+
- `ConferenceMainViewH5`:面向 H5 移动端,采用移动端专属布局与交互,支持摄像头、麦克风、成员列表、聊天等核心会中能力,适配手机浏览器场景。
|
|
396
|
+
|
|
397
|
+
组件须包裹在 `UIKitProvider` 内,并通过 `getPlatform()` 区分 Web 与 H5 终端后按需渲染:
|
|
398
|
+
|
|
399
|
+
``` typescript
|
|
400
|
+
<template>
|
|
401
|
+
<UIKitProvider theme="light" language="zh-CN">
|
|
402
|
+
<ConferenceMainView v-if="isPC"></ConferenceMainView>
|
|
403
|
+
<ConferenceMainViewH5 v-else></ConferenceMainViewH5>
|
|
404
|
+
</UIKitProvider>
|
|
405
|
+
</template>
|
|
406
|
+
|
|
407
|
+
<script setup lang="ts">
|
|
408
|
+
import { ref } from 'vue';
|
|
409
|
+
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
410
|
+
import { ConferenceMainView, ConferenceMainViewH5 } from '@tencentcloud/roomkit-web-vue3';
|
|
411
|
+
import { getPlatform } from '@tencentcloud/universal-api';
|
|
412
|
+
|
|
413
|
+
const isPC = ref(getPlatform() === 'pc');
|
|
414
|
+
</script>
|
|
415
|
+
```
|
|
416
|
+
|
|
75
417
|
### 步骤3:登录
|
|
76
418
|
|
|
77
|
-
|
|
419
|
+
本节介绍 TUIRoomKit 登录的最佳实践。推荐在用户完成业务侧 Web 登录鉴权后,由业务服务端签发 UserSig 并下发至客户端,再依次调用 `conference.login` 与 `conference.setSelfInfo`,完成 TUIRoomKit 鉴权并配置会中展示信息。
|
|
78
420
|
|
|
79
421
|
> **注意**:
|
|
80
422
|
>
|
|
81
|
-
|
|
82
|
-
> 在配置代码中,请务必填入生成的 UserSig。在正式的生产环境中,建议在您的服务端生成 UserSig,在需要 UserSig 时由您的客户端向业务服务器发起请求获取动态 UserSig 来进行鉴权。详见 [正式运行阶段如何计算 UserSig](https://cloud.tencent.com/document/product/647/17275#formal)。
|
|
423
|
+
> UserSig 是 TUIRoomKit 登录的核心凭证。**生产环境**必须由业务服务端生成 UserSig,客户端在需要时向业务服务器请求获取,切勿在客户端硬编码 SDKSecretKey。**本地开发调试**时,可使用 `@tencentcloud/roomkit-web-vue3` 提供的 `genTestUserSig` 生成临时 UserSig,仅用于本地验证,不可用于生产环境。详见 [正式运行阶段如何计算 UserSig](https://cloud.tencent.com/document/product/647/17275#formal)。
|
|
83
424
|
>
|
|
84
425
|
|
|
85
426
|
``` typescript
|
|
86
427
|
import { onMounted } from 'vue';
|
|
87
428
|
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
88
429
|
|
|
89
|
-
//
|
|
90
|
-
const
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
-
const userName = '用户展示昵称';
|
|
430
|
+
const SDKAppID = 0; // 控制台获取的 SDKAppID
|
|
431
|
+
const userId = 'your_user_id'; // 业务侧用户唯一标识
|
|
432
|
+
const userSig = 'your_user_sig'; // 由业务服务端签发并下发
|
|
433
|
+
const userName = 'your_user_name';
|
|
94
434
|
|
|
95
435
|
onMounted(async () => {
|
|
96
436
|
try {
|
|
97
|
-
|
|
98
|
-
await conference.login({
|
|
99
|
-
sdkAppId: SDKAppID,
|
|
100
|
-
userId,
|
|
101
|
-
userSig,
|
|
102
|
-
});
|
|
103
|
-
// 2. (可选)设置个人信息
|
|
437
|
+
await conference.login({ sdkAppId: SDKAppID, userId, userSig });
|
|
104
438
|
await conference.setSelfInfo({
|
|
105
439
|
userName,
|
|
106
440
|
avatarUrl: 'https://your-avatar-url.com/image.png',
|
|
@@ -111,9 +445,9 @@ onMounted(async () => {
|
|
|
111
445
|
});
|
|
112
446
|
```
|
|
113
447
|
|
|
114
|
-
####
|
|
448
|
+
#### 登录与进房分属不同路由时,如何监听登录状态?
|
|
115
449
|
|
|
116
|
-
|
|
450
|
+
若登录页与进房页为独立路由,进房页加载时 `conference.login` 可能尚未执行完毕。可通过 `watch` 监听 `loginUserInfo.value?.userId`:该字段非空时表示 TUIRoomKit 已完成登录,再执行进房逻辑。
|
|
117
451
|
``` typescript
|
|
118
452
|
import { watch } from 'vue';
|
|
119
453
|
import { useLoginState } from 'tuikit-atomicx-vue3/room';
|
|
@@ -130,7 +464,7 @@ watch(() => loginUserInfo.value?.userId, async (userId) => {
|
|
|
130
464
|
|
|
131
465
|
### 步骤4:创建会议
|
|
132
466
|
|
|
133
|
-
|
|
467
|
+
创建会议所需的**房间号(roomId)**是会议的核心标识,**由您的业务系统自行生成并维护(需保证全局唯一)**。请根据实际业务场景,选择以下创建方式:
|
|
134
468
|
|
|
135
469
|
#### 场景一:客户端发起快速会议
|
|
136
470
|
|
|
@@ -212,7 +546,7 @@ POST /v4/room_engine_http_srv/create_room
|
|
|
212
546
|
|
|
213
547
|
**适用场景:**房间已经被发起人或服务端明确创建,参会人收到了发起人分享的房间号或者会议邀请链接。
|
|
214
548
|
|
|
215
|
-
|
|
549
|
+
**实现方式:**参会人输入房间号,或通过邀请链接解析出 `roomId` 后,调用 `conference.joinRoom` 加入会议。
|
|
216
550
|
``` typescript
|
|
217
551
|
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
218
552
|
|
|
@@ -227,7 +561,7 @@ const joinExistingMeeting = async (sharedRoomId: string) => {
|
|
|
227
561
|
|
|
228
562
|
**适用场景:**适用于已通过“客户端预约”或“服务端创建”的会议。用户可进入“会议列表”页面,查看自己预定或受邀参与的会议,并快速点击加入。
|
|
229
563
|
|
|
230
|
-
**实现方式:**通过 `useRoomState` 提供的 `getScheduledRoomList`
|
|
564
|
+
**实现方式:**通过 `useRoomState` 提供的 `getScheduledRoomList` 接口拉取当前用户的预约会议列表并渲染至界面;用户点击目标会议后,获取对应 `roomId` 并调用 `conference.joinRoom` 进房。
|
|
231
565
|
``` typescript
|
|
232
566
|
<template>
|
|
233
567
|
<div>
|
|
@@ -310,15 +644,14 @@ const enterDualMeeting = async (bizOrderId: string) => {
|
|
|
310
644
|
|
|
311
645
|
> **说明:**
|
|
312
646
|
>
|
|
313
|
-
|
|
314
|
-
> `conference.createAndJoinRoom` 接口内部封装了“不存在则创建(成为房主),已存在则加入(成为普通参会者)”的逻辑,完美解决高并发下的状态冲突问题。
|
|
647
|
+
> `conference.createAndJoinRoom` 内部封装了“房间不存在则创建并成为房主,已存在则加入并成为参会者”的逻辑,适用于双方对等发起的进房场景。
|
|
315
648
|
>
|
|
316
649
|
|
|
317
650
|
### 步骤6:离开与解散房间
|
|
318
651
|
|
|
319
|
-
TUIRoomKit
|
|
652
|
+
TUIRoomKit 已在界面上内置离开与解散房间功能,用户可直接点击 **离开房间** 或 **解散房间** 完成操作。
|
|
320
653
|
|
|
321
|
-
|
|
654
|
+
如需在业务代码中主动触发离开或解散,可调用以下接口。
|
|
322
655
|
|
|
323
656
|
#### 场景一:主动离开房间
|
|
324
657
|
|
|
@@ -331,7 +664,6 @@ await conference.leaveRoom();
|
|
|
331
664
|
|
|
332
665
|
> **说明**:
|
|
333
666
|
>
|
|
334
|
-
|
|
335
667
|
> 房主离开房间或关闭网页,不会自动解散房间,其他参会成员可继续正常使用 TUIRoomKit 能力,系统会在会议结束时间后 6 小时、且房间内人数为 0 时自动回收房间资源。
|
|
336
668
|
>
|
|
337
669
|
|
|
@@ -346,15 +678,14 @@ await conference.endRoom();
|
|
|
346
678
|
|
|
347
679
|
> **注意**:
|
|
348
680
|
>
|
|
349
|
-
|
|
350
681
|
> `endRoom()` 必须由房主在成功进入房间后才能调用。非房主身份或在尚未进入房间的状态下调用会报错。
|
|
351
682
|
>
|
|
352
683
|
|
|
353
684
|
### 步骤7:监听房间状态
|
|
354
685
|
|
|
355
|
-
|
|
686
|
+
在音视频会议场景中,房间状态可能因房主解散、账号在其他设备登录或网络异常等原因发生变化。
|
|
356
687
|
|
|
357
|
-
TUIRoomKit
|
|
688
|
+
TUIRoomKit 会自动处理底层音视频资源释放与界面提示,但页面路由跳转需由业务层接管。建议您在会议组件 `onMounted` 时注册状态监听,并在 `onUnmounted` 时移除监听。
|
|
358
689
|
``` typescript
|
|
359
690
|
<template>
|
|
360
691
|
<ConferenceMainView></ConferenceMainView>
|
|
@@ -396,32 +727,13 @@ onUnmounted(() => {
|
|
|
396
727
|
|`RoomEvent.KICKED_OFFLINE`|同一账号在其他设备登录,当前设备被强制下线|跳转登录页|
|
|
397
728
|
|`RoomEvent.USER_SIG_EXPIRED`|UserSig 已过期|跳转登录页|
|
|
398
729
|
|
|
399
|
-
## 启动项目
|
|
400
|
-
|
|
401
|
-
【npm】
|
|
402
|
-
``` bash
|
|
403
|
-
npm run dev
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
【pnpm】
|
|
407
|
-
``` bash
|
|
408
|
-
pnpm run dev
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
【yarn】
|
|
412
|
-
``` bash
|
|
413
|
-
yarn run dev
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
启动成功后,请在浏览器中打开调试地址(通常为 http://localhost:5173)访问应用。您将看到如下所示的会议界面:
|
|
417
|
-
|
|
418
730
|
## 下一步
|
|
419
731
|
|
|
420
732
|
在完成基础集成后,您可以根据业务需求进一步定制 UI 界面。
|
|
421
733
|
|
|
422
734
|
### 配置主题及语言
|
|
423
735
|
|
|
424
|
-
|
|
736
|
+
通过配置 `App.vue` 中 `UIKitProvider` 的入参,修改主题及语言的默认值。更多自定义主题及语言请参考 UI 自定义 > 主题及语言。
|
|
425
737
|
| <code>UIKitProvider</code> 参数 | 可选值 | 默认值 |
|
|
426
738
|
| --- | --- | --- |
|
|
427
739
|
| theme | "light" \\| "dark" | "light" |
|
|
@@ -429,11 +741,14 @@ yarn run dev
|
|
|
429
741
|
|
|
430
742
|
``` typescript
|
|
431
743
|
<UIKitProvider theme="light" language="zh-CN">
|
|
432
|
-
<
|
|
744
|
+
<ConferenceMainView v-if="stage === 'room' && isPC" />
|
|
745
|
+
<ConferenceMainViewH5 v-else-if="stage === 'room'" />
|
|
433
746
|
</UIKitProvider>
|
|
434
747
|
|
|
435
748
|
<script setup lang="ts">
|
|
436
749
|
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
750
|
+
import { ConferenceMainView, ConferenceMainViewH5 } from '@tencentcloud/roomkit-web-vue3';
|
|
751
|
+
</script>
|
|
437
752
|
```
|
|
438
753
|
|
|
439
754
|
### 配置用户联系人列表
|
|
@@ -477,7 +792,7 @@ TUIRoomKit 默认内置以下视频流挂件,如您需要自定义视频流挂
|
|
|
477
792
|
|
|
478
793
|
### 创建房间的用户(房主)关闭网页或异常退出后,会议会立即结束吗?
|
|
479
794
|
|
|
480
|
-
|
|
795
|
+
不会。房主关闭浏览器或因网络异常离开页面时,会议不会立即解散,其他在房成员仍可继续会议。
|
|
481
796
|
|
|
482
797
|
为节省资源,建议在会议实际结束时,通过以下任一方式主动销毁房间:
|
|
483
798
|
- 界面操作:房主点击 TUIRoomKit 界面上的「解散房间」按钮;
|
|
@@ -490,15 +805,15 @@ TUIRoomKit 默认内置以下视频流挂件,如您需要自定义视频流挂
|
|
|
490
805
|
|
|
491
806
|
### 多个设备能否使用同一个 userId 同时加入同一场会议?
|
|
492
807
|
|
|
493
|
-
不支持。
|
|
808
|
+
不支持。TUIRoomKit 不允许同一 userId 在多个设备上同时进入同一房间。
|
|
494
809
|
- 互踢机制:若后到的设备使用相同 userId 尝试进房,先前已在房内的设备会被强制下线(踢出)。
|
|
495
810
|
|
|
496
811
|
- 解决方案:如需实现多端(如手机、PC)同时加入会议,请确保为每个设备分配唯一的 userId。
|
|
497
812
|
|
|
498
813
|
### 在本地开发时使用正常,但部署到线上环境后无法正常采集用户的摄像头或麦克风设备?
|
|
499
|
-
-
|
|
814
|
+
- **原因:**浏览器出于安全与隐私考虑,仅允许在安全环境(`https://`、`localhost`、`file://` 等)下采集摄像头、麦克风。HTTP 协议下浏览器会默认禁止访问媒体设备。
|
|
500
815
|
|
|
501
|
-
-
|
|
816
|
+
- **解决方案:**若本地(`localhost`)测试正常但部署后采集失败,请检查页面是否使用 HTTPS 协议部署,并确保证书有效。
|
|
502
817
|
|
|
503
818
|
- 相关资源:更多关于 URL 域名及协议的限制详情,请参见 [URL 域名及协议限制说明](https://cloud.tencent.com/document/product/647/17249#URL-.E5.9F.9F.E5.90.8D.E5.8D.8F.E8.AE.AE.E9.99.90.E5.88.B6)。
|
|
504
819
|
|
|
@@ -514,38 +829,16 @@ TUIRoomKit 默认内置以下视频流挂件,如您需要自定义视频流挂
|
|
|
514
829
|
|
|
515
830
|
### 是否支持设置内网代理?
|
|
516
831
|
|
|
517
|
-
|
|
518
|
-
``` typescript
|
|
519
|
-
// 请在进房前设置内网代理参数
|
|
520
|
-
import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';
|
|
521
|
-
import { useRoomEngine } from 'tuikit-atomicx-vue3/room';
|
|
522
|
-
const { roomEngine } = useRoomEngine();
|
|
523
|
-
|
|
524
|
-
TUIRoomEngine.once('ready', () => {
|
|
525
|
-
const trtcCloud = roomEngine.instance?.getTRTCCloud();
|
|
526
|
-
trtcCloud.callExperimentalAPI(JSON.stringify({
|
|
527
|
-
api: 'setNetworkProxy',
|
|
528
|
-
params: {
|
|
529
|
-
websocketProxy: "wss://proxy.example.com/ws/",
|
|
530
|
-
turnServer: [{
|
|
531
|
-
url: '14.3.3.3:3478',
|
|
532
|
-
username: 'turn',
|
|
533
|
-
credential: 'turn',
|
|
534
|
-
}],
|
|
535
|
-
iceTransportPolicy: 'relay',
|
|
536
|
-
},
|
|
537
|
-
}));
|
|
538
|
-
});
|
|
539
|
-
```
|
|
832
|
+
支持。更多内网代理信息请参考 内网代理(Web)。
|
|
540
833
|
|
|
541
834
|
### 是否可以直接修改 TUIRoomKit 的底层源码?
|
|
542
835
|
|
|
543
|
-
TUIRoomKit
|
|
836
|
+
TUIRoomKit 已提供丰富的 UI 自定义能力,包括 主题及语言、界面微调、视频布局及挂件、水印配置 等,可满足大多数业务的个性化需求。
|
|
544
837
|
|
|
545
838
|
我们非常不推荐您进行源码导出。导出源码意味着您的项目将脱离 TUIRoomKit 的常规 npm 版本升级路径。您不仅需要自行承担后续极高的代码维护成本,也将无法直接通过更新版本来享受我们后续推出的新功能和底层音视频引擎的性能优化。
|
|
546
|
-
-
|
|
839
|
+
- **推荐方案:**优先查阅 UI 自定义系列文档,使用标准自定义接口。
|
|
547
840
|
|
|
548
|
-
|
|
841
|
+
若您已充分评估维护风险,且业务存在必须修改底层结构的深度定制需求,可按以下步骤导出源码:
|
|
549
842
|
|
|
550
843
|
【Vue3】
|
|
551
844
|
1. 执行源码导出脚本,默认拷贝路径为 `./src/components/RoomKit`
|