@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
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
This document
|
|
1
|
+
This document guides you through using Atomicx's core view component `RoomView` to render the video display of a real-time audio/video room. By configuring layout templates and leveraging component slots, you can quickly implement video layout switching and personalized customization.
|
|
2
2
|
|
|
3
|
-
`RoomView` is the main container component responsible for
|
|
3
|
+
`RoomView` is the main container component in Atomicx responsible for rendering the video display. It automatically handles the subscription, rendering, and release of video streams, so you only need to focus on its layout configuration and UI enhancements.
|
|
4
4
|
|
|
5
5
|
## Core Capabilities
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- **Intelligent
|
|
7
|
+
As the core view container for multi-party audio/video rooms, `RoomView` comes with several enterprise-grade audio/video processing capabilities built in:
|
|
8
|
+
- **Intelligent performance management**: Supports lazy loading of video streams within the viewport, and can automatically switch between high- and low-definition streams based on the stream area size and the number of remote streams, significantly reducing system power consumption and bandwidth usage.
|
|
9
9
|
|
|
10
|
-
- **Fine-grained
|
|
10
|
+
- **Fine-grained sorting strategy**: The system automatically adjusts the display order based on role (host first) and media status (audio/video enabled first).
|
|
11
11
|
|
|
12
|
-
- **Interactive
|
|
12
|
+
- **Interactive speaker mode**: Supports double-clicking to pin the main view, and collapsing non-core areas in sidebar or top-bar layouts to focus on the presentation content.
|
|
13
13
|
|
|
14
|
-
- **Immersive
|
|
14
|
+
- **Immersive visual design**: All video windows are forced to maintain the standard `16:9` aspect ratio, and combined with an interactively displayed toolbar, provide a distraction-free multi-party audio/video room experience.
|
|
15
15
|
|
|
16
|
-
## Customizable
|
|
16
|
+
## Customizable Scope
|
|
17
17
|
|
|
18
|
-
`RoomView` focuses
|
|
19
|
-
- **Layout
|
|
18
|
+
`RoomView` focuses solely on the underlying playback of video streams, while handing over all "presentation control" of the view layer to the developer. With `RoomView`, you can freely define:
|
|
19
|
+
- **Layout switching**: Change the layout in real time based on the business scenario (for example, presentation mode or discussion mode).
|
|
20
20
|
|
|
21
|
-
- **Video
|
|
21
|
+
- **Video widget UI:** Includes nickname labels, dynamic volume waveforms, role badges, and more.
|
|
22
22
|
|
|
23
23
|
## **Prerequisites**
|
|
24
|
-
- The user has completed login authentication
|
|
24
|
+
- The user has completed login authentication via [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-LoginState). Please refer to the Integration Overview.
|
|
25
25
|
|
|
26
|
-
- The user has entered
|
|
26
|
+
- The user has entered the room via [useRoomState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomState). See Room Management.
|
|
27
27
|
|
|
28
|
-
-
|
|
28
|
+
- The global `UIKitProvider` has been configured in `App.vue`. For details, see [Configuring App.vue](https://cloud.tencent.com/document/product/647/81962#ce98ee15-b0cb-43af-81da-70f51231430e).
|
|
29
29
|
|
|
30
|
-
## Implementing Video Layout Feature
|
|
30
|
+
## Implementing the Video Layout Feature
|
|
31
31
|
|
|
32
|
-
### Step 1: Import and Render Basic Layout
|
|
32
|
+
### Step 1: Import and Render the Basic Layout
|
|
33
33
|
|
|
34
|
-
In your meeting page (
|
|
34
|
+
In your meeting page (for example, RoomLayoutView.vue), import `RoomView` and the layout enum `RoomLayoutTemplate`.
|
|
35
35
|
``` typescript
|
|
36
36
|
<template>
|
|
37
37
|
<div class="room-container">
|
|
@@ -55,22 +55,24 @@ import { RoomView } from 'tuikit-atomicx-vue3/room';
|
|
|
55
55
|
> **Note:**
|
|
56
56
|
>
|
|
57
57
|
|
|
58
|
-
> `RoomView`
|
|
58
|
+
> `RoomView` automatically fills the height and width of its parent container, so make sure its parent container has explicit dimensions.
|
|
59
59
|
>
|
|
60
60
|
|
|
61
|
-
### Step 2: Switch Layout Mode
|
|
61
|
+
### Step 2: Switch the Layout Mode
|
|
62
62
|
|
|
63
|
-
You can dynamically update the
|
|
64
|
-
| Property Name | Type | Default Value | Description |
|
|
65
|
-
| --- | --- | --- | --- |
|
|
66
|
-
| `layoutTemplate` | `RoomLayoutTemplate` | `RoomLayoutTemplate.GridLayout` | Video stream layout |
|
|
63
|
+
You can dynamically update the value of the `RoomView` property `layoutTemplate` based on your business logic (for example, clicking a toggle button).
|
|
67
64
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
65
|
+
|Property|Type|Default Value|Description|
|
|
66
|
+
|---------|---------|---------|---------|
|
|
67
|
+
|`layoutTemplate`|`RoomLayoutTemplate`|`RoomLayoutTemplate.GridLayout`|Video stream layout|
|
|
68
|
+
|
|
69
|
+
Explanation of the available values of `RoomLayoutTemplate`:
|
|
70
|
+
|
|
71
|
+
|Layout Mode|Enum Value|Description|
|
|
72
|
+
|---------|---------|---------|
|
|
73
|
+
|Grid layout|`RoomLayoutTemplate.GridLayout`|The default layout. All participants' videos are arranged evenly, with pagination supported when there are more than 9 participants.|
|
|
74
|
+
|Sidebar layout|`RoomLayoutTemplate.SidebarLayout`|The main view is prominently displayed, and the other participants' videos are arranged as a sidebar, suitable for scenarios such as presentations and reports.|
|
|
75
|
+
|Top-bar layout|`RoomLayoutTemplate.CinemaLayout`|The main view is prominently displayed, and the other participants' videos are arranged as a top bar, suitable for scenarios such as presentations and reports.<br>|
|
|
74
76
|
|
|
75
77
|
``` typescript
|
|
76
78
|
<template>
|
|
@@ -88,10 +90,10 @@ You can dynamically update the `layoutTemplate` attribute value of `RoomView` ba
|
|
|
88
90
|
<script setup lang="ts">
|
|
89
91
|
import { ref } from 'vue';
|
|
90
92
|
import { RoomView, RoomLayoutTemplate } from 'tuikit-atomicx-vue3/room';
|
|
91
|
-
//
|
|
93
|
+
// Use the grid layout by default
|
|
92
94
|
const currentLayout = ref(RoomLayoutTemplate.GridLayout);
|
|
93
95
|
|
|
94
|
-
// Switch layout
|
|
96
|
+
// Switch the layout
|
|
95
97
|
const switchLayout = (layout: RoomLayoutTemplate) => {
|
|
96
98
|
currentLayout.value = layout;
|
|
97
99
|
};
|
|
@@ -107,30 +109,30 @@ const switchLayout = (layout: RoomLayoutTemplate) => {
|
|
|
107
109
|
|
|
108
110
|
### Step 3: Implement Video Stream Widget Information
|
|
109
111
|
|
|
110
|
-
You can customize UI
|
|
112
|
+
You can use the `participantViewUI` slot to customize the UI content displayed on the video (for example, setting the nickname or adding custom icons).
|
|
111
113
|
|
|
112
|
-
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
|Slot Parameter|Type|Description|
|
|
115
|
+
|---------|---------|---------|
|
|
116
|
+
|`participant`|`RoomParticipant`|The participant object corresponding to the current video stream, containing the user's real-time status information such as `userId`, `userName`, and `role`.|
|
|
117
|
+
|`streamType`|`VideoStreamType`|Distinguishes whether the current stream is a camera stream (Camera) or a screen sharing stream (Screen).|
|
|
116
118
|
|
|
117
|
-
#### Prepare Visual
|
|
119
|
+
#### Prepare Visual Assets
|
|
118
120
|
|
|
119
|
-
To provide complete
|
|
120
|
-
- Microphone status
|
|
121
|
+
To provide complete interaction feedback, it is recommended that you prepare the following icons in advance:
|
|
122
|
+
- Microphone status icon: distinguishes between enabled, muted, and dynamic volume bars.
|
|
121
123
|
|
|
122
|
-
- Identity
|
|
124
|
+
- Identity indicator icon: used to distinguish between the Owner, Admin, and regular members.
|
|
123
125
|
|
|
124
|
-
- Network signal
|
|
126
|
+
- Network signal icon: displays the real-time uplink/downlink network quality.
|
|
125
127
|
|
|
126
|
-
> **Special
|
|
128
|
+
> **Special note:**
|
|
127
129
|
>
|
|
128
130
|
|
|
129
|
-
> We provide
|
|
131
|
+
> We provide royalty-free icons in the @tencentcloud/uikit-base-component-vue3 npm package of the example project, which you can import and use directly.
|
|
130
132
|
>
|
|
131
133
|
|
|
132
134
|
#### Implementation Code Example
|
|
133
|
-
1. Add file `ParticipantViewUI.vue` to implement UI rendering logic for a single video stream widget layer.
|
|
135
|
+
1. Add a new file `ParticipantViewUI.vue` to implement the UI rendering logic for a single video stream widget layer.
|
|
134
136
|
|
|
135
137
|
``` typescript
|
|
136
138
|
<template>
|
|
@@ -199,7 +201,7 @@ To provide complete interactive feedback, it is recommended to prepare the follo
|
|
|
199
201
|
.stream-cover-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 12px; pointer-events: none; .corner-user-info-container { position: absolute; bottom: 8px; left: 8px; display: flex; align-content: center; align-items: center; box-sizing: border-box; min-width: 118px; max-width: calc(100% - 24px); padding-right: 10px; height: 32px; overflow: hidden; font-size: 14px; color: var(--uikit-color-white-1); border-radius: 16px; background-color: var(--uikit-color-black-5); .master-icon, .admin-icon { display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 32px; height: 32px; margin-left: 0; border-radius: 50%; background-color: var(--button-color-primary-default); } .admin-icon { background-color: var(--text-color-warning); } .audio-icon-container { margin-left: 4px; position: relative; width: 20px; height: 20px; flex-shrink: 0; min-width: 20px; &:first-child { margin-left: 8px; } .audio-level-container { position: absolute; top: 2px; left: 6px; display: flex; flex-flow: column-reverse wrap; justify-content: space-between; width: 8px; height: 12px; overflow: hidden; border-radius: 4px; .audio-level { width: 100%; background-color: var(--text-color-success); transition: height 0.2s; } } .audio-icon { position: absolute; top: 0; left: 0; } } .user-name { margin-left: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; } .screen-icon { flex-shrink: 0; min-width: 0; color: var(--uikit-color-white-1); margin-left: 4px; margin-right: 2px; } .screen-info { margin-left: 4px; font-size: 12px; color: var(--uikit-color-white-1); flex-shrink: 0; min-width: 0; } }}
|
|
200
202
|
</style>
|
|
201
203
|
```
|
|
202
|
-
2. Configure `RoomView` slot to render video stream widget content on the page.
|
|
204
|
+
2. Configure the `RoomView` slot to render the video stream widget content on the page.
|
|
203
205
|
|
|
204
206
|
``` typescript
|
|
205
207
|
<template>
|
|
@@ -218,26 +220,25 @@ To provide complete interactive feedback, it is recommended to prepare the follo
|
|
|
218
220
|
// Import the newly added ParticipantViewUI.vue file
|
|
219
221
|
import ParticipantViewUI from './ParticipantViewUI.vue';
|
|
220
222
|
|
|
221
|
-
//
|
|
223
|
+
// Use the grid layout by default
|
|
222
224
|
const currentLayout = ref(RoomLayoutTemplate.GridLayout);
|
|
223
225
|
</script>
|
|
224
226
|
```
|
|
225
227
|
|
|
226
228
|
## API Documentation
|
|
227
|
-
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
228
|
-
| --- | --- | --- |
|
|
229
|
-
| **useRoomParticipantState** | Contains room user data and user management interface. | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomParticipantState) |
|
|
230
229
|
|
|
231
|
-
|
|
230
|
+
|**State/Component**|**Description**|**API Documentation**|
|
|
231
|
+
|---------|---------|---------|
|
|
232
|
+
|**useRoomParticipantState**|Contains in-room user data and user management interfaces.|[API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomParticipantState)|
|
|
232
233
|
|
|
233
|
-
|
|
234
|
+
## FAQ
|
|
234
235
|
|
|
235
|
-
|
|
236
|
+
### **Does RoomView include rendering of screen sharing streams?**
|
|
236
237
|
|
|
237
|
-
|
|
238
|
+
`RoomView` has built-in rendering of remote screen sharing streams. For local screen sharing, you need to complete the placeholder UI for the local screen sharing via the `participantViewUI` slot.
|
|
238
239
|
|
|
239
|
-
|
|
240
|
+
### Does RoomView include UI widgets by default?
|
|
240
241
|
|
|
241
|
-
|
|
242
|
+
`RoomView` has no default UI widgets internally. You can refer to the [RoomView open-source usage example](https://github.com/Tencent-RTC/TUIRoomKit/tree/main/Web/example/atomicx-vite-vue3-ts/src/components/RoomLayoutView) to quickly build custom UI widgets.
|
|
242
243
|
|
|
243
|
-
|
|
244
|
+
### None of the layouts provided by RoomView meet my needs. Can more optional layouts be provided?
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
The schedule room feature allows users to plan meeting time, topic, and join password in advance. With this feature, users can create future meeting plans, generate a dedicated meeting number and join link, making it easy to notify participants ahead of time.
|
|
2
|
+
|
|
3
|
+
## Use Cases
|
|
4
|
+
- **Recurring enterprise meetings:** Schedule weekly and monthly meetings in advance to ensure participants are notified early.
|
|
5
|
+
|
|
6
|
+
- **Online class scheduling:** Teachers can set up a full week's class schedule in advance.
|
|
7
|
+
|
|
8
|
+
- **Remote interview booking:** HR can book specific time slots for candidates and interviewers.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
- **User status:** The user has completed login authentication via useLoginState (see Integration Overview) and is in the **logged-in** state, which is required to schedule rooms or view the scheduled room list.
|
|
12
|
+
|
|
13
|
+
- **Environment dependency:** The project has already imported `tuikit-atomicx-vue3`.
|
|
14
|
+
|
|
15
|
+
## Implementing the Schedule Room Feature
|
|
16
|
+
|
|
17
|
+
This feature provides two integration approaches. You can choose the one that best fits your business needs:
|
|
18
|
+
- **Approach 1 (Recommended):** Quick integration using UI components. Directly import the schedule room panel ([ScheduleRoomPanel](https://github.com/Tencent-RTC/TUIKit_Vue3/blob/main/packages/tuikit-atomicx-vue3/src/components/ScheduleRoomPanel/ScheduleRoomPanel.vue)) and the scheduled room list component ([ScheduledRoomList](https://github.com/Tencent-RTC/TUIKit_Vue3/blob/main/packages/tuikit-atomicx-vue3/src/components/ScheduleRoomPanel/ScheduledRoomList.vue)) provided by `tuikit-atomicx-vue3`, which has the lowest development cost.
|
|
19
|
+
|
|
20
|
+
- **Approach 2 (Advanced):** Custom integration using low-level APIs. Implement the UI and interaction logic yourself based on the atomicx-core SDK API `useRoomState` state hook, which offers the highest flexibility.
|
|
21
|
+
|
|
22
|
+
## Approach 1: Quick Integration Using UI Components
|
|
23
|
+
|
|
24
|
+
`tuikit-atomicx-vue3` provides two core components:
|
|
25
|
+
- [**ScheduleRoomPanel**](https://github.com/Tencent-RTC/TUIKit_Vue3/blob/main/packages/tuikit-atomicx-vue3/src/components/ScheduleRoomPanel/ScheduleRoomPanel.vue)**:** The configuration panel for scheduling meetings, including time selection, member invitation, and more.
|
|
26
|
+
|
|
27
|
+
- [**ScheduledRoomList**](https://github.com/Tencent-RTC/TUIKit_Vue3/blob/main/packages/tuikit-atomicx-vue3/src/components/ScheduleRoomPanel/ScheduledRoomList.vue)**:** Displays the current user's scheduled meeting list, supporting click-to-join, modify, and cancel operations.
|
|
28
|
+
|
|
29
|
+
### Step 1: Import the Components
|
|
30
|
+
``` typescript
|
|
31
|
+
import { ScheduleRoomPanel, ScheduledRoomList } from 'tuikit-atomicx-vue3/room';
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Step 2: Use the Components
|
|
35
|
+
|
|
36
|
+
You can combine and use these two components directly in your page.
|
|
37
|
+
``` typescript
|
|
38
|
+
<template>
|
|
39
|
+
<UIKitProvider theme="light" language="en-US">
|
|
40
|
+
<div class="schedule-container">
|
|
41
|
+
<!-- Schedule button; clicking it shows the schedule dialog -->
|
|
42
|
+
<button @click="showSchedulePanel = true">
|
|
43
|
+
Schedule a Meeting
|
|
44
|
+
</button>
|
|
45
|
+
|
|
46
|
+
<!-- Scheduled room list component -->
|
|
47
|
+
<div class="list-container">
|
|
48
|
+
<!-- Listen to the join-room event to handle join logic -->
|
|
49
|
+
<ScheduledRoomList @join-room="handleJoinRoom" />
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<!-- Schedule panel dialog -->
|
|
53
|
+
<!-- It is recommended to wrap it in a Dialog or Modal component -->
|
|
54
|
+
<div v-if="showSchedulePanel" class="modal-mask">
|
|
55
|
+
<div class="modal-content">
|
|
56
|
+
<ScheduleRoomPanel
|
|
57
|
+
@confirm="handleScheduleConfirm"
|
|
58
|
+
@cancel="showSchedulePanel = false"
|
|
59
|
+
/>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</UIKitProvider>
|
|
64
|
+
</template>
|
|
65
|
+
|
|
66
|
+
<script setup lang="ts">
|
|
67
|
+
import { ref } from 'vue';
|
|
68
|
+
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
69
|
+
import { ScheduleRoomPanel, ScheduledRoomList, useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
70
|
+
|
|
71
|
+
const { joinRoom } = useRoomState();
|
|
72
|
+
|
|
73
|
+
const showSchedulePanel = ref(false);
|
|
74
|
+
|
|
75
|
+
const handleScheduleConfirm = (roomId: string, options: Record<string, any>) => {
|
|
76
|
+
console.log('Scheduled successfully', roomId, options);
|
|
77
|
+
showSchedulePanel.value = false;
|
|
78
|
+
// Optional: show the invitation dialog or copy the link
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const handleJoinRoom = async (roomInfo: { roomId: string }) => {
|
|
82
|
+
console.log('Join clicked', roomInfo.roomId);
|
|
83
|
+
await joinRoom(roomInfo.roomId);
|
|
84
|
+
};
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
<style scoped>
|
|
88
|
+
.schedule-container{padding:24px;max-width:1000px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif}button{background-color:#006eff;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s;margin-bottom:24px}button:hover{background-color:#0056cc}.list-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);padding:16px}.modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.4);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);padding:24px;width:100%;max-width:480px}
|
|
89
|
+
</style>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Approach 2: Custom Integration Using Low-Level APIs
|
|
93
|
+
|
|
94
|
+
This section mainly describes how to implement the core logic of scheduling rooms through the atomicx-core SDK API [useRoomState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomState) interface.
|
|
95
|
+
|
|
96
|
+
Schedule room sequence diagram
|
|
97
|
+
|
|
98
|
+
### Step 1: Create a Schedule
|
|
99
|
+
|
|
100
|
+
Use the [scheduleRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#scheduleRoom) method to create a new scheduled meeting. You need to specify information such as the meeting's start time, end time, and room name.
|
|
101
|
+
``` typescript
|
|
102
|
+
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
103
|
+
|
|
104
|
+
const { scheduleRoom } = useRoomState();
|
|
105
|
+
|
|
106
|
+
const createSchedule = async () => {
|
|
107
|
+
try {
|
|
108
|
+
// roomId constraints: string type, required parameter, recommended to be randomly generated
|
|
109
|
+
const roomId = '123456';
|
|
110
|
+
|
|
111
|
+
// Note: the timestamp unit must be **seconds** (Date.getTime() returns milliseconds, so divide by 1000)
|
|
112
|
+
const startTime = Math.floor(new Date().getTime() / 1000) + 3600; // starts in 1 hour
|
|
113
|
+
const duration = 1800; // 30 minutes
|
|
114
|
+
|
|
115
|
+
const options = {
|
|
116
|
+
roomName: 'Product Requirements Review',
|
|
117
|
+
scheduleStartTime: startTime, // unit: seconds
|
|
118
|
+
scheduleEndTime: startTime + duration, // unit: seconds
|
|
119
|
+
scheduleAttendees: ['userA', 'userB'], // list of invited participant IDs
|
|
120
|
+
password: '123', // optional: set a join password
|
|
121
|
+
isAllMicrophoneDisabled: false, // optional: whether to mute all microphones
|
|
122
|
+
isAllCameraDisabled: false, // optional: whether to disable all cameras
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
await scheduleRoom({ roomId, options });
|
|
126
|
+
console.log('Scheduled successfully', roomId);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.error('Scheduling failed', error);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Step 2: Get the Scheduled Room List
|
|
134
|
+
|
|
135
|
+
Use the [getScheduledRoomList](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#getScheduledRoomList) method to fetch the current user's scheduled meeting list. The list data is reactively updated into the [scheduledRoomList](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#scheduledRoomList) state.
|
|
136
|
+
``` typescript
|
|
137
|
+
import { onMounted, watch } from 'vue';
|
|
138
|
+
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
139
|
+
|
|
140
|
+
const {
|
|
141
|
+
scheduledRoomList, // reactive data: scheduled meeting list
|
|
142
|
+
getScheduledRoomList // method: fetch the list
|
|
143
|
+
} = useRoomState();
|
|
144
|
+
|
|
145
|
+
// Load the list on initialization
|
|
146
|
+
onMounted(async () => {
|
|
147
|
+
// cursor indicates where to start fetching data; an empty string means start from the beginning
|
|
148
|
+
// getScheduledRoomList returns a new cursor
|
|
149
|
+
const { cursor } = await getScheduledRoomList({ cursor: '' });
|
|
150
|
+
// If cursor is not empty, there is more data available and you can continue fetching
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// Watch for list changes and update the UI in real time
|
|
154
|
+
watch(scheduledRoomList, (list) => {
|
|
155
|
+
console.log('Current scheduled list:', list);
|
|
156
|
+
});
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Step 3: Modify a Schedule
|
|
160
|
+
|
|
161
|
+
If you need to adjust the time or topic of a scheduled meeting, you can use the [updateScheduledRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#updateScheduledRoom) method.
|
|
162
|
+
``` typescript
|
|
163
|
+
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
164
|
+
|
|
165
|
+
const { updateScheduledRoom } = useRoomState();
|
|
166
|
+
|
|
167
|
+
const updateRoom = async (roomId: string) => {
|
|
168
|
+
try {
|
|
169
|
+
const newStartTime = Math.floor(new Date().getTime() / 1000) + 7200; // postpone by 2 hours
|
|
170
|
+
const options = {
|
|
171
|
+
roomName: 'Product Requirements Review (Rescheduled)',
|
|
172
|
+
scheduleStartTime: newStartTime,
|
|
173
|
+
scheduleEndTime: newStartTime + 1800,
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
await updateScheduledRoom({ roomId, options });
|
|
177
|
+
console.log('Modified successfully');
|
|
178
|
+
} catch (error) {
|
|
179
|
+
console.error('Modification failed', error);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Step 4: Cancel a Schedule
|
|
185
|
+
|
|
186
|
+
If you need to cancel a scheduled meeting, you can call the [cancelScheduledRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#cancelScheduledRoom) method.
|
|
187
|
+
``` typescript
|
|
188
|
+
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
189
|
+
|
|
190
|
+
const { cancelScheduledRoom } = useRoomState();
|
|
191
|
+
|
|
192
|
+
const cancelRoom = async (roomId: string) => {
|
|
193
|
+
try {
|
|
194
|
+
await cancelScheduledRoom({ roomId });
|
|
195
|
+
console.log('Canceled successfully');
|
|
196
|
+
// After a successful cancellation, scheduledRoomList updates automatically; no manual re-fetch is needed
|
|
197
|
+
} catch (error) {
|
|
198
|
+
console.error('Cancellation failed', error);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Step 5: Handle the Join Password
|
|
204
|
+
|
|
205
|
+
For scheduled meetings that have a password set, when calling the [joinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#joinRoom) interface to join, you need to catch the authentication failure error and guide the user to enter the password.
|
|
206
|
+
``` typescript
|
|
207
|
+
import { useRoomState, TUIErrorCode } from 'tuikit-atomicx-vue3/room';
|
|
208
|
+
|
|
209
|
+
const { joinRoom } = useRoomState();
|
|
210
|
+
|
|
211
|
+
const enterRoom = async (roomId: string, password?: string) => {
|
|
212
|
+
try {
|
|
213
|
+
await joinRoom({ roomId, password });
|
|
214
|
+
} catch (error: any) {
|
|
215
|
+
// Catch the specific error code, TUIErrorCode.ERR_NEED_PASSWORD (-2010)
|
|
216
|
+
if (error.code === TUIErrorCode.ERR_NEED_PASSWORD) {
|
|
217
|
+
console.log('This room requires a password; please guide the user to enter it');
|
|
218
|
+
// 1. Pop up the password input box
|
|
219
|
+
// 2. Get the password entered by the user, inputPassword
|
|
220
|
+
// 3. Call enterRoom(roomId, inputPassword) again
|
|
221
|
+
} else if (error.code === TUIErrorCode.ERR_WRONG_PASSWORD) {
|
|
222
|
+
console.error('Incorrect password, please try again');
|
|
223
|
+
} else {
|
|
224
|
+
console.error('Failed to join the room', error);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Step 6: Listen to Schedule Events
|
|
231
|
+
|
|
232
|
+
In addition to passively reacting to data changes, you can also listen to specific schedule events to handle business logic, such as showing a reminder when a meeting is about to start.
|
|
233
|
+
``` typescript
|
|
234
|
+
import { onMounted, onUnmounted } from 'vue';
|
|
235
|
+
import { useRoomState, RoomEvent } from 'tuikit-atomicx-vue3/room';
|
|
236
|
+
|
|
237
|
+
const { subscribeEvent, unsubscribeEvent } = useRoomState();
|
|
238
|
+
|
|
239
|
+
// Meeting starting soon notification (default: 5 minutes before start)
|
|
240
|
+
const handleRoomStartingSoon = (info: { roomInfo: any }) => {
|
|
241
|
+
console.log('Meeting starting soon:', info.roomInfo.roomName);
|
|
242
|
+
// You can implement a Toast reminder or system notification here
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
// Meeting canceled notification
|
|
246
|
+
const handleRoomCancelled = (info: { roomInfo: any; operateUser: any }) => {
|
|
247
|
+
console.log(`Meeting ${info.roomInfo.roomName} has been canceled by ${info.operateUser.userName}`);
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
// New meeting invitation received notification
|
|
251
|
+
const handleRoomAdded = (info: { roomInfo: any }) => {
|
|
252
|
+
console.log('Received a new meeting invitation:', info.roomInfo.roomName);
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
// Removed from meeting notification
|
|
256
|
+
const handleRemovedFromRoom = (info: { roomInfo: any; operateUser: any }) => {
|
|
257
|
+
console.log(`You have been removed from meeting ${info.roomInfo.roomName} by ${info.operateUser.userName}`);
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
onMounted(() => {
|
|
261
|
+
// Register event listeners
|
|
262
|
+
subscribeEvent(RoomEvent.onScheduledRoomStartingSoon, handleRoomStartingSoon);
|
|
263
|
+
subscribeEvent(RoomEvent.onScheduledRoomCancelled, handleRoomCancelled);
|
|
264
|
+
subscribeEvent(RoomEvent.onAddedToScheduledRoom, handleRoomAdded);
|
|
265
|
+
subscribeEvent(RoomEvent.onRemovedFromScheduledRoom, handleRemovedFromRoom);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
onUnmounted(() => {
|
|
269
|
+
// Remove event listeners
|
|
270
|
+
unsubscribeEvent(RoomEvent.onScheduledRoomStartingSoon, handleRoomStartingSoon);
|
|
271
|
+
unsubscribeEvent(RoomEvent.onScheduledRoomCancelled, handleRoomCancelled);
|
|
272
|
+
unsubscribeEvent(RoomEvent.onAddedToScheduledRoom, handleRoomAdded);
|
|
273
|
+
unsubscribeEvent(RoomEvent.onRemovedFromScheduledRoom, handleRemovedFromRoom);
|
|
274
|
+
});
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Development Notes
|
|
278
|
+
1. **Timestamp unit**: All time parameters involved in the SDK (for example, `scheduleStartTime` and `scheduleEndTime`) are in **seconds**, not the milliseconds used by default by the JavaScript `Date` object. Be sure to perform the `/ 1000` operation before passing them.
|
|
279
|
+
|
|
280
|
+
2. **Style import**: When using UI components, be sure to import `UIKitProvider`, otherwise the component styles will not render correctly.
|
|
281
|
+
|
|
282
|
+
3. **RoomID recommendation**: Although `scheduleRoom` allows the frontend to pass in a `roomId`, to avoid ID conflicts, it is recommended that this ID be generated by the business backend and be globally unique.
|
|
283
|
+
|
|
284
|
+
4. **Pagination handling**: The scheduled room list can be very long, and the `getScheduledRoomList` interface supports paginated fetching. Pay attention to the `cursor` field in the return value; if it is not empty, there is more data available.
|
|
285
|
+
|
|
286
|
+
## FAQ
|
|
287
|
+
1. **Scheduled successfully but the list does not update?**
|
|
288
|
+
|
|
289
|
+
Please confirm that you are logged in and that `getScheduledRoomList` was called on the first screen (for example, `cursor: ''`). If the returned `cursor` is not empty, you need to continue fetching; the list is reactive, so the UI will sync after it updates.
|
|
290
|
+
|
|
291
|
+
2. **How should I pass the** `joinRoom` **parameters?**
|
|
292
|
+
|
|
293
|
+
It is recommended to consistently use object arguments: `joinRoom({ roomId, password })`, to avoid passing a string directly, which can cause type mismatches or limit future extensibility.
|
|
294
|
+
|
|
295
|
+
3. **Does using milliseconds for the timestamp cause scheduling to fail?**
|
|
296
|
+
|
|
297
|
+
All time-related parameters must be in seconds; `Date.now()` needs to be divided by 1000 (`/ 1000`), otherwise a time conflict error will be returned.
|
|
298
|
+
|
|
299
|
+
4. **How do I handle a room that has a password set?**
|
|
300
|
+
|
|
301
|
+
Catch `TUIErrorCode.ERR_NEED_PASSWORD` / `ERR_WRONG_PASSWORD`, pop up the password input box, and call `joinRoom({ roomId, password })` again; after multiple errors, you can prompt the user to contact the room owner to reset it.
|
|
302
|
+
|
|
303
|
+
5. **roomId conflicts or duplicates?**
|
|
304
|
+
|
|
305
|
+
It is recommended that the backend generate a globally unique roomId; if generated on the frontend, check for conflicts before scheduling and implement a proper retry strategy.
|
|
306
|
+
|
|
307
|
+
6. **How do I continue fetching with pagination?**
|
|
308
|
+
|
|
309
|
+
When the `cursor` returned by `getScheduledRoomList` is not empty, continue passing it in; an empty value means all data has been fetched.
|
|
310
|
+
|
|
311
|
+
## **Sample Project**
|
|
312
|
+
|
|
313
|
+
Tencent Cloud provides the sample project [atomicx-vite-vue3-ts](https://github.com/Tencent-RTC/TUIRoomKit/tree/main/Web/example/atomicx-vite-vue3-ts) on GitHub, which you can reference to implement the complete RoomKit functionality.
|
|
314
|
+
|
|
315
|
+
## API Documentation
|
|
316
|
+
|
|
317
|
+
|**State/Component**|**Description**|**API Documentation**|
|
|
318
|
+
|---------|---------|---------|
|
|
319
|
+
|**useRoomState**|Room state management (create, join, schedule, etc.)|[API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomState)|
|