@tencent-rtc/mcp 1.4.6 → 1.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cursor-setting.png +0 -0
- package/knowledge/bm25-cache.js +74 -0
- package/knowledge/bm25-cache.js.map +1 -0
- package/knowledge/bm25.js +148 -0
- package/knowledge/bm25.js.map +1 -0
- package/knowledge/build-index.js +70 -0
- package/knowledge/build-index.js.map +1 -0
- package/knowledge/chunker.js +168 -0
- package/knowledge/chunker.js.map +1 -0
- package/knowledge/content-loader.js +40 -0
- package/knowledge/content-loader.js.map +1 -0
- package/knowledge/doc-url-resolver.js +143 -0
- package/knowledge/doc-url-resolver.js.map +1 -0
- package/knowledge/extractors.js +26 -0
- package/knowledge/extractors.js.map +1 -0
- package/knowledge/path-meta.js +185 -0
- package/knowledge/path-meta.js.map +1 -0
- package/knowledge/search/exact-lookup.js +498 -0
- package/knowledge/search/exact-lookup.js.map +1 -0
- package/knowledge/search/filter-pool.js +105 -0
- package/knowledge/search/filter-pool.js.map +1 -0
- package/knowledge/search/product-scope-intent.js +41 -0
- package/knowledge/search/product-scope-intent.js.map +1 -0
- package/knowledge/search/requires-framework.js +82 -0
- package/knowledge/search/requires-framework.js.map +1 -0
- package/knowledge/search/search-knowledge.js +230 -0
- package/knowledge/search/search-knowledge.js.map +1 -0
- package/mcp-server-prompt.png +0 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +10 -0
- package/resource/_schema/goal-tags.yaml +72 -0
- package/resource/_schema/products.yaml +19 -0
- package/resource/_schema/trtc-intents.yaml +27 -0
- package/resource/_schema/types.yaml +43 -0
- package/resource/index/component-slugs.json +1 -0
- package/resource/index/doc-source-urls.json +1 -0
- package/resource/index/manifest.json +1 -0
- package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
- package/resource/integration/callkit/preset/flutter/integration.md +346 -0
- package/resource/integration/callkit/preset/ios/integration.md +408 -0
- package/resource/integration/callkit/preset/react/integration.md +362 -0
- package/resource/integration/callkit/preset/vue/integration.md +356 -0
- package/resource/integration/chat/preset/android/integration.md +500 -0
- package/resource/integration/chat/preset/flutter/integration.md +370 -0
- package/resource/integration/chat/preset/ios/integration.md +566 -0
- package/resource/integration/chat/preset/react/integration.md +490 -0
- package/resource/integration/chat/preset/vue/integration.md +504 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
- package/resource/integration/roomkit/preset/vue/integration.md +562 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
- package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
- package/resource/knowledge/callkit/faq/android.md +92 -0
- package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
- package/resource/knowledge/callkit/faq/error-code.md +67 -0
- package/resource/knowledge/callkit/faq/flutter.md +52 -0
- package/resource/knowledge/callkit/faq/ios.md +104 -0
- package/resource/knowledge/callkit/faq/web.md +74 -0
- package/resource/knowledge/callkit/preset/android/api.md +412 -0
- package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
- package/resource/knowledge/callkit/preset/ios/api.md +234 -0
- package/resource/knowledge/callkit/preset/web/api.md +83 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
- package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
- package/resource/knowledge/chat/preset/android/features/language.md +136 -0
- package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
- package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
- package/resource/knowledge/chat/preset/android/features/search.md +64 -0
- package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
- package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
- package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
- package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
- package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
- package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
- package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
- package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
- package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
- package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
- package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
- package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
- package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
- package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
- package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
- package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
- package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
- package/resource/knowledge/chat/urls/error-code.md +17 -0
- package/resource/knowledge/chat/urls/product.md +43 -0
- package/resource/knowledge/chat/urls/restapi.md +204 -0
- package/resource/knowledge/chat/urls/sdk/android.md +80 -0
- package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
- package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
- package/resource/knowledge/chat/urls/sdk/web.md +80 -0
- package/resource/knowledge/chat/urls/webhook.md +68 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
- package/resource/knowledge/livekit/faq/error-code.md +193 -0
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
- package/resource/knowledge/push/config/android.md +92 -0
- package/resource/knowledge/push/config/harmonyos.md +83 -0
- package/resource/knowledge/push/config/ios.md +254 -0
- package/resource/knowledge/push/config/react-native.md +254 -0
- package/resource/knowledge/push/config/unity.md +209 -0
- package/resource/knowledge/push/config/unreal-engine.md +194 -0
- package/resource/knowledge/push/integration/android.md +404 -0
- package/resource/knowledge/push/integration/flutter.md +465 -0
- package/resource/knowledge/push/integration/harmonyos.md +63 -0
- package/resource/knowledge/push/integration/ios.md +246 -0
- package/resource/knowledge/push/integration/react-native.md +366 -0
- package/resource/knowledge/push/integration/uni-app.md +208 -0
- package/resource/knowledge/push/integration/unity.md +389 -0
- package/resource/knowledge/push/integration/unreal-engine.md +390 -0
- package/resource/knowledge/push/overview/prepare.md +60 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
- package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
- package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
- package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
- package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
- package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
- package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
- package/server.js +35 -10
- package/server.js.map +1 -1
- package/tools/call/get_native_call_uikit_integration.js +2 -3
- package/tools/call/get_native_call_uikit_integration.js.map +1 -1
- package/tools/call/get_native_callkit_core_integration.js +2 -5
- package/tools/call/get_native_callkit_core_integration.js.map +1 -1
- package/tools/call/get_web_call_uikit_integration.js +2 -3
- package/tools/call/get_web_call_uikit_integration.js.map +1 -1
- package/tools/chat/get_native_chat_uikit_integration.js +2 -3
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -1
- package/tools/chat/get_web_chat_uikit_integration.js +2 -3
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -1
- package/tools/common/present_framework_choice.js +19 -13
- package/tools/common/present_framework_choice.js.map +1 -1
- package/tools/common/record_answer.js +19 -25
- package/tools/common/record_answer.js.map +1 -1
- package/tools/common/record_feedback.js +17 -30
- package/tools/common/record_feedback.js.map +1 -1
- package/tools/common/search_trtc_knowledge.js +45 -0
- package/tools/common/search_trtc_knowledge.js.map +1 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +3 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_callkit_core_integration_def.js +5 -3
- package/tools/definitions/get_native_callkit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -2
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_integration_def.js +6 -5
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +4 -2
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -0
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +5 -5
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_room_core_integration_def.js +50 -0
- package/tools/definitions/get_web_room_core_integration_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +5 -4
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/integration-boundary.js +6 -0
- package/tools/definitions/integration-boundary.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +12 -10
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/definitions/record_answer_def.js +19 -17
- package/tools/definitions/record_answer_def.js.map +1 -1
- package/tools/definitions/record_feedback_def.js +14 -13
- package/tools/definitions/record_feedback_def.js.map +1 -1
- package/tools/definitions/search_trtc_knowledge_def.js +40 -0
- package/tools/definitions/search_trtc_knowledge_def.js.map +1 -0
- package/tools/index.js +5 -36
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_integration.js +1 -3
- package/tools/live/get_native_livekit_core_integration.js.map +1 -1
- package/tools/live/get_web_live_uikit_integration.js +2 -4
- package/tools/live/get_web_live_uikit_integration.js.map +1 -1
- package/tools/room/get_web_room_core_integration.js +48 -0
- package/tools/room/get_web_room_core_integration.js.map +1 -0
- package/tools/room/get_web_room_uikit_integration.js +2 -3
- package/tools/room/get_web_room_uikit_integration.js.map +1 -1
- package/utils/generate-structured-result.js +24 -30
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/get-doc-content.js +14 -8
- package/utils/get-doc-content.js.map +1 -1
- package/utils/report-cls-client.js +18 -20
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
- package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
- package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
- package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
- package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
- package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
- package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
- package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
- package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
- package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
- package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
- package/resource/doc/callkit/faq/common/error-code.md +0 -47
- package/resource/doc/callkit/faq/flutter-faq.md +0 -115
- package/resource/doc/callkit/faq/ios-faq.md +0 -115
- package/resource/doc/callkit/faq/web-faq.md +0 -36
- package/resource/doc/callkit/preset/android/api.md +0 -296
- package/resource/doc/callkit/preset/flutter/api.md +0 -410
- package/resource/doc/callkit/preset/flutter/integration.md +0 -164
- package/resource/doc/callkit/preset/ios/api.md +0 -80
- package/resource/doc/callkit/preset/ios/integration.md +0 -187
- package/resource/doc/callkit/preset/react/api.md +0 -501
- package/resource/doc/callkit/preset/react/integration.md +0 -86
- package/resource/doc/callkit/preset/vue/api.md +0 -501
- package/resource/doc/callkit/preset/vue/integration.md +0 -83
- package/resource/doc/chatkit/android/faq.md +0 -111
- package/resource/doc/chatkit/android/features/theme.md +0 -219
- package/resource/doc/chatkit/android/integration.md +0 -490
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
- package/resource/doc/chatkit/faq/common/product.md +0 -7
- package/resource/doc/chatkit/faq/common/server.md +0 -44
- package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
- package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
- package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
- package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
- package/resource/doc/chatkit/flutter/faq.md +0 -23
- package/resource/doc/chatkit/flutter/features/theme.md +0 -235
- package/resource/doc/chatkit/flutter/integration.md +0 -344
- package/resource/doc/chatkit/ios/faq.md +0 -111
- package/resource/doc/chatkit/ios/features/theme.md +0 -267
- package/resource/doc/chatkit/react/components/avatar.md +0 -104
- package/resource/doc/chatkit/react/components/chat-header.md +0 -148
- package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
- package/resource/doc/chatkit/react/components/chat.md +0 -38
- package/resource/doc/chatkit/react/components/component-list.md +0 -37
- package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
- package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
- package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
- package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
- package/resource/doc/chatkit/react/components/message-list.md +0 -293
- package/resource/doc/chatkit/react/components/tuikit.md +0 -34
- package/resource/doc/chatkit/react/faq.md +0 -26
- package/resource/doc/chatkit/react/integration.md +0 -416
- package/resource/doc/chatkit/vue/components/avatar.md +0 -104
- package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
- package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
- package/resource/doc/chatkit/vue/components/chat.md +0 -45
- package/resource/doc/chatkit/vue/components/component-list.md +0 -87
- package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
- package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
- package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
- package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
- package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
- package/resource/doc/chatkit/vue/components/message-list.md +0 -433
- package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
- package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
- package/resource/doc/chatkit/vue/faq.md +0 -36
- package/resource/doc/chatkit/vue/integration.md +0 -428
- package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
- package/resource/doc/livekit/faq/common/error-code.md +0 -88
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
- package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
- package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
- package/resource/doc/roomkit/faq/common/error-code.md +0 -67
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
- package/resource/doc/roomkit/vue/features/device-state.md +0 -460
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
- package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
- package/resource/doc/roomkit/vue/features/room-state.md +0 -282
- package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
- package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
- package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
- package/resource/doc/roomkit/vue/integration.md +0 -315
- package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
- package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
- package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
- package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
- package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
- package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
- package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
- package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
- package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
- package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
- package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
- package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
- package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
- package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
- package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
- package/tools/call/get_callkit_api.js +0 -33
- package/tools/call/get_callkit_api.js.map +0 -1
- package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
- package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
- package/tools/common/get_faq.js +0 -266
- package/tools/common/get_faq.js.map +0 -1
- package/tools/common/record_skill_session.js +0 -69
- package/tools/common/record_skill_session.js.map +0 -1
- package/tools/definitions/get_callkit_api_def.js +0 -29
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -49
- package/tools/definitions/get_faq_def.js.map +0 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
- package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_api_def.js +0 -30
- package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
- package/tools/definitions/record_skill_session_def.js +0 -31
- package/tools/definitions/record_skill_session_def.js.map +0 -1
- package/tools/live/get_native_livekit_core_features.js +0 -68
- package/tools/live/get_native_livekit_core_features.js.map +0 -1
- package/tools/live/get_web_livekit_api.js +0 -33
- package/tools/live/get_web_livekit_api.js.map +0 -1
- package/tools/live/get_web_livekit_component_detail.js +0 -35
- package/tools/live/get_web_livekit_component_detail.js.map +0 -1
- package/tools/room/get_web_roomkit_feature_detail.js +0 -69
- package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
- package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
- package/utils/build-session-directives.js +0 -120
- package/utils/build-session-directives.js.map +0 -1
- package/utils/handle-framework.js +0 -9
- package/utils/handle-framework.js.map +0 -1
- package/utils/handle-state-name.js +0 -29
- package/utils/handle-state-name.js.map +0 -1
- package/utils/report-runtime-error-cls-client.js +0 -91
- package/utils/report-runtime-error-cls-client.js.map +0 -1
- /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
- /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
- /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
|
@@ -0,0 +1,588 @@
|
|
|
1
|
+
`RoomParticipantStore` is a module in `AtomicXCore` for managing participants in a conference room. It provides the core building blocks for multi-party conferencing—so you can implement reliable participant and role management.
|
|
2
|
+
|
|
3
|
+
## Core Features
|
|
4
|
+
- **Get the participant list**: Retrieve details for everyone currently in the room.
|
|
5
|
+
|
|
6
|
+
- **Transfer room ownership**: The current owner can transfer ownership to another participant.
|
|
7
|
+
|
|
8
|
+
- **Grant/revoke admin role**: The owner can promote participants to admins and revoke admin privileges.
|
|
9
|
+
|
|
10
|
+
- **Remove a participant**: The owner or an admin can remove a participant from the room.
|
|
11
|
+
|
|
12
|
+
- **Update participant profile**: Participants can update their own in-room profile information.
|
|
13
|
+
|
|
14
|
+
- **Manage audio/video devices**: Invite participants to enable camera/mic, remotely turn off another participant’s camera/mic, and (for owners/admins) mute all or disable all video.
|
|
15
|
+
|
|
16
|
+
## Core Concepts
|
|
17
|
+
|
|
18
|
+
The core concepts of `RoomParticipantStore` is summarized as follows:
|
|
19
|
+
| Core Concept | Type | Core Responsibilities & Description |
|
|
20
|
+
| --- | --- | --- |
|
|
21
|
+
| <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant/index.html">RoomParticipant</a> | <code>data class</code> | Represents the participant data model, encapsulating participant information and state management.<br>Main functions include managing participant basic information (user ID, user name, user avatar, in-room role) and managing device status (microphone, camera, screen sharing, message status). |
|
|
22
|
+
| <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-state/index.html">RoomParticipantState</a> | <code>data class</code> | Represents the participant state management structure, responsible for maintaining participant-related state information in the room. Main properties:<br>- <code>participantList</code>: collection of all participant information in the current room.<br>- <code>participantListCursor</code>: snapshot for paginated participant list.<br>- <code>localParticipant</code>: current user's participant information in the room. |
|
|
23
|
+
| <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-listener/index.html">RoomParticipantListener</a> | <code>abstract class</code> | Handles real-time participant events in the room, grouped as join/exit events, role change events, and device control events. |
|
|
24
|
+
| <a href="https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-store/index.html">RoomParticipantStore</a> | <code>abstract class</code> | Core class for participant control. Functions include managing participant audio/video status, participant management operations, and subscribing to<br><code>RoomParticipantListener</code> for real-time events. |
|
|
25
|
+
|
|
26
|
+
## Implementation Steps
|
|
27
|
+
|
|
28
|
+
### Step 1: Add the SDK
|
|
29
|
+
|
|
30
|
+
Follow the Integration Overview to integrate the AtomicXCore SDK. Make sure you have completed the Implement Login Logic before proceeding.
|
|
31
|
+
|
|
32
|
+
### Step 2: Retrieve the Participant List
|
|
33
|
+
|
|
34
|
+
After entering the room, use the `getParticipantList` method of `RoomParticipantStore` to get the current list of participants.
|
|
35
|
+
``` java
|
|
36
|
+
import android.util.Log
|
|
37
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
38
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipant
|
|
39
|
+
import io.trtc.tuikit.atomicxcore.api.ListResultCompletionHandler
|
|
40
|
+
|
|
41
|
+
fun getParticipantList() {
|
|
42
|
+
// Prerequisite: You must be in the room and have created a RoomParticipantStore instance with roomID
|
|
43
|
+
val roomID = "test_room_001"
|
|
44
|
+
val participantStore = RoomParticipantStore.create(roomID)
|
|
45
|
+
|
|
46
|
+
// Fetch participant list, supports pagination via cursor
|
|
47
|
+
val initialCursor: String? = null // null fetches the first page
|
|
48
|
+
|
|
49
|
+
participantStore.getParticipantList(initialCursor, object : ListResultCompletionHandler<RoomParticipant> {
|
|
50
|
+
override fun onSuccess(result: List<RoomParticipant>, cursor: String) {
|
|
51
|
+
Log.d("Participant", "Retrieved participant list, count: ${result.size}")
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
override fun onFailure(code: Int, desc: String) {
|
|
55
|
+
Log.e("Participant", "Failed to retrieve participant list [Error code: $code]: $desc")
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Step 3: Search Room Members
|
|
62
|
+
|
|
63
|
+
Once you've entered the room, call the `searchUsers` method of `RoomParticipantStore` to search for members.
|
|
64
|
+
``` java
|
|
65
|
+
import android.util.Log
|
|
66
|
+
import io.trtc.tuikit.atomicxcore.api.ListResultCompletionHandler
|
|
67
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
68
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomUser
|
|
69
|
+
|
|
70
|
+
fun searchUsers() {
|
|
71
|
+
// Prerequisite: You must be in the room.
|
|
72
|
+
val participantStore = RoomParticipantStore.create(roomID = "your_room_id")
|
|
73
|
+
|
|
74
|
+
// Search by user name keyword
|
|
75
|
+
val keyword = "userName"
|
|
76
|
+
|
|
77
|
+
participantStore.searchUsers(keyword = keyword, completion = object : ListResultCompletionHandler<RoomUser> {
|
|
78
|
+
override fun onSuccess(result: List<RoomUser>, cursor: String) {
|
|
79
|
+
Log.d("Test", "Search succeeded, member count: ${result.size}")
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
override fun onFailure(code: Int, desc: String) {
|
|
83
|
+
Log.e("Test", "Search failed [Error code: $code]: $desc")
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Step 4: Transfer the Room Ownership
|
|
90
|
+
|
|
91
|
+
If you're the owner, use `transferOwner` in `RoomParticipantStore` to transfer ownership to any participant. After transfer, the previous owner becomes a regular participant. Each room can have only one owner.
|
|
92
|
+
``` java
|
|
93
|
+
import android.util.Log
|
|
94
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
95
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
96
|
+
|
|
97
|
+
fun transferOwner(userID: String) {
|
|
98
|
+
// Prerequisite: You must be in the room and have a RoomParticipantStore instance
|
|
99
|
+
val roomID = "test_room_001"
|
|
100
|
+
val participantStore = RoomParticipantStore.create(roomID)
|
|
101
|
+
|
|
102
|
+
// Only the current owner can perform this operation
|
|
103
|
+
participantStore.transferOwner(userID, object : CompletionHandler {
|
|
104
|
+
override fun onSuccess() {
|
|
105
|
+
Log.d("Participant", "Ownership transferred, new owner: $userID")
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
override fun onFailure(code: Int, desc: String) {
|
|
109
|
+
Log.e("Participant", "Ownership transfer failed [Error code: $code]: $desc")
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Participants can subscribe to the `onOwnerChanged` event in `RoomParticipantListener` to receive ownership change notifications.
|
|
116
|
+
``` java
|
|
117
|
+
import android.util.Log
|
|
118
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
119
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
120
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomUser
|
|
121
|
+
|
|
122
|
+
private val roomID = "test_room_001"
|
|
123
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
124
|
+
|
|
125
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
126
|
+
override fun onOwnerChanged(newOwner: RoomUser, oldOwner: RoomUser) {
|
|
127
|
+
Log.d("Participant", "Ownership changed: newOwner: $newOwner, oldOwner: $oldOwner")
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
private fun subscribeParticipantEvent() {
|
|
132
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Step 5: Grant/Revoke Admin
|
|
137
|
+
|
|
138
|
+
Owners can call `setAdmin` in `RoomParticipantStore` to assign a user as admin, or `revokeAdmin` to remove admin privileges.
|
|
139
|
+
``` java
|
|
140
|
+
import android.util.Log
|
|
141
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
142
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
143
|
+
|
|
144
|
+
private val roomID = "test_room_001"
|
|
145
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
146
|
+
|
|
147
|
+
fun setUserAsAdmin(userID: String) {
|
|
148
|
+
participantStore.setAdmin(userID, object : CompletionHandler {
|
|
149
|
+
override fun onSuccess() {
|
|
150
|
+
Log.d("Participant", "Assigned user $userID as admin")
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
override fun onFailure(code: Int, desc: String) {
|
|
154
|
+
Log.e("Participant", "Assign admin failed [Error code: $code]: $desc")
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
fun revokeAdmin(userID: String) {
|
|
160
|
+
participantStore.revokeAdmin(userID, object : CompletionHandler {
|
|
161
|
+
override fun onSuccess() {
|
|
162
|
+
Log.d("Participant", "Revoked admin privileges for user $userID")
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
override fun onFailure(code: Int, desc: String) {
|
|
166
|
+
Log.e("Participant", "Revoke admin failed [Error code: $code]: $desc")
|
|
167
|
+
}
|
|
168
|
+
})
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Participants can subscribe to `onAdminSet` and `onAdminRevoked` events in `RoomParticipantListener` to receive updates about role changes.
|
|
173
|
+
``` java
|
|
174
|
+
import android.util.Log
|
|
175
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
176
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
177
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomUser
|
|
178
|
+
|
|
179
|
+
private val roomID = "test_room_001"
|
|
180
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
181
|
+
|
|
182
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
183
|
+
override fun onAdminSet(userInfo: RoomUser) {
|
|
184
|
+
Log.d("Participant", "Admin assigned: $userInfo")
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
override fun onAdminRevoked(userInfo: RoomUser) {
|
|
188
|
+
Log.d("Participant", "Admin revoked: $userInfo")
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
private fun subscribeParticipantEvents() {
|
|
193
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Step 6: Remove Participants from a Room
|
|
198
|
+
|
|
199
|
+
Owners or admins can call `kickUser` in `RoomParticipantStore` to remove a participant.
|
|
200
|
+
``` java
|
|
201
|
+
import android.util.Log
|
|
202
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
203
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
204
|
+
|
|
205
|
+
private val roomID = "test_room_001"
|
|
206
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
207
|
+
|
|
208
|
+
fun kickUser(userID: String) {
|
|
209
|
+
// Only owners or admins can perform this operation
|
|
210
|
+
participantStore.kickUser(userID, object : CompletionHandler {
|
|
211
|
+
override fun onSuccess() {
|
|
212
|
+
Log.d("Participant", "User removed: $userID")
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
override fun onFailure(code: Int, desc: String) {
|
|
216
|
+
Log.e("Participant", "Remove user failed [Error code: $code]: $desc")
|
|
217
|
+
}
|
|
218
|
+
})
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Participants can subscribe to `onKickedFromRoom` in `RoomParticipantListener` to receive removal notifications.
|
|
223
|
+
``` java
|
|
224
|
+
import android.util.Log
|
|
225
|
+
import io.trtc.tuikit.atomicxcore.api.room.KickedOutOfRoomReason
|
|
226
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
227
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
228
|
+
|
|
229
|
+
private val roomID = "test_room_001"
|
|
230
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
231
|
+
|
|
232
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
233
|
+
override fun onKickedFromRoom(reason: KickedOutOfRoomReason, message: String) {
|
|
234
|
+
Log.d("Participant", "Removed from room: reason: $reason, info: $message")
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
private fun subscribeParticipantEvents() {
|
|
239
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Step 7: Update the Participant Information
|
|
244
|
+
|
|
245
|
+
After joining the room, use `updateParticipantNameCard` and `updateParticipantMetaData` in `RoomParticipantStore` to update your information, such as name card and custom metadata.
|
|
246
|
+
``` java
|
|
247
|
+
import android.util.Log
|
|
248
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
249
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
250
|
+
|
|
251
|
+
private val roomID = "test_room_001"
|
|
252
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
253
|
+
|
|
254
|
+
fun updateParticipantNameCard(userID: String, nameCard: String) {
|
|
255
|
+
// Only admins or the user themselves can modify the name card
|
|
256
|
+
participantStore.updateParticipantNameCard(userID, nameCard, object : CompletionHandler {
|
|
257
|
+
override fun onSuccess() {
|
|
258
|
+
Log.d("Participant", "Name card updated: user: $userID, new name card: $nameCard")
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
override fun onFailure(code: Int, desc: String) {
|
|
262
|
+
Log.e("Participant", "Name card update failed [Error code: $code]: $desc")
|
|
263
|
+
}
|
|
264
|
+
})
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
fun updateParticipantMetaData(userID: String, metaData: HashMap<String, ByteArray>) {
|
|
268
|
+
// Key length ≤ 50 bytes, value length ≤ 200 bytes
|
|
269
|
+
participantStore.updateParticipantMetaData(userID, metaData, object : CompletionHandler {
|
|
270
|
+
override fun onSuccess() {
|
|
271
|
+
Log.d("Participant", "Custom metadata updated: user: $userID, key count: ${metaData.size}")
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
override fun onFailure(code: Int, desc: String) {
|
|
275
|
+
Log.e("Participant", "Custom metadata update failed [Error code: $code]: $desc")
|
|
276
|
+
}
|
|
277
|
+
})
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Step 8: Invite Participants to Enable Their Devices
|
|
282
|
+
|
|
283
|
+
Owners or admins can call `inviteToOpenDevice` in `RoomParticipantStore` to invite participants to turn on their camera or microphone.
|
|
284
|
+
``` java
|
|
285
|
+
import android.util.Log
|
|
286
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
287
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
288
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
289
|
+
|
|
290
|
+
private val roomID = "test_room_001"
|
|
291
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
292
|
+
|
|
293
|
+
fun inviteUserToOpenDevice(userID: String, device: DeviceType, timeout: Int = 30) {
|
|
294
|
+
// Invited participants will receive a notification and can accept or decline
|
|
295
|
+
participantStore.inviteToOpenDevice(userID, device, timeout, object : CompletionHandler {
|
|
296
|
+
override fun onSuccess() {
|
|
297
|
+
Log.d("Participant", "Device invitation sent: user: $userID, device: $device")
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
override fun onFailure(code: Int, desc: String) {
|
|
301
|
+
Log.e("Participant", "Device invitation failed [Error code: $code]: $desc")
|
|
302
|
+
}
|
|
303
|
+
})
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Participants should:
|
|
308
|
+
- Subscribe to `onDeviceInvitationReceived` in `RoomParticipantListener` to receive device invitations.
|
|
309
|
+
|
|
310
|
+
- Call `acceptOpenDeviceInvitation` or `declineOpenDeviceInvitation` to respond.
|
|
311
|
+
|
|
312
|
+
``` java
|
|
313
|
+
import android.util.Log
|
|
314
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
315
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
316
|
+
import io.trtc.tuikit.atomicxcore.api.room.DeviceRequestInfo
|
|
317
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
318
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
319
|
+
|
|
320
|
+
private val roomID = "test_room_001"
|
|
321
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
322
|
+
|
|
323
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
324
|
+
override fun onDeviceInvitationReceived(invitation: DeviceRequestInfo) {
|
|
325
|
+
Log.d("Participant", "Device invitation received: device: ${invitation.device}, sender: ${invitation.senderUserName}")
|
|
326
|
+
// Handle acceptance or decline
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
private fun subscribeParticipantEvents() {
|
|
331
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
fun acceptOpenDeviceInvitation(userID: String, device: DeviceType) {
|
|
335
|
+
participantStore.acceptOpenDeviceInvitation(userID, device, object : CompletionHandler {
|
|
336
|
+
override fun onSuccess() {
|
|
337
|
+
Log.d("Participant", "Accepted device invitation: device: $device")
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
override fun onFailure(code: Int, desc: String) {
|
|
341
|
+
Log.e("Participant", "Accept device invitation failed [Error code: $code]: $desc")
|
|
342
|
+
}
|
|
343
|
+
})
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
fun declineOpenDeviceInvitation(userID: String, device: DeviceType) {
|
|
347
|
+
participantStore.declineOpenDeviceInvitation(userID, device, object : CompletionHandler {
|
|
348
|
+
override fun onSuccess() {
|
|
349
|
+
Log.d("Participant", "Declined device invitation: device: $device")
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
override fun onFailure(code: Int, desc: String) {
|
|
353
|
+
Log.e("Participant", "Decline device invitation failed [Error code: $code]: $desc")
|
|
354
|
+
}
|
|
355
|
+
})
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Step 9: Close Remote Participant Devices
|
|
360
|
+
|
|
361
|
+
Owners or admins can call `closeParticipantDevice` in `RoomParticipantStore` to remotely disable a participant's camera or microphone.
|
|
362
|
+
``` java
|
|
363
|
+
import android.util.Log
|
|
364
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
365
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
366
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
367
|
+
|
|
368
|
+
private val roomID = "test_room_001"
|
|
369
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
370
|
+
|
|
371
|
+
fun closeParticipantDevice(userID: String, device: DeviceType) {
|
|
372
|
+
participantStore.closeParticipantDevice(userID, device, object : CompletionHandler {
|
|
373
|
+
override fun onSuccess() {
|
|
374
|
+
Log.d("Participant", "Closed participant device: user: $userID, device: $device")
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
override fun onFailure(code: Int, desc: String) {
|
|
378
|
+
Log.e("Participant", "Close participant device failed [Error code: $code]: $desc")
|
|
379
|
+
}
|
|
380
|
+
})
|
|
381
|
+
}
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Participants can listen for `onParticipantDeviceClosed` in `RoomParticipantListener` to receive device closure notifications and update their UI.
|
|
385
|
+
``` java
|
|
386
|
+
import android.util.Log
|
|
387
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
388
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
389
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
390
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomUser
|
|
391
|
+
|
|
392
|
+
private val roomID = "test_room_001"
|
|
393
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
394
|
+
|
|
395
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
396
|
+
override fun onParticipantDeviceClosed(device: DeviceType, operator: RoomUser) {
|
|
397
|
+
Log.d("Participant", "Device closed: device: $device, operator: ${operator.userName}")
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
private fun subscribeParticipantEvents() {
|
|
402
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
403
|
+
}
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Step 10: Request Permission to Turn On Devices
|
|
407
|
+
|
|
408
|
+
Participants can call `requestToOpenDevice` in `RoomParticipantStore` to request permission to enable their camera or microphone if mute all or disable all video is active.
|
|
409
|
+
``` java
|
|
410
|
+
import android.util.Log
|
|
411
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
412
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
413
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
414
|
+
|
|
415
|
+
private val roomID = "test_room_001"
|
|
416
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
417
|
+
|
|
418
|
+
fun requestToOpenDevice(device: DeviceType, timeout: Int = 30) {
|
|
419
|
+
participantStore.requestToOpenDevice(device, timeout, object : CompletionHandler {
|
|
420
|
+
override fun onSuccess() {
|
|
421
|
+
Log.d("Participant", "Request to enable device sent: device: $device")
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
override fun onFailure(code: Int, desc: String) {
|
|
425
|
+
Log.e("Participant", "Request to enable device failed [Error code: $code]: $desc")
|
|
426
|
+
}
|
|
427
|
+
})
|
|
428
|
+
}
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
Owners or admins should:
|
|
432
|
+
- Subscribe to `onDeviceRequestReceived` in `RoomParticipantListener` to receive device requests.
|
|
433
|
+
|
|
434
|
+
- Use `approveOpenDeviceRequest` or `rejectOpenDeviceRequest` to respond.
|
|
435
|
+
|
|
436
|
+
``` java
|
|
437
|
+
import android.util.Log
|
|
438
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
439
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
440
|
+
import io.trtc.tuikit.atomicxcore.api.room.DeviceRequestInfo
|
|
441
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
442
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
443
|
+
|
|
444
|
+
private val roomID = "test_room_001"
|
|
445
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
446
|
+
|
|
447
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
448
|
+
override fun onDeviceRequestReceived(request: DeviceRequestInfo) {
|
|
449
|
+
Log.d("Participant", "Device request: user: ${request.senderUserName}, device: ${request.device}")
|
|
450
|
+
// Approve or reject the request
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
private fun subscribeParticipantEvents() {
|
|
455
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
fun approveOpenDeviceRequest(device: DeviceType, userID: String) {
|
|
459
|
+
participantStore.approveOpenDeviceRequest(device, userID, object : CompletionHandler {
|
|
460
|
+
override fun onSuccess() {
|
|
461
|
+
Log.d("Participant", "Device request approved: user: $userID, device: $device")
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
override fun onFailure(code: Int, desc: String) {
|
|
465
|
+
Log.e("Participant", "Device request approval failed: $desc")
|
|
466
|
+
}
|
|
467
|
+
})
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
fun rejectOpenDeviceRequest(device: DeviceType, userID: String) {
|
|
471
|
+
participantStore.rejectOpenDeviceRequest(device, userID, object : CompletionHandler {
|
|
472
|
+
override fun onSuccess() {
|
|
473
|
+
Log.d("Participant", "Device request rejected: user: $userID, device: $device")
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
override fun onFailure(code: Int, desc: String) {
|
|
477
|
+
Log.e("Participant", "Device request rejection failed [Error code: $code]: $desc")
|
|
478
|
+
}
|
|
479
|
+
})
|
|
480
|
+
}
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### Step 11: Mute/Disable All Videos
|
|
484
|
+
|
|
485
|
+
Owners or admins can call `disableAllDevices` in `RoomParticipantStore` to mute all microphones or disable all cameras in the room. When enabled, participants cannot independently turn on their microphone or camera.
|
|
486
|
+
``` java
|
|
487
|
+
import android.util.Log
|
|
488
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
489
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
490
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
491
|
+
|
|
492
|
+
private val roomID = "test_room_001"
|
|
493
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
494
|
+
|
|
495
|
+
fun disableAllDevices(device: DeviceType, disable: Boolean) {
|
|
496
|
+
participantStore.disableAllDevices(device, disable, object : CompletionHandler {
|
|
497
|
+
override fun onSuccess() {
|
|
498
|
+
val action = if (disable) "Disabled" else "Enabled"
|
|
499
|
+
Log.d("Participant", "${action} all ${device} successfully")
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
override fun onFailure(code: Int, desc: String) {
|
|
503
|
+
val action = if (disable) "Disabled" else "Enabled"
|
|
504
|
+
Log.e("Participant", "${action} all ${device} failed [Error code: $code]: $desc")
|
|
505
|
+
}
|
|
506
|
+
})
|
|
507
|
+
}
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
Participants can subscribe to `onAllDevicesDisabled` in `RoomParticipantListener` to track mute all or disable all video actions and update their UI. When restricted, participants must submit requests to enable their camera or microphone.
|
|
511
|
+
``` java
|
|
512
|
+
import android.util.Log
|
|
513
|
+
import io.trtc.tuikit.atomicxcore.api.device.DeviceType
|
|
514
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
515
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
516
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomUser
|
|
517
|
+
|
|
518
|
+
private val roomID = "test_room_001"
|
|
519
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
520
|
+
|
|
521
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
522
|
+
override fun onAllDevicesDisabled(device: DeviceType, disable: Boolean, operator: RoomUser) {
|
|
523
|
+
val action = if (disable) "Disabled" else "Enabled"
|
|
524
|
+
Log.d("Participant", "All ${device} ${action}: operator: ${operator.userName}")
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
private fun subscribeParticipantEvents() {
|
|
529
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
530
|
+
}
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
### Step 12: Listen for Participant Events
|
|
534
|
+
|
|
535
|
+
Subscribe to participant events in `RoomParticipantListener` to track who joins or leaves the room.
|
|
536
|
+
``` java
|
|
537
|
+
import android.util.Log
|
|
538
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantListener
|
|
539
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
540
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomUser
|
|
541
|
+
|
|
542
|
+
private val roomID = "test_room_001"
|
|
543
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
544
|
+
|
|
545
|
+
private val participantListener = object : RoomParticipantListener() {
|
|
546
|
+
override fun onParticipantJoined(participant: RoomUser) {
|
|
547
|
+
Log.d("Participant", "Participant joined: user: ${participant.userName}, ID: ${participant.userID}")
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
override fun onParticipantLeft(participant: RoomUser) {
|
|
551
|
+
Log.d("Participant", "Participant left: user: ${participant.userName}, ID: ${participant.userID}")
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
private fun subscribeParticipantEvents() {
|
|
556
|
+
participantStore.addRoomParticipantListener(participantListener)
|
|
557
|
+
}
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
You can also subscribe to participant state changes in `RoomParticipantState`, such as tracking users who are currently speaking.
|
|
561
|
+
``` java
|
|
562
|
+
import android.util.Log
|
|
563
|
+
import io.trtc.tuikit.atomicxcore.api.room.RoomParticipantStore
|
|
564
|
+
import kotlinx.coroutines.CoroutineScope
|
|
565
|
+
import kotlinx.coroutines.Dispatchers
|
|
566
|
+
import kotlinx.coroutines.launch
|
|
567
|
+
|
|
568
|
+
private val roomID = "test_room_001"
|
|
569
|
+
private val participantStore = RoomParticipantStore.create(roomID)
|
|
570
|
+
|
|
571
|
+
private fun subscribeParticipantState() {
|
|
572
|
+
CoroutineScope(Dispatchers.Main).launch {
|
|
573
|
+
participantStore.state.speakingUsers.collect { speakingUsers ->
|
|
574
|
+
Log.d("Participant", "Speaking users updated: count: ${speakingUsers.size}")
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
## API Documentation
|
|
581
|
+
|
|
582
|
+
|Store/Component|Description|API Documentation|
|
|
583
|
+
|---------|---------|---------|
|
|
584
|
+
|**RoomParticipantStore**|Manages room participants: assign admin, transfer ownership, retrieve participant list, remove participant, control participant devices (close, invite to enable camera/microphone, etc.), request device enablement.|[API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.room/-room-participant-store/index.html)|
|
|
585
|
+
|
|
586
|
+
## Contact Us
|
|
587
|
+
|
|
588
|
+
If you have any questions or suggestions during integration or use, please contact info_rtc@tencent.com.
|