@tencentcloud/sdk-mcp 1.4.7 → 1.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +0 -1
- package/knowledge/bm25-cache.js +73 -0
- package/knowledge/bm25.js +147 -0
- package/knowledge/build-index.js +65 -0
- package/knowledge/chunker.js +167 -0
- package/knowledge/content-loader.js +44 -0
- package/knowledge/extractors.js +25 -0
- package/knowledge/path-meta.js +175 -0
- package/knowledge/search/exact-lookup.js +330 -0
- package/knowledge/search/filter-pool.js +86 -0
- package/knowledge/search/requires-framework.js +72 -0
- package/knowledge/search/search-knowledge.js +226 -0
- package/package.json +9 -9
- package/resource/_schema/feature-aliases.yaml +10 -0
- package/resource/_schema/goal-tags.yaml +72 -0
- package/resource/_schema/products.yaml +16 -0
- package/resource/_schema/trtc-intents.yaml +27 -0
- package/resource/_schema/types.yaml +44 -0
- package/resource/index/component-slugs.json +1 -0
- package/resource/index/manifest.json +1 -0
- package/resource/{doc → integration}/callkit/preset/android/integration.md +32 -28
- package/resource/{doc → integration}/callkit/preset/flutter/integration.md +109 -54
- package/resource/integration/callkit/preset/ios/integration.md +411 -0
- package/resource/integration/callkit/preset/react/integration.md +499 -0
- package/resource/integration/callkit/preset/vue/integration.md +768 -0
- package/resource/{doc/chatkit → integration/chat/preset}/android/integration.md +11 -11
- package/resource/{doc/chatkit → integration/chat/preset}/flutter/integration.md +59 -37
- package/resource/integration/chat/preset/ios/integration.md +568 -0
- package/resource/{doc/chatkit → integration/chat/preset}/react/integration.md +127 -95
- package/resource/integration/chat/preset/uni-app/integration.md +494 -0
- package/resource/{doc/chatkit → integration/chat/preset}/vue/integration.md +163 -143
- package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +15 -15
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +25 -13
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-h5-integration.md +15 -9
- package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +31 -26
- package/resource/integration/roomkit/preset/vue/integration.md +571 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +852 -0
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +929 -0
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +364 -0
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1150 -0
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1216 -0
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +412 -0
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1191 -0
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1292 -0
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +537 -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 +168 -0
- package/resource/knowledge/callkit/faq/common.md +180 -0
- package/resource/knowledge/callkit/faq/flutter.md +52 -0
- package/resource/knowledge/callkit/faq/ios.md +116 -0
- package/resource/knowledge/callkit/faq/uniapp-app.md +89 -0
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +217 -0
- package/resource/knowledge/callkit/faq/web.md +363 -0
- package/resource/knowledge/callkit/preset/android/api.md +413 -0
- package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
- package/resource/knowledge/callkit/preset/ios/api.md +256 -0
- package/resource/knowledge/callkit/preset/web/api.md +79 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +72 -0
- package/resource/knowledge/chat/preset/android/features/contact-list.md +41 -0
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +123 -0
- package/resource/knowledge/chat/preset/android/features/language.md +142 -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/{doc/chatkit → knowledge/chat/preset}/android/features/theme.md +21 -18
- package/resource/knowledge/chat/preset/android-view/integration.md +448 -0
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +62 -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 +163 -0
- package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
- package/resource/{doc/chatkit → knowledge/chat/preset}/flutter/features/theme.md +47 -19
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +92 -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 +105 -0
- package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
- package/resource/knowledge/chat/preset/ios/features/message-list.md +164 -0
- package/resource/knowledge/chat/preset/ios/features/search.md +94 -0
- package/resource/{doc/chatkit → knowledge/chat/preset}/ios/features/theme.md +54 -51
- package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +157 -94
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +123 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +256 -104
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +217 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/conversation-list.md +86 -79
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +99 -0
- package/resource/knowledge/chat/preset/react/features/conversation-search.md +58 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +30 -83
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-list.md +22 -25
- package/resource/knowledge/chat/preset/react/features/search.md +531 -0
- package/resource/knowledge/chat/preset/react/features/theme.md +16 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/chat-setting.md +0 -4
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/contact-list.md +59 -53
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-actions.md +49 -43
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-list.md +61 -49
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-preview.md +43 -40
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +1 -1
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/message-input.md +128 -105
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/message-list.md +108 -195
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +74 -68
- package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
- package/resource/knowledge/chat/urls/error-code.md +16 -0
- package/resource/knowledge/chat/urls/product.md +61 -0
- package/resource/knowledge/chat/urls/restapi.md +226 -0
- package/resource/knowledge/chat/urls/sdk/android.md +84 -0
- package/resource/knowledge/chat/urls/sdk/flutter.md +73 -0
- package/resource/knowledge/chat/urls/sdk/ios.md +84 -0
- package/resource/knowledge/chat/urls/sdk/web.md +88 -0
- package/resource/knowledge/chat/urls/webhook.md +73 -0
- package/resource/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/AudioEffectStore.md +79 -76
- 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/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/CameraView.md +7 -6
- 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/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/LikeStore.md +12 -10
- 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 +439 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +221 -0
- package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/AudioEffectStore.md +79 -76
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
- package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/BaseBeautyStore.md +43 -45
- 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 +420 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
- package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/LikeStore.md +12 -11
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
- package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/LiveCoreView.md +49 -42
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +397 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +183 -0
- package/resource/{doc/livekit/core-sdk/live/ios/api-reference → knowledge/livekit/core-sdk/api-reference/ios}/AudioEffectStore.md +79 -75
- 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/{doc/livekit/core-sdk/live/ios/api-reference → knowledge/livekit/core-sdk/api-reference/ios}/LikeStore.md +12 -10
- 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 +434 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +187 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +780 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +59 -51
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +37 -34
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +68 -38
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +18 -15
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +17 -17
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +86 -80
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +53 -49
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +47 -45
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +26 -22
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +16 -13
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +33 -21
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +29 -25
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +21 -20
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +78 -69
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-host-interaction.md +47 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +48 -45
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +27 -23
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +15 -12
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +39 -36
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +42 -29
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +19 -16
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +20 -19
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +55 -49
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +50 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +48 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +26 -22
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +59 -51
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +41 -38
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +67 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +53 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +86 -80
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +45 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +43 -42
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +523 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-audience-list.md +16 -13
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-audio-effect.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-barrage.md +33 -21
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +34 -28
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-gift.md +73 -64
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +46 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-room-list.md +165 -148
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +19 -16
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +40 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +41 -28
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +54 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +52 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +55 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +47 -45
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +404 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-audience-list.md +40 -57
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-audio-effect.md +38 -49
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-barrage.md +53 -53
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-co-guest-interaction.md +106 -116
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-gift.md +49 -59
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-integration.md +52 -45
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-room-list.md +38 -46
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +915 -0
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +179 -0
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +419 -0
- package/resource/knowledge/push/config/android/fcm.md +133 -0
- package/resource/knowledge/push/config/android/honor.md +111 -0
- package/resource/knowledge/push/config/android/huawei.md +106 -0
- package/resource/knowledge/push/config/android/meizu.md +121 -0
- package/resource/knowledge/push/config/android/oppo.md +108 -0
- package/resource/knowledge/push/config/android/vivo.md +101 -0
- package/resource/knowledge/push/config/android/xiaomi.md +99 -0
- package/resource/knowledge/push/integration/android.md +1028 -0
- package/resource/knowledge/push/integration/donut.md +271 -0
- package/resource/knowledge/push/integration/flutter.md +363 -0
- package/resource/knowledge/push/integration/harmonyos.md +72 -0
- package/resource/knowledge/push/integration/ios.md +705 -0
- package/resource/knowledge/push/integration/react-native.md +337 -0
- package/resource/knowledge/push/integration/uni-app.md +461 -0
- package/resource/knowledge/push/integration/unity.md +357 -0
- package/resource/knowledge/push/integration/unreal-engine.md +353 -0
- package/resource/knowledge/push/overview/prepare.md +30 -0
- package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/call-user-to-room.md +22 -20
- package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/room-participant-state.md +22 -193
- package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/room-state.md +33 -32
- package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/schedule-room.md +30 -29
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
- package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/room-participant-state.md +22 -21
- package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/room-state.md +29 -28
- package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/schedule-room.md +17 -16
- package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/call-user-to-room.md +22 -20
- package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/room-participant-state.md +49 -218
- package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/room-state.md +37 -37
- package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/schedule-room.md +28 -28
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/call-user-to-room.md +122 -7
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +318 -3
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +1504 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/free-beauty-panel.md +4 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +709 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +1105 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +635 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +529 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/schedule-room.md +256 -13
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/screen-share.md +218 -25
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/virtual-background.md +4 -3
- package/resource/{doc/roomkit → knowledge/roomkit/preset}/android/integration.md +50 -64
- package/resource/{doc/roomkit → knowledge/roomkit/preset}/flutter/integration.md +34 -31
- package/resource/{doc/roomkit → knowledge/roomkit/preset}/ios/integration.md +45 -53
- package/resource/knowledge/roomkit/preset/react/integration.md +571 -0
- package/resource/{doc → knowledge}/rtcengine/web/how_to_run_web_sdk_demo.md +31 -15
- package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +9 -3
- package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +1 -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 +6 -6
- 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 +4 -4
- package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +4 -4
- package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/{doc → knowledge}/trtc/android/TRTCCloud.md +547 -495
- package/resource/{doc → knowledge}/trtc/android/TRTCCloudDef.md +434 -403
- package/resource/{doc → knowledge}/trtc/android/TRTCCloudListener.md +394 -348
- package/resource/{doc → knowledge}/trtc/android/TRTCStatistics.md +17 -15
- package/resource/{doc → knowledge}/trtc/android/TXAudioEffectManager.md +227 -197
- package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
- package/resource/{doc → knowledge}/trtc/android/TXDeviceManager.md +70 -63
- package/resource/{doc → knowledge}/trtc/android/TXLiteAVCode.md +19 -17
- package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/ITRTCCloud.md +599 -544
- package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/ITRTCStatistics.md +17 -15
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +403 -0
- package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TRTCCloudCallback.md +439 -387
- package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TRTCTypeDef.md +417 -387
- package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TXLiteAVCode.md +19 -17
- package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCCloud.md +619 -559
- package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCCloudDelegate.md +409 -360
- package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCStatistics.md +17 -15
- package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXAudioEffectManager.md +187 -164
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +399 -0
- package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXLiteAVCode.md +19 -17
- package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXLiveSDKTypeDef.md +422 -396
- package/server-config.js +0 -1
- package/server.js +22 -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 +9 -4
- 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 +2 -1
- package/tools/definitions/get_native_callkit_core_integration_def.js +2 -1
- package/tools/definitions/get_native_chat_uikit_integration_def.js +3 -2
- package/tools/definitions/get_native_livekit_core_integration_def.js +2 -1
- package/tools/definitions/get_usersig_def.js +0 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +2 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +4 -3
- package/tools/definitions/get_web_room_core_integration_def.js +46 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +3 -1
- package/tools/definitions/integration-boundary.js +5 -0
- package/tools/definitions/present_framework_choice_def.js +11 -10
- package/tools/definitions/record_answer_def.js +6 -5
- package/tools/definitions/record_feedback_def.js +4 -3
- package/tools/definitions/search_trtc_knowledge_def.js +69 -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 +4 -11
- 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 +22 -21
- package/utils/report-es-client.js +1 -2
- package/utils/report-runtime-error-cls-client.js +0 -1
- 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 -942
- package/resource/doc/callkit/core-sdk/android/make-call.md +0 -876
- package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -368
- package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1132
- package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1206
- package/resource/doc/callkit/core-sdk/flutter/offline-push.md +0 -357
- package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1009
- package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1154
- package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -470
- package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -1146
- package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1267
- package/resource/doc/callkit/faq/android-faq.md +0 -767
- package/resource/doc/callkit/faq/flutter-faq.md +0 -749
- package/resource/doc/callkit/faq/ios-faq.md +0 -759
- package/resource/doc/callkit/faq/web-faq.md +0 -753
- package/resource/doc/callkit/preset/android/api.md +0 -330
- package/resource/doc/callkit/preset/flutter/api.md +0 -401
- package/resource/doc/callkit/preset/ios/api.md +0 -282
- package/resource/doc/callkit/preset/ios/integration.md +0 -188
- package/resource/doc/callkit/preset/react/api.md +0 -600
- package/resource/doc/callkit/preset/react/integration.md +0 -86
- package/resource/doc/callkit/preset/vue/api.md +0 -600
- package/resource/doc/callkit/preset/vue/integration.md +0 -83
- package/resource/doc/chatkit/android/faq.md +0 -109
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -280
- package/resource/doc/chatkit/faq/common/product.md +0 -82
- package/resource/doc/chatkit/faq/common/server.md +0 -53
- package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -183
- package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -54
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -279
- package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
- package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -292
- package/resource/doc/chatkit/flutter/faq.md +0 -22
- package/resource/doc/chatkit/ios/faq.md +0 -109
- 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 -117
- package/resource/doc/chatkit/react/components/chat.md +0 -38
- package/resource/doc/chatkit/react/components/component-list.md +0 -35
- package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
- package/resource/doc/chatkit/react/components/conversation-preview.md +0 -116
- package/resource/doc/chatkit/react/components/conversation-search.md +0 -57
- package/resource/doc/chatkit/react/components/search.md +0 -282
- package/resource/doc/chatkit/react/components/tuikit.md +0 -43
- package/resource/doc/chatkit/react/faq.md +0 -26
- package/resource/doc/chatkit/vue/components/avatar.md +0 -104
- package/resource/doc/chatkit/vue/components/chat-header.md +0 -149
- package/resource/doc/chatkit/vue/components/chat.md +0 -42
- package/resource/doc/chatkit/vue/components/component-list.md +0 -89
- package/resource/doc/chatkit/vue/components/tuikit.md +0 -45
- package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
- package/resource/doc/chatkit/vue/faq.md +0 -35
- package/resource/doc/livekit/core-sdk/live/android/api-reference/BarrageStore.md +0 -148
- package/resource/doc/livekit/core-sdk/live/android/api-reference/BattleStore.md +0 -316
- package/resource/doc/livekit/core-sdk/live/android/api-reference/CoGuestStore.md +0 -419
- package/resource/doc/livekit/core-sdk/live/android/api-reference/CoHostStore.md +0 -325
- package/resource/doc/livekit/core-sdk/live/android/api-reference/DeviceStore.md +0 -436
- package/resource/doc/livekit/core-sdk/live/android/api-reference/GiftStore.md +0 -165
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveAudienceStore.md +0 -239
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveCoreView.md +0 -74
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveSeatStore.md +0 -417
- package/resource/doc/livekit/core-sdk/live/android/api-reference/LoginStore.md +0 -207
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BarrageStore.md +0 -158
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BattleStore.md +0 -304
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoGuestStore.md +0 -394
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoHostStore.md +0 -303
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/DeviceStore.md +0 -410
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/GiftStore.md +0 -160
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveAudienceStore.md +0 -231
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveSeatStore.md +0 -375
- package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LoginStore.md +0 -170
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/BarrageStore.md +0 -165
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/BaseBeautyStore.md +0 -143
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/BattleStore.md +0 -298
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoGuestStore.md +0 -349
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoHostStore.md +0 -297
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/DeviceStore.md +0 -471
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/GiftStore.md +0 -179
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveAudienceStore.md +0 -238
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveCoreView.md +0 -74
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveSeatStore.md +0 -412
- package/resource/doc/livekit/core-sdk/live/ios/api-reference/LoginStore.md +0 -173
- package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +0 -365
- package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +0 -336
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
- package/resource/doc/livekit/preset/live/vue/components/barrage.md +0 -291
- package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -88
- package/resource/doc/livekit/preset/live/vue/components/live-audience-list.md +0 -164
- package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -130
- package/resource/doc/livekit/preset/live/vue/components/live-view.md +0 -203
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -211
- package/resource/doc/livekit/preset/live/vue/faq.md +0 -1
- package/resource/doc/roomkit/faq/common/error-code.md +0 -67
- package/resource/doc/roomkit/flutter/features/call-user-to-room.md +0 -228
- package/resource/doc/roomkit/vue/faq.md +0 -1
- package/resource/doc/roomkit/vue/features/device-state.md +0 -460
- package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
- package/resource/doc/roomkit/vue/features/room-participant-state.md +0 -385
- package/resource/doc/roomkit/vue/features/room-state.md +0 -280
- package/resource/doc/roomkit/vue/features/room-view.md +0 -241
- package/resource/doc/roomkit/vue/integration.md +0 -315
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -472
- package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -388
- package/resource/doc/trtc/android/TXBeautyManager.md +0 -403
- package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -404
- package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -382
- 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 -28
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -40
- 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 -33
- 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 -27
- package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_component_detail_def.js +0 -29
- 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 -30
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -25
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -25
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -25
- 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 -122
- 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.map +0 -1
- /package/resource/{doc/callkit/faq/common → knowledge/callkit/faq}/error-code.md +0 -0
- /package/resource/{doc/livekit/faq/common → knowledge/livekit/faq}/error-code.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/29-advanced-water-mark.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/34-advanced-proxy.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.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/38-advanced-basic-beauty.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
- /package/resource/{doc/rtcengine/faq/common → knowledge/share}/userSig.md +0 -0
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
本篇文档旨在指导开发者在标准会议无 UI 集成方案中实现视频画面渲染、布局切换、屏幕共享画面展示、移动端布局适配以及视频画面挂件定制。您可以直接使用 `RoomView` 组件承载标准会议的视频区域,也可以通过 `layoutTemplate`、`renderParticipantView` 插槽和 `stream-double-click` 事件组合出符合业务场景的视频布局体验。
|
|
2
|
+
|
|
3
|
+
`RoomView` 只负责视频流画面容器和布局编排,不包含完整会议页面、成员列表、底部工具栏或业务弹窗。会议页面通常需要将 `RoomView` 与房间管理、设备控制、成员管理等能力组合使用。
|
|
4
|
+
|
|
5
|
+
## 前提条件
|
|
6
|
+
- 用户已经通过 [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState) 完成登录鉴权,请参考 接入概览 文档。
|
|
7
|
+
|
|
8
|
+
- 用户已经通过 [useRoomState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState) 进入标准会议房间,请参考 房间管理 文档。
|
|
9
|
+
|
|
10
|
+
- 承载 `RoomView` 的父容器必须具备明确的宽高,否则视频区域可能无法正常计算布局。
|
|
11
|
+
|
|
12
|
+
## 功能介绍
|
|
13
|
+
|
|
14
|
+
`RoomView` 是标准会议的视频布局容器,用于渲染成员摄像头流和屏幕共享流。开发者主要通过布局入参选择画面排列方式,通过插槽定制视频挂件,通过事件响应用户对视频画面的操作。
|
|
15
|
+
|
|
16
|
+
### `RoomView` 组件接口
|
|
17
|
+
|
|
18
|
+
|**类型**|**名称**|**说明**|
|
|
19
|
+
|---------|---------|---------|
|
|
20
|
+
|入参|`layoutTemplate?: RoomLayoutTemplate`|视频布局模板。默认值为 `RoomLayoutTemplate.GridLayout`。|
|
|
21
|
+
|视频挂件插槽(Vue3)|`participantViewUI`|自定义视频画面挂件,插槽参数为 `{ participant, streamType }`。|
|
|
22
|
+
|视频挂件渲染函数(React)|`renderParticipantView`|自定义视频画面挂件,插槽参数为 `{ participant, streamType }`。|
|
|
23
|
+
|事件|`stream-double-click`|用户双击视频画面时触发,事件参数为 `{ participant, streamType }`。|
|
|
24
|
+
|
|
25
|
+
### 内置布局能力总览
|
|
26
|
+
|
|
27
|
+
标准会议中,`RoomView` 通过 `layoutTemplate` 属性控制布局。
|
|
28
|
+
|
|
29
|
+
|**布局**|**枚举值**|**适用端**|**推荐场景**|**表现说明**|
|
|
30
|
+
|---------|---------|---------|---------|---------|
|
|
31
|
+
|宫格布局|`RoomLayoutTemplate.GridLayout`|PC Web|多人讨论、日常会议、视频面试|默认布局。最多按 3 x 3 展示当前页画面,超过 9 路时支持翻页。|
|
|
32
|
+
|顶部栏布局|`RoomLayoutTemplate.CinemaLayout`|PC Web|演示、培训、屏幕共享|主画面居中突出,其他成员在顶部栏展示。|
|
|
33
|
+
|侧边栏布局|`RoomLayoutTemplate.SidebarLayout`|PC Web|演讲、汇报、主讲人模式|主画面居中突出,其他成员在侧边栏展示。|
|
|
34
|
+
|移动端布局|`RoomLayoutTemplate.MobileLayout`|H5|移动端会议页面|支持**屏幕分享双指放大、滑动分页、**主画面、悬浮画面和懒加载。React 暂不支持移动端布局。|
|
|
35
|
+
|
|
36
|
+
### 核心参数说明
|
|
37
|
+
|
|
38
|
+
|**参数**|**说明**|**常见用途**|
|
|
39
|
+
|---------|---------|---------|
|
|
40
|
+
|`participant`|当前视频画面对应的成员对象,包含 `userId`、`userName`、`nameCard`、`role`、`microphoneStatus`、`cameraStatus` 等状态。|展示昵称、角色标识、麦克风/摄像头状态,或判断当前画面对应的操作目标。|
|
|
41
|
+
|`streamType`|当前视频画面的流类型,用于区分摄像头流和屏幕共享流。|摄像头流展示成员挂件;屏幕共享流展示“正在共享屏幕”等提示,并避免展示不适合的摄像头状态 UI。|
|
|
42
|
+
|
|
43
|
+
## 场景一:渲染视频区域
|
|
44
|
+
|
|
45
|
+
完成登录和进房后,如需在会议页面中展示标准会议的视频画面,可直接渲染 `RoomView`。这是接入视频布局能力的最小使用方式。
|
|
46
|
+
|
|
47
|
+
#### 实现思路
|
|
48
|
+
|
|
49
|
+
为视频区域准备一个有明确宽高的容器,并在其中渲染 `RoomView`。如果不传入 `layoutTemplate`,默认使用 `RoomLayoutTemplate.GridLayout`。
|
|
50
|
+
|
|
51
|
+
#### PC Web 示例代码
|
|
52
|
+
|
|
53
|
+
【Vue3】
|
|
54
|
+
``` typescript
|
|
55
|
+
<template>
|
|
56
|
+
<div class="room-view-wrapper">
|
|
57
|
+
<RoomView :layout-template="RoomLayoutTemplate.GridLayout" />
|
|
58
|
+
</div>
|
|
59
|
+
</template>
|
|
60
|
+
|
|
61
|
+
<script setup lang="ts">
|
|
62
|
+
import { RoomLayoutTemplate, RoomView } from 'tuikit-atomicx-vue3/room';
|
|
63
|
+
</script>
|
|
64
|
+
|
|
65
|
+
<style scoped>
|
|
66
|
+
/* 必须为 RoomView 父容器明确设置宽高 */
|
|
67
|
+
.room-view-wrapper { width: 100%; height: 100%; }
|
|
68
|
+
</style>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
【React】
|
|
72
|
+
``` typescript
|
|
73
|
+
import { RoomLayoutTemplate, RoomView } from 'tuikit-atomicx-react/room';
|
|
74
|
+
|
|
75
|
+
export default function ConferenceRoom() {
|
|
76
|
+
return (
|
|
77
|
+
<div style={{ width: '100%', height: '100%' }}>
|
|
78
|
+
<RoomView layoutTemplate={RoomLayoutTemplate.GridLayout} />
|
|
79
|
+
</div>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### H5 示例代码
|
|
85
|
+
|
|
86
|
+
【Vue3】
|
|
87
|
+
``` typescript
|
|
88
|
+
<template>
|
|
89
|
+
<div class="room-view-wrapper">
|
|
90
|
+
<RoomView :layout-template="RoomLayoutTemplate.MobileLayout" />
|
|
91
|
+
</div>
|
|
92
|
+
</template>
|
|
93
|
+
|
|
94
|
+
<script setup lang="ts">
|
|
95
|
+
import { RoomLayoutTemplate, RoomView } from 'tuikit-atomicx-vue3/room';
|
|
96
|
+
</script>
|
|
97
|
+
|
|
98
|
+
<style scoped>
|
|
99
|
+
/* 必须为 RoomView 父容器明确设置宽高 */
|
|
100
|
+
.room-view-wrapper { width: 100%; height: 100%; }
|
|
101
|
+
</style>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
【React】
|
|
105
|
+
``` typescript
|
|
106
|
+
import { RoomLayoutTemplate, RoomView } from 'tuikit-atomicx-react/room';
|
|
107
|
+
|
|
108
|
+
export default function ConferenceRoom() {
|
|
109
|
+
return (
|
|
110
|
+
<div style={{ width: '100%', height: '100%' }}>
|
|
111
|
+
<RoomView layoutTemplate={RoomLayoutTemplate.MobileLayout} />
|
|
112
|
+
</div>
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
#### 注意事项
|
|
118
|
+
- `RoomView` 会占满父容器,请确保父容器设置了明确的 `width` 和 `height`。
|
|
119
|
+
|
|
120
|
+
- `RoomView` 不负责创建或加入房间,也不负责打开本地摄像头或麦克风。设备打开逻辑请参考设备及网络。
|
|
121
|
+
|
|
122
|
+
## 场景二:自定义视频区域挂件
|
|
123
|
+
|
|
124
|
+
如果您需要在视频画面上展示昵称、头像、角色标识、麦克风状态、音量波动、屏幕共享标识或业务标签,可以使用 `renderParticipantView` 插槽。
|
|
125
|
+
|
|
126
|
+
#### 实现思路
|
|
127
|
+
|
|
128
|
+
`RoomView` 会在每个视频画面上透传 `participant` 和 `streamType`。业务侧可以基于成员状态渲染挂件 UI,但不需要接管视频流播放逻辑。
|
|
129
|
+
|
|
130
|
+
#### 插槽参数
|
|
131
|
+
|
|
132
|
+
|**参数**|**类型**|**说明**|
|
|
133
|
+
|---------|---------|---------|
|
|
134
|
+
|`participant`|`RoomParticipant`|当前视频画面对应的成员,包含 `userId`、`userName`、`nameCard`、`role`、`microphoneStatus` 等状态。|
|
|
135
|
+
|`streamType`|`VideoStreamType`|当前画面类型,常见值为摄像头流和屏幕共享流。|
|
|
136
|
+
|
|
137
|
+
#### 示例代码
|
|
138
|
+
|
|
139
|
+
会议页面示例:
|
|
140
|
+
|
|
141
|
+
【Vue3】
|
|
142
|
+
``` typescript
|
|
143
|
+
<template>
|
|
144
|
+
<RoomView :layout-template="currentLayout">
|
|
145
|
+
<template #renderParticipantView="{ participant, streamType }">
|
|
146
|
+
<ParticipantViewUI
|
|
147
|
+
:participant="participant"
|
|
148
|
+
:stream-type="streamType"
|
|
149
|
+
/>
|
|
150
|
+
</template>
|
|
151
|
+
</RoomView>
|
|
152
|
+
</template>
|
|
153
|
+
|
|
154
|
+
<script setup lang="ts">
|
|
155
|
+
import { ref } from 'vue';
|
|
156
|
+
import {
|
|
157
|
+
RoomLayoutTemplate,
|
|
158
|
+
RoomView,
|
|
159
|
+
} from 'tuikit-atomicx-vue3/room';
|
|
160
|
+
import ParticipantViewUI from './ParticipantViewUI.vue';
|
|
161
|
+
|
|
162
|
+
const currentLayout = ref(RoomLayoutTemplate.GridLayout);
|
|
163
|
+
</script>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
【React】
|
|
167
|
+
``` typescript
|
|
168
|
+
import { useState } from 'react';
|
|
169
|
+
import {
|
|
170
|
+
RoomLayoutTemplate,
|
|
171
|
+
RoomView,
|
|
172
|
+
} from 'tuikit-atomicx-react/room';
|
|
173
|
+
import ParticipantViewUI from './ParticipantViewUI';
|
|
174
|
+
|
|
175
|
+
export default function ConferenceRoom() {
|
|
176
|
+
const [currentLayout, setCurrentLayout] = useState(RoomLayoutTemplate.GridLayout);
|
|
177
|
+
return (
|
|
178
|
+
<RoomView
|
|
179
|
+
layoutTemplate={currentLayout}
|
|
180
|
+
renderParticipantView={({ participant, streamType }) => (
|
|
181
|
+
<ParticipantViewUI participant={participant} streamType={streamType} />
|
|
182
|
+
)}
|
|
183
|
+
/>
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
`ParticipantViewUI.vue` 示例:
|
|
189
|
+
|
|
190
|
+
【Vue3】
|
|
191
|
+
``` typescript
|
|
192
|
+
<template>
|
|
193
|
+
<div
|
|
194
|
+
class="participant-view-ui"
|
|
195
|
+
:class="{ 'camera-off': shouldShowCameraPlaceholder }"
|
|
196
|
+
>
|
|
197
|
+
<div v-if="shouldShowCameraPlaceholder" class="camera-placeholder">
|
|
198
|
+
{{ displayName }}
|
|
199
|
+
</div>
|
|
200
|
+
<div class="participant-info">
|
|
201
|
+
<span class="user-name">{{ displayName }}</span>
|
|
202
|
+
<span v-if="isOwner && isCameraStream" class="role-tag">房主</span>
|
|
203
|
+
<span v-if="isScreenStream" class="stream-tag">{{ displayName }} 正在屏幕分享</span>
|
|
204
|
+
<span v-else class="device-tag">{{ isMicrophoneOn ? '麦克风已开' : '麦克风已关' }}</span>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
</template>
|
|
208
|
+
|
|
209
|
+
<script setup lang="ts">
|
|
210
|
+
import { computed } from 'vue';
|
|
211
|
+
import {
|
|
212
|
+
DeviceStatus,
|
|
213
|
+
RoomParticipantRole,
|
|
214
|
+
VideoStreamType,
|
|
215
|
+
} from 'tuikit-atomicx-vue3/room';
|
|
216
|
+
import type { RoomParticipant } from 'tuikit-atomicx-vue3/room';
|
|
217
|
+
|
|
218
|
+
const props = defineProps<{
|
|
219
|
+
participant: RoomParticipant;
|
|
220
|
+
streamType: VideoStreamType;
|
|
221
|
+
}>();
|
|
222
|
+
|
|
223
|
+
const displayName = computed(() => props.participant.nameCard || props.participant.userName || props.participant.userId);
|
|
224
|
+
const isOwner = computed(() => props.participant.role === RoomParticipantRole.Owner && props.streamType === VideoStreamType.Camera);
|
|
225
|
+
const isCameraStream = computed(() => props.streamType === VideoStreamType.Camera);
|
|
226
|
+
const isScreenStream = computed(() => props.streamType === VideoStreamType.Screen);
|
|
227
|
+
const isMicrophoneOn = computed(() => props.participant.microphoneStatus === DeviceStatus.On);
|
|
228
|
+
const shouldShowCameraPlaceholder = computed(() => isCameraStream.value && props.participant.cameraStatus !== DeviceStatus.On);
|
|
229
|
+
</script>
|
|
230
|
+
|
|
231
|
+
<style scoped>
|
|
232
|
+
/* 必须设置 pointer-events 属性值为 none,否则会拦截底层视频画面的双击、拖拽交互! */
|
|
233
|
+
.participant-view-ui { position: absolute; inset: 0; pointer-events: none; }
|
|
234
|
+
.participant-view-ui.camera-off { background: #1f2937; }
|
|
235
|
+
.camera-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #fff; font-size: 16px; }
|
|
236
|
+
.participant-info { position: absolute; left: 8px; bottom: 8px; display: flex; align-items: center; gap: 6px; max-width: calc(100% - 16px); padding: 4px 8px; color: #fff; background: rgb(0 0 0 / 50%); border-radius: 12px; }
|
|
237
|
+
.user-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
238
|
+
</style>
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
【React】
|
|
242
|
+
``` typescript
|
|
243
|
+
import {
|
|
244
|
+
DeviceStatus,
|
|
245
|
+
RoomParticipantRole,
|
|
246
|
+
VideoStreamType,
|
|
247
|
+
useRoomParticipantState,
|
|
248
|
+
} from 'tuikit-atomicx-react/room';
|
|
249
|
+
import type { RoomParticipant } from 'tuikit-atomicx-react/room';
|
|
250
|
+
|
|
251
|
+
interface Props {
|
|
252
|
+
participant: RoomParticipant;
|
|
253
|
+
streamType: VideoStreamType;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export default function ParticipantViewUI({ participant, streamType }: Props) {
|
|
257
|
+
// RoomView internally wraps each renderParticipantView call in a component that
|
|
258
|
+
// subscribes to participant state, so this component always receives the latest
|
|
259
|
+
// participant. Call useRoomParticipantState() here only when you need extra
|
|
260
|
+
// reactive data (e.g. speakingUsers) beyond what participant already provides.
|
|
261
|
+
const { speakingUsers } = useRoomParticipantState();
|
|
262
|
+
|
|
263
|
+
const displayName = participant.nameCard || participant.userName || participant.userId;
|
|
264
|
+
const isOwner = participant.role === RoomParticipantRole.Owner && streamType === VideoStreamType.Camera;
|
|
265
|
+
const isCameraStream = streamType === VideoStreamType.Camera;
|
|
266
|
+
const isScreenStream = streamType === VideoStreamType.Screen;
|
|
267
|
+
const isMicrophoneOn = participant.microphoneStatus === DeviceStatus.On;
|
|
268
|
+
const shouldShowCameraPlaceholder = isCameraStream && participant.cameraStatus !== DeviceStatus.On;
|
|
269
|
+
const isSpeaking = (speakingUsers.get(participant.userId) ?? 0) > 0;
|
|
270
|
+
|
|
271
|
+
return (
|
|
272
|
+
/* 必须设置 pointer-events: none,否则会拦截底层视频画面的双击、拖拽交互! */
|
|
273
|
+
<div
|
|
274
|
+
style={{
|
|
275
|
+
position: 'absolute',
|
|
276
|
+
inset: 0,
|
|
277
|
+
pointerEvents: 'none',
|
|
278
|
+
background: shouldShowCameraPlaceholder ? '#1f2937' : undefined,
|
|
279
|
+
}}
|
|
280
|
+
>
|
|
281
|
+
{shouldShowCameraPlaceholder && (
|
|
282
|
+
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', width: '100%', height: '100%', color: '#fff', fontSize: 16 }}>
|
|
283
|
+
{displayName}
|
|
284
|
+
</div>
|
|
285
|
+
)}
|
|
286
|
+
<div style={{ position: 'absolute', left: 8, bottom: 8, display: 'flex', alignItems: 'center', gap: 6, maxWidth: 'calc(100% - 16px)', padding: '4px 8px', color: '#fff', background: 'rgb(0 0 0 / 50%)', borderRadius: 12 }}>
|
|
287
|
+
<span style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>{displayName}</span>
|
|
288
|
+
{isOwner && isCameraStream && <span>房主</span>}
|
|
289
|
+
{isScreenStream
|
|
290
|
+
? <span>{displayName} 正在屏幕分享</span>
|
|
291
|
+
: <span>{isMicrophoneOn ? (isSpeaking ? '讲话中' : '麦克风已开') : '麦克风已关'}</span>
|
|
292
|
+
}
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
);
|
|
296
|
+
}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 推荐做法
|
|
300
|
+
- 建议区分摄像头流和屏幕共享流。屏幕共享画面通常不需要展示麦克风图标,但可以展示“正在共享屏幕”等标识。
|
|
301
|
+
|
|
302
|
+
- 建议为挂件容器设置 `pointer-events: none`,避免遮挡视频画面的双击、拖拽或其他交互。
|
|
303
|
+
|
|
304
|
+
## 场景三:根据会议场景切换布局
|
|
305
|
+
|
|
306
|
+
不同会议场景对视频布局的要求不同。例如,多人讨论适合宫格布局;屏幕共享、培训或主讲人场景适合顶部栏或侧边栏布局;移动端页面适合移动端布局。
|
|
307
|
+
|
|
308
|
+
#### 实现思路
|
|
309
|
+
|
|
310
|
+
在业务层维护当前布局状态,并将其传入 `RoomView` 的 `layoutTemplate`。PC Web 可以在宫格、顶部栏、侧边栏之间切换;H5 建议固定使用 `RoomLayoutTemplate.MobileLayout`。
|
|
311
|
+
|
|
312
|
+
#### 示例代码
|
|
313
|
+
|
|
314
|
+
【Vue3】
|
|
315
|
+
``` typescript
|
|
316
|
+
<template>
|
|
317
|
+
<RoomView :layout-template="currentLayout" />
|
|
318
|
+
</template>
|
|
319
|
+
|
|
320
|
+
<script setup lang="ts">
|
|
321
|
+
import { ref } from 'vue';
|
|
322
|
+
import { RoomView, RoomLayoutTemplate } from 'tuikit-atomicx-vue3/room';
|
|
323
|
+
|
|
324
|
+
const currentLayout = ref(RoomLayoutTemplate.GridLayout);
|
|
325
|
+
|
|
326
|
+
function switchToGridLayout() {
|
|
327
|
+
currentLayout.value = RoomLayoutTemplate.GridLayout;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
function switchToSpeakerLayout() {
|
|
331
|
+
currentLayout.value = RoomLayoutTemplate.SidebarLayout;
|
|
332
|
+
}
|
|
333
|
+
</script>
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
【React】
|
|
337
|
+
``` typescript
|
|
338
|
+
import { useState } from 'react';
|
|
339
|
+
import { RoomView, RoomLayoutTemplate } from 'tuikit-atomicx-react/room';
|
|
340
|
+
|
|
341
|
+
export default function ConferenceRoom() {
|
|
342
|
+
const [currentLayout, setCurrentLayout] = useState(RoomLayoutTemplate.GridLayout);
|
|
343
|
+
|
|
344
|
+
function switchToGridLayout() {
|
|
345
|
+
setCurrentLayout(RoomLayoutTemplate.GridLayout);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
function switchToSpeakerLayout() {
|
|
349
|
+
setCurrentLayout(RoomLayoutTemplate.SidebarLayout);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
return <RoomView layoutTemplate={currentLayout} />;
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
#### 注意事项
|
|
357
|
+
- PC Web 不建议使用 `MobileLayout`,H5 不建议使用 PC 的宫格、顶部栏或侧边栏布局。
|
|
358
|
+
|
|
359
|
+
- 如果业务侧提供布局切换按钮,应在 UI 层根据当前平台只展示可用布局。
|
|
360
|
+
|
|
361
|
+
## 场景四:屏幕共享时自动切换布局
|
|
362
|
+
|
|
363
|
+
当会议中有人开始屏幕共享时,业务通常希望自动突出共享内容;当共享结束或只剩一个画面时,再恢复到宫格布局。
|
|
364
|
+
|
|
365
|
+
#### 实现思路
|
|
366
|
+
|
|
367
|
+
通过 `useRoomParticipantState` 获取 `participantWithScreen` 和 `participantList`。当 `participantWithScreen` 从空变为有值时,将布局切换为 `RoomLayoutTemplate.SidebarLayout` 或 `RoomLayoutTemplate.CinemaLayout`;当画面数量恢复到 1 时,切回宫格布局。
|
|
368
|
+
|
|
369
|
+
#### 关键接口 / 状态
|
|
370
|
+
|
|
371
|
+
|**状态**|**说明**|
|
|
372
|
+
|---------|---------|
|
|
373
|
+
|`participantWithScreen`|当前正在屏幕共享的成员。|
|
|
374
|
+
|`participantList`|当前房间成员列表。|
|
|
375
|
+
|`RoomLayoutTemplate.SidebarLayout`|侧边栏主画面布局。|
|
|
376
|
+
|`RoomLayoutTemplate.GridLayout`|宫格布局。|
|
|
377
|
+
|
|
378
|
+
### 示例代码
|
|
379
|
+
|
|
380
|
+
【Vue3】
|
|
381
|
+
``` typescript
|
|
382
|
+
<template>
|
|
383
|
+
<RoomView :layout-template="currentLayout" />
|
|
384
|
+
</template>
|
|
385
|
+
|
|
386
|
+
<script setup>
|
|
387
|
+
import { ref, watch } from 'vue';
|
|
388
|
+
import {
|
|
389
|
+
RoomLayoutTemplate,
|
|
390
|
+
useRoomParticipantState,
|
|
391
|
+
} from 'tuikit-atomicx-vue3/room';
|
|
392
|
+
|
|
393
|
+
const currentLayout = ref(RoomLayoutTemplate.GridLayout);
|
|
394
|
+
|
|
395
|
+
const { participantList, participantWithScreen } = useRoomParticipantState();
|
|
396
|
+
|
|
397
|
+
watch(participantWithScreen, (newVal, oldVal) => {
|
|
398
|
+
if (newVal && !oldVal) {
|
|
399
|
+
currentLayout.value = RoomLayoutTemplate.SidebarLayout;
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
watch(
|
|
404
|
+
() => participantList.value.length + (participantWithScreen.value ? 1 : 0),
|
|
405
|
+
(count) => {
|
|
406
|
+
if (count === 1) {
|
|
407
|
+
currentLayout.value = RoomLayoutTemplate.GridLayout;
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
);
|
|
411
|
+
</script>
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
【React】
|
|
415
|
+
``` typescript
|
|
416
|
+
import { useState, useEffect } from 'react';
|
|
417
|
+
import {
|
|
418
|
+
RoomLayoutTemplate,
|
|
419
|
+
RoomView,
|
|
420
|
+
useRoomParticipantState,
|
|
421
|
+
} from 'tuikit-atomicx-react/room';
|
|
422
|
+
|
|
423
|
+
export default function ConferenceRoom() {
|
|
424
|
+
const [currentLayout, setCurrentLayout] = useState(RoomLayoutTemplate.GridLayout);
|
|
425
|
+
const { participantList, participantWithScreen } = useRoomParticipantState();
|
|
426
|
+
|
|
427
|
+
useEffect(() => {
|
|
428
|
+
if (participantWithScreen) {
|
|
429
|
+
setCurrentLayout(RoomLayoutTemplate.SidebarLayout);
|
|
430
|
+
}
|
|
431
|
+
}, [participantWithScreen]);
|
|
432
|
+
|
|
433
|
+
useEffect(() => {
|
|
434
|
+
const count = participantList.length + (participantWithScreen ? 1 : 0);
|
|
435
|
+
if (count === 1) {
|
|
436
|
+
setCurrentLayout(RoomLayoutTemplate.GridLayout);
|
|
437
|
+
}
|
|
438
|
+
}, [participantList, participantWithScreen]);
|
|
439
|
+
|
|
440
|
+
return <RoomView layoutTemplate={currentLayout} />;
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
## RoomView 核心逻辑说明
|
|
445
|
+
|
|
446
|
+
本节用于解释 `RoomView` 的内部表现,帮助开发者理解“为什么画面这样排序”“为什么某些远端画面没有持续播放”“为什么小窗口画质较低”。如果您只需要完成基础接入,可以先阅读前面的场景章节。
|
|
447
|
+
|
|
448
|
+
### RoomView 核心逻辑
|
|
449
|
+
|
|
450
|
+
|**核心逻辑**|**说明**|**业务侧是否需要处理**|
|
|
451
|
+
|---------|---------|---------|
|
|
452
|
+
|视频流排序|根据屏幕共享、房主、本地用户、管理员、摄像头和麦克风状态生成视频流列表。|通常不需要。只有自定义成员列表或业务排序时才需要参考。|
|
|
453
|
+
|非可视区域不播放|视频画面支持懒加载,非可视区域中的远端视频流不会持续播放。|通常不需要。注意不要用自定义样式破坏布局容器的可视区域计算。|
|
|
454
|
+
|小窗口订阅低清流|视频流会根据画面尺寸和页面中的大画面数量选择合适清晰度,小窗口优先使用低清流,大画面和屏幕共享优先使用高清流。|通常不需要。业务侧不建议自行频繁切换远端流清晰度。|
|
|
455
|
+
|只负责排版和缩放|`RoomView` 负责视频画面的排版、缩放和渲染参数,不负责进房、开关设备、成员会控或业务弹窗。|需要业务侧与房间管理、设备管理、成员管理组合。|
|
|
456
|
+
|
|
457
|
+
### 视频流排序参考
|
|
458
|
+
|
|
459
|
+
|**优先级**|**排序因素**|**说明**|
|
|
460
|
+
|---------|---------|---------|
|
|
461
|
+
|1|屏幕共享流|有屏幕共享时,屏幕共享流会优先进入视频流列表。|
|
|
462
|
+
|2|房主|房主画面优先。|
|
|
463
|
+
|3|本地用户|本地用户画面优先。|
|
|
464
|
+
|4|管理员|管理员画面优先。|
|
|
465
|
+
|5|同时开启摄像头和麦克风|音视频活跃成员优先。|
|
|
466
|
+
|6|开启摄像头|有视频画面的成员优先。|
|
|
467
|
+
|7|开启麦克风|仅音频活跃成员次之。|
|
|
468
|
+
|
|
469
|
+
### 主画面选择规则
|
|
470
|
+
|
|
471
|
+
|**布局**|**主画面规则**|
|
|
472
|
+
|---------|---------|
|
|
473
|
+
|宫格布局|不区分主画面,按分页展示视频流。|
|
|
474
|
+
|顶部栏 / 侧边栏布局|优先展示用户双击锁定的画面;否则展示屏幕共享;否则展示第一个开启摄像头的成员;再否则展示本地用户。|
|
|
475
|
+
|移动端布局|优先展示屏幕共享;1-2 人场景突出远端或当前主要画面;多人场景通过分页展示。|
|
|
476
|
+
|
|
477
|
+
> **说明:**
|
|
478
|
+
>
|
|
479
|
+
|
|
480
|
+
> 顶部栏和侧边栏布局中,用户双击某个画面后,该画面会成为主画面。若该成员离开房间,或被锁定的屏幕共享结束,主画面会自动回退到默认选择规则。
|
|
481
|
+
>
|
|
482
|
+
|
|
483
|
+
## 异常排查指引
|
|
484
|
+
|
|
485
|
+
视频布局本身通常不直接抛出业务错误,但可能因为房间状态、容器尺寸、设备状态或布局配置不正确导致画面不符合预期。建议按以下方式排查。
|
|
486
|
+
| <strong>常见表现</strong> | <strong>问题类型</strong> | <strong>建议处理方式</strong> |
|
|
487
|
+
| --- | --- | --- |
|
|
488
|
+
| <code>RoomView</code> 没有画面 | 未进入房间或未打开摄像头 | 确保在进房接口调用成功后再渲染 <code>RoomView</code> 组件。<br>确认已经打开本地摄像头,设备开启逻辑参考设备及网络。 |
|
|
489
|
+
| 视频区域不可见或尺寸异常 | 父容器无尺寸 | 检查浏览器控制台元素,确认 <code>RoomView</code> 外层 <code>div</code> 的 <code>width</code> 和 <code>height</code> 是否计算为 0,建议设置为 100% 或具体的 <code>px</code> 值。 |
|
|
490
|
+
| 布局没有按预期切换 | 布局枚举错误 | 使用 <code>RoomLayoutTemplate</code> 枚举,不要手写字符串。 |
|
|
491
|
+
| PC 端或者移动端交互不符合预期 | 平台布局不匹配 | H5 使用 <code>RoomLayoutTemplate.MobileLayout</code>。 |
|
|
492
|
+
| 共享内容没有成为主画面 | 屏幕共享未突出展示 | 监听 <code>participantWithScreen</code>,在共享开始时切换到顶部栏或侧边栏布局。 |
|
|
493
|
+
| 双击或屏幕分享双指放大不生效 | 挂件遮挡交互 | 挂件层避免拦截事件,必要时设置 <code>pointer-events: none</code>。 |
|
|
494
|
+
|
|
495
|
+
## API 文档
|
|
496
|
+
|
|
497
|
+
|**Component / State**|**功能描述**|**API 文档**|
|
|
498
|
+
|---------|---------|---------|
|
|
499
|
+
|**RoomView**|标准会议视频布局主容器,负责视频流展示、布局编排、插槽透传和双击事件。|[API 文档](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html)|
|
|
500
|
+
|**useRoomState**|获取当前房间信息,用于判断是否已经进入标准会议房间。|[API 文档](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState)|
|
|
501
|
+
|**useRoomParticipantState**|提供 `participantList`、`participantWithScreen`、`participantListWithVideo` 等布局辅助状态。|[API 文档](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomParticipantState)|
|
|
502
|
+
|
|
503
|
+
## 常见问题
|
|
504
|
+
|
|
505
|
+
### `RoomView` 是否会自动打开摄像头和麦克风?
|
|
506
|
+
|
|
507
|
+
不会。`RoomView` 负责视频画面渲染和布局编排,打开或关闭本地摄像头、麦克风需要使用设备管理相关接口。
|
|
508
|
+
|
|
509
|
+
### `RoomView` 是否包含默认昵称、麦克风图标和角色标识?
|
|
510
|
+
|
|
511
|
+
`RoomView` 只提供 `renderParticipantView` 插槽,不内置固定业务挂件。您可以根据 `participant` 和 `streamType` 自定义昵称、角色、麦克风状态和业务标签。
|
|
512
|
+
|
|
513
|
+
### 为什么页面中看不到视频布局?
|
|
514
|
+
|
|
515
|
+
常见原因包括尚未进入房间、父容器没有明确尺寸、当前平台使用了不合适的布局,或本地及远端成员没有打开摄像头。建议先确认 `currentRoom`、父容器宽高和设备状态。
|
|
516
|
+
|
|
517
|
+
### 屏幕共享时应该使用哪种布局?
|
|
518
|
+
|
|
519
|
+
PC Web 推荐使用 `RoomLayoutTemplate.SidebarLayout` 或 `RoomLayoutTemplate.CinemaLayout`,让共享内容成为主画面。H5 推荐继续使用 `RoomLayoutTemplate.MobileLayout`。
|
|
520
|
+
|
|
521
|
+
### 顶部栏布局和侧边栏布局有什么区别?
|
|
522
|
+
|
|
523
|
+
两者都属于主画面布局。顶部栏布局将其他成员放在主画面上方,侧边栏布局将其他成员放在主画面侧边。选择哪一种主要取决于业务页面的空间结构和用户习惯。
|
|
524
|
+
|
|
525
|
+
### 宫格布局最多展示多少路画面?
|
|
526
|
+
|
|
527
|
+
PC Web 宫格布局单页最多展示 9 路画面,超过后通过翻页展示。移动端布局采用滑动分页方式展示。
|
|
528
|
+
|
|
529
|
+
### `RoomView` 提供的布局均不满足需求,是否可以提供更多的可选布局?
|