@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,460 +0,0 @@
|
|
|
1
|
-
This document guides you on how to use Atomicx components and the `useDeviceState` Hook to manage audio/video device (camera, microphone, speaker) state in meetings, and how to obtain local network quality information.
|
|
2
|
-
|
|
3
|
-
## Feature Introduction
|
|
4
|
-
- **Device Enumeration & Switching:** Supports real-time retrieval of available system device lists and seamless switching.
|
|
5
|
-
|
|
6
|
-
- **Fine-grained State Control:** Provides capabilities for enabling/disabling, muting capture, volume adjustment, and real-time volume monitoring.
|
|
7
|
-
|
|
8
|
-
- **Error Diagnosis:** Real-time feedback on hardware conflicts, missing system permissions, and other abnormal states.
|
|
9
|
-
|
|
10
|
-
- **Network Quality Monitoring:** Provides multi-dimensional network information including latency and packet loss rate.
|
|
11
|
-
|
|
12
|
-
## Prerequisites
|
|
13
|
-
- User has completed login authentication through [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState), please refer to Integration Overview.
|
|
14
|
-
|
|
15
|
-
- If integrating within an `iframe`, permissions must be declared in the tag.
|
|
16
|
-
|
|
17
|
-
``` typescript
|
|
18
|
-
<iframe allow="microphone; camera;"></iframe>
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Implementing Camera Management
|
|
22
|
-
|
|
23
|
-
You can control local camera on/off, switch devices, and monitor capture status and errors through [useDeviceState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState).
|
|
24
|
-
|
|
25
|
-
### Step 1: Enable/Disable Camera
|
|
26
|
-
|
|
27
|
-
Control camera on/off by calling [openLocalCamera](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#openLocalCamera) and [closeLocalCamera](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#closeLocalCamera) methods.
|
|
28
|
-
``` typescript
|
|
29
|
-
import { useDeviceState, DeviceStatus } from 'tuikit-atomicx-vue3/room';
|
|
30
|
-
const { cameraStatus, openLocalCamera, closeLocalCamera } = useDeviceState();
|
|
31
|
-
const toggleCamera = async () => {
|
|
32
|
-
if (cameraStatus.value === DeviceStatus.On) {
|
|
33
|
-
await closeLocalCamera();
|
|
34
|
-
} else {
|
|
35
|
-
await openLocalCamera();
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Step 2: Get/Switch Camera Device
|
|
41
|
-
|
|
42
|
-
#### Desktop Camera Get and Switch Example
|
|
43
|
-
|
|
44
|
-
You can get all available camera devices through [cameraList](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#cameraList), and use [setCurrentCamera](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setCurrentCamera) method to switch the currently used camera.
|
|
45
|
-
``` typescript
|
|
46
|
-
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
47
|
-
const { cameraList, currentCamera, getCameraList, setCurrentCamera } = useDeviceState();
|
|
48
|
-
|
|
49
|
-
// Get camera list
|
|
50
|
-
await getCameraList();
|
|
51
|
-
|
|
52
|
-
// Iterate and display available cameras
|
|
53
|
-
cameraList.value.forEach((camera) => {
|
|
54
|
-
console.log(`Camera: ${camera.deviceName} (${camera.deviceId})`);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
// Switch to specified camera
|
|
58
|
-
const switchCamera = async (deviceId: string) => {
|
|
59
|
-
try {
|
|
60
|
-
// Switch device (if camera is already on, will automatically re-capture using new device)
|
|
61
|
-
await setCurrentCamera({ deviceId });
|
|
62
|
-
console.log('Camera switched successfully');
|
|
63
|
-
} catch (error) {
|
|
64
|
-
console.error('Camera switch failed:', error);
|
|
65
|
-
// On switch failure, will continue using original device
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
// Monitor current camera changes
|
|
70
|
-
watch(currentCamera, (camera) => {
|
|
71
|
-
if (camera) {
|
|
72
|
-
console.log('Currently using camera:', camera.deviceName);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
> **Note:**
|
|
78
|
-
>
|
|
79
|
-
|
|
80
|
-
> When calling [setCurrentCamera](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setCurrentCamera) to switch devices, if the camera is already on, Atomicx will automatically stop capturing from the current device and restart capture using the new device, with seamless video stream switching. If switching fails, it will continue using the original device.
|
|
81
|
-
>
|
|
82
|
-
|
|
83
|
-
#### Mobile Camera Switch Example
|
|
84
|
-
|
|
85
|
-
Mobile devices use [switchCamera](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#switchCamera) to switch between front and rear cameras.
|
|
86
|
-
``` typescript
|
|
87
|
-
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
88
|
-
const { isFrontCamera, switchCamera } = useDeviceState();
|
|
89
|
-
|
|
90
|
-
// Determine if mobile device
|
|
91
|
-
const isMobile = /Android|webOS|iPhone|iPad|iPod/i.test(navigator.userAgent);
|
|
92
|
-
|
|
93
|
-
// Switch front/rear camera (only supported on mobile)
|
|
94
|
-
const toggleCamera = async () => {
|
|
95
|
-
if (!isMobile) {
|
|
96
|
-
console.warn('Front/rear camera switching is only supported on mobile devices');
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// Switch to opposite camera
|
|
101
|
-
await switchCamera({ isFrontCamera: !isFrontCamera.value });
|
|
102
|
-
console.log(`Switched to ${isFrontCamera.value ? 'front' : 'rear'} camera`);
|
|
103
|
-
};
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Step 3: Handle Camera Capture Errors
|
|
107
|
-
|
|
108
|
-
When camera capture errors occur, you can get error information through the [cameraLastError](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#cameraLastError) property.
|
|
109
|
-
|
|
110
|
-
> Note:
|
|
111
|
-
>
|
|
112
|
-
|
|
113
|
-
> Common camera errors include `NoSystemPermission` (no system permission) and `OccupiedError` (device occupied). You should display clear error messages to users based on this property.
|
|
114
|
-
>
|
|
115
|
-
|
|
116
|
-
``` typescript
|
|
117
|
-
import { useDeviceState, DeviceError } from 'tuikit-atomicx-vue3/room';
|
|
118
|
-
const { cameraLastError } = useDeviceState();
|
|
119
|
-
|
|
120
|
-
// Monitor camera errors
|
|
121
|
-
watch(cameraLastError, (error) => {
|
|
122
|
-
switch (error) {
|
|
123
|
-
case DeviceError.NoSystemPermission:
|
|
124
|
-
console.error('Camera permission denied, please enable camera permission in system settings');
|
|
125
|
-
break;
|
|
126
|
-
case DeviceError.NoDeviceDetected:
|
|
127
|
-
console.error('No camera device detected');
|
|
128
|
-
break;
|
|
129
|
-
case DeviceError.OccupiedError:
|
|
130
|
-
console.error('Camera is occupied by another application');
|
|
131
|
-
break;
|
|
132
|
-
case DeviceError.NotSupportCapture:
|
|
133
|
-
console.error('Current browser does not support camera capture');
|
|
134
|
-
break;
|
|
135
|
-
default:
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Implementing Microphone Management
|
|
142
|
-
|
|
143
|
-
You can control local microphone on/off, mute, volume adjustment, and real-time volume display through [useDeviceState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState), and monitor capture status and errors.
|
|
144
|
-
|
|
145
|
-
### Step 1: Enable/Disable Microphone
|
|
146
|
-
``` typescript
|
|
147
|
-
import { useDeviceState, DeviceStatus } from 'tuikit-atomicx-vue3/room';
|
|
148
|
-
const { microphoneStatus, openLocalMicrophone, closeLocalMicrophone } = useDeviceState();
|
|
149
|
-
const toggleMicrophone = async () => {
|
|
150
|
-
if (microphoneStatus.value === DeviceStatus.On) {
|
|
151
|
-
await closeLocalMicrophone();
|
|
152
|
-
} else {
|
|
153
|
-
await openLocalMicrophone();
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Step 2: Get/Switch Microphone Device
|
|
159
|
-
|
|
160
|
-
#### Desktop Browser Get/Switch Microphone Example
|
|
161
|
-
|
|
162
|
-
You can get all available microphone devices through [microphoneList](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#microphoneList), and use [setCurrentMicrophone](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setCurrentMicrophone) method to switch the currently used microphone.
|
|
163
|
-
``` typescript
|
|
164
|
-
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
165
|
-
|
|
166
|
-
const {
|
|
167
|
-
microphoneList,
|
|
168
|
-
currentMicrophone,
|
|
169
|
-
getMicrophoneList,
|
|
170
|
-
setCurrentMicrophone
|
|
171
|
-
} = useDeviceState();
|
|
172
|
-
|
|
173
|
-
// Get microphone list
|
|
174
|
-
await getMicrophoneList();
|
|
175
|
-
|
|
176
|
-
// Iterate and display available microphones
|
|
177
|
-
microphoneList.value.forEach((mic) => {
|
|
178
|
-
console.log(`Microphone: ${mic.deviceName} (${mic.deviceId})`);
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
// Switch to specified microphone
|
|
182
|
-
const switchMicrophone = async (deviceId: string) => {
|
|
183
|
-
await setCurrentMicrophone({ deviceId });
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
// Monitor current microphone changes
|
|
187
|
-
watch(currentMicrophone, (mic) => {
|
|
188
|
-
if (mic) {
|
|
189
|
-
console.log('Currently using microphone:', mic.deviceName);
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Step 3: Set Capture Volume
|
|
195
|
-
|
|
196
|
-
You can use the [setCaptureVolume](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setCaptureVolume) method to adjust the local microphone capture volume.
|
|
197
|
-
``` typescript
|
|
198
|
-
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
199
|
-
const { captureVolume, setCaptureVolume } = useDeviceState();
|
|
200
|
-
|
|
201
|
-
// Set capture volume to 50%
|
|
202
|
-
await setCaptureVolume(50);
|
|
203
|
-
|
|
204
|
-
// Monitor capture volume changes
|
|
205
|
-
watch(captureVolume, (volume) => {
|
|
206
|
-
console.log('Current capture volume:', volume);
|
|
207
|
-
});
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
### Step 4: Display Real-time Volume
|
|
211
|
-
|
|
212
|
-
The [currentMicVolume](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#currentMicVolume) property updates the local microphone capture volume in real-time, and can be used for dynamic volume bar display.
|
|
213
|
-
``` typescript
|
|
214
|
-
<template>
|
|
215
|
-
<div class="mic-volume">
|
|
216
|
-
<label>Microphone Volume</label>
|
|
217
|
-
<div class="volume-bar-container">
|
|
218
|
-
<div
|
|
219
|
-
class="volume-bar"
|
|
220
|
-
:style="{ width: `${currentMicVolume}%` }"
|
|
221
|
-
/>
|
|
222
|
-
</div>
|
|
223
|
-
<span>{{ currentMicVolume }}</span>
|
|
224
|
-
</div>
|
|
225
|
-
</template>
|
|
226
|
-
|
|
227
|
-
<script setup lang="ts">
|
|
228
|
-
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
229
|
-
const { currentMicVolume } = useDeviceState();
|
|
230
|
-
</script>
|
|
231
|
-
|
|
232
|
-
<style scoped>
|
|
233
|
-
.volume-bar-container {
|
|
234
|
-
width: 200px;
|
|
235
|
-
height: 8px;
|
|
236
|
-
background-color: #e0e0e0;
|
|
237
|
-
border-radius: 4px;
|
|
238
|
-
overflow: hidden;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
.volume-bar {
|
|
242
|
-
height: 100%;
|
|
243
|
-
background-color: #4caf50;
|
|
244
|
-
transition: width 0.1s ease;
|
|
245
|
-
}
|
|
246
|
-
</style>
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### Step 5: Handle Microphone Capture Errors
|
|
250
|
-
|
|
251
|
-
When microphone capture errors occur, you can get error information through [microphoneLastError](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#microphoneLastError) data.
|
|
252
|
-
``` typescript
|
|
253
|
-
import { useDeviceState, DeviceError } from 'tuikit-atomicx-vue3/room';
|
|
254
|
-
const { microphoneLastError } = useDeviceState();
|
|
255
|
-
|
|
256
|
-
// Monitor microphone errors
|
|
257
|
-
watch(microphoneLastError, (error) => {
|
|
258
|
-
switch (error) {
|
|
259
|
-
case DeviceError.NoSystemPermission:
|
|
260
|
-
console.error('Microphone permission denied, please enable microphone permission in system settings');
|
|
261
|
-
break;
|
|
262
|
-
case DeviceError.NoDeviceDetected:
|
|
263
|
-
console.error('No microphone device detected');
|
|
264
|
-
break;
|
|
265
|
-
case DeviceError.OccupiedError:
|
|
266
|
-
console.error('Microphone is occupied by another application');
|
|
267
|
-
break;
|
|
268
|
-
case DeviceError.NotSupportCapture:
|
|
269
|
-
console.error('Current browser does not support microphone capture');
|
|
270
|
-
break;
|
|
271
|
-
default:
|
|
272
|
-
break;
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
## Implementing Speaker Management
|
|
278
|
-
|
|
279
|
-
Speaker (playback device) mainly involves switching devices and setting playback volume.
|
|
280
|
-
|
|
281
|
-
### Step 1: Get/Switch Speaker Device
|
|
282
|
-
|
|
283
|
-
You can get all available speaker devices through [speakerList](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#speakerList), and use [setCurrentSpeaker](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setCurrentSpeaker) method to switch the currently used speaker.
|
|
284
|
-
``` typescript
|
|
285
|
-
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
286
|
-
const {
|
|
287
|
-
speakerList,
|
|
288
|
-
currentSpeaker,
|
|
289
|
-
getSpeakerList,
|
|
290
|
-
setCurrentSpeaker
|
|
291
|
-
} = useDeviceState();
|
|
292
|
-
|
|
293
|
-
// Get speaker list
|
|
294
|
-
await getSpeakerList();
|
|
295
|
-
|
|
296
|
-
// Iterate and display available speakers
|
|
297
|
-
speakerList.value.forEach((speaker) => {
|
|
298
|
-
console.log(`Speaker: ${speaker.deviceName} (${speaker.deviceId})`);
|
|
299
|
-
});
|
|
300
|
-
|
|
301
|
-
// Switch to specified speaker
|
|
302
|
-
const switchSpeaker = async (deviceId: string) => {
|
|
303
|
-
await setCurrentSpeaker({ deviceId });
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
// Monitor current speaker changes
|
|
307
|
-
watch(currentSpeaker, (speaker) => {
|
|
308
|
-
if (speaker) {
|
|
309
|
-
console.log('Currently using speaker:', speaker.deviceName);
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
### Step 2: Set Playback Volume
|
|
315
|
-
|
|
316
|
-
You can use the [setOutputVolume](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setOutputVolume) method to adjust speaker playback volume.
|
|
317
|
-
``` typescript
|
|
318
|
-
import { useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
319
|
-
const { outputVolume, setOutputVolume } = useDeviceState();
|
|
320
|
-
|
|
321
|
-
// Set playback volume to 60%
|
|
322
|
-
await setOutputVolume(60);
|
|
323
|
-
|
|
324
|
-
// Monitor playback volume changes
|
|
325
|
-
watch(outputVolume, (volume) => {
|
|
326
|
-
console.log('Current playback volume:', volume);
|
|
327
|
-
});
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
## Implementing Network Quality Monitoring
|
|
331
|
-
|
|
332
|
-
Using the [networkInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#networkInfo) data in [useDeviceState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState), you can monitor the local user's network quality in real-time.
|
|
333
|
-
|
|
334
|
-
> **Note:**
|
|
335
|
-
>
|
|
336
|
-
|
|
337
|
-
> Valid data can only be obtained in [networkInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#networkInfo) when the local user has joined the room through [joinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#joinRoom) and turned on the microphone or camera.
|
|
338
|
-
>
|
|
339
|
-
|
|
340
|
-
``` typescript
|
|
341
|
-
<template>
|
|
342
|
-
<div class="network-indicator" @click="showDetails = !showDetails">
|
|
343
|
-
<TUIIcon v-if="networkIcon" :icon="networkIcon" />
|
|
344
|
-
<span class="network-text">{{ networkText }}</span>
|
|
345
|
-
<div v-if="showDetails" class="network-details">
|
|
346
|
-
<div>Latency: {{ networkInfo?.delay }}ms</div>
|
|
347
|
-
<div>Uplink Loss: {{ networkInfo?.upLoss }}%</div>
|
|
348
|
-
<div>Downlink Loss: {{ networkInfo?.downLoss }}%</div>
|
|
349
|
-
</div>
|
|
350
|
-
</div>
|
|
351
|
-
</template>
|
|
352
|
-
|
|
353
|
-
<script setup lang="ts">
|
|
354
|
-
import { computed, ref } from 'vue';
|
|
355
|
-
import {
|
|
356
|
-
IconNetworkStability,
|
|
357
|
-
IconNetworkFluctuation,
|
|
358
|
-
IconNetworkLag,
|
|
359
|
-
IconNetworkDisconnected,
|
|
360
|
-
IconArrowStrokeUp,
|
|
361
|
-
} from '@tencentcloud/uikit-base-component-vue3';
|
|
362
|
-
import { useDeviceState, NetworkQuality } from 'tuikit-atomicx-vue3/room';
|
|
363
|
-
|
|
364
|
-
const { networkInfo } = useDeviceState();
|
|
365
|
-
const showDetails = ref(false);
|
|
366
|
-
|
|
367
|
-
// Network quality icon
|
|
368
|
-
const networkIcon = computed(() => {
|
|
369
|
-
if (!networkInfo.value) return '';
|
|
370
|
-
switch (networkInfo.value.quality) {
|
|
371
|
-
case NetworkQuality.Excellent:
|
|
372
|
-
case NetworkQuality.Good:
|
|
373
|
-
return IconNetworkStability;
|
|
374
|
-
case NetworkQuality.Poor:
|
|
375
|
-
return IconNetworkFluctuation;
|
|
376
|
-
case NetworkQuality.Bad:
|
|
377
|
-
case NetworkQuality.VeryBad:
|
|
378
|
-
return IconNetworkLag;
|
|
379
|
-
case NetworkQuality.Down:
|
|
380
|
-
return IconNetworkDisconnected;
|
|
381
|
-
default:
|
|
382
|
-
return '';
|
|
383
|
-
}
|
|
384
|
-
});
|
|
385
|
-
|
|
386
|
-
// Network quality text
|
|
387
|
-
const networkText = computed(() => {
|
|
388
|
-
if (!networkInfo.value) return 'Unknown';
|
|
389
|
-
switch (networkInfo.value.quality) {
|
|
390
|
-
case NetworkQuality.Excellent:
|
|
391
|
-
return 'Excellent';
|
|
392
|
-
case NetworkQuality.Good:
|
|
393
|
-
return 'Good';
|
|
394
|
-
case NetworkQuality.Poor:
|
|
395
|
-
return 'Fair';
|
|
396
|
-
case NetworkQuality.Bad:
|
|
397
|
-
return 'Poor';
|
|
398
|
-
case NetworkQuality.VeryBad:
|
|
399
|
-
return 'Very Poor';
|
|
400
|
-
case NetworkQuality.Down:
|
|
401
|
-
return 'Disconnected';
|
|
402
|
-
default:
|
|
403
|
-
return 'Unknown';
|
|
404
|
-
}
|
|
405
|
-
});
|
|
406
|
-
</script>
|
|
407
|
-
|
|
408
|
-
<style scoped>
|
|
409
|
-
|
|
410
|
-
.network-indicator {
|
|
411
|
-
position: relative;
|
|
412
|
-
display: flex;
|
|
413
|
-
align-items: center;
|
|
414
|
-
gap: 8px;
|
|
415
|
-
padding: 8px 12px;
|
|
416
|
-
border-radius: 4px;
|
|
417
|
-
cursor: pointer;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
.network-details {
|
|
421
|
-
position: absolute;
|
|
422
|
-
top: 100%;
|
|
423
|
-
left: 0;
|
|
424
|
-
margin-top: 4px;
|
|
425
|
-
padding: 8px;
|
|
426
|
-
background: white;
|
|
427
|
-
border-radius: 4px;
|
|
428
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
|
|
429
|
-
font-size: 12px;
|
|
430
|
-
white-space: nowrap;
|
|
431
|
-
z-index: 2;
|
|
432
|
-
}
|
|
433
|
-
</style>
|
|
434
|
-
```
|
|
435
|
-
|
|
436
|
-
## API Documentation
|
|
437
|
-
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
438
|
-
| --- | --- | --- |
|
|
439
|
-
| **useDeviceState** | Contains audio/video device status, audio/video device list and operation interfaces. | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState) |
|
|
440
|
-
|
|
441
|
-
## FAQ
|
|
442
|
-
|
|
443
|
-
### Can users enter an audio/video room if their computer has no microphone or speaker devices?
|
|
444
|
-
|
|
445
|
-
Yes, they can enter the room. Users can still successfully call the `joinRoom` interface to enter an audio/video room even without a microphone, speaker, or camera. However, in this state, users will face the following interaction exceptions.
|
|
446
|
-
|
|
447
|
-
**Feature Limitations:**
|
|
448
|
-
- **Cannot enable media capture:** Since the system cannot drive the relevant hardware, calling [openLocalMicrophone](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#openLocalMicrophone) or [openLocalCamera](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#openLocalCamera) interfaces will trigger asynchronous errors. At this time, the [microphoneLastError](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#microphoneLastError) or [cameraLastError](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#cameraLastError) property will return `DeviceError.NoDeviceDetected` (no device detected).
|
|
449
|
-
|
|
450
|
-
- **Capture limitations:** Cannot capture and transmit audio (requires microphone) or video (requires camera) through local devices.
|
|
451
|
-
|
|
452
|
-
- **Playback limitations:** Due to lack of speaker devices, users will not be able to hear audio from other participants in the room.
|
|
453
|
-
|
|
454
|
-
**Functions that can still be used:**
|
|
455
|
-
|
|
456
|
-
View-only mode: Users can still watch video streams or screen sharing from remote participants.
|
|
457
|
-
|
|
458
|
-
### How to implement device hot-plug detection?
|
|
459
|
-
|
|
460
|
-
Atomicx has built-in device hot-plug detection. When media devices are plugged in or unplugged, the device list and current device data will be automatically updated.
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
The basic beauty feature allows users to apply skin smoothing, whitening, and ruddiness adjustments to portraits during video calls or live streaming.
|
|
2
|
-
|
|
3
|
-
## Use Cases
|
|
4
|
-
- **Video Conferencing:** Minimize skin blemishes, brighten skin tone, making participants look more professional and energetic.
|
|
5
|
-
|
|
6
|
-
- **Online Live Streaming:** Hosts use beauty features to enhance visual appeal and attract more viewers.
|
|
7
|
-
|
|
8
|
-
- **Online Education:** Teachers and students maintain a clean and natural appearance, creating a good classroom atmosphere.
|
|
9
|
-
|
|
10
|
-
## Prerequisites
|
|
11
|
-
- **User Status:** The user has completed login authentication through useLoginState, refer to Integration Overview, and is in **logged in** status.
|
|
12
|
-
|
|
13
|
-
- **Environment Dependencies:** The project has imported `tuikit-atomicx-vue3`.
|
|
14
|
-
|
|
15
|
-
- **Device Requirements:** A working camera device is required, and the user has authorized camera access. If the user denies authorization, the virtual background feature will not be available.
|
|
16
|
-
|
|
17
|
-
## Implementing Basic Beauty Feature
|
|
18
|
-
|
|
19
|
-
This feature provides two integration solutions. You can choose the most suitable one according to business needs:
|
|
20
|
-
- **Solution 1 (Recommended):** Quick integration using UI components. Directly import the beauty panel component ([FreeBeautyPanel](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/FreeBeautyPanel)) provided by `tuikit-atomicx-vue3`, embed it into your application dialog, with the lowest development cost.
|
|
21
|
-
|
|
22
|
-
- **Solution 2 (Advanced):** Custom integration using underlying API. Based on atomicx-core SDK API [useFreeBeautyState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-FreeBeautyState) state hook to implement UI and interaction logic yourself, with the highest flexibility.
|
|
23
|
-
|
|
24
|
-
## Solution 1: Quick Integration Using UI Components
|
|
25
|
-
|
|
26
|
-
`tuikit-atomicx-vue3` provides a core beauty settings panel component:
|
|
27
|
-
- [**FreeBeautyPanel**](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/FreeBeautyPanel)**:** Basic beauty configuration panel, including parameter adjustment functions for skin smoothing, whitening, and ruddiness.
|
|
28
|
-
|
|
29
|
-
### Step 1: Import Component
|
|
30
|
-
``` typescript
|
|
31
|
-
import { FreeBeautyPanel } from 'tuikit-atomicx-vue3/room';
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Step 2: Use Component
|
|
35
|
-
|
|
36
|
-
It is generally recommended to place `FreeBeautyPanel` in a dialog or modal, triggered by button click.
|
|
37
|
-
|
|
38
|
-
**The following example shows how to implement a complete interaction for clicking a button to open beauty settings:**
|
|
39
|
-
|
|
40
|
-
> **Note:**
|
|
41
|
-
>
|
|
42
|
-
|
|
43
|
-
> All TUIKit components must be wrapped inside UIKitProvider, otherwise they will not be able to obtain context dependencies, causing style anomalies.
|
|
44
|
-
>
|
|
45
|
-
|
|
46
|
-
``` typescript
|
|
47
|
-
<template>
|
|
48
|
-
<UIKitProvider theme="light" language="zh-CN">
|
|
49
|
-
<div class="toolbar-container">
|
|
50
|
-
<!-- 1. Trigger button -->
|
|
51
|
-
<button @click="openBeautySettings">Beauty Settings</button>
|
|
52
|
-
|
|
53
|
-
<!-- 2. Settings dialog -->
|
|
54
|
-
<div v-if="showSettings" class="modal-mask">
|
|
55
|
-
<div class="modal-content">
|
|
56
|
-
<div class="modal-header">
|
|
57
|
-
<span>Basic Beauty</span>
|
|
58
|
-
<button @click="showSettings = false">Close</button>
|
|
59
|
-
</div>
|
|
60
|
-
|
|
61
|
-
<div class="modal-body">
|
|
62
|
-
<!-- 3. Import panel component -->
|
|
63
|
-
<!-- @close event: Triggered when user clicks the close button (if any) inside the panel -->
|
|
64
|
-
<FreeBeautyPanel @close="showSettings = false" />
|
|
65
|
-
</div>
|
|
66
|
-
</div>
|
|
67
|
-
</div>
|
|
68
|
-
</div>
|
|
69
|
-
</UIKitProvider>
|
|
70
|
-
</template>
|
|
71
|
-
|
|
72
|
-
<script setup lang="ts">
|
|
73
|
-
import { ref } from 'vue';
|
|
74
|
-
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
75
|
-
import { FreeBeautyPanel, useDeviceState } from 'tuikit-atomicx-vue3/room';
|
|
76
|
-
|
|
77
|
-
const showSettings = ref(false);
|
|
78
|
-
const { cameraList } = useDeviceState();
|
|
79
|
-
|
|
80
|
-
const openBeautySettings = () => {
|
|
81
|
-
// 1. Check if there is an available camera
|
|
82
|
-
if (cameraList.value.length === 0) {
|
|
83
|
-
alert('No camera detected, cannot set beauty effects');
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// 2. Open settings panel
|
|
88
|
-
showSettings.value = true;
|
|
89
|
-
};
|
|
90
|
-
</script>
|
|
91
|
-
|
|
92
|
-
<style scoped>
|
|
93
|
-
.modal-mask {
|
|
94
|
-
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
|
|
95
|
-
background: rgba(0,0,0,0.5); display: flex; justify-content: center; align-items: center; z-index: 1000;
|
|
96
|
-
}
|
|
97
|
-
.modal-content { background: white; width: 600px; border-radius: 8px; overflow: hidden; }
|
|
98
|
-
.modal-header { padding: 16px; display: flex; justify-content: space-between; border-bottom: 1px solid #eee; }
|
|
99
|
-
.modal-body { padding: 16px; }
|
|
100
|
-
</style>
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
The internal logic of this component is as follows:
|
|
104
|
-
- **Display Panel:** After users click the button, a dialog containing `FreeBeautyPanel` pops up.
|
|
105
|
-
|
|
106
|
-
- **Adjust Parameters:** Users drag sliders inside the panel to adjust skin smoothing, whitening, and ruddiness parameters.
|
|
107
|
-
|
|
108
|
-
- **Real-time Preview:** During adjustment, the preview interface is called in real-time to preview beauty effects.
|
|
109
|
-
|
|
110
|
-
- **Save and Apply:** When closing the panel (triggering `@close` event), the current settings are automatically saved to take effect for remote users.
|
|
111
|
-
|
|
112
|
-
## Solution 2: Custom Integration Using Underlying API
|
|
113
|
-
|
|
114
|
-
This section mainly introduces how to implement basic beauty through atomicx-core SDK API [useFreeBeautyState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-FreeBeautyState) interface.
|
|
115
|
-
|
|
116
|
-
### Step 1: Set Preview
|
|
117
|
-
|
|
118
|
-
When users adjust beauty parameters (e.g., dragging sliders), use [setFreeBeauty](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setFreeBeauty) for real-time preview. At this time, the effect is only visible locally and will not be transmitted to remote users.
|
|
119
|
-
|
|
120
|
-
> **Note:**
|
|
121
|
-
>
|
|
122
|
-
|
|
123
|
-
> Parameter values range from 0-100.
|
|
124
|
-
>
|
|
125
|
-
|
|
126
|
-
``` typescript
|
|
127
|
-
import { useFreeBeautyState } from 'tuikit-atomicx-vue3/room';
|
|
128
|
-
|
|
129
|
-
const { setFreeBeauty, beautyConfig } = useFreeBeautyState();
|
|
130
|
-
|
|
131
|
-
// Example: Adjust beauty parameters
|
|
132
|
-
const updatePreview = async (beauty: number, white: number, ruddy: number) => {
|
|
133
|
-
// The values in beautyConfig will update automatically, here's how to manually set preview
|
|
134
|
-
await setFreeBeauty({
|
|
135
|
-
beautyLevel: beauty, // Skin smoothing (0-100)
|
|
136
|
-
whitenessLevel: white, // Whitening (0-100)
|
|
137
|
-
ruddinessLevel: ruddy // Ruddiness (0-100)
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### Step 2: Save and Apply
|
|
143
|
-
|
|
144
|
-
After users confirm the preview effect is satisfactory, call [saveBeautySetting](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#saveBeautySetting) to apply the current configuration to the video stream. At this time, remote users can see the beauty effect.
|
|
145
|
-
|
|
146
|
-
> **Note:**
|
|
147
|
-
>
|
|
148
|
-
|
|
149
|
-
> The virtual background feature depends on camera devices. You can use [useDeviceState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-DeviceState) to check device status.
|
|
150
|
-
>
|
|
151
|
-
> - [cameraList](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#cameraList): List of currently available camera devices. If the list is empty, it means no camera was detected or camera permission was denied.
|
|
152
|
-
|
|
153
|
-
``` typescript
|
|
154
|
-
import { useFreeBeautyState } from 'tuikit-atomicx-vue3/room';
|
|
155
|
-
|
|
156
|
-
const { saveBeautySetting } = useFreeBeautyState();
|
|
157
|
-
|
|
158
|
-
const applyBeauty = async () => {
|
|
159
|
-
// Save the currently previewed settings to take effect for remote users
|
|
160
|
-
await saveBeautySetting();
|
|
161
|
-
console.log('Beauty effects applied');
|
|
162
|
-
};
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Step 3: Disable Beauty Effects
|
|
166
|
-
|
|
167
|
-
To disable beauty, simply set all parameters to 0 and save.
|
|
168
|
-
``` typescript
|
|
169
|
-
const closeBeauty = async () => {
|
|
170
|
-
// 1. Set all parameters to 0 and preview
|
|
171
|
-
await setFreeBeauty({
|
|
172
|
-
beautyLevel: 0,
|
|
173
|
-
whitenessLevel: 0,
|
|
174
|
-
ruddinessLevel: 0
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
// 2. Save to apply
|
|
178
|
-
await saveBeautySetting();
|
|
179
|
-
};
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
## Development Notes
|
|
183
|
-
- **Parameter Range:**`setFreeBeauty` accepts parameters (`beautyLevel`, `whitenessLevel`, `ruddinessLevel`) all ranging from 0-100.
|
|
184
|
-
|
|
185
|
-
- **Preview and Apply:** To provide better user experience, beauty adjustment is divided into **"preview"** and **"apply"** stages. `setFreeBeauty` is only used for local preview, and you must call `saveBeautySetting` to formally apply by calling `trtcCloud.setBeautyStyle` to the stream.
|
|
186
|
-
|
|
187
|
-
- **Device Dependencies:** Beauty features depend on video streams, so effects can only be seen when the camera is enabled. If no camera is detected, it is recommended to disable the beauty entry point.
|
|
188
|
-
|
|
189
|
-
- **Performance Consumption:** Enabling beauty will increase CPU and GPU load. It is recommended to guide users to use moderately on low-end devices.
|
|
190
|
-
|
|
191
|
-
## Common Questions
|
|
192
|
-
|
|
193
|
-
### **Why can't remote users see the effect after adjusting beauty?**
|
|
194
|
-
|
|
195
|
-
Please confirm if `saveBeautySetting()` was called. `setFreeBeauty()` is only used for local preview, and effects will only be applied to the streaming video after saving.
|
|
196
|
-
|
|
197
|
-
### **Can beauty be set without a camera?**
|
|
198
|
-
|
|
199
|
-
No. Beauty features process video streams. If no video is captured, beauty cannot take effect. It is recommended to hide or disable the beauty entry point when there is no camera.
|
|
200
|
-
|
|
201
|
-
### **Do I need to manually reset beauty after leaving the room or turning off the camera?**
|
|
202
|
-
|
|
203
|
-
No. `useFreeBeautyState` has internally implemented automatic state management:
|
|
204
|
-
- Camera switch: Beauty pauses when camera is turned off, and automatically restores the last saved settings when reopened.
|
|
205
|
-
|
|
206
|
-
- Entering/exiting rooms: All beauty parameters are automatically reset when exiting a room, no need for developers to clean up manually.
|
|
207
|
-
|
|
208
|
-
## **Sample Project**
|
|
209
|
-
|
|
210
|
-
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.
|
|
211
|
-
|
|
212
|
-
## API Documentation
|
|
213
|
-
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
214
|
-
| --- | --- | --- |
|
|
215
|
-
| **useFreeBeautyState** | Free beauty feature management | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-FreeBeautyState) |
|