@tencent-rtc/mcp 1.4.7 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cursor-setting.png +0 -0
- package/index.js +0 -1
- package/knowledge/bm25-cache.js +73 -0
- package/knowledge/bm25.js +147 -0
- package/knowledge/build-index.js +69 -0
- package/knowledge/chunker.js +167 -0
- package/knowledge/content-loader.js +39 -0
- package/knowledge/doc-url-resolver.js +142 -0
- package/knowledge/extractors.js +25 -0
- package/knowledge/path-meta.js +184 -0
- package/knowledge/search/exact-lookup.js +497 -0
- package/knowledge/search/filter-pool.js +104 -0
- package/knowledge/search/product-scope-intent.js +40 -0
- package/knowledge/search/requires-framework.js +81 -0
- package/knowledge/search/search-knowledge.js +229 -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-config.js +0 -1
- package/server.js +35 -12
- package/streamable-http.js +0 -1
- package/tools/call/get_native_call_uikit_integration.js +2 -4
- package/tools/call/get_native_callkit_core_integration.js +2 -6
- package/tools/call/get_web_call_uikit_integration.js +2 -4
- package/tools/chat/get_native_chat_uikit_integration.js +2 -4
- package/tools/chat/get_web_chat_uikit_integration.js +2 -4
- package/tools/common/get_usersig.js +0 -1
- package/tools/common/present_framework_choice.js +19 -14
- package/tools/common/record_answer.js +19 -26
- package/tools/common/record_feedback.js +17 -31
- package/tools/common/search_trtc_knowledge.js +44 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +3 -2
- package/tools/definitions/get_native_callkit_core_integration_def.js +5 -4
- package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -3
- package/tools/definitions/get_native_livekit_core_integration_def.js +6 -6
- package/tools/definitions/get_usersig_def.js +0 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +4 -3
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +5 -6
- package/tools/definitions/get_web_room_core_integration_def.js +49 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +5 -5
- package/tools/definitions/integration-boundary.js +5 -0
- package/tools/definitions/present_framework_choice_def.js +12 -11
- package/tools/definitions/record_answer_def.js +19 -18
- package/tools/definitions/record_feedback_def.js +14 -14
- package/tools/definitions/search_trtc_knowledge_def.js +39 -0
- package/tools/index.js +5 -37
- package/tools/live/get_native_livekit_core_integration.js +1 -4
- package/tools/live/get_web_live_uikit_integration.js +2 -5
- package/tools/room/get_web_room_core_integration.js +47 -0
- package/tools/room/get_web_room_uikit_integration.js +2 -4
- package/utils/generate-structured-result.js +24 -31
- package/utils/generate-usersig.js +0 -1
- package/utils/get-device-identifier.js +0 -1
- package/utils/get-doc-content.js +14 -9
- package/utils/http-get.js +0 -1
- package/utils/http-post.js +0 -1
- package/utils/report-cls-client.js +18 -21
- package/utils/report-es-client.js +1 -2
- package/index.js.map +0 -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/server-config.js.map +0 -1
- package/server.js.map +0 -1
- package/streamable-http.js.map +0 -1
- package/tools/call/get_callkit_api.js +0 -33
- package/tools/call/get_callkit_api.js.map +0 -1
- package/tools/call/get_native_call_uikit_integration.js.map +0 -1
- package/tools/call/get_native_callkit_core_integration.js.map +0 -1
- package/tools/call/get_web_call_uikit_integration.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_native_chat_uikit_integration.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/chat/get_web_chat_uikit_integration.js.map +0 -1
- package/tools/common/get_faq.js +0 -266
- package/tools/common/get_faq.js.map +0 -1
- package/tools/common/get_usersig.js.map +0 -1
- package/tools/common/present_framework_choice.js.map +0 -1
- package/tools/common/record_answer.js.map +0 -1
- package/tools/common/record_feedback.js.map +0 -1
- package/tools/common/record_skill_session.js +0 -69
- package/tools/common/record_skill_session.js.map +0 -1
- package/tools/definitions/get_callkit_api_def.js +0 -29
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -47
- package/tools/definitions/get_faq_def.js.map +0 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_callkit_core_integration_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_chat_uikit_integration_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_livekit_core_integration_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_usersig_def.js.map +0 -1
- package/tools/definitions/get_web_call_uikit_integration_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_chat_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_web_live_uikit_integration_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_room_uikit_integration_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/present_framework_choice_def.js.map +0 -1
- package/tools/definitions/record_answer_def.js.map +0 -1
- package/tools/definitions/record_feedback_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/index.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_native_livekit_core_integration.js.map +0 -1
- package/tools/live/get_web_live_uikit_integration.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_room_uikit_integration.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/generate-structured-result.js.map +0 -1
- package/utils/generate-usersig.js.map +0 -1
- package/utils/get-device-identifier.js.map +0 -1
- package/utils/get-doc-content.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/http-get.js.map +0 -1
- package/utils/http-post.js.map +0 -1
- package/utils/report-cls-client.js.map +0 -1
- package/utils/report-es-client.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,300 +0,0 @@
|
|
|
1
|
-
This guide provides a comprehensive overview of the **Viewer Page** in the TUILiveKit Demo. Use this documentation to quickly integrate our pre-built viewer page into your project, or leverage the details here to fully customize its style, layout, and features to fit your specific needs.
|
|
2
|
-
|
|
3
|
-
## Feature Overview
|
|
4
|
-
|
|
5
|
-
The viewer page comes with default functionality and styling out of the box. If these defaults don’t match your requirements, you can easily tailor the UI. The numbers in the screenshot map to the main feature categories. Core features include: **stream information display, live video area, online audience, audio/video controls, live duration, resolution switching, fullscreen mode, chat interaction, and message list**.
|
|
6
|
-
- **Live Video Playback**: High-definition, low-latency streaming.
|
|
7
|
-
|
|
8
|
-
- **Live Comments Interaction**: Real-time live comments for audience engagement.
|
|
9
|
-
|
|
10
|
-
- **Audience List**: View details about online audience members.
|
|
11
|
-
|
|
12
|
-
- **Fullscreen Playback**: Immersive viewing experience.
|
|
13
|
-
|
|
14
|
-
- **H5 Mobile Platform Support**: Works seamlessly across platforms.
|
|
15
|
-
|
|
16
|
-
## Quick Integration
|
|
17
|
-
|
|
18
|
-
### Step 1: Environment Setup and Activate the Service
|
|
19
|
-
|
|
20
|
-
Before you begin, see Preparation for instructions on integrating required components and implementing login.
|
|
21
|
-
|
|
22
|
-
### Step 2: Install Dependencies
|
|
23
|
-
|
|
24
|
-
Install the necessary packages using your preferred package manager:
|
|
25
|
-
|
|
26
|
-
【npm】
|
|
27
|
-
``` bash
|
|
28
|
-
npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 --save
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
【pnpm】
|
|
32
|
-
``` bash
|
|
33
|
-
pnpm add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
【yarn】
|
|
37
|
-
``` bash
|
|
38
|
-
yarn add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Step 3: Integrate Viewer Page
|
|
42
|
-
|
|
43
|
-
Create a `live-player.vue` file in your project. Copy and paste the following code to add the **viewer page**.
|
|
44
|
-
|
|
45
|
-
> **Note:**
|
|
46
|
-
>
|
|
47
|
-
|
|
48
|
-
> You can use the code below directly, or refer to [Audience Viewing](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Web/web-vite-vue3/src/TUILiveKit/component/LivePlayer/LivePlayerPC.vue) for the full source.
|
|
49
|
-
>
|
|
50
|
-
|
|
51
|
-
``` typescript
|
|
52
|
-
<template>
|
|
53
|
-
<UIKitProvider theme="dark">
|
|
54
|
-
<div class="container">
|
|
55
|
-
<!-- Live Core Area -->
|
|
56
|
-
<section class="live">
|
|
57
|
-
<header class="header">
|
|
58
|
-
<IconArrowStrokeBack class="back-btn" size="20" />
|
|
59
|
-
<Avatar :src="currentLive?.liveOwner.avatarUrl" :size="32" class="avatar" />
|
|
60
|
-
<span class="user-name">{{ currentLive?.liveOwner.userName || currentLive?.liveOwner.userId }}</span>
|
|
61
|
-
</header>
|
|
62
|
-
<LiveCoreView class="player" />
|
|
63
|
-
</section>
|
|
64
|
-
|
|
65
|
-
<div class="sidebar">
|
|
66
|
-
<!-- Online Audience List -->
|
|
67
|
-
<section class="audience">
|
|
68
|
-
<header class="section-header">
|
|
69
|
-
<h3> Online Audience <span>({{ audienceList.length }})</span></h3>
|
|
70
|
-
</header>
|
|
71
|
-
<LiveAudienceList class="list" />
|
|
72
|
-
</section>
|
|
73
|
-
|
|
74
|
-
<!-- Message List & Input Box -->
|
|
75
|
-
<section class="barrage">
|
|
76
|
-
<header class="section-header">
|
|
77
|
-
<h3>Message List</h3>
|
|
78
|
-
</header>
|
|
79
|
-
<BarrageList class="list" />
|
|
80
|
-
<BarrageInput class="input" height="48px" />
|
|
81
|
-
</section>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
</UIKitProvider>
|
|
85
|
-
</template>
|
|
86
|
-
|
|
87
|
-
<script setup lang="ts">
|
|
88
|
-
import { onMounted } from 'vue';
|
|
89
|
-
import { LiveAudienceList, BarrageList, BarrageInput, useLiveAudienceState, LiveCoreView, useLiveListState, Avatar, useLoginState } from 'tuikit-atomicx-vue3';
|
|
90
|
-
import { UIKitProvider, IconArrowStrokeBack } from '@tencentcloud/uikit-base-component-vue3';
|
|
91
|
-
|
|
92
|
-
const { audienceList } = useLiveAudienceState();
|
|
93
|
-
const { currentLive } = useLiveListState();
|
|
94
|
-
const { login, setSelfInfo } = useLoginState();
|
|
95
|
-
|
|
96
|
-
const liveId = 'live_xxxx' // Enter the ID of the live stream you want to watch
|
|
97
|
-
|
|
98
|
-
async function initLogin() {
|
|
99
|
-
try {
|
|
100
|
-
await login({
|
|
101
|
-
sdkAppId: 0, // SDKAppID, refer to Step 1 for details
|
|
102
|
-
userId: '', // UserID, refer to Step 1 for details
|
|
103
|
-
userSig: '', // userSig, refer to Step 1 for details
|
|
104
|
-
});
|
|
105
|
-
} catch (error) {
|
|
106
|
-
console.error('Login failed:', error);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
onMounted(async () => {
|
|
111
|
-
await initLogin();
|
|
112
|
-
await setSelfInfo({
|
|
113
|
-
userName: 'Your Name/Nickname', // Username
|
|
114
|
-
avatarUrl: '', // Avatar URL
|
|
115
|
-
});
|
|
116
|
-
await joinLive({ liveId });
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
</script>
|
|
120
|
-
|
|
121
|
-
<style>html,body,#app{height:100%;width:100%;margin:0;padding:0;overflow:hidden}:global(body){font-size:15px;line-height:1.6;text-rendering:optimizeLegibility;}:global(*),:global(*::before),:global(*::after){box-sizing:border-box;margin:0;}.container{display:grid;grid-template-columns:1fr 320px;height:100%;width:100%;gap:16px;padding:16px;background:var(--bg-color-default);box-sizing:border-box;overflow:hidden;}.live{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);}.header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--stroke-color-primary);}.back-btn{cursor:pointer;color:var(--text-color-tertiary);transition:color 0.2s;}.back-btn:hover{color:var(--text-color-link-hover);}.avatar{border:1px solid var(--uikit-color-white-7);}.user-name{color:var(--text-color-primary);font-weight:500;}.player{flex:1;background:var(--uikit-color-black-1);min-height:0;}.sidebar{display:flex;flex-direction:column;gap:16px;height:100%;overflow:hidden;}.audience{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);flex:1;min-height:0;}.barrage{display:flex;flex-direction:column;background:var(--bg-color-operate);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-color);flex:1;min-height:0;}.section-header{padding:16px;border-bottom:1px solid var(--stroke-color-primary);background:var(--bg-color-operate);}.section-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-color-primary);}.section-header span{font-weight:400;color:var(--text-color-secondary);font-size:14px;}.list{flex:1;min-height:0;overflow-y:auto;}.input{border-top:1px solid var(--stroke-color-primary);flex-shrink:0;height:48px;}@media (max-width:1200px){.container{grid-template-columns:1fr;grid-template-rows:60% 20% 20%;gap:12px;}.sidebar{gap:12px;}.audience,.barrage{min-height:200px;}}@media (max-width:768px){.container{padding:8px;gap:8px;grid-template-rows:50% 25% 25%;}.header,.section-header{padding:12px;}.sidebar{gap:8px;}}</style>
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
#### Core API Parameters
|
|
125
|
-
|
|
126
|
-
##### setSelfInfo
|
|
127
|
-
|
|
128
|
-
Configure user information.
|
|
129
|
-
| Parameter | Type | Required | Description |
|
|
130
|
-
| --- | --- | --- | --- |
|
|
131
|
-
| userName | String | Yes | User nickname, shown in the live room and chat area. |
|
|
132
|
-
| avatarUrl | String | No | URL of the user's avatar image. |
|
|
133
|
-
|
|
134
|
-
### Step 4: Start the Project
|
|
135
|
-
|
|
136
|
-
Open your terminal, navigate to your project directory, and run the following command to launch the project. You’ll then be able to view the live stream.
|
|
137
|
-
|
|
138
|
-
> **Note:**
|
|
139
|
-
>
|
|
140
|
-
|
|
141
|
-
> After the command runs successfully, enter your local access URL in your browser (for example, `http://localhost:5173/live-player`; the port may vary based on your setup) to access the viewer page.
|
|
142
|
-
>
|
|
143
|
-
|
|
144
|
-
``` bash
|
|
145
|
-
npm run dev
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
## Play Live Stream
|
|
149
|
-
|
|
150
|
-
### Step 1: Start a Live Stream
|
|
151
|
-
- **Method 1 (Recommended):**
|
|
152
|
-
|
|
153
|
-
Use our [Online Hosting Website](https://web.sdk.qcloud.com/trtc/livekit/pusher/index.html) to start a live stream. After starting, copy the live stream room ID.
|
|
154
|
-
|
|
155
|
-
- **Method 2:**
|
|
156
|
-
|
|
157
|
-
Integrate our Host Streaming (Web Desktop Browser) to start a live stream. After starting, copy the live stream room ID.
|
|
158
|
-
|
|
159
|
-
> **Important Tip:****:**
|
|
160
|
-
>
|
|
161
|
-
|
|
162
|
-
> Use different **userID** for hosting and viewing. If the same user ID logs in on multiple devices, the later login will force the earlier device offline (**kick offline**).
|
|
163
|
-
>
|
|
164
|
-
|
|
165
|
-
### Step 2: Watch the Live Stream
|
|
166
|
-
|
|
167
|
-
Refer to the sample code from Step 3 of Quick Integration. Enter the corresponding `liveId` to join the live room and view the stream.
|
|
168
|
-
|
|
169
|
-
### Step 3: Router Configuration
|
|
170
|
-
|
|
171
|
-
To enable navigation from the Live Stream List or homepage to the live room, configure Vue Router. In your project’s **src** directory, create a **router** folder and an **index.ts** file. Import and use the router in your main entry file (such as **main.ts** or **index.ts**). For reference, see the [GitHub code example](https://github.com/Tencent-RTC/TUILiveKit/blob/main/Web/web-vite-vue3/src/main.ts). If you need the Live Stream List feature, check the Live Stream List documentation.
|
|
172
|
-
|
|
173
|
-
> **Note:**
|
|
174
|
-
>
|
|
175
|
-
|
|
176
|
-
> In the code below, `live-player.vue` refers to the sample file created in Step 3.
|
|
177
|
-
>
|
|
178
|
-
|
|
179
|
-
``` typescript
|
|
180
|
-
// src/router/index.ts
|
|
181
|
-
import { createRouter, createWebHistory } from 'vue-router';
|
|
182
|
-
|
|
183
|
-
const routes = [
|
|
184
|
-
{
|
|
185
|
-
path: '/live-player',
|
|
186
|
-
component: () => import('../live-player.vue'),
|
|
187
|
-
},
|
|
188
|
-
// To add the Live Stream List feature, include the following route. Update the path as needed for your project.
|
|
189
|
-
// {
|
|
190
|
-
// path: '/live-list',
|
|
191
|
-
// component: () => import('../live-list.vue'),
|
|
192
|
-
// },
|
|
193
|
-
];
|
|
194
|
-
|
|
195
|
-
const router = createRouter({
|
|
196
|
-
history: createWebHistory(),
|
|
197
|
-
routes,
|
|
198
|
-
});
|
|
199
|
-
export default router;
|
|
200
|
-
|
|
201
|
-
// src/main.ts
|
|
202
|
-
import { createApp } from 'vue';
|
|
203
|
-
import App from './App.vue';
|
|
204
|
-
import router from './router';
|
|
205
|
-
|
|
206
|
-
const app = createApp(App);
|
|
207
|
-
app.use(router);
|
|
208
|
-
app.mount('#app');
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Customization
|
|
212
|
-
|
|
213
|
-
### Theme and Language Configuration
|
|
214
|
-
|
|
215
|
-
You can change the default theme and language by setting parameters in `UIKitProvider` within `App.vue`.
|
|
216
|
-
| UIKitProvider Parameter | Options | Default Value |
|
|
217
|
-
| --- | --- | --- |
|
|
218
|
-
| theme | "light" | "dark" |
|
|
219
|
-
| language | "zh-CN" | "en-US" |
|
|
220
|
-
|
|
221
|
-
``` typescript
|
|
222
|
-
<UIKitProvider theme="light">
|
|
223
|
-
<router-view />
|
|
224
|
-
</UIKitProvider>
|
|
225
|
-
|
|
226
|
-
<script setup lang="ts">
|
|
227
|
-
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Button and Icon Customization
|
|
231
|
-
|
|
232
|
-
To add, remove, or replace buttons, icons, or other controls for UI customization, follow the example below. Use the screenshot to locate the relevant code in `live-player.vue` and update the UI as needed.
|
|
233
|
-
|
|
234
|
-
You can also customize the **audience viewer page** to match your project requirements. In addition to layout adjustments, you can **add, remove, or modify** elements such as **color theme, fonts, border radius, buttons, icons, input boxes, pop-ups**, and more.
|
|
235
|
-
| Category | Feature | Description |
|
|
236
|
-
| --- | --- | --- |
|
|
237
|
-
| Asset Management | Customize asset management area display | Adjust icon size, color, or replace icons. |
|
|
238
|
-
| Live Tools | Customize live tool information display | Adjust icon size, color, or replace icons. |
|
|
239
|
-
| Online Audience | Customize audience information display | Supports: - Show/hide audience level. - Customize audience info font and color. - Use your preferred icon style. |
|
|
240
|
-
| Message List | Customize live comments area display | Supports: - Show/hide chat input area. - Customize chat bubble style, audience level, and more. |
|
|
241
|
-
|
|
242
|
-
## FAQs
|
|
243
|
-
|
|
244
|
-
### Browser Autoplay Restrictions?
|
|
245
|
-
|
|
246
|
-
Modern browsers restrict autoplay for media with sound: playback must be triggered by explicit user interaction (such as a click or tap). This prevents websites from playing audio unexpectedly. Most browsers allow muted video to autoplay, but on iOS Safari in low power mode and in iOS WKWebView with custom restrictions (such as iOS WeChat browser), even muted video may be blocked.
|
|
247
|
-
|
|
248
|
-
#### Autoplay Failure Handling?
|
|
249
|
-
|
|
250
|
-
If a user's Media Engagement Index (MEI) for your site is below the required threshold, attempts to autoplay sound-enabled video will fail. By default, when the SDK detects autoplay failure, it displays a dialog prompting the user to interact with the page (for example, by clicking the **Confirm** button). Once the user interacts, audio playback resumes as expected.
|
|
251
|
-
|
|
252
|
-
#### Customizing Autoplay Failure UI?
|
|
253
|
-
|
|
254
|
-
To customize the user experience when autoplay fails (such as replacing the default popup), listen for the SDK's `onAutoplayFailed` callback. Below is a Vue3 sample that listens for the event and displays a custom dialog:
|
|
255
|
-
``` java
|
|
256
|
-
import TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';
|
|
257
|
-
import { useUIKit, TUIMessageBox } from '@tencentcloud/uikit-base-component-vue3';
|
|
258
|
-
import { useRoomEngine } from 'tuikit-atomicx-vue3';
|
|
259
|
-
|
|
260
|
-
const roomEngine = useRoomEngine();
|
|
261
|
-
|
|
262
|
-
let isShowAutoPlayDialog = false;
|
|
263
|
-
|
|
264
|
-
export default function useCustomizedAutoPlayDialog() {
|
|
265
|
-
const { t } = useUIKit();
|
|
266
|
-
TUIRoomEngine.once('ready', () => {
|
|
267
|
-
roomEngine.instance?.on(TUIRoomEvents.onAutoPlayFailed, () => {
|
|
268
|
-
if (!isShowAutoPlayDialog) {
|
|
269
|
-
isShowAutoPlayDialog = true;
|
|
270
|
-
TUIMessageBox.alert({
|
|
271
|
-
title: t('RoomCommon.Attention'),
|
|
272
|
-
content: t('RoomNotifications.AudioPlaybackFailed'),
|
|
273
|
-
showClose: false,
|
|
274
|
-
modal: false,
|
|
275
|
-
confirmText: t('Confirm'),
|
|
276
|
-
callback: () => {
|
|
277
|
-
isShowAutoPlayDialog = false;
|
|
278
|
-
},
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
export { useCustomizedAutoPlayDialog };
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
> **Note:**
|
|
289
|
-
>
|
|
290
|
-
|
|
291
|
-
> Make sure to install the required `@tencentcloud/tuiroom-engine-js` package.
|
|
292
|
-
>
|
|
293
|
-
|
|
294
|
-
## Next Steps
|
|
295
|
-
|
|
296
|
-
You’ve now integrated the audience viewing feature. To further enhance your application, consider adding the following features:
|
|
297
|
-
| Feature | Description | Integration Guide |
|
|
298
|
-
| --- | --- | --- |
|
|
299
|
-
| Live Stream List | Displays the live stream list interface and features, including live stream list and room information display. | Live Stream List |
|
|
300
|
-
| Web Monitoring | Operations platform for live room management. | Web Monitoring Page |
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
product: 'Room'
|
|
3
|
-
tech_stack: 'roomKit'
|
|
4
|
-
framework: 'common'
|
|
5
|
-
title: 'RoomKit Error Code Reference'
|
|
6
|
-
keywords: ['error code', 'error', 'roomKit', 'room package issue', 'microphone permission issue', 'camera/microphone issue']
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# RoomKit Error Code Reference
|
|
10
|
-
|
|
11
|
-
## RoomKit Error Codes (Topic: RoomKit Error Code)
|
|
12
|
-
|
|
13
|
-
## Error Code -2
|
|
14
|
-
**Cause:** Operation frequency limit exceeded. Requests are too frequent, please try again later.
|
|
15
|
-
**Solution:** Operation frequency limit exceeded. Requests are too frequent, please try again later.
|
|
16
|
-
|
|
17
|
-
## Error Code -1002
|
|
18
|
-
**Cause:** SDK not initialized.
|
|
19
|
-
**Solution:** Please call the initialization interface first to complete SDK initialization.
|
|
20
|
-
|
|
21
|
-
## Error Code -1004
|
|
22
|
-
**Cause:** No package purchased or account is in arrears.
|
|
23
|
-
**Solution:** Visit the [Tencent Cloud Console](https://console.trtc.io/subscription/buy/live) to purchase. For first-time use, you can [activate the trial version](https://trtc.io/document/60033?product=live&menulabel=uikit&platform=web).
|
|
24
|
-
|
|
25
|
-
## Error Code -1101
|
|
26
|
-
**Cause:** Camera permission denied.
|
|
27
|
-
**Solution:** Please check your browser settings to ensure camera access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
|
|
28
|
-
|
|
29
|
-
## Error Code -1105
|
|
30
|
-
**Cause:** Microphone permission denied.
|
|
31
|
-
**Solution:** Please check your browser settings to ensure microphone access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
|
|
32
|
-
|
|
33
|
-
## Error Code -1100
|
|
34
|
-
**Cause:** Failed to open camera.
|
|
35
|
-
**Solution:** Please check your browser settings to ensure camera access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
|
|
36
|
-
|
|
37
|
-
## Error Code -1104
|
|
38
|
-
**Cause:** Failed to open microphone.
|
|
39
|
-
**Solution:** Please check your browser settings to ensure microphone access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
|
|
40
|
-
|
|
41
|
-
## Error Code 100007
|
|
42
|
-
**Cause:** No package purchased or account is in arrears.
|
|
43
|
-
**Solution:** Visit the [Tencent Cloud Console](https://console.trtc.io/subscription/buy/live) to purchase. For first-time use, you can [activate the trial version](https://trtc.io/document/60033?product=live&menulabel=uikit&platform=web).
|
|
44
|
-
|
|
45
|
-
## Error Code 70001
|
|
46
|
-
**Cause:** User signature has expired.
|
|
47
|
-
**Solution:** It is recommended to set the signature validity period to no less than 24 hours. Refer to [Generate UserSig (User Authentication)](https://trtc.io/document/35166?product=live&menulabel=uikit&platform=web).
|
|
48
|
-
|
|
49
|
-
## Error Code 70003
|
|
50
|
-
**Cause:** Invalid user signature.
|
|
51
|
-
**Solution:** Please regenerate. Refer to [Generate UserSig (User Authentication)](https://trtc.io/document/35166?product=live&menulabel=uikit&platform=web).
|
|
52
|
-
|
|
53
|
-
## Error Code 70014
|
|
54
|
-
**Cause:** SDKAppID does not match the user signature.
|
|
55
|
-
**Solution:** Please verify. You can validate the signature at the [Tencent Cloud Console](https://console.trtc.io/usersig).
|
|
56
|
-
|
|
57
|
-
## Error Code 5300
|
|
58
|
-
**Cause:** Exception occurred while accessing device or capturing audio/video.
|
|
59
|
-
**Solution:** Please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
|
|
60
|
-
|
|
61
|
-
## Error Code 5301
|
|
62
|
-
**Cause:** Camera/microphone device not detected.
|
|
63
|
-
**Solution:** Please ensure your camera/microphone is connected and check if the camera/microphone is available in system or browser settings.
|
|
64
|
-
|
|
65
|
-
## Error Code 5302
|
|
66
|
-
**Cause:** Camera/microphone permission denied.
|
|
67
|
-
**Solution:** Please check your browser settings to ensure camera and microphone access is allowed. If you have confirmed permission is granted, please visit the [Audio/Video Capability Detection Tool](https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html) to check if your device and environment are supported.
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
The in-room call feature allows users within a meeting (inviter) to send real-time invitations to users outside the room (invitees). This feature is implemented based on `Atomicx State Hooks` and helps developers quickly build interactive scenarios with proactive invitation capabilities.
|
|
2
|
-
|
|
3
|
-
## Use Cases
|
|
4
|
-
- **Collaborative Office:** During remote meetings, if cross-departmental decisions are involved, you can invite external experts to join the meeting with one click, shortening communication paths.
|
|
5
|
-
|
|
6
|
-
- **Live Teaching:** During the teaching process, if teachers find that some students are absent, they can directly invite them to join the class.
|
|
7
|
-
|
|
8
|
-
- **Internet Medical Consultation:** During case analysis, the primary physician can invite senior doctors to enter the virtual consultation room for multi-party consultation through the call feature, or doctors can call patients in the waiting room for consultations.
|
|
9
|
-
|
|
10
|
-
## Prerequisites
|
|
11
|
-
|
|
12
|
-
Before integrating this feature, please ensure the following conditions are met:
|
|
13
|
-
- **Inviter (User A):** The user has completed login authentication through `useLoginState`, refer to Integration Overview, and is already in a room as the room owner or member, refer to Room Lifecycle.
|
|
14
|
-
|
|
15
|
-
- **Invitee (User B):** The user has completed login authentication through `useLoginState`, refer to Integration Overview, to receive signaling events.
|
|
16
|
-
|
|
17
|
-
- **Environment Dependencies:** The project has correctly installed and imported `tuikit-atomicx-vue3`.
|
|
18
|
-
|
|
19
|
-
## Implementing In-Room Call Feature
|
|
20
|
-
|
|
21
|
-
The core process for implementing in-room calls is as follows:
|
|
22
|
-
|
|
23
|
-
In-room call sequence diagram
|
|
24
|
-
|
|
25
|
-
### Step 1: Initiate Call (Inviter)
|
|
26
|
-
|
|
27
|
-
The inviter calls the [callUserToRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#callUserToRoom) interface to initiate an invitation. Please ensure the inviter is currently in the room (i.e., [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#currentRoom) is not empty), otherwise the call cannot be initiated.
|
|
28
|
-
``` typescript
|
|
29
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
30
|
-
|
|
31
|
-
const { currentRoom, callUserToRoom } = useRoomState();
|
|
32
|
-
|
|
33
|
-
const inviteUser = async () => {
|
|
34
|
-
// In-room calls must be associated with an existing roomId, so check the current user's room status first
|
|
35
|
-
if (!currentRoom.value) {
|
|
36
|
-
console.warn('Please enter a room first before initiating an invitation');
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
try {
|
|
41
|
-
const resultMap = await callUserToRoom({
|
|
42
|
-
roomId: currentRoom.value.roomId, // Room ID the invitee will join
|
|
43
|
-
userIdList: ['user1', 'user2'], // Target user ID array, supports single or multiple users
|
|
44
|
-
timeout: 60, // Invitation validity period (seconds), both parties will trigger onCallTimeout after timeout
|
|
45
|
-
// extensionInfo can be used to pass business custom data, such as invitation type, additional messages, etc.
|
|
46
|
-
extensionInfo: JSON.stringify({ type: 'emergency', priority: 'high' })
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
// resultMap returns the status corresponding to each userId, such as Success, AlreadyInRoom (already in room) or AlreadyInCalling (in call)
|
|
50
|
-
console.log('Invitation sent successfully, detailed status map:', resultMap);
|
|
51
|
-
} catch (error) {
|
|
52
|
-
console.error('Failed to send call request, please check network or login status:', error);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Step 2: Listen for Call Events (Invitee)
|
|
58
|
-
|
|
59
|
-
The invitee needs to listen for the `onCallReceived` event. It is recommended to implement this in long-lived components such as `App.vue` to ensure the user can respond regardless of which page they are on.
|
|
60
|
-
``` typescript
|
|
61
|
-
import { ref, onMounted, onUnmounted } from 'vue';
|
|
62
|
-
import { useRoomState, RoomEvent } from 'tuikit-atomicx-vue3/room';
|
|
63
|
-
|
|
64
|
-
const {
|
|
65
|
-
subscribeEvent,
|
|
66
|
-
unsubscribeEvent,
|
|
67
|
-
acceptCall,
|
|
68
|
-
rejectCall,
|
|
69
|
-
joinRoom,
|
|
70
|
-
currentRoom
|
|
71
|
-
} = useRoomState();
|
|
72
|
-
|
|
73
|
-
const showInviteDialog = ref(false); // Control UI dialog visibility
|
|
74
|
-
const currentCallInfo = ref(null); // Cache the received invitation context
|
|
75
|
-
|
|
76
|
-
const handleCallReceived = async ({ roomInfo, call, extensionInfo }) => {
|
|
77
|
-
// Conflict handling: If the user is currently in a meeting, according to business policy, usually should directly reject new invitations to prevent interference
|
|
78
|
-
if (currentRoom.value?.roomId) {
|
|
79
|
-
await rejectCall({ roomId: roomInfo.roomId });
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Record invitation details for displaying inviter name or business transparent data in UI
|
|
84
|
-
currentCallInfo.value = { roomInfo, call };
|
|
85
|
-
showInviteDialog.value = true;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// Accept invitation logic
|
|
89
|
-
const onUserAccept = async () => {
|
|
90
|
-
if (!currentCallInfo.value) return;
|
|
91
|
-
const { roomId } = currentCallInfo.value.roomInfo;
|
|
92
|
-
|
|
93
|
-
try {
|
|
94
|
-
// Key process A: Respond to signaling. Inform the inviter that it has been accepted so they can update UI (e.g., display "Other party answered")
|
|
95
|
-
await acceptCall({ roomId });
|
|
96
|
-
|
|
97
|
-
// Key process B: Execute room entry. Only by calling joinRoom will the audio and video push-pull stream link be truly opened
|
|
98
|
-
await joinRoom({ roomId });
|
|
99
|
-
} catch (error) {
|
|
100
|
-
console.error('Room entry operation failed after accepting call:', error);
|
|
101
|
-
} finally {
|
|
102
|
-
closeDialog();
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
// Reject invitation logic
|
|
107
|
-
const onUserReject = async () => {
|
|
108
|
-
if (currentCallInfo.value) {
|
|
109
|
-
// Inform the inviter that it has been rejected, the inviter will receive onCallRejected event
|
|
110
|
-
await rejectCall({ roomId: currentCallInfo.value.roomInfo.roomId });
|
|
111
|
-
}
|
|
112
|
-
closeDialog();
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
const closeDialog = () => {
|
|
116
|
-
showInviteDialog.value = false;
|
|
117
|
-
currentCallInfo.value = null;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// Event full lifecycle management: Ensure listening on component mount and removal on destroy to prevent event overflow
|
|
121
|
-
onMounted(() => {
|
|
122
|
-
subscribeEvent(RoomEvent.onCallReceived, handleCallReceived);
|
|
123
|
-
|
|
124
|
-
// Listen for various exceptions/sync events that cause invitation to end, ensuring UI dialog can close in time
|
|
125
|
-
subscribeEvent(RoomEvent.onCallCancelled, closeDialog); // Inviter cancelled the call
|
|
126
|
-
subscribeEvent(RoomEvent.onCallTimeout, closeDialog); // Call timed out without response
|
|
127
|
-
subscribeEvent(RoomEvent.onCallHandledByOtherDevice, closeDialog); // User already handled the call on another device
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
onUnmounted(() => {
|
|
131
|
-
// Remove all listeners to avoid continuing to execute handleCallReceived after component destruction, causing memory leaks or errors
|
|
132
|
-
unsubscribeEvent(RoomEvent.onCallReceived, handleCallReceived);
|
|
133
|
-
unsubscribeEvent(RoomEvent.onCallCancelled, closeDialog);
|
|
134
|
-
unsubscribeEvent(RoomEvent.onCallTimeout, closeDialog);
|
|
135
|
-
unsubscribeEvent(RoomEvent.onCallHandledByOtherDevice, closeDialog);
|
|
136
|
-
});
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## Practical Tutorial: Improving Call Connection Rate
|
|
140
|
-
|
|
141
|
-
To achieve higher call connection rates in business scenarios, in addition to implementing basic functions, it is recommended to refer to the following strategies to optimize user experience:
|
|
142
|
-
|
|
143
|
-
### 1. Enhanced Call Awareness (Avoid Users Missing Calls)
|
|
144
|
-
|
|
145
|
-
Due to Web characteristics, browser mute or page running in background state may cause users to miss calls.
|
|
146
|
-
- **Visual Reminder**: Use [Page Visibility API](https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API) to detect page visibility status. If the page is in the background, you can implement title bar flashing prompts by cyclically modifying `document.title` (e.g.: "【New Invitation】UserA invites you to the meeting...") to attract user attention.
|
|
147
|
-
|
|
148
|
-
- **Audio Reminder**: Play high-priority alert ringtone when the `onCallReceived` event is triggered. Note: Must comply with browser's [Autoplay Policy](https://developer.mozilla.org/zh-CN/docs/Web/Media/Guides/Autoplay), most browsers will restrict audio autoplay in the absence of user interaction (such as clicks, touches, or key presses).
|
|
149
|
-
|
|
150
|
-
### 2. Enrich Invitation Context (Improve Answering Willingness)
|
|
151
|
-
|
|
152
|
-
Invitations lacking clear intent are easily rejected by users. It is recommended to fully utilize the `extensionInfo` field to pass key business information to improve users' willingness to answer.
|
|
153
|
-
- **Pass Business Context**: Use `extensionInfo` to transparently pass business fields such as `reason` (e.g.: "Project emergency review"), `level` (e.g.: "P0 troubleshooting"), etc., to inform users of the urgency and importance of the call.
|
|
154
|
-
|
|
155
|
-
### 3. Multi-Channel Reach Backup (Ensure Message Delivery)
|
|
156
|
-
|
|
157
|
-
Limited by Web mechanisms, when the browser process ends, real-time signaling cannot be received. It is recommended to adopt the following alternative solutions to ensure reach:
|
|
158
|
-
- **Browser System Notifications**: Guide users to authorize [Web Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). As long as the browser process is not closed (including minimized or in background tabs), OS-level pop-up notifications can be triggered to effectively remind users.
|
|
159
|
-
|
|
160
|
-
- **Multi-Channel Reach**: It is recommended to combine backend business logic to send meeting links through **SMS**, **Email**, or **Enterprise WeChat** and other external channels when detecting that users are offline or timeout without response, achieving all-around reach.
|
|
161
|
-
|
|
162
|
-
### 4. Intelligent Retry Mechanism (Solve "Room Entry Failed After Accepting Invitation")
|
|
163
|
-
|
|
164
|
-
In weak network or other unstable environments, calling `joinRoom` after users click accept invitation may experience occasional failures.
|
|
165
|
-
- **Automatic Retry**: It is recommended to introduce 2-3 automatic retry mechanisms (recommended combined with exponential backoff strategy) in the exception handling logic (`catch`) of `onUserAccept` to maximize ensuring users can successfully join the meeting after clicking "accept".
|
|
166
|
-
|
|
167
|
-
## Development Notes
|
|
168
|
-
1. **Accepting Invitation Does Not Equal Entering Room**
|
|
169
|
-
|
|
170
|
-
`acceptCall` is only a signaling layer reply (informing the other party that the call has been answered). Users must manually call `await joinRoom({ roomId })` immediately after calling `acceptCall` to truly enter the audio and video room.
|
|
171
|
-
|
|
172
|
-
2. **Lifecycle Management**
|
|
173
|
-
|
|
174
|
-
Please be sure to call `unsubscribeEvent` in the component destruction cycle (`onUnmounted`). If listeners are not cleaned up, when users switch pages, listeners from old pages will remain in memory, causing one invitation to pop up multiple windows or logic to execute repeatedly.
|
|
175
|
-
|
|
176
|
-
3. **Timeout Settings**
|
|
177
|
-
|
|
178
|
-
If the `timeout` parameter is not set, in some network exceptions or program crash situations, invitations may remain in a suspended state for a long time, making it impossible to initiate another call to that user. It is recommended to set it to 30-60 seconds.
|
|
179
|
-
|
|
180
|
-
## Common Questions
|
|
181
|
-
1. **How to pass custom parameters when calling (e.g., "Emergency meeting from XX")?**
|
|
182
|
-
|
|
183
|
-
Use the `extensionInfo` parameter of `callUserToRoom` to pass a JSON string. The invitee can parse the string to obtain business information in the `extensionInfo` field of the `onCallReceived` event.
|
|
184
|
-
|
|
185
|
-
2. **If the invitee is not online, can they receive the invitation after coming online?**
|
|
186
|
-
|
|
187
|
-
No. The invitation event is an instantaneous signaling action, and the SDK currently does not resend call notifications received while offline.
|
|
188
|
-
|
|
189
|
-
3. **Can issued invitations be cancelled?**
|
|
190
|
-
|
|
191
|
-
Yes. Call `cancelCall({ roomId, userIdList })` to cancel. At this time, the invitee will receive the `onCallCancelled` event, and you need to listen to this event to close the UI dialog on the invitee side.
|
|
192
|
-
|
|
193
|
-
4. **What to do if room entry fails after accepting?**
|
|
194
|
-
|
|
195
|
-
Check if you have logged in to `TUIRoomEngine`, retry `joinRoom({ roomId })` and capture error prompts to the user; if necessary, provide a "retry" button on the UI.
|
|
196
|
-
|
|
197
|
-
5. **How to prompt when the other party is busy or already in another room?**
|
|
198
|
-
|
|
199
|
-
If `AlreadyInRoom` / `AlreadyInCalling` appears in the return value `resultMap` of `callUserToRoom`, you should prompt on the inviter UI "The other party is busy/already in a meeting" and decide whether to retry later.
|
|
200
|
-
|
|
201
|
-
6. **Dialog not closing after timeout/cancellation?**
|
|
202
|
-
|
|
203
|
-
Make sure to listen to `onCallTimeout`, `onCallCancelled`, `onCallHandledByOtherDevice`, and uniformly close the dialog and clear current invitation data in the callback.
|
|
204
|
-
|
|
205
|
-
7. **How to handle simultaneous ringing on multiple devices?**
|
|
206
|
-
|
|
207
|
-
After accepting/rejecting on any device, other devices will receive `onCallHandledByOtherDevice`, and you need to close dialogs on other ends to avoid repeated processing.
|
|
208
|
-
|
|
209
|
-
8. **How should extensionInfo be agreed upon?**
|
|
210
|
-
|
|
211
|
-
It is recommended to use a JSON string and agree on fields (e.g., `type`, `priority`, `from`), parse and display friendly text (e.g., "Emergency meeting from XX") in `handleCallReceived`.
|
|
212
|
-
|
|
213
|
-
## **Sample Project**
|
|
214
|
-
|
|
215
|
-
Tencent Cloud provides a sample project [atomicx-vite-vue3-ts](https://github.com/Tencent-RTC/TUIRoomKit/tree/main/Web/example/atomicx-vite-vue3-ts) on GitHub, which you can refer to for implementing complete RoomKit functionality.
|
|
216
|
-
|
|
217
|
-
## API Documentation
|
|
218
|
-
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
219
|
-
| --- | --- | --- |
|
|
220
|
-
| **useRoomState** | Room state management (create, join, schedule, etc.) | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState) |
|