@tencent-rtc/mcp 1.4.7 → 1.6.0-beta.1
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/cursor-setting.png +0 -0
- package/knowledge/bm25-cache.js +74 -0
- package/knowledge/bm25-cache.js.map +1 -0
- package/knowledge/bm25.js +148 -0
- package/knowledge/bm25.js.map +1 -0
- package/knowledge/build-index.js +70 -0
- package/knowledge/build-index.js.map +1 -0
- package/knowledge/chunker.js +168 -0
- package/knowledge/chunker.js.map +1 -0
- package/knowledge/content-loader.js +40 -0
- package/knowledge/content-loader.js.map +1 -0
- package/knowledge/doc-url-resolver.js +143 -0
- package/knowledge/doc-url-resolver.js.map +1 -0
- package/knowledge/extractors.js +26 -0
- package/knowledge/extractors.js.map +1 -0
- package/knowledge/path-meta.js +185 -0
- package/knowledge/path-meta.js.map +1 -0
- package/knowledge/search/exact-lookup.js +498 -0
- package/knowledge/search/exact-lookup.js.map +1 -0
- package/knowledge/search/filter-pool.js +105 -0
- package/knowledge/search/filter-pool.js.map +1 -0
- package/knowledge/search/product-scope-intent.js +41 -0
- package/knowledge/search/product-scope-intent.js.map +1 -0
- package/knowledge/search/requires-framework.js +82 -0
- package/knowledge/search/requires-framework.js.map +1 -0
- package/knowledge/search/search-knowledge.js +230 -0
- package/knowledge/search/search-knowledge.js.map +1 -0
- package/mcp-server-prompt.png +0 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +10 -0
- package/resource/_schema/goal-tags.yaml +72 -0
- package/resource/_schema/products.yaml +19 -0
- package/resource/_schema/trtc-intents.yaml +27 -0
- package/resource/_schema/types.yaml +43 -0
- package/resource/index/component-slugs.json +1 -0
- package/resource/index/doc-source-urls.json +1 -0
- package/resource/index/manifest.json +1 -0
- package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
- package/resource/integration/callkit/preset/flutter/integration.md +346 -0
- package/resource/integration/callkit/preset/ios/integration.md +408 -0
- package/resource/integration/callkit/preset/react/integration.md +362 -0
- package/resource/integration/callkit/preset/vue/integration.md +356 -0
- package/resource/integration/chat/preset/android/integration.md +500 -0
- package/resource/integration/chat/preset/flutter/integration.md +370 -0
- package/resource/integration/chat/preset/ios/integration.md +566 -0
- package/resource/integration/chat/preset/react/integration.md +490 -0
- package/resource/integration/chat/preset/vue/integration.md +504 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
- package/resource/integration/roomkit/preset/vue/integration.md +562 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
- package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
- package/resource/knowledge/callkit/faq/android.md +92 -0
- package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
- package/resource/knowledge/callkit/faq/error-code.md +67 -0
- package/resource/knowledge/callkit/faq/flutter.md +52 -0
- package/resource/knowledge/callkit/faq/ios.md +104 -0
- package/resource/knowledge/callkit/faq/web.md +74 -0
- package/resource/knowledge/callkit/preset/android/api.md +412 -0
- package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
- package/resource/knowledge/callkit/preset/ios/api.md +234 -0
- package/resource/knowledge/callkit/preset/web/api.md +83 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
- package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
- package/resource/knowledge/chat/preset/android/features/language.md +136 -0
- package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
- package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
- package/resource/knowledge/chat/preset/android/features/search.md +64 -0
- package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
- package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
- package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
- package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
- package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
- package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
- package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
- package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
- package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
- package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
- package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
- package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
- package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
- package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
- package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
- package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
- package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
- package/resource/knowledge/chat/urls/error-code.md +17 -0
- package/resource/knowledge/chat/urls/product.md +43 -0
- package/resource/knowledge/chat/urls/restapi.md +204 -0
- package/resource/knowledge/chat/urls/sdk/android.md +80 -0
- package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
- package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
- package/resource/knowledge/chat/urls/sdk/web.md +80 -0
- package/resource/knowledge/chat/urls/webhook.md +68 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
- package/resource/knowledge/livekit/faq/error-code.md +193 -0
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
- package/resource/knowledge/push/config/android.md +92 -0
- package/resource/knowledge/push/config/harmonyos.md +83 -0
- package/resource/knowledge/push/config/ios.md +254 -0
- package/resource/knowledge/push/config/react-native.md +254 -0
- package/resource/knowledge/push/config/unity.md +209 -0
- package/resource/knowledge/push/config/unreal-engine.md +194 -0
- package/resource/knowledge/push/integration/android.md +404 -0
- package/resource/knowledge/push/integration/flutter.md +465 -0
- package/resource/knowledge/push/integration/harmonyos.md +63 -0
- package/resource/knowledge/push/integration/ios.md +246 -0
- package/resource/knowledge/push/integration/react-native.md +366 -0
- package/resource/knowledge/push/integration/uni-app.md +208 -0
- package/resource/knowledge/push/integration/unity.md +389 -0
- package/resource/knowledge/push/integration/unreal-engine.md +390 -0
- package/resource/knowledge/push/overview/prepare.md +60 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
- package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
- package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
- package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
- package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
- package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
- package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
- package/server.js +35 -11
- package/server.js.map +1 -1
- package/tools/call/get_native_call_uikit_integration.js +2 -3
- package/tools/call/get_native_call_uikit_integration.js.map +1 -1
- package/tools/call/get_native_callkit_core_integration.js +2 -5
- package/tools/call/get_native_callkit_core_integration.js.map +1 -1
- package/tools/call/get_web_call_uikit_integration.js +2 -3
- package/tools/call/get_web_call_uikit_integration.js.map +1 -1
- package/tools/chat/get_native_chat_uikit_integration.js +2 -3
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -1
- package/tools/chat/get_web_chat_uikit_integration.js +2 -3
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -1
- package/tools/common/present_framework_choice.js +19 -13
- package/tools/common/present_framework_choice.js.map +1 -1
- package/tools/common/record_answer.js +19 -25
- package/tools/common/record_answer.js.map +1 -1
- package/tools/common/record_feedback.js +17 -30
- package/tools/common/record_feedback.js.map +1 -1
- package/tools/common/search_trtc_knowledge.js +45 -0
- package/tools/common/search_trtc_knowledge.js.map +1 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +3 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_callkit_core_integration_def.js +5 -3
- package/tools/definitions/get_native_callkit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -2
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_integration_def.js +6 -5
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +4 -2
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -0
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +5 -5
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_room_core_integration_def.js +50 -0
- package/tools/definitions/get_web_room_core_integration_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +5 -4
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/integration-boundary.js +6 -0
- package/tools/definitions/integration-boundary.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +12 -10
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/definitions/record_answer_def.js +19 -17
- package/tools/definitions/record_answer_def.js.map +1 -1
- package/tools/definitions/record_feedback_def.js +14 -13
- package/tools/definitions/record_feedback_def.js.map +1 -1
- package/tools/definitions/search_trtc_knowledge_def.js +40 -0
- package/tools/definitions/search_trtc_knowledge_def.js.map +1 -0
- package/tools/index.js +5 -36
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_integration.js +1 -3
- package/tools/live/get_native_livekit_core_integration.js.map +1 -1
- package/tools/live/get_web_live_uikit_integration.js +2 -4
- package/tools/live/get_web_live_uikit_integration.js.map +1 -1
- package/tools/room/get_web_room_core_integration.js +48 -0
- package/tools/room/get_web_room_core_integration.js.map +1 -0
- package/tools/room/get_web_room_uikit_integration.js +2 -3
- package/tools/room/get_web_room_uikit_integration.js.map +1 -1
- package/utils/generate-structured-result.js +24 -30
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/get-doc-content.js +14 -8
- package/utils/get-doc-content.js.map +1 -1
- package/utils/report-cls-client.js +18 -20
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
- package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
- package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
- package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
- package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
- package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
- package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
- package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
- package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
- package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
- package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
- package/resource/doc/callkit/faq/common/error-code.md +0 -47
- package/resource/doc/callkit/faq/flutter-faq.md +0 -115
- package/resource/doc/callkit/faq/ios-faq.md +0 -115
- package/resource/doc/callkit/faq/web-faq.md +0 -36
- package/resource/doc/callkit/preset/android/api.md +0 -296
- package/resource/doc/callkit/preset/flutter/api.md +0 -410
- package/resource/doc/callkit/preset/flutter/integration.md +0 -164
- package/resource/doc/callkit/preset/ios/api.md +0 -80
- package/resource/doc/callkit/preset/ios/integration.md +0 -187
- package/resource/doc/callkit/preset/react/api.md +0 -501
- package/resource/doc/callkit/preset/react/integration.md +0 -86
- package/resource/doc/callkit/preset/vue/api.md +0 -501
- package/resource/doc/callkit/preset/vue/integration.md +0 -83
- package/resource/doc/chatkit/android/faq.md +0 -111
- package/resource/doc/chatkit/android/features/theme.md +0 -219
- package/resource/doc/chatkit/android/integration.md +0 -490
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
- package/resource/doc/chatkit/faq/common/product.md +0 -7
- package/resource/doc/chatkit/faq/common/server.md +0 -44
- package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
- package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
- package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
- package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
- package/resource/doc/chatkit/flutter/faq.md +0 -23
- package/resource/doc/chatkit/flutter/features/theme.md +0 -235
- package/resource/doc/chatkit/flutter/integration.md +0 -344
- package/resource/doc/chatkit/ios/faq.md +0 -111
- package/resource/doc/chatkit/ios/features/theme.md +0 -267
- package/resource/doc/chatkit/react/components/avatar.md +0 -104
- package/resource/doc/chatkit/react/components/chat-header.md +0 -148
- package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
- package/resource/doc/chatkit/react/components/chat.md +0 -38
- package/resource/doc/chatkit/react/components/component-list.md +0 -37
- package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
- package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
- package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
- package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
- package/resource/doc/chatkit/react/components/message-list.md +0 -293
- package/resource/doc/chatkit/react/components/tuikit.md +0 -34
- package/resource/doc/chatkit/react/faq.md +0 -26
- package/resource/doc/chatkit/react/integration.md +0 -416
- package/resource/doc/chatkit/vue/components/avatar.md +0 -104
- package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
- package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
- package/resource/doc/chatkit/vue/components/chat.md +0 -45
- package/resource/doc/chatkit/vue/components/component-list.md +0 -87
- package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
- package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
- package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
- package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
- package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
- package/resource/doc/chatkit/vue/components/message-list.md +0 -433
- package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
- package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
- package/resource/doc/chatkit/vue/faq.md +0 -36
- package/resource/doc/chatkit/vue/integration.md +0 -428
- package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
- package/resource/doc/livekit/faq/common/error-code.md +0 -88
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
- package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
- package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
- package/resource/doc/roomkit/faq/common/error-code.md +0 -67
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
- package/resource/doc/roomkit/vue/features/device-state.md +0 -460
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
- package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
- package/resource/doc/roomkit/vue/features/room-state.md +0 -282
- package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
- package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
- package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
- package/resource/doc/roomkit/vue/integration.md +0 -315
- package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
- package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
- package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
- package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
- package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
- package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
- package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
- package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
- package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
- package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
- package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
- package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
- package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
- package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
- package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
- package/tools/call/get_callkit_api.js +0 -33
- package/tools/call/get_callkit_api.js.map +0 -1
- package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
- package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
- package/tools/common/get_faq.js +0 -266
- package/tools/common/get_faq.js.map +0 -1
- package/tools/common/record_skill_session.js +0 -69
- package/tools/common/record_skill_session.js.map +0 -1
- package/tools/definitions/get_callkit_api_def.js +0 -29
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -47
- package/tools/definitions/get_faq_def.js.map +0 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
- package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_api_def.js +0 -30
- package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
- package/tools/definitions/record_skill_session_def.js +0 -31
- package/tools/definitions/record_skill_session_def.js.map +0 -1
- package/tools/live/get_native_livekit_core_features.js +0 -68
- package/tools/live/get_native_livekit_core_features.js.map +0 -1
- package/tools/live/get_web_livekit_api.js +0 -33
- package/tools/live/get_web_livekit_api.js.map +0 -1
- package/tools/live/get_web_livekit_component_detail.js +0 -35
- package/tools/live/get_web_livekit_component_detail.js.map +0 -1
- package/tools/room/get_web_roomkit_feature_detail.js +0 -69
- package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
- package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
- package/utils/build-session-directives.js +0 -120
- package/utils/build-session-directives.js.map +0 -1
- package/utils/handle-framework.js +0 -9
- package/utils/handle-framework.js.map +0 -1
- package/utils/handle-state-name.js +0 -29
- package/utils/handle-state-name.js.map +0 -1
- package/utils/report-runtime-error-cls-client.js +0 -91
- package/utils/report-runtime-error-cls-client.js.map +0 -1
- /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
- /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
- /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
|
@@ -0,0 +1,562 @@
|
|
|
1
|
+
TUIRoomKit is a UI solution for audio/video conferencing rooms provided by TRTC. This guide explains how to integrate TUIRoomKit into an existing Vue3 project and how to customize its styles, layouts, and features.
|
|
2
|
+
- Desktop Multi-Party Conference
|
|
3
|
+
|
|
4
|
+
- H5 Multi-Party Conference
|
|
5
|
+
|
|
6
|
+
## Prerequisites
|
|
7
|
+
|
|
8
|
+
### Activate the Service
|
|
9
|
+
|
|
10
|
+
See [Activate the Service](https://trtc.io/document/59973) to obtain the TUIRoomKit trial version and retrieve your **SDKAppID** and **SDKSecretKey**.
|
|
11
|
+
- **SDKAppID**: Application identifier. TRTC uses `SDKAppID` for billing statistics.
|
|
12
|
+
|
|
13
|
+
- **SDKSecretKey**: Application secret, used to initialize configuration files with sensitive information.
|
|
14
|
+
|
|
15
|
+
### Environment Setup
|
|
16
|
+
- Node.js: ≥ 18.19.1 (official LTS version recommended)
|
|
17
|
+
|
|
18
|
+
- Vue: ≥ 3.4.21
|
|
19
|
+
|
|
20
|
+
- Modern browsers: Browsers that support [WebRTC APIs](https://trtc.io/document/41664)
|
|
21
|
+
|
|
22
|
+
- Devices: Camera, microphone, speaker
|
|
23
|
+
|
|
24
|
+
## Quick Integration
|
|
25
|
+
|
|
26
|
+
### Step 1: Install Dependencies
|
|
27
|
+
|
|
28
|
+
Install the following dependencies in your project.
|
|
29
|
+
|
|
30
|
+
【npm】
|
|
31
|
+
``` bash
|
|
32
|
+
npm install @tencentcloud/roomkit-web-vue3@5 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
【pnpm】
|
|
36
|
+
``` bash
|
|
37
|
+
pnpm install @tencentcloud/roomkit-web-vue3@5 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
【yarn】
|
|
41
|
+
``` bash
|
|
42
|
+
yarn add @tencentcloud/roomkit-web-vue3@5 tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/universal-api
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Step 2: Import TUIRoomKit Components
|
|
46
|
+
``` typescript
|
|
47
|
+
<template>
|
|
48
|
+
<UIKitProvider theme="light" language="zh-CN">
|
|
49
|
+
<ConferenceMainView v-if="isPC"></ConferenceMainView>
|
|
50
|
+
<ConferenceMainViewH5 v-else></ConferenceMainViewH5>
|
|
51
|
+
</UIKitProvider>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
<script setup lang="ts">
|
|
55
|
+
import { ref } from 'vue';
|
|
56
|
+
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
57
|
+
import { ConferenceMainView, ConferenceMainViewH5 } from '@tencentcloud/roomkit-web-vue3';
|
|
58
|
+
import { getPlatform } from '@tencentcloud/universal-api';
|
|
59
|
+
|
|
60
|
+
const isPC = ref(getPlatform() === 'pc');
|
|
61
|
+
</script>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Step 3: User Authentication
|
|
65
|
+
|
|
66
|
+
Authentication is required to access all TUIRoomKit features. Call conference.login as soon as your user is authenticated—for example, right after a user logs into your web page. After calling `conference.login`, we recommend calling `conference.setSelfInfo` to set the user’s display name and avatar, which are shown in the participant video area and the member list.
|
|
67
|
+
|
|
68
|
+
> **Note:**
|
|
69
|
+
>
|
|
70
|
+
|
|
71
|
+
> Make sure to use the generated UserSig in your configuration. In production, generate UserSig on your server and have the client request a dynamic UserSig from your business server for authentication as needed. See [How to calculate UserSig for production](https://trtc.io/document/35166).
|
|
72
|
+
>
|
|
73
|
+
|
|
74
|
+
``` typescript
|
|
75
|
+
import { onMounted } from 'vue';
|
|
76
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
77
|
+
|
|
78
|
+
// Replace these parameters with your actual business data and SDKAppID from the console
|
|
79
|
+
const SDKAppID = 0;
|
|
80
|
+
const userId = 'your_user_id';
|
|
81
|
+
const userSig = 'your_dynamic_user_sig';
|
|
82
|
+
const userName = 'Display Name';
|
|
83
|
+
|
|
84
|
+
onMounted(async () => {
|
|
85
|
+
try {
|
|
86
|
+
// 1. SDK authentication
|
|
87
|
+
await conference.login({
|
|
88
|
+
sdkAppId: SDKAppID,
|
|
89
|
+
userId,
|
|
90
|
+
userSig,
|
|
91
|
+
});
|
|
92
|
+
// 2. (Optional) Set display name and avatar
|
|
93
|
+
await conference.setSelfInfo({
|
|
94
|
+
userName,
|
|
95
|
+
avatarUrl: 'https://your-avatar-url.com/image.png',
|
|
96
|
+
});
|
|
97
|
+
} catch (error) {
|
|
98
|
+
console.error('TUIRoomKit login failed:', error);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### Integration Issue: Listening for Authentication Success Across Routes
|
|
104
|
+
|
|
105
|
+
If your authentication and Enter Room pages use different routes, the Enter Room page may load before `conference.login` finishes. Use Vue's `watch` to monitor `loginUserInfo.value?.userId`. When this value is non-empty, authentication is successful.
|
|
106
|
+
``` typescript
|
|
107
|
+
import { watch } from 'vue';
|
|
108
|
+
import { useLoginState } from 'tuikit-atomicx-vue3/room';
|
|
109
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
110
|
+
|
|
111
|
+
const { loginUserInfo } = useLoginState();
|
|
112
|
+
|
|
113
|
+
watch(() => loginUserInfo.value?.userId, async (userId) => {
|
|
114
|
+
if (userId) {
|
|
115
|
+
await conference.createAndJoinRoom({ roomId: '123456' });
|
|
116
|
+
}
|
|
117
|
+
}, { immediate: true });
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Step 4: Create a Room
|
|
121
|
+
|
|
122
|
+
The **Room ID** is the core identifier for a meeting and must be generated and managed by your business system (it must be globally unique). Choose the creation method that fits your business scenario:
|
|
123
|
+
|
|
124
|
+
#### Scenario 1: Quick Meeting Created by the Client App
|
|
125
|
+
|
|
126
|
+
**Use Case**: The user clicks "Quick Meeting" and the client app immediately creates a room and enters it (for example, ad-hoc communication or IM chat–initiated meetings).
|
|
127
|
+
|
|
128
|
+
**Implementation**: The client app either generates the Room ID locally or requests a unique Room ID from the backend, then calls conference.createAndJoinRoom to create the room and enter it.
|
|
129
|
+
``` typescript
|
|
130
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
131
|
+
|
|
132
|
+
const startQuickMeeting = async () => {
|
|
133
|
+
// 1. Generate a unique Room ID
|
|
134
|
+
const myRoomId = `room_${Date.now()}`;
|
|
135
|
+
|
|
136
|
+
// 2. Create and Enter Room
|
|
137
|
+
await conference.createAndJoinRoom({
|
|
138
|
+
roomId: myRoomId,
|
|
139
|
+
options: {
|
|
140
|
+
roomName: 'My Quick Meeting',
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### Scenario 2: Meeting Scheduled by the Client App
|
|
147
|
+
|
|
148
|
+
**Use Case**: Meetings scheduled for a future time (for example, weekly team meetings or online training). Users can set the meeting title, scheduled time, and invitees in advance.
|
|
149
|
+
|
|
150
|
+
**Implementation**: The client app generates (or requests) a unique Room ID from your backend, then calls the scheduleRoom API with the scheduled time and other parameters to create the reservation. After the reservation is created successfully, the meeting details are synced to the invitees’ meeting lists.
|
|
151
|
+
``` typescript
|
|
152
|
+
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
153
|
+
|
|
154
|
+
const { scheduleRoom } = useRoomState();
|
|
155
|
+
|
|
156
|
+
const createSchedule = async () => {
|
|
157
|
+
try {
|
|
158
|
+
// Room ID: string, required, recommended to be generated by backend for uniqueness
|
|
159
|
+
const roomId = '123456';
|
|
160
|
+
|
|
161
|
+
// Note: Timestamp must be in seconds (Date.getTime() returns milliseconds, divide by 1000)
|
|
162
|
+
const startTime = Math.floor(new Date().getTime() / 1000) + 3600; // Starts in 1 hour
|
|
163
|
+
const duration = 1800; // 30 minutes
|
|
164
|
+
|
|
165
|
+
const options = {
|
|
166
|
+
roomName: 'Product Requirement Review',
|
|
167
|
+
scheduleStartTime: startTime, // unit: seconds
|
|
168
|
+
scheduleEndTime: startTime + duration, // unit: seconds
|
|
169
|
+
scheduleAttendees: ['userA', 'userB'], // List of participant IDs
|
|
170
|
+
password: '123', // Optional: meeting password
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
await scheduleRoom({ roomId, options });
|
|
174
|
+
} catch (error) {
|
|
175
|
+
console.error('Scheduling failed', error);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### Scenario 3: Server-Side Room Creation
|
|
181
|
+
|
|
182
|
+
**Use Case:** Highly regulated industries such as government, healthcare, and large enterprises.
|
|
183
|
+
|
|
184
|
+
**Implementation:** Your backend service initiates room creation by calling the [Server REST API to create a room](https://trtc.io/document/60707).
|
|
185
|
+
``` bash
|
|
186
|
+
POST /v4/room_engine_http_srv/create_room
|
|
187
|
+
{
|
|
188
|
+
"roomId": "your-room-id",
|
|
189
|
+
"roomName": "Meeting Name",
|
|
190
|
+
"startTime": 1710000000,
|
|
191
|
+
"endTime": 1710003600,
|
|
192
|
+
"invitees": ["userId1", "userId2"]
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Step 5: Join a Room
|
|
197
|
+
|
|
198
|
+
When participants join a room, select the method that fits your business logic.
|
|
199
|
+
|
|
200
|
+
#### Scenario 1: Join Existing Room by Room ID
|
|
201
|
+
|
|
202
|
+
**Use Case:** The room has already been created by the host or server, and participants have received the Room ID or meeting invite link.
|
|
203
|
+
|
|
204
|
+
**Implementation:** Participants enter the Room ID or parse it from the invite link, then call `conference.joinRoom` to Enter Room.
|
|
205
|
+
``` typescript
|
|
206
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
207
|
+
|
|
208
|
+
const joinExistingMeeting = async (sharedRoomId: string) => {
|
|
209
|
+
await conference.joinRoom({
|
|
210
|
+
roomId: sharedRoomId,
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
#### Scenario 2: Join from Meeting List
|
|
216
|
+
|
|
217
|
+
**Use Case:** Meetings scheduled via "Client Scheduling" or "Server-Side Creation". Users can go to the "Meeting List" page to view their scheduled or invited meetings and join quickly.
|
|
218
|
+
|
|
219
|
+
**Implementation:** Use the `getScheduledRoomList` API from `useRoomState` to fetch the user's scheduled meetings and render them. When the user clicks a meeting, retrieve its Room ID and call `conference.joinRoom` to Enter Room.
|
|
220
|
+
``` typescript
|
|
221
|
+
<template>
|
|
222
|
+
<div>
|
|
223
|
+
<h3>My Scheduled Meetings</h3>
|
|
224
|
+
<ul v-if="roomList.length > 0">
|
|
225
|
+
<li v-for="room in roomList" :key="room.roomId" class="item">
|
|
226
|
+
<div class="info">
|
|
227
|
+
<b>{{ room.roomName || 'Unnamed Meeting' }}</b>
|
|
228
|
+
<span>Room ID: {{ room.roomId }}</span>
|
|
229
|
+
</div>
|
|
230
|
+
<button class="btn" @click="handleJoinRoom(room.roomId)">Join Meeting</button>
|
|
231
|
+
</li>
|
|
232
|
+
</ul>
|
|
233
|
+
<div v-else>No scheduled meetings to join</div>
|
|
234
|
+
</div>
|
|
235
|
+
</template>
|
|
236
|
+
|
|
237
|
+
<script setup lang="ts">
|
|
238
|
+
import { ref, watch } from 'vue';
|
|
239
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
240
|
+
import { useRoomState, useLoginState } from 'tuikit-atomicx-vue3/room';
|
|
241
|
+
|
|
242
|
+
const { getScheduledRoomList } = useRoomState();
|
|
243
|
+
const { loginUserInfo } = useLoginState();
|
|
244
|
+
const roomList = ref<any[]>([]);
|
|
245
|
+
|
|
246
|
+
// 1. Listen for authentication, fetch meeting list after login
|
|
247
|
+
watch(
|
|
248
|
+
() => loginUserInfo.value?.userId,
|
|
249
|
+
async (userId) => {
|
|
250
|
+
if (userId) {
|
|
251
|
+
try {
|
|
252
|
+
roomList.value = await getScheduledRoomList() || [];
|
|
253
|
+
} catch (error) {
|
|
254
|
+
console.error('Failed to fetch scheduled meeting list:', error);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
{ immediate: true }
|
|
259
|
+
);
|
|
260
|
+
|
|
261
|
+
// 2. Join room on click
|
|
262
|
+
const handleJoinRoom = async (roomId: string) => {
|
|
263
|
+
try {
|
|
264
|
+
await conference.joinRoom({ roomId });
|
|
265
|
+
} catch (error) {
|
|
266
|
+
console.error(`Failed to join meeting (${roomId}):`, error);
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
</script>
|
|
270
|
+
|
|
271
|
+
<style scoped>
|
|
272
|
+
/* Minimal base styles */
|
|
273
|
+
ul { padding: 0; list-style: none; }
|
|
274
|
+
.item { display: flex; justify-content: space-between; padding: 10px; border-bottom: 1px solid #eee; }
|
|
275
|
+
.info { display: flex; flex-direction: column; font-size: 14px; color: #666; }
|
|
276
|
+
.info b { font-size: 16px; color: #333; }
|
|
277
|
+
.btn { background: #006eff; color: #fff; border: none; padding: 6px 12px; border-radius: 4px; cursor: pointer; }
|
|
278
|
+
</style>
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
#### Scenario 3: Enter Room When Existence Is Uncertain
|
|
282
|
+
|
|
283
|
+
**Use Case:** Peer-to-peer scenarios (e.g., online consultation, 1v1 video customer service) where you cannot determine if the room has been created.
|
|
284
|
+
|
|
285
|
+
**Implementation:** Both parties use a shared business document number (e.g., order number) as Room ID and call `conference.createAndJoinRoom` to Enter Room.
|
|
286
|
+
``` typescript
|
|
287
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
288
|
+
|
|
289
|
+
const enterDualMeeting = async (bizOrderId: string) => {
|
|
290
|
+
// No need to check if room exists; SDK handles creation and Enter Room logic automatically
|
|
291
|
+
await conference.createAndJoinRoom({
|
|
292
|
+
roomId: bizOrderId,
|
|
293
|
+
options: {
|
|
294
|
+
roomName: `Business Communication: ${bizOrderId}`,
|
|
295
|
+
},
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
> **Note:**
|
|
301
|
+
>
|
|
302
|
+
|
|
303
|
+
> The `conference.createAndJoinRoom` API handles: "If the room does not exist, create it (become host); if it exists, join it (become participant)", resolving state conflicts under high concurrency.
|
|
304
|
+
>
|
|
305
|
+
|
|
306
|
+
### Step 6: Leave Room or End Room
|
|
307
|
+
|
|
308
|
+
TUIRoomKit provides built-in UI buttons for leaving or ending the room. Users can click **"Leave Room"** or **"End Room"** directly.
|
|
309
|
+
|
|
310
|
+
To trigger leave or end actions programmatically, use the following APIs.
|
|
311
|
+
|
|
312
|
+
#### Scenario 1: Leave Room
|
|
313
|
+
|
|
314
|
+
Both participants and hosts can call `leaveRoom()` to leave the meeting. This does not affect other members; the room remains active.
|
|
315
|
+
``` typescript
|
|
316
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
317
|
+
|
|
318
|
+
await conference.leaveRoom();
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
> **Note:**
|
|
322
|
+
>
|
|
323
|
+
|
|
324
|
+
> When the host leaves the room or closes the web page, the room is not automatically ended. Other participants can continue using TUIRoomKit features. The system will automatically reclaim room resources 6 hours after the scheduled end time, provided the room is empty.
|
|
325
|
+
>
|
|
326
|
+
|
|
327
|
+
#### Scenario 2: End a Room
|
|
328
|
+
|
|
329
|
+
When the host calls `endRoom()`, all participants receive a notification that the room has ended.
|
|
330
|
+
``` typescript
|
|
331
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
332
|
+
|
|
333
|
+
await conference.endRoom();
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
> **Note:**
|
|
337
|
+
>
|
|
338
|
+
|
|
339
|
+
> `endRoom()` must be called by the host after successfully Entered Room. Calling as a non-host or before Enter Room will result in an error.
|
|
340
|
+
>
|
|
341
|
+
|
|
342
|
+
### Step 7: Listen to the Room State
|
|
343
|
+
|
|
344
|
+
In real-world audio/video conferencing, room state can change due to factors like the host ending the meeting, account login on another device, or network issues causing Enter Room failure.
|
|
345
|
+
|
|
346
|
+
TUIRoomKit automatically handles audio/video resource cleanup and UI prompts, but routing transitions must be managed by your business layer. Register state listeners when the meeting component mounts (`onMounted`), and remove listeners when the component unmounts (`onUnmounted`).
|
|
347
|
+
``` typescript
|
|
348
|
+
<template>
|
|
349
|
+
<ConferenceMainView></ConferenceMainView>
|
|
350
|
+
</template>
|
|
351
|
+
|
|
352
|
+
<script setup lang="ts">
|
|
353
|
+
import { ref, onMounted, onUnmounted } from 'vue';
|
|
354
|
+
import { ConferenceMainView, conference, RoomEvent } from '@tencentcloud/roomkit-web-vue3';
|
|
355
|
+
|
|
356
|
+
const backToHome = () => {};
|
|
357
|
+
const backToLogin = () => {};
|
|
358
|
+
|
|
359
|
+
onMounted(() => {
|
|
360
|
+
conference.on(RoomEvent.ROOM_DISMISS, backToHome);
|
|
361
|
+
conference.on(RoomEvent.ROOM_LEAVE, backToHome);
|
|
362
|
+
conference.on(RoomEvent.ROOM_ERROR, backToHome);
|
|
363
|
+
conference.on(RoomEvent.KICKED_OUT, backToHome);
|
|
364
|
+
conference.on(RoomEvent.KICKED_OFFLINE, backToLogin);
|
|
365
|
+
conference.on(RoomEvent.USER_SIG_EXPIRED, backToLogin);
|
|
366
|
+
});
|
|
367
|
+
|
|
368
|
+
onUnmounted(() => {
|
|
369
|
+
conference.off(RoomEvent.ROOM_DISMISS, backToHome);
|
|
370
|
+
conference.off(RoomEvent.ROOM_LEAVE, backToHome);
|
|
371
|
+
conference.off(RoomEvent.ROOM_ERROR, backToHome);
|
|
372
|
+
conference.off(RoomEvent.KICKED_OUT, backToHome);
|
|
373
|
+
conference.off(RoomEvent.KICKED_OFFLINE, backToLogin);
|
|
374
|
+
conference.off(RoomEvent.USER_SIG_EXPIRED, backToLogin);
|
|
375
|
+
});
|
|
376
|
+
</script>
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
|Event|Trigger Timing|Recommended Handling|
|
|
380
|
+
|---------|---------|---------|
|
|
381
|
+
|`RoomEvent.ROOM_DISMISS`|Room ended, triggers for all participants|Return to home or meeting list|
|
|
382
|
+
|`RoomEvent.ROOM_LEAVE`|User clicks "Leave" button in TUIRoomKit UI|Return to home or meeting list|
|
|
383
|
+
|`RoomEvent.ROOM_ERROR`|Enter Room failure or unhandled error in room|Return to home or meeting list|
|
|
384
|
+
|`RoomEvent.KICKED_OUT`|Kicked out by host|Return to home or meeting list|
|
|
385
|
+
|`RoomEvent.KICKED_OFFLINE`|Same account logged in on another device, current device forced offline|Redirect to login page|
|
|
386
|
+
|`RoomEvent.USER_SIG_EXPIRED`|UserSig expired|Redirect to login page|
|
|
387
|
+
|
|
388
|
+
## Start the Project
|
|
389
|
+
|
|
390
|
+
【npm】
|
|
391
|
+
``` bash
|
|
392
|
+
npm run dev
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
【pnpm】
|
|
396
|
+
``` bash
|
|
397
|
+
pnpm run dev
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
【yarn】
|
|
401
|
+
``` bash
|
|
402
|
+
yarn run dev
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
After the project starts successfully, open the debug address in your browser (usually http://localhost:5173) to access the application. You will see a meeting interface like the following:
|
|
406
|
+
|
|
407
|
+
## Next Steps
|
|
408
|
+
|
|
409
|
+
After completing the basic integration, you can further customize the UI to fit your business requirements.
|
|
410
|
+
|
|
411
|
+
### Configure Theme and Language
|
|
412
|
+
|
|
413
|
+
Change the default theme and language by setting the `UIKitProvider` parameters in `App.vue`.
|
|
414
|
+
|
|
415
|
+
|`UIKitProvider` Parameter|Optional Values|Default Value|
|
|
416
|
+
|---------|---------|---------|
|
|
417
|
+
|theme|"light" |"dark"|
|
|
418
|
+
|language|"zh-CN" |"en-US"|
|
|
419
|
+
|
|
420
|
+
``` typescript
|
|
421
|
+
<UIKitProvider theme="light" language="zh-CN">
|
|
422
|
+
<router-view />
|
|
423
|
+
</UIKitProvider>
|
|
424
|
+
|
|
425
|
+
<script setup lang="ts">
|
|
426
|
+
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
### Configure User Contact List
|
|
430
|
+
|
|
431
|
+
TUIRoomKit's built-in invite and scheduling selection components use the TRTC IM user relationship chain (friend list) by default. To display your company's internal organization or a custom friend list, first use the Server APIs to sync your business contacts to the TRTC IM system:
|
|
432
|
+
1. Use [Account Management > Import Multiple Accounts](https://trtc.io/document/34954) REST API to batch import user accounts.
|
|
433
|
+
|
|
434
|
+
2. Use [Friend Management > Import Friends](https://trtc.io/document/34903) REST API to batch import user relationships.
|
|
435
|
+
|
|
436
|
+
### Modify Room Share Link
|
|
437
|
+
|
|
438
|
+
By default, TUIRoomKit uses the current page address as the Room Share Link.
|
|
439
|
+
|
|
440
|
+
To customize the link, call `conference.setFeatureConfig` to update the Room Share Link.
|
|
441
|
+
``` typescript
|
|
442
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
443
|
+
|
|
444
|
+
// Call after conference.createAndJoinRoom or conference.joinRoom succeeds, ensuring Room ID is available
|
|
445
|
+
const roomId = '123456';
|
|
446
|
+
conference.setFeatureConfig({
|
|
447
|
+
shareLink: `https://your-domain.com/room?roomId=${roomId}`,
|
|
448
|
+
});
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### Configure Video Stream Layout
|
|
452
|
+
|
|
453
|
+
TUIRoomKit supports three video stream layouts: grid, sidebar, and top bar. The default is grid layout. To change the layout, call `conference.setFeatureConfig`.
|
|
454
|
+
``` typescript
|
|
455
|
+
import { RoomLayoutTemplate } from 'tuikit-atomicx-vue3/room';
|
|
456
|
+
|
|
457
|
+
// Option 1: Set sidebar layout as default
|
|
458
|
+
conference.setFeatureConfig({ layoutTemplate: RoomLayoutTemplate.SidebarLayout });
|
|
459
|
+
|
|
460
|
+
// Option 2: Set top bar layout as default
|
|
461
|
+
conference.setFeatureConfig({ layoutTemplate: RoomLayoutTemplate.CinemaLayout });
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
## FAQs
|
|
465
|
+
|
|
466
|
+
### Does the meeting end immediately if the host closes the web page or exits unexpectedly?
|
|
467
|
+
|
|
468
|
+
No. If the host closes the browser or disconnects due to network issues, the meeting does not end immediately. The meeting continues, and other participants can interact as usual.
|
|
469
|
+
|
|
470
|
+
To conserve resources, proactively end the room when the meeting finishes by:
|
|
471
|
+
- UI operation: Host clicks the "End Room" button in TUIRoomKit UI
|
|
472
|
+
|
|
473
|
+
- Client APIs: Call `conference.endRoom()`
|
|
474
|
+
|
|
475
|
+
- Server APIs: Use REST API for remote destruction
|
|
476
|
+
|
|
477
|
+
Note: If not ended proactively, the system will automatically reclaim resources 6 hours after the scheduled end time, provided the room is empty.
|
|
478
|
+
|
|
479
|
+
### Can multiple devices use the same userId to join the same meeting at the same time?
|
|
480
|
+
|
|
481
|
+
No. TUIRoomKit does not allow the same userId to join the same room from multiple devices simultaneously.
|
|
482
|
+
- Kick-out mechanism: If a later device attempts to Enter Room with the same userId, the device already in the room will be forcibly logged out.
|
|
483
|
+
|
|
484
|
+
- Solution: To support multi-device (e.g., phone and PC) joining the same meeting, assign a unique userId to each device.
|
|
485
|
+
|
|
486
|
+
### Why does it work locally but fail to access the camera or microphone after deployment?
|
|
487
|
+
- Cause: Browsers enforce strict security and privacy controls for audio/video device access (microphone, camera). Only secure environments are allowed: https://, localhost, file://, etc. HTTP is considered insecure and browsers will block media device access.
|
|
488
|
+
|
|
489
|
+
- Solution: If local (localhost) tests work but deployment fails, check if your web page is served over HTTP. You must use HTTPS and ensure a valid security certificate.
|
|
490
|
+
|
|
491
|
+
- Related resources: See [URL domain and protocol restrictions](https://trtc.io/document/59733) for more details.
|
|
492
|
+
|
|
493
|
+
### Is iframe integration supported?
|
|
494
|
+
|
|
495
|
+
Yes. To integrate TUIRoomKit via iframe, configure the allow attribute to grant necessary browser permissions (microphone, camera, screen sharing, fullscreen, etc), as shown:
|
|
496
|
+
``` typescript
|
|
497
|
+
// Enable microphone, camera, screen sharing, fullscreen permissions
|
|
498
|
+
<iframe src="https://your-domain.com/index.html" allow="microphone; camera; display-capture; display; fullscreen;">
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### Is intranet proxy supported?
|
|
502
|
+
|
|
503
|
+
Yes. Set intranet proxy parameters as shown below. For more information, see [Firewall Restrictions](https://trtc.io/document/59667).
|
|
504
|
+
``` typescript
|
|
505
|
+
// Set intranet proxy parameters before Enter Room
|
|
506
|
+
import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';
|
|
507
|
+
import { useRoomEngine } from 'tuikit-atomicx-vue3/room';
|
|
508
|
+
const { roomEngine } = useRoomEngine();
|
|
509
|
+
|
|
510
|
+
TUIRoomEngine.once('ready', () => {
|
|
511
|
+
const trtcCloud = roomEngine.instance?.getTRTCCloud();
|
|
512
|
+
trtcCloud.callExperimentalAPI(JSON.stringify({
|
|
513
|
+
api: 'setNetworkProxy',
|
|
514
|
+
params: {
|
|
515
|
+
websocketProxy: "wss://proxy.example.com/ws/",
|
|
516
|
+
turnServer: [{
|
|
517
|
+
url: '14.3.3.3:3478',
|
|
518
|
+
username: 'turn',
|
|
519
|
+
credential: 'turn',
|
|
520
|
+
}],
|
|
521
|
+
iceTransportPolicy: 'relay',
|
|
522
|
+
},
|
|
523
|
+
}));
|
|
524
|
+
});
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
### Can I modify the TUIRoomKit source code directly?
|
|
528
|
+
|
|
529
|
+
TUIRoomKit offers rich customization out of the box—custom themes and languages, UI tweaks, custom video layouts and widgets, watermarking, and more—so you can meet most UI and interaction requirements without changing the source.
|
|
530
|
+
|
|
531
|
+
For maintainability, we recommend using the built-in customization options whenever possible, rather than exporting the source. Once exported, you’re no longer on TUIRoomKit’s standard npm upgrade path, which usually means higher long-term maintenance and fewer benefits from future releases (new features, bug fixes, and performance improvements).
|
|
532
|
+
|
|
533
|
+
**Recommended**: Start with the options in the UI customization documentation. If the current APIs don’t cover your use case, [contact us](https://trtc.io/contact).
|
|
534
|
+
|
|
535
|
+
If you’ve assessed the trade-offs and still need deep customization that changes the underlying architecture, you can export the source code as follows:
|
|
536
|
+
|
|
537
|
+
【Vue3】
|
|
538
|
+
1. Run the source export script. The default copy path is `./src/components/RoomKit`
|
|
539
|
+
|
|
540
|
+
``` bash
|
|
541
|
+
node ./node_modules/@tencentcloud/roomkit-web-vue3/scripts/eject.js
|
|
542
|
+
```
|
|
543
|
+
2. Follow the script prompt to confirm whether to copy TUIRoomKit source code to `./src/components/RoomKit`. Enter `y` to customize the copy directory, otherwise enter `n`.
|
|
544
|
+
|
|
545
|
+
3. After exporting, TUIRoomKit source code will be added to your specified project path. Update the import path for ConferenceMainView, ConferenceMainViewH5, and the conference object from the npm package to the relative path of the TUIRoom source.
|
|
546
|
+
|
|
547
|
+
``` typescript
|
|
548
|
+
- import { ConferenceMainView, ConferenceMainViewH5, conference } from '@tencentcloud/roomkit-web-vue3';
|
|
549
|
+
// Change import path to the actual TUIRoomKit source path
|
|
550
|
+
+ import { ConferenceMainView, ConferenceMainViewH5, conference } from './components/RoomKit/index.ts';
|
|
551
|
+
```
|
|
552
|
+
4. Configure ESLint
|
|
553
|
+
|
|
554
|
+
If you encounter ESLint errors after exporting TUIRoomKit source, add the RoomKit folder to `.eslintignore` to ignore ESLint validation.
|
|
555
|
+
``` javascript
|
|
556
|
+
// Replace with actual TUIRoomKit source path
|
|
557
|
+
src/components/RoomKit
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
## Contact Us
|
|
561
|
+
|
|
562
|
+
If you have any questions or suggestions during integration or usage, [contact us](https://trtc.io/contact) for support.
|