@tencent-rtc/mcp 1.4.6 → 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 -10
- 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 -49
- 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,576 @@
|
|
|
1
|
+
TUIRoomKit is a UI solution for audio/video meeting rooms developed by TRTC. This release introduces a new atomic component integration approach, enabling developers to flexibly combine atomic components and build custom audio/video meeting room interfaces.
|
|
2
|
+
|
|
3
|
+
This guide walks you through integrating TUIRoomKit into an existing React project and explains how to customize its styles, layout, and functionality.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
### Activate the Service
|
|
8
|
+
|
|
9
|
+
Follow the instructions in [Activate the Service](https://trtc.io/document/59973) to start a TUIRoomKit trial or activate the official version. Obtain your **SDKAppID** and **SDKSecretKey**:
|
|
10
|
+
- SDKAppID: The application identifier used by TRTC for billing and statistics.
|
|
11
|
+
|
|
12
|
+
- SDKSecretKey: The application secret used to initialize secret information in the configuration file.
|
|
13
|
+
|
|
14
|
+
### Environment Setup
|
|
15
|
+
- Node.js: ≥ 18.19.1 (LTS version recommended)
|
|
16
|
+
|
|
17
|
+
- React: ≥ 18.2.0
|
|
18
|
+
|
|
19
|
+
- Modern browser: Must support [WebRTC APIs](https://trtc.io/document/41664)
|
|
20
|
+
|
|
21
|
+
- Devices: Camera, microphone, speakers
|
|
22
|
+
|
|
23
|
+
## Quick Integration
|
|
24
|
+
|
|
25
|
+
### Step 1: Install Dependencies
|
|
26
|
+
|
|
27
|
+
Install the required dependencies in your project.
|
|
28
|
+
|
|
29
|
+
【npm】
|
|
30
|
+
``` bash
|
|
31
|
+
npm install @tencentcloud/roomkit-web-react tuikit-atomicx-react @tencentcloud/uikit-base-component-react @tencentcloud/universal-api
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
【pnpm】
|
|
35
|
+
``` bash
|
|
36
|
+
pnpm install @tencentcloud/roomkit-web-react tuikit-atomicx-react @tencentcloud/uikit-base-component-react @tencentcloud/universal-api
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
【yarn】
|
|
40
|
+
``` bash
|
|
41
|
+
yarn add @tencentcloud/roomkit-web-react tuikit-atomicx-react @tencentcloud/uikit-base-component-react @tencentcloud/universal-api
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Step 2: Import TUIRoomKit Components
|
|
45
|
+
``` typescript
|
|
46
|
+
import { UIKitProvider } from '@tencentcloud/uikit-base-component-react';
|
|
47
|
+
import { ConferenceMainView } from '@tencentcloud/roomkit-web-react';
|
|
48
|
+
|
|
49
|
+
export default function App() {
|
|
50
|
+
return (
|
|
51
|
+
<UIKitProvider theme="light" language="zh-CN">
|
|
52
|
+
<ConferenceMainView />
|
|
53
|
+
</UIKitProvider>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Step 3: User Authentication
|
|
59
|
+
|
|
60
|
+
Authentication is required to access all TUIRoomKit features. Call **conference.login** immediately after your business system completes authentication (when the user logs in to your web page). After calling `conference.login`, call `conference.setSelfInfo` to set the user's display name and avatar, which appear in the participant video area and member list.
|
|
61
|
+
|
|
62
|
+
> **Note:**
|
|
63
|
+
>
|
|
64
|
+
|
|
65
|
+
> 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 as needed. See [How to Calculate UserSig in Production](https://trtc.io/document/35166).
|
|
66
|
+
>
|
|
67
|
+
|
|
68
|
+
``` typescript
|
|
69
|
+
import { useEffect } from 'react';
|
|
70
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
71
|
+
|
|
72
|
+
// Replace these values with your actual business data and SDKAppID from the Console
|
|
73
|
+
const SDKAppID = 0;
|
|
74
|
+
const userId = 'your_user_id';
|
|
75
|
+
const userSig = 'your_dynamic_user_sig';
|
|
76
|
+
const userName = 'Display Name';
|
|
77
|
+
|
|
78
|
+
function LoginComponent() {
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
const init = async () => {
|
|
81
|
+
try {
|
|
82
|
+
// 1. Log in to the SDK
|
|
83
|
+
await conference.login({
|
|
84
|
+
sdkAppId: SDKAppID,
|
|
85
|
+
userId,
|
|
86
|
+
userSig,
|
|
87
|
+
});
|
|
88
|
+
// 2. (Optional) Set user profile
|
|
89
|
+
await conference.setSelfInfo({
|
|
90
|
+
userName,
|
|
91
|
+
avatarUrl: 'https://your-avatar-url.com/image.png',
|
|
92
|
+
});
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.error('TUIRoomKit login failed:', error);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
init();
|
|
98
|
+
}, []);
|
|
99
|
+
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### Integration Issue: Listening for Login Success Across Separate Routes
|
|
105
|
+
|
|
106
|
+
If your login page and room entry page are on different routes, the login logic for `conference.login` may not have executed when the room page loads. Use `useEffect` to monitor `loginUserInfo?.userId`; when this field is non-empty, TUIRoomKit is considered successfully authenticated.
|
|
107
|
+
``` typescript
|
|
108
|
+
import { useEffect } from 'react';
|
|
109
|
+
import { useLoginState } from 'tuikit-atomicx-react/room';
|
|
110
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
111
|
+
|
|
112
|
+
function RoomPage() {
|
|
113
|
+
const { loginUserInfo } = useLoginState();
|
|
114
|
+
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
if (loginUserInfo?.userId) {
|
|
117
|
+
conference.createAndJoinRoom({ roomId: '123456' });
|
|
118
|
+
}
|
|
119
|
+
}, [loginUserInfo?.userId]);
|
|
120
|
+
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Step 4: Create a Room
|
|
126
|
+
|
|
127
|
+
The **Room ID (roomId)**is the unique identifier for each meeting and must be generated and managed by your business system to ensure global uniqueness. Choose the creation method based on your business scenario:
|
|
128
|
+
|
|
129
|
+
#### Scenario 1: Quick Meeting Initiated by Client
|
|
130
|
+
|
|
131
|
+
**Use Case: **The user clicks "Quick Meeting" and needs to immediately create and join a room (e.g., ad-hoc meetings, IM chat).
|
|
132
|
+
|
|
133
|
+
**Implementation: **The client generates or requests a unique Room ID from the backend, then calls `conference.createAndJoinRoom` to create and enter the room.
|
|
134
|
+
``` typescript
|
|
135
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
136
|
+
|
|
137
|
+
const startQuickMeeting = async () => {
|
|
138
|
+
// 1. Generate a unique Room ID
|
|
139
|
+
const myRoomId = `room_${Date.now()}`;
|
|
140
|
+
|
|
141
|
+
// 2. Create and join the room
|
|
142
|
+
await conference.createAndJoinRoom({
|
|
143
|
+
roomId: myRoomId,
|
|
144
|
+
options: {
|
|
145
|
+
roomName: 'My Quick Meeting',
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
#### Scenario 2: Schedule a Meeting
|
|
152
|
+
|
|
153
|
+
**Use Case: **Meetings scheduled for a future time (e.g., weekly team meetings, online training). Users can set the Meeting Title, Meeting Time, and invite Participants.
|
|
154
|
+
|
|
155
|
+
**Implementation: **The client generates or requests a unique Room ID from the backend, then submits the reservation using the `scheduleRoom` API with Meeting Time and other parameters. Upon success, meeting information is synced to each Participant's Meeting List.
|
|
156
|
+
``` typescript
|
|
157
|
+
import { useRoomState } from 'tuikit-atomicx-react/room';
|
|
158
|
+
|
|
159
|
+
function ScheduleDemo() {
|
|
160
|
+
const { scheduleRoom } = useRoomState();
|
|
161
|
+
|
|
162
|
+
const createSchedule = async () => {
|
|
163
|
+
try {
|
|
164
|
+
// Room ID must be a string and unique; backend generation is recommended.
|
|
165
|
+
const roomId = '123456';
|
|
166
|
+
|
|
167
|
+
// Note: Timestamp must be in seconds (Date.getTime() returns milliseconds, so divide by 1000)
|
|
168
|
+
const startTime = Math.floor(new Date().getTime() / 1000) + 3600; // Starts in 1 hour
|
|
169
|
+
const duration = 1800; // 30 minutes
|
|
170
|
+
|
|
171
|
+
const options = {
|
|
172
|
+
roomName: 'Product Requirements Review',
|
|
173
|
+
scheduleStartTime: startTime, // seconds
|
|
174
|
+
scheduleEndTime: startTime + duration, // seconds
|
|
175
|
+
scheduleAttendees: ['userA', 'userB'], // Participant IDs
|
|
176
|
+
password: '123', // optional: meeting password
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
await scheduleRoom({ roomId, options });
|
|
180
|
+
} catch (error) {
|
|
181
|
+
console.error('Scheduling failed', error);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
return <button onClick={createSchedule}>Schedule Meeting</button>;
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### Scenario 3: Create a Room on the Server Side
|
|
190
|
+
|
|
191
|
+
**Use Case: **Highly controlled environments such as government, healthcare, or enterprise OA.
|
|
192
|
+
|
|
193
|
+
**Implementation: **The business backend initiates room creation by calling TRTC's [Server REST API to Create Room](https://trtc.io/document/60707).
|
|
194
|
+
``` bash
|
|
195
|
+
POST /v4/room_engine_http_srv/create_room
|
|
196
|
+
{
|
|
197
|
+
"roomId": "your-room-id",
|
|
198
|
+
"roomName": "Meeting Name",
|
|
199
|
+
"startTime": 1710000000,
|
|
200
|
+
"endTime": 1710003600,
|
|
201
|
+
"invitees": ["userId1", "userId2"]
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Step 5: Join a Room
|
|
206
|
+
|
|
207
|
+
Choose the appropriate method for joining a room based on your business requirements.
|
|
208
|
+
|
|
209
|
+
#### Scenario 1: Join Existing Room with Known Room ID
|
|
210
|
+
|
|
211
|
+
**Use Case: **The room has already been created, and Participants have received the Room ID or invitation link.
|
|
212
|
+
|
|
213
|
+
**Implementation: **After entering the Room ID or extracting it from the invitation link, call `conference.joinRoom` to join.
|
|
214
|
+
``` typescript
|
|
215
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
216
|
+
|
|
217
|
+
const joinExistingMeeting = async (sharedRoomId: string) => {
|
|
218
|
+
await conference.joinRoom({
|
|
219
|
+
roomId: sharedRoomId,
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
#### Scenario 2: Join from Meeting List
|
|
225
|
+
|
|
226
|
+
**Use Case: **Meetings scheduled via "Client Scheduling" or "Server-Side Creation". Users can view their scheduled or invited meetings in the Meeting List and join directly.
|
|
227
|
+
|
|
228
|
+
**Implementation: **Use the `getScheduledRoomList` API from `useRoomState` to fetch the user's scheduled meetings and render them in the UI. When the user clicks a meeting, retrieve its Room ID and call `conference.joinRoom`.
|
|
229
|
+
``` typescript
|
|
230
|
+
import { useState, useEffect } from 'react';
|
|
231
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
232
|
+
import { useRoomState, useLoginState } from 'tuikit-atomicx-react/room';
|
|
233
|
+
|
|
234
|
+
interface RoomInfo {
|
|
235
|
+
roomId: string;
|
|
236
|
+
roomName?: string;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export default function ScheduledRoomList() {
|
|
240
|
+
const { getScheduledRoomList } = useRoomState();
|
|
241
|
+
const { loginUserInfo } = useLoginState();
|
|
242
|
+
const [roomList, setRoomList] = useState<RoomInfo[]>([]);
|
|
243
|
+
|
|
244
|
+
// 1. Wait for authentication before fetching Meeting List
|
|
245
|
+
useEffect(() => {
|
|
246
|
+
if (!loginUserInfo?.userId) return;
|
|
247
|
+
getScheduledRoomList({ cursor: '' })
|
|
248
|
+
.then(({ scheduledRoomList }) => setRoomList(scheduledRoomList || []))
|
|
249
|
+
.catch((error) => console.error('Failed to get scheduled meeting list:', error));
|
|
250
|
+
}, [loginUserInfo?.userId]);
|
|
251
|
+
|
|
252
|
+
// 2. Join room on click
|
|
253
|
+
const handleJoinRoom = async (roomId: string) => {
|
|
254
|
+
try {
|
|
255
|
+
await conference.joinRoom({ roomId });
|
|
256
|
+
} catch (error) {
|
|
257
|
+
console.error(`Failed to join meeting (${roomId}):`, error);
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
return (
|
|
262
|
+
<div>
|
|
263
|
+
<h3>My Scheduled Meetings</h3>
|
|
264
|
+
{roomList.length > 0 ? (
|
|
265
|
+
<ul style={{ padding: 0, listStyle: 'none' }}>
|
|
266
|
+
{roomList.map((room) => (
|
|
267
|
+
<li key={room.roomId} style={{ display: 'flex', justifyContent: 'space-between', padding: '10px', borderBottom: '1px solid #eee' }}>
|
|
268
|
+
<div style={{ display: 'flex', flexDirection: 'column', fontSize: '14px', color: '#666' }}>
|
|
269
|
+
<b style={{ fontSize: '16px', color: '#333' }}>{room.roomName || 'Unnamed Meeting'}</b>
|
|
270
|
+
<span>Room ID: {room.roomId}</span>
|
|
271
|
+
</div>
|
|
272
|
+
<button
|
|
273
|
+
onClick={() => handleJoinRoom(room.roomId)}
|
|
274
|
+
style={{ background: '#006eff', color: '#fff', border: 'none', padding: '6px 12px', borderRadius: '4px', cursor: 'pointer' }}
|
|
275
|
+
>
|
|
276
|
+
Join Meeting
|
|
277
|
+
</button>
|
|
278
|
+
</li>
|
|
279
|
+
))}
|
|
280
|
+
</ul>
|
|
281
|
+
) : (
|
|
282
|
+
<div>No scheduled meetings to join</div>
|
|
283
|
+
)}
|
|
284
|
+
</div>
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
#### Scenario 3: Enter Room When Existence Is Uncertain
|
|
290
|
+
|
|
291
|
+
**Use Case: **Peer-to-peer scenarios (e.g., online consultation, 1v1 video customer service) where room existence is unknown.
|
|
292
|
+
|
|
293
|
+
**Implementation: **Both parties use a shared Business Document Number (e.g., order number) as Room ID and call `conference.createAndJoinRoom` to enter.
|
|
294
|
+
``` typescript
|
|
295
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
296
|
+
|
|
297
|
+
const enterDualMeeting = async (bizOrderId: string) => {
|
|
298
|
+
// No need to check if the room exists; SDK handles creation and entry automatically
|
|
299
|
+
await conference.createAndJoinRoom({
|
|
300
|
+
roomId: bizOrderId,
|
|
301
|
+
options: {
|
|
302
|
+
roomName: `Business Communication: ${bizOrderId}`,
|
|
303
|
+
},
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
> **Tip:**
|
|
309
|
+
>
|
|
310
|
+
|
|
311
|
+
> The `conference.createAndJoinRoom` API automatically handles "create if not exists (become Host), join if exists (become Participant)", resolving state conflicts under high concurrency.
|
|
312
|
+
>
|
|
313
|
+
|
|
314
|
+
### Step 6: Leave and End a Room
|
|
315
|
+
|
|
316
|
+
TUIRoomKit provides built-in UI buttons for leaving and ending rooms. Users can click **"Leave Room"**or **"End Room"**directly.
|
|
317
|
+
|
|
318
|
+
To trigger leave or end actions programmatically, use the following APIs.
|
|
319
|
+
|
|
320
|
+
#### Scenario 1: Leave a Room
|
|
321
|
+
|
|
322
|
+
Both Participants and Hosts can call `leaveRoom()` to exit the meeting. The room remains active for other members.
|
|
323
|
+
``` typescript
|
|
324
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
325
|
+
|
|
326
|
+
await conference.leaveRoom();
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
> **Note:**
|
|
330
|
+
>
|
|
331
|
+
|
|
332
|
+
> When the Host leaves or closes the webpage, the room is not automatically ended. Other Participants can continue using TUIRoomKit. The system will reclaim room resources 6 hours after the scheduled end time if there are zero Participants.
|
|
333
|
+
>
|
|
334
|
+
|
|
335
|
+
#### Scenario 2: End a Room
|
|
336
|
+
|
|
337
|
+
When the Host calls `endRoom()`, all members receive a notification that the room has ended.
|
|
338
|
+
``` typescript
|
|
339
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
340
|
+
|
|
341
|
+
await conference.endRoom();
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
> **Note:**
|
|
345
|
+
>
|
|
346
|
+
|
|
347
|
+
> Only the Host can call `endRoom()` after successfully entering the room. Calling as a non-host or before entering will result in an error.
|
|
348
|
+
>
|
|
349
|
+
|
|
350
|
+
### Step 7: Listen for Room Status
|
|
351
|
+
|
|
352
|
+
In real-world audio/video meetings, room status may change due to various factors (e.g., Host ends the meeting, account logs in on another device, network issues).
|
|
353
|
+
|
|
354
|
+
TUIRoomKit automatically handles audio/video resource cleanup and UI prompts, but route navigation must be managed by your business logic. Register status listeners when the meeting component mounts, and remove them when it unmounts.
|
|
355
|
+
``` typescript
|
|
356
|
+
import { useEffect } from 'react';
|
|
357
|
+
import { ConferenceMainView, conference, RoomEvent } from '@tencentcloud/roomkit-web-react';
|
|
358
|
+
|
|
359
|
+
export default function MeetingRoom() {
|
|
360
|
+
useEffect(() => {
|
|
361
|
+
const backToHome = () => {};
|
|
362
|
+
const backToLogin = () => {};
|
|
363
|
+
|
|
364
|
+
conference.on(RoomEvent.ROOM_DISMISS, backToHome);
|
|
365
|
+
conference.on(RoomEvent.ROOM_LEAVE, backToHome);
|
|
366
|
+
conference.on(RoomEvent.ROOM_ERROR, backToHome);
|
|
367
|
+
conference.on(RoomEvent.KICKED_OUT, backToHome);
|
|
368
|
+
conference.on(RoomEvent.KICKED_OFFLINE, backToLogin);
|
|
369
|
+
conference.on(RoomEvent.USER_SIG_EXPIRED, backToLogin);
|
|
370
|
+
|
|
371
|
+
return () => {
|
|
372
|
+
conference.off(RoomEvent.ROOM_DISMISS, backToHome);
|
|
373
|
+
conference.off(RoomEvent.ROOM_LEAVE, backToHome);
|
|
374
|
+
conference.off(RoomEvent.ROOM_ERROR, backToHome);
|
|
375
|
+
conference.off(RoomEvent.KICKED_OUT, backToHome);
|
|
376
|
+
conference.off(RoomEvent.KICKED_OFFLINE, backToLogin);
|
|
377
|
+
conference.off(RoomEvent.USER_SIG_EXPIRED, backToLogin);
|
|
378
|
+
};
|
|
379
|
+
}, []);
|
|
380
|
+
|
|
381
|
+
return <ConferenceMainView />;
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
|Event|Trigger Timing|Recommended Handling|
|
|
386
|
+
|---------|---------|---------|
|
|
387
|
+
|`RoomEvent.ROOM_DISMISS`|Room ended, triggered for all members|Return to home or Meeting List|
|
|
388
|
+
|`RoomEvent.ROOM_LEAVE`|User clicks "Leave" in TUIRoomKit UI|Return to home or Meeting List|
|
|
389
|
+
|`RoomEvent.ROOM_ERROR`|Entry failure or unhandled error|Return to home or Meeting List|
|
|
390
|
+
|`RoomEvent.KICKED_OUT`|Kicked out by Host|Return to home or Meeting List|
|
|
391
|
+
|`RoomEvent.KICKED_OFFLINE`|Same account logged in elsewhere, current device forced offline|Redirect to login page|
|
|
392
|
+
|`RoomEvent.USER_SIG_EXPIRED`|UserSig expired|Redirect to login page|
|
|
393
|
+
|
|
394
|
+
## Start the Project
|
|
395
|
+
|
|
396
|
+
【npm】
|
|
397
|
+
``` bash
|
|
398
|
+
npm run dev
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
【pnpm】
|
|
402
|
+
``` bash
|
|
403
|
+
pnpm run dev
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
【yarn】
|
|
407
|
+
``` bash
|
|
408
|
+
yarn run dev
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
After the project starts, open your browser to the debug address (usually http://localhost:5173) to access the app. You should see the meeting interface as shown below:
|
|
412
|
+
|
|
413
|
+
## Next Steps
|
|
414
|
+
|
|
415
|
+
After completing the basic integration, you can further customize the UI to fit your business requirements.
|
|
416
|
+
|
|
417
|
+
### Configure Theme and Language
|
|
418
|
+
|
|
419
|
+
Change the default theme and language by setting the `UIKitProvider` parameters in `App.vue`.
|
|
420
|
+
|
|
421
|
+
|`UIKitProvider` Parameter|Optional Values|Default Value|
|
|
422
|
+
|---------|---------|---------|
|
|
423
|
+
|theme|"light" \| "dark"|"dark"|
|
|
424
|
+
|language|"zh-CN" \| "en-US"|"en-US"|
|
|
425
|
+
|
|
426
|
+
``` typescript
|
|
427
|
+
import { UIKitProvider } from '@tencentcloud/uikit-base-component-react';
|
|
428
|
+
|
|
429
|
+
export default function App() {
|
|
430
|
+
return (
|
|
431
|
+
<UIKitProvider theme="light" language="zh-CN">
|
|
432
|
+
{/* Route or page content */}
|
|
433
|
+
</UIKitProvider>
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Configure User Relationship Chain
|
|
439
|
+
|
|
440
|
+
TUIRoomKit's built-in participant invitation and meeting scheduling picker components use TRTC IM's User Relationship Chain (Friend List) by default. To display your organization's internal structure or custom Friend List, sync your business contacts to TRTC IM via Server APIs:
|
|
441
|
+
1. Use [Account Management > Import Multiple Accounts](https://trtc.io/document/34954) REST API to batch import user accounts.
|
|
442
|
+
|
|
443
|
+
2. Use [Friend Management > Import Friends](https://trtc.io/document/34903) REST API to batch import user relationships.
|
|
444
|
+
|
|
445
|
+
### Modify Meeting Share Link
|
|
446
|
+
|
|
447
|
+
By default, TUIRoomKit uses the current page address as the Meeting Share Link.
|
|
448
|
+
|
|
449
|
+
To customize the share link, call `conference.setFeatureConfig` after successfully joining or creating a room, ensuring Room ID is available.
|
|
450
|
+
``` typescript
|
|
451
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
452
|
+
|
|
453
|
+
// Call after conference.createAndJoinRoom / conference.joinRoom succeeds, when roomId is known
|
|
454
|
+
const roomId = '123456';
|
|
455
|
+
conference.setFeatureConfig({
|
|
456
|
+
shareLink: `https://your-domain.com/room?roomId=${roomId}`,
|
|
457
|
+
});
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Configure Video Stream Layout and Meeting Widgets
|
|
461
|
+
|
|
462
|
+
TUIRoomKit supports three video stream layouts: Grid Layout, Sidebar Layout, and Top Bar Layout. The default is Grid Layout. Change the layout by calling `conference.setFeatureConfig`.
|
|
463
|
+
``` typescript
|
|
464
|
+
import { RoomLayoutTemplate } from 'tuikit-atomicx-react/room';
|
|
465
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
466
|
+
|
|
467
|
+
// Option 1: Set Sidebar Layout as default
|
|
468
|
+
conference.setFeatureConfig({ layoutTemplate: RoomLayoutTemplate.SidebarLayout });
|
|
469
|
+
|
|
470
|
+
// Option 2: Set Top Bar Layout as default
|
|
471
|
+
conference.setFeatureConfig({ layoutTemplate: RoomLayoutTemplate.CinemaLayout });
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
## FAQs
|
|
475
|
+
|
|
476
|
+
### Does the meeting end immediately if the Host closes the webpage or exits unexpectedly?
|
|
477
|
+
|
|
478
|
+
No. If the Host closes the browser or leaves due to network issues, the meeting continues and other Participants can interact as usual.
|
|
479
|
+
|
|
480
|
+
To conserve resources, actively end the room when the meeting concludes using one of the following methods:
|
|
481
|
+
- UI: Host clicks the "End Room" button in TUIRoomKit UI
|
|
482
|
+
|
|
483
|
+
- Client APIs: Call `conference.endRoom()`
|
|
484
|
+
|
|
485
|
+
- Server APIs: Use REST API for remote destruction
|
|
486
|
+
|
|
487
|
+
If not ended manually, the system will automatically reclaim resources 6 hours after the scheduled end time if the room has zero Participants.
|
|
488
|
+
|
|
489
|
+
### Can multiple devices use the same userId to join the same meeting at the same time?
|
|
490
|
+
|
|
491
|
+
No. TUIRoomKit does not allow the same userId to join the same room on multiple devices simultaneously.
|
|
492
|
+
- Kick mechanism: If a new device joins with the same userId, the device already in the room will be forced offline.
|
|
493
|
+
|
|
494
|
+
- Solution: Assign a unique userId to each device for multi-device participation.
|
|
495
|
+
|
|
496
|
+
### Works locally, but fails to access camera or microphone after deployment?
|
|
497
|
+
- Cause: Browsers restrict access to audio/video devices for security and privacy. Access is only allowed in secure environments (https://, localhost, file://, etc.). HTTP is not secure and browsers will block media device access.
|
|
498
|
+
|
|
499
|
+
- Solution: If local access works but fails after deployment, check if your site uses HTTP. Deploy over HTTPS and ensure a valid certificate.
|
|
500
|
+
|
|
501
|
+
- For more details, see [URL Domain and Protocol Restrictions](https://trtc.io/document/41664).
|
|
502
|
+
|
|
503
|
+
### Is iframe integration supported?
|
|
504
|
+
|
|
505
|
+
Yes. When integrating TUIRoomKit via iframe, set the allow attribute to grant necessary browser permissions (microphone, camera, screen sharing, fullscreen, etc.) as shown below:
|
|
506
|
+
``` typescript
|
|
507
|
+
// Enable microphone, camera, screen sharing, fullscreen permissions
|
|
508
|
+
<iframe src="https://your-domain.com/index.html" allow="microphone; camera; display-capture; display; fullscreen;">
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
For more information, see Embedded Pages (iframe).
|
|
512
|
+
|
|
513
|
+
### Is intranet proxy supported?
|
|
514
|
+
|
|
515
|
+
Yes. Set intranet proxy parameters as shown below. For more details, see [Dealing with Firewall Restrictions](https://trtc.io/document/59667).
|
|
516
|
+
``` typescript
|
|
517
|
+
// Set intranet proxy parameters before entering the room
|
|
518
|
+
import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';
|
|
519
|
+
import { useRoomEngine } from 'tuikit-atomicx-react/room';
|
|
520
|
+
|
|
521
|
+
const roomEngine = useRoomEngine();
|
|
522
|
+
|
|
523
|
+
TUIRoomEngine.once('ready', () => {
|
|
524
|
+
const trtcCloud = roomEngine.instance?.getTRTCCloud();
|
|
525
|
+
trtcCloud.callExperimentalAPI(JSON.stringify({
|
|
526
|
+
api: 'setNetworkProxy',
|
|
527
|
+
params: {
|
|
528
|
+
websocketProxy: "wss://proxy.example.com/ws/",
|
|
529
|
+
turnServer: [{
|
|
530
|
+
url: '14.3.3.3:3478',
|
|
531
|
+
username: 'turn',
|
|
532
|
+
credential: 'turn',
|
|
533
|
+
}],
|
|
534
|
+
iceTransportPolicy: 'relay',
|
|
535
|
+
},
|
|
536
|
+
}));
|
|
537
|
+
});
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
### Can TUIRoomKit source code be modified directly?
|
|
541
|
+
|
|
542
|
+
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.
|
|
543
|
+
|
|
544
|
+
We strongly discourage exporting the source code. Doing so removes your project from TUIRoomKit's standard npm upgrade path, increases maintenance costs, and prevents you from benefiting from new features and performance improvements in the underlying audio/video engine.
|
|
545
|
+
- Recommended: Explore standard customization options in the UI customization documentation.
|
|
546
|
+
|
|
547
|
+
- Feedback: If the available APIs do not meet your needs, contact us via [Contact Us](https://trtc.io/contact) to submit your requirements. We will evaluate and strive to provide stable, standardized API support.
|
|
548
|
+
|
|
549
|
+
If you have fully considered the maintenance risks and require deep customization, you may export the source code as follows:
|
|
550
|
+
|
|
551
|
+
【React】
|
|
552
|
+
1. Run the export script. The default copy path is `./src/components/RoomKit`
|
|
553
|
+
|
|
554
|
+
``` bash
|
|
555
|
+
node ./node_modules/@tencentcloud/roomkit-web-react/scripts/eject.js
|
|
556
|
+
```
|
|
557
|
+
2. Follow the script prompts to confirm whether to copy TUIRoomKit source code to `./src/components/RoomKit`. Enter 'y' to customize the copy directory, or 'n' otherwise.
|
|
558
|
+
|
|
559
|
+
3. After exporting, the source code will appear in your specified project path. Update the import paths for the `ConferenceMainView` component and `conference` object from the npm package address to the RoomKit source path.
|
|
560
|
+
|
|
561
|
+
``` typescript
|
|
562
|
+
import { ConferenceMainView, conference } from '@tencentcloud/roomkit-web-react';
|
|
563
|
+
// Change import path to the actual TUIRoomKit source path
|
|
564
|
+
import { ConferenceMainView, conference } from './components/RoomKit/index.ts';
|
|
565
|
+
```
|
|
566
|
+
4. Configure ESLint
|
|
567
|
+
|
|
568
|
+
If you encounter ESLint errors after exporting, add the RoomKit folder to `.eslintignore` to ignore ESLint checks.
|
|
569
|
+
``` javascript
|
|
570
|
+
// Replace with the actual TUIRoomKit source path
|
|
571
|
+
src/components/RoomKit
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
## Contact Us
|
|
575
|
+
|
|
576
|
+
If you have any questions or suggestions during integration or usage, you are welcome to join our [Telegram technical group](https://t.me/+EPk6TMZEZMM5OGY1) or [contact us](https://trtc.io/contact) for support.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
## Introduction
|
|
2
|
+
|
|
3
|
+
Quick Demo show the basic audio and video communication capabilities with sample code:
|
|
4
|
+
- Set user to login TRTC platform service
|
|
5
|
+
|
|
6
|
+
- Turn on/off your camera and microphone, and send them to others
|
|
7
|
+
|
|
8
|
+
- Share your screen with others
|
|
9
|
+
|
|
10
|
+
## How to use
|
|
11
|
+
|
|
12
|
+
### 1. Create an Application
|
|
13
|
+
|
|
14
|
+
Users within an application are allowed to enter the same room for audio and video calls. `SDKAppID` and `SDKSecretKey` are the unique verification credentials for the application.
|
|
15
|
+
<div style="height:-10px"></div>
|
|
16
|
+
|
|
17
|
+
You can create it in the [Console](https://console.trtc.io/app), and get it's `SDKAppID` and `SDKSecretKey`. We will use those to login quick demo.
|
|
18
|
+
|
|
19
|
+
### 2. Online Demo
|
|
20
|
+
|
|
21
|
+
You can fill in the `SDKAppID` and `SDKSecretKey` obtained from the first part into the following demo, and click "Enter Room" button.
|
|
22
|
+
|
|
23
|
+
After success, an invitation link will be generated, so you can invite another person to join the call together!
|
|
24
|
+
<iframe src="https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/samples/basic-features/quick-start/index.html?lang=en" height="900" width="100%" allow="microphone;camera;display-capture;" allowfullscreen="true" frameborder="no">
|
|
25
|
+
<p>您的浏览器不支持 iframe 标签。</p>
|
|
26
|
+
</iframe>
|
|
27
|
+
|
|
28
|
+
## More Demo
|
|
29
|
+
|
|
30
|
+
The above Demo is written in native JavaScript. You can access its [source code here](https://github.com/Tencent-RTC/TRTC_Web/tree/main/samples/basic-features/quick-start), you can also click on [this link](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/samples/basic-features/quick-start/index.html) to access it in a separate window.
|
|
31
|
+
<div> </div>
|
|
32
|
+
|
|
33
|
+
We also provide demos for React, Vue2, Vue3. Here's the links:
|
|
34
|
+
- [React Online Demo](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/quick-demo-react/index.html#/) and [React Github](https://github.com/Tencent-RTC/TRTC_Web/tree/main/quick-demo-react)
|
|
35
|
+
|
|
36
|
+
- [Vue2 Online Demo](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/quick-demo-vue2-js/index.html#/) and [Vue2 Github](https://github.com/Tencent-RTC/TRTC_Web/tree/main/quick-demo-vue2-js)
|
|
37
|
+
|
|
38
|
+
- [Vue3 Online Demo](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/quick-demo-vue3-ts/index.html#/) and [Vue3 Github](https://github.com/Tencent-RTC/TRTC_Web/tree/main/quick-demo-vue3-ts)
|
|
39
|
+
|
|
40
|
+
<div></div>
|
|
41
|
+
|
|
42
|
+
<div></div>
|
|
43
|
+
|
|
44
|
+
If you want to integrate it yourself, you can visit [the integration guide documentation.](https://trtc.io/document/59649)
|
|
@@ -32,7 +32,7 @@ If you want to have complete control over the user experience when autoplay fail
|
|
|
32
32
|
|
|
33
33
|
### Step 1: Disable SDK default popup
|
|
34
34
|
|
|
35
|
-
Set the `enableAutoPlayDialog` parameter to `false` when calling the [TRTC.enterRoom](
|
|
35
|
+
Set the `enableAutoPlayDialog` parameter to `false` when calling the [TRTC.enterRoom](TRTC.md#enterRoom) interface:
|
|
36
36
|
|
|
37
37
|
```javascript
|
|
38
38
|
await trtc.enterRoom({
|
|
@@ -43,7 +43,7 @@ await trtc.enterRoom({
|
|
|
43
43
|
|
|
44
44
|
### Step 2: Listen for autoplay failure events (Required)
|
|
45
45
|
|
|
46
|
-
Listen to the [AUTOPLAY_FAILED](
|
|
46
|
+
Listen to the [AUTOPLAY_FAILED](module-EVENT.md#.AUTOPLAY_FAILED) event to handle autoplay failures. The SDK will automatically monitor user click events and resume playback after the user clicks.
|
|
47
47
|
|
|
48
48
|
```javascript
|
|
49
49
|
trtc.on(TRTC.EVENT.AUTOPLAY_FAILED, event => {
|
|
@@ -77,6 +77,12 @@ function showCustomDialog(event) {
|
|
|
77
77
|
- When playing remote streams for the first time, you must call the playback interface directly in the user click event callback
|
|
78
78
|
- You cannot use asynchronous methods like setTimeout to call the playback interface, otherwise playback will fail
|
|
79
79
|
|
|
80
|
+
3. **Iframe embedding scenario**: When the TRTC SDK runs inside an iframe, the following limitations apply:
|
|
81
|
+
- User clicks on the parent page (outside the iframe) cannot penetrate into the iframe, so the click event cannot be captured by the iframe's `document`. The SDK's default auto-resume listener will not be triggered.
|
|
82
|
+
- The parent page should add the `allow="autoplay"` attribute to the iframe to allow the iframe page to use autoplay. However, `allow="autoplay"` **does not disable the browser's autoplay policy**; it only allows the iframe to attempt autoplay. For audible media, the browser may still require the user to first interact with the iframe content.
|
|
83
|
+
- If using the SDK's default dialog, make sure users can click on the SDK dialog inside the iframe to resume playback.
|
|
84
|
+
- For a custom experience, disable the SDK default dialog (`enableAutoPlayDialog: false`), listen to the `AUTOPLAY_FAILED` event, show a custom button inside the iframe, and call the `resume()` method from the event in the button's click callback.
|
|
85
|
+
|
|
80
86
|
## Disable Autoplay Policy in Webview
|
|
81
87
|
|
|
82
88
|
The default autoplay policy in Android and iOS Webview may be different to the browser. You can refer to the following document to turn off autoplay restrictions in your App.
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
## Function Description
|
|
2
2
|
|
|
3
|
-
This article will introduce how to add background music during a call. [Experience demo](https://web.sdk.qcloud.com/trtc/webrtc/demo/api-sample/improve-audio-mixer.html
|
|
3
|
+
This article will introduce how to add background music during a call. [Experience demo](https://web.sdk.qcloud.com/trtc/webrtc/demo/api-sample/improve-audio-mixer.html).
|
|
4
|
+
|
|
5
|
+
## Run Demo
|
|
6
|
+
|
|
7
|
+
<div style="margin: 20px 0;">
|
|
8
|
+
<details class="trtc-demo-details" style="border-radius: 10px; border: 1px solid #e5e6eb; overflow: hidden; box-shadow: 0 4px 14px rgba(0,82,217,0.08); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;">
|
|
9
|
+
<summary style="padding: 14px 22px; background: linear-gradient(135deg, #006eff 0%, #0052d9 100%); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; list-style: none; user-select: none; display: flex; align-items: center; gap: 10px; transition: filter 0.2s;">
|
|
10
|
+
<span class="trtc-demo-arrow" style="font-size: 14px; opacity: 0.9;">▶</span>
|
|
11
|
+
<span class="trtc-demo-summary-text">Click to Run Demo</span>
|
|
12
|
+
</summary>
|
|
13
|
+
<div style="padding: 16px; background: #fff;">
|
|
14
|
+
<script>
|
|
15
|
+
(function(){var t=null;window.addEventListener('message',function(e){if(e.data&&e.data.type==='trtc-demo-resize'){var f=document.querySelector('.trtc-demo-iframe');if(f){f.style.height=e.data.height+'px';clearTimeout(t);t=setTimeout(function(){f.style.height=e.data.height+'px'},200)}}})})();
|
|
16
|
+
document.querySelectorAll('.trtc-demo-details').forEach(function(d){d.addEventListener('toggle',function(){var s=d.querySelector('.trtc-demo-summary-text'),a=d.querySelector('.trtc-demo-arrow');if(d.open){s&&(s.textContent='Click to Close Demo');a&&(a.textContent='▼')}else{s&&(s.textContent='Click to Run Demo');a&&(a.textContent='▶')}})});
|
|
17
|
+
</script>
|
|
18
|
+
<iframe allow="microphone; camera; display-capture;" class="trtc-demo-iframe" style="width:100%;border:none;min-height:700px" title="Music and Audio Effects" src="https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/samples/advance-features/enable-audio-mixer/index.html?lang=en" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"></iframe>
|
|
19
|
+
</div>
|
|
20
|
+
</details>
|
|
21
|
+
</div>
|
|
4
22
|
|
|
5
23
|
## Prerequisites
|
|
6
24
|
|