@tencent-rtc/mcp 1.3.8 → 1.4.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/package.json +2 -2
- package/resource/doc/{tuicallkit/iOS/faq.md → callkit/faq/android-faq.md} +10 -22
- package/resource/doc/{tuicallkit/android/faq.md → callkit/faq/flutter-faq.md} +10 -22
- package/resource/doc/{tuicallkit/flutter/faq.md → callkit/faq/ios-faq.md} +10 -22
- package/resource/doc/callkit/preset/android/api.md +296 -0
- package/resource/doc/callkit/preset/android/integration.md +430 -0
- package/resource/doc/callkit/preset/flutter/api.md +410 -0
- package/resource/doc/{tuicallkit → callkit/preset}/flutter/integration.md +35 -97
- package/resource/doc/callkit/preset/ios/api.md +80 -0
- package/resource/doc/{tuicallkit/iOS → callkit/preset/ios}/integration.md +37 -118
- package/resource/doc/callkit/preset/react/api.md +501 -0
- package/resource/doc/{tuicallkit → callkit/preset}/react/integration.md +5 -20
- package/resource/doc/callkit/preset/vue/api.md +501 -0
- package/resource/doc/{tuicallkit → callkit/preset}/vue/integration.md +4 -19
- package/resource/doc/{chatuikit → chatkit}/android/faq.md +29 -38
- package/resource/doc/{chatuikit → chatkit}/android/features/theme.md +22 -166
- package/resource/doc/chatkit/android/integration.md +490 -0
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +281 -0
- package/resource/doc/{chatuikit → chatkit}/faq/common/product.md +0 -1
- package/resource/doc/{chatuikit → chatkit}/faq/common/server.md +1 -1
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +199 -0
- package/resource/doc/{chatuikit → chatkit}/faq/flutter_sdk/faq.md +3 -3
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +235 -0
- package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/faq.md +3 -3
- package/resource/doc/{chatuikit → chatkit}/flutter/features/theme.md +22 -166
- package/resource/doc/{chatuikit → chatkit}/flutter/integration.md +19 -88
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/faq.md +29 -38
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/features/theme.md +27 -176
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/integration.md +47 -165
- package/resource/doc/{chatuikit → chatkit}/react/components/avatar.md +0 -33
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-header.md +8 -49
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-setting.md +6 -35
- package/resource/doc/{chatuikit → chatkit}/react/components/chat.md +0 -6
- package/resource/doc/{chatuikit → chatkit}/react/components/component-list.md +0 -11
- package/resource/doc/{chatuikit → chatkit}/react/components/contact-list.md +96 -502
- package/resource/doc/chatkit/react/components/conversation-actions.md +174 -0
- package/resource/doc/chatkit/react/components/conversation-list.md +333 -0
- package/resource/doc/chatkit/react/components/conversation-preview.md +118 -0
- package/resource/doc/chatkit/react/components/conversation-search.md +60 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/message-input.md +36 -337
- package/resource/doc/{chatuikit → chatkit}/react/components/message-list.md +20 -212
- package/resource/doc/chatkit/react/components/search.md +243 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/tuikit.md +1 -47
- package/resource/doc/{chatuikit → chatkit}/react/integration.md +21 -81
- package/resource/doc/{chatuikit → chatkit}/vue/components/avatar.md +0 -33
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-header.md +7 -48
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-setting.md +3 -5
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat.md +0 -5
- package/resource/doc/{chatuikit → chatkit}/vue/components/component-list.md +0 -15
- package/resource/doc/chatkit/vue/components/contact-list.md +271 -0
- package/resource/doc/chatkit/vue/components/conversation-actions.md +228 -0
- package/resource/doc/{chatuikit → chatkit}/vue/components/conversation-list.md +42 -492
- package/resource/doc/chatkit/vue/components/conversation-preview.md +213 -0
- package/resource/doc/chatkit/vue/components/conversation-search.md +50 -0
- package/resource/doc/{chatuikit → chatkit}/vue/components/message-input.md +2 -223
- package/resource/doc/{chatuikit → chatkit}/vue/components/message-list.md +23 -252
- package/resource/doc/{chatuikit → chatkit}/vue/components/search.md +73 -640
- package/resource/doc/{chatuikit → chatkit}/vue/components/tuikit.md +7 -21
- package/resource/doc/{chatuikit → chatkit}/vue/components/userpicker.md +3 -62
- package/resource/doc/{chatuikit → chatkit}/vue/faq.md +1 -1
- package/resource/doc/{chatuikit → chatkit}/vue/integration.md +22 -23
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-audience-list.md +18 -89
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-audio-effect.md +34 -192
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-barrage.md +28 -141
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-base-beauty.md +20 -112
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-co-guest-interaction.md +59 -193
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-gift.md +75 -455
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-host-interaction.md +94 -344
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-integration.md +107 -515
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-live-list.md +33 -173
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audience-list.md +14 -93
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audio-effect.md +34 -179
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-barrage.md +19 -107
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-base-beauty.md +24 -166
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-co-guest-interaction.md +56 -163
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-gift.md +69 -443
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-host-interaction.md +117 -364
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-integration.md +107 -492
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-live-list.md +23 -165
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audience-list.md +35 -111
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audio-effect.md +35 -193
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-barrage.md +31 -144
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-base-beauty.md +24 -116
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-co-guest-interaction.md +37 -171
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-gift.md +79 -459
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-host-interaction.md +69 -320
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-integration.md +85 -502
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-live-list.md +32 -169
- package/resource/doc/livekit/core-sdk/voice/android/voice-audience-list.md +263 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-audio-effect.md +222 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-barrage.md +452 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +536 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-gift.md +442 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-host-interaction.md +489 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-integration.md +574 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +435 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +516 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-integration.md +576 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audience-list.md +263 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audio-effect.md +212 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-barrage.md +404 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +499 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-gift.md +403 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-host-interaction.md +552 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-integration.md +514 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +348 -0
- package/resource/doc/livekit/faq/common/{error_code.md → error-code.md} +2 -2
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +780 -0
- package/resource/doc/livekit/preset/live/vue/components/barrage.md +291 -0
- package/resource/doc/livekit/{live → preset/live}/vue/components/co-guest-panel.md +10 -49
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-audience-list.md +26 -144
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-scene-panel.md +12 -75
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-view.md +36 -227
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +215 -0
- package/resource/doc/livekit/preset/live/vue/faq.md +1 -0
- package/resource/doc/livekit/preset/live/vue/live-list-integration.md +241 -0
- package/resource/doc/livekit/preset/live/vue/live-player-desk-integration.md +299 -0
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +300 -0
- package/resource/doc/livekit/preset/live/vue/live-pusher-integration.md +743 -0
- package/resource/doc/roomkit/vue/faq.md +1 -0
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +17 -53
- package/resource/doc/roomkit/vue/features/device-detection.md +30 -48
- package/resource/doc/roomkit/vue/features/device-state.md +24 -44
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +13 -36
- package/resource/doc/roomkit/vue/features/room-chat.md +31 -89
- package/resource/doc/roomkit/vue/features/room-participant-state.md +28 -50
- package/resource/doc/roomkit/vue/features/room-state.md +25 -34
- package/resource/doc/roomkit/vue/features/room-view.md +30 -125
- package/resource/doc/roomkit/vue/features/schedule-room.md +9 -40
- package/resource/doc/roomkit/vue/features/screen-share.md +22 -90
- package/resource/doc/roomkit/vue/features/virtual-background.md +13 -29
- package/resource/doc/roomkit/vue/integration.md +173 -337
- package/resource/doc/rtcengine/faq/common/error_code.md +1 -0
- package/resource/doc/rtcengine/faq/web/web.md +14 -24
- package/resource/doc/rtcengine/web/api.md +1 -3
- package/resource/doc/rtcengine/web/how_to_integrated_web_sdk.md +3 -10
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +1 -5
- package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +1 -2
- package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +2 -4
- package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +3 -5
- package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +1 -7
- package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +0 -2
- package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +4 -8
- package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +11 -11
- package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +12 -88
- package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +5 -5
- package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +30 -37
- package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +13 -90
- package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +1 -2
- package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +1 -2
- package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +19 -19
- package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +1 -1
- package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +4 -5
- package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +3 -3
- package/resource/doc/trtc/C++/ITRTCCloud.md +686 -2835
- package/resource/doc/trtc/C++/ITRTCStatistics.md +53 -308
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +202 -1022
- package/resource/doc/trtc/C++/ITXDeviceManager.md +126 -767
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +579 -2147
- package/resource/doc/trtc/C++/TRTCTypeDef.md +703 -3378
- package/resource/doc/trtc/C++/TXLiteAVCode.md +116 -908
- package/resource/doc/trtc/android/TRTCCloud.md +606 -2573
- package/resource/doc/trtc/android/TRTCCloudDef.md +752 -3640
- package/resource/doc/trtc/android/TRTCCloudListener.md +581 -2008
- package/resource/doc/trtc/android/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/android/TXAudioEffectManager.md +202 -1022
- package/resource/doc/trtc/android/TXBeautyManager.md +127 -704
- package/resource/doc/trtc/android/TXDeviceManager.md +51 -318
- package/resource/doc/trtc/android/TXLiteAVCode.md +114 -892
- package/resource/doc/trtc/iOS/TRTCCloud.md +694 -2904
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +726 -3498
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +543 -2028
- package/resource/doc/trtc/iOS/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +174 -877
- package/resource/doc/trtc/iOS/TXBeautyManager.md +128 -710
- package/resource/doc/trtc/iOS/TXDeviceManager.md +129 -772
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +117 -915
- package/server.js +1 -5
- package/server.js.map +1 -1
- package/tools/call/get_callkit_api.js +32 -0
- package/tools/call/get_callkit_api.js.map +1 -0
- package/tools/call/get_native_call_uikit_integration.js +34 -0
- package/tools/call/get_native_call_uikit_integration.js.map +1 -0
- package/tools/call/{get-web-call-integration.js → get_web_call_uikit_integration.js} +13 -8
- package/tools/call/get_web_call_uikit_integration.js.map +1 -0
- package/tools/chat/get_native_chat_uikit_feature_detail.js +34 -0
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +1 -0
- package/tools/chat/get_native_chat_uikit_integration.js +45 -0
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -0
- package/tools/chat/get_web_chat_uikit_component_detail.js +34 -0
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +1 -0
- package/tools/chat/get_web_chat_uikit_integration.js +45 -0
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -0
- package/tools/common/get_faq.js +265 -0
- package/tools/common/get_faq.js.map +1 -0
- package/tools/common/{get-usersig.js → get_usersig.js} +6 -3
- package/tools/common/get_usersig.js.map +1 -0
- package/tools/common/present_framework_choice.js +63 -0
- package/tools/common/present_framework_choice.js.map +1 -0
- package/tools/definitions/get_callkit_api_def.js +29 -0
- package/tools/definitions/get_callkit_api_def.js.map +1 -0
- package/tools/definitions/get_faq_def.js +17 -18
- package/tools/definitions/get_faq_def.js.map +1 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js +15 -18
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +31 -0
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_native_chat_uikit_integration_def.js +16 -19
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +34 -0
- package/tools/definitions/get_native_livekit_core_features_def.js.map +1 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +34 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -0
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +32 -0
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +1 -0
- package/tools/definitions/get_usersig_def.js +17 -22
- package/tools/definitions/get_usersig_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +15 -7
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +17 -49
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +16 -19
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +15 -18
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_livekit_api_def.js +30 -0
- package/tools/definitions/get_web_livekit_api_def.js.map +1 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js +32 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +15 -30
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +31 -0
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +24 -12
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/index.js +47 -59
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_features.js +65 -0
- package/tools/live/get_native_livekit_core_features.js.map +1 -0
- package/tools/live/get_native_livekit_core_integration.js +59 -0
- package/tools/live/get_native_livekit_core_integration.js.map +1 -0
- package/tools/live/get_web_live_uikit_integration.js +48 -0
- package/tools/live/get_web_live_uikit_integration.js.map +1 -0
- package/tools/live/get_web_livekit_api.js +32 -0
- package/tools/live/get_web_livekit_api.js.map +1 -0
- package/tools/live/get_web_livekit_component_detail.js +34 -0
- package/tools/live/get_web_livekit_component_detail.js.map +1 -0
- package/tools/room/{get-web-room-integration.js → get_web_room_uikit_integration.js} +13 -14
- package/tools/room/get_web_room_uikit_integration.js.map +1 -0
- package/tools/room/{get-web-room-feature-detail.js → get_web_roomkit_feature_detail.js} +30 -31
- package/tools/room/get_web_roomkit_feature_detail.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_api.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +1 -0
- package/tools/trtc/get_native_trtc_sdk_docs.js +73 -0
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +1 -0
- package/utils/generate-structured-result.js +61 -17
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/report-cls-client.js +12 -1
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +2 -2
- package/resource/doc/chatuikit/android/integration.md +0 -287
- package/resource/doc/chatuikit/faq/android_sdk/client-api.md +0 -1371
- package/resource/doc/chatuikit/faq/flutter_sdk/client-api.md +0 -932
- package/resource/doc/chatuikit/faq/ios_sdk/client-api.md +0 -1119
- package/resource/doc/chatuikit/flutter/workflow.md +0 -941
- package/resource/doc/chatuikit/iOS/workflow.md +0 -0
- package/resource/doc/chatuikit/react/components/conversation-list.md +0 -1017
- package/resource/doc/chatuikit/react/components/search.md +0 -745
- package/resource/doc/chatuikit/react/create-group.md +0 -23
- package/resource/doc/chatuikit/react/init.md +0 -26
- package/resource/doc/chatuikit/react/workflow.md +0 -258
- package/resource/doc/chatuikit/vue/components/contact-list.md +0 -679
- package/resource/doc/chatuikit/vue/create-group.md +0 -25
- package/resource/doc/chatuikit/vue/init.md +0 -40
- package/resource/doc/chatuikit/vue/workflow.md +0 -395
- package/resource/doc/livekit/live/android/workflow.md +0 -320
- package/resource/doc/livekit/live/flutter/workflow.md +0 -353
- package/resource/doc/livekit/live/ios/workflow.md +0 -454
- package/resource/doc/livekit/live/vue/components/barrage.md +0 -616
- package/resource/doc/livekit/live/vue/components/stream-mixer.md +0 -446
- package/resource/doc/livekit/live/vue/faq.md +0 -0
- package/resource/doc/livekit/live/vue/live-list-integration.md +0 -200
- package/resource/doc/livekit/live/vue/live-player-desk-integration.md +0 -269
- package/resource/doc/livekit/live/vue/live-player-h5-integration.md +0 -269
- package/resource/doc/livekit/live/vue/live-pusher-integration.md +0 -595
- package/resource/doc/livekit/live/vue/states/live-state.md +0 -3591
- package/resource/doc/livekit/live/vue/workflow.md +0 -218
- package/resource/doc/native_live/android/V2TXLiveCode_api_android.md +0 -312
- package/resource/doc/native_live/android/V2TXLiveDef_api_android.md +0 -430
- package/resource/doc/native_live/android/V2TXLivePlayerObserver_api_android.md +0 -679
- package/resource/doc/native_live/android/V2TXLivePlayer_api_android.md +0 -671
- package/resource/doc/native_live/android/V2TXLivePremier_api_android.md +0 -271
- package/resource/doc/native_live/android/V2TXLivePusherObserver_api_android.md +0 -849
- package/resource/doc/native_live/android/V2TXLivePusher_api_android.md +0 -1046
- package/resource/doc/native_live/flutter/V2TXLiveCode_api_flutter.md +0 -460
- package/resource/doc/native_live/flutter/V2TXLiveDef_api_flutter.md +0 -558
- package/resource/doc/native_live/flutter/V2TXLivePlayerObserver_api_flutter.md +0 -865
- package/resource/doc/native_live/flutter/V2TXLivePlayer_api_flutter.md +0 -657
- package/resource/doc/native_live/flutter/V2TXLivePremier_api_flutter.md +0 -437
- package/resource/doc/native_live/flutter/V2TXLivePusherObserver_api_flutter.md +0 -335
- package/resource/doc/native_live/flutter/V2TXLivePusher_api_flutter.md +0 -748
- package/resource/doc/native_live/iOS/V2TXLiveCode_api_iOS.md +0 -327
- package/resource/doc/native_live/iOS/V2TXLiveDef_api_iOS.md +0 -507
- package/resource/doc/native_live/iOS/V2TXLivePlayerObserver_api_iOS.md +0 -507
- package/resource/doc/native_live/iOS/V2TXLivePlayer_api_iOS.md +0 -659
- package/resource/doc/native_live/iOS/V2TXLivePremier_api_iOS.md +0 -284
- package/resource/doc/native_live/iOS/V2TXLivePusherObserver_api_iOS.md +0 -814
- package/resource/doc/native_live/iOS/V2TXLivePusher_api_iOS.md +0 -1000
- package/resource/doc/roomkit/vue/features/workflow.md +0 -553
- package/resource/doc/roomkit/vue/workflow.md +0 -487
- package/resource/doc/tuicallkit/android/integration.md +0 -286
- package/resource/doc/tuicallkit/android/workflow.md +0 -0
- package/resource/doc/tuicallkit/faq/android_sdk/call-observer-api.md +0 -784
- package/resource/doc/tuicallkit/faq/android_sdk/callkit-api.md +0 -610
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-define-api.md +0 -938
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-observer-api.md +0 -897
- package/resource/doc/tuicallkit/faq/flutter_sdk/callkit-api.md +0 -469
- package/resource/doc/tuicallkit/faq/ios_sdk/call-observer-api.md +0 -781
- package/resource/doc/tuicallkit/faq/ios_sdk/callkit-api.md +0 -398
- package/resource/doc/tuicallkit/flutter/workflow.md +0 -331
- package/resource/doc/tuicallkit/react/api.md +0 -1404
- package/resource/doc/tuicallkit/vue/api.md +0 -1406
- package/resource/doc/tuicallkit/vue/faq.md +0 -36
- package/tools/call/get-native-call-integration.js +0 -43
- package/tools/call/get-native-call-integration.js.map +0 -1
- package/tools/call/get-web-call-api.js +0 -27
- package/tools/call/get-web-call-api.js.map +0 -1
- package/tools/call/get-web-call-integration.js.map +0 -1
- package/tools/chat/get-native-chat-feature-detail.js +0 -30
- package/tools/chat/get-native-chat-feature-detail.js.map +0 -1
- package/tools/chat/get-native-chat-integration.js +0 -45
- package/tools/chat/get-native-chat-integration.js.map +0 -1
- package/tools/chat/get-web-chat-component-detail.js +0 -31
- package/tools/chat/get-web-chat-component-detail.js.map +0 -1
- package/tools/chat/get-web-chat-integration.js +0 -45
- package/tools/chat/get-web-chat-integration.js.map +0 -1
- package/tools/chat/get-web-chat-uikit-init.js +0 -28
- package/tools/chat/get-web-chat-uikit-init.js.map +0 -1
- package/tools/chat/get-web-create-group-doc.js +0 -28
- package/tools/chat/get-web-create-group-doc.js.map +0 -1
- package/tools/common/get-faq.js +0 -91
- 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 +0 -16
- package/tools/common/present-framework-choice.js.map +0 -1
- package/tools/common/record-prompt.js +0 -55
- package/tools/common/record-prompt.js.map +0 -1
- package/tools/common/record-result.js +0 -60
- package/tools/common/record-result.js.map +0 -1
- package/tools/definitions/get_native_chat_feature_detail_def.js +0 -32
- package/tools/definitions/get_native_chat_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_live_api_def.js +0 -23
- package/tools/definitions/get_native_live_api_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_extra_features_def.js +0 -87
- package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +0 -49
- package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -74
- package/tools/definitions/get_native_live_uikit_interaction_def.js.map +0 -1
- package/tools/definitions/get_trtc_native_api_def.js +0 -16
- package/tools/definitions/get_trtc_native_api_def.js.map +0 -1
- package/tools/definitions/get_web_call_uikit_api_def.js +0 -23
- package/tools/definitions/get_web_call_uikit_api_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_init_def.js +0 -23
- package/tools/definitions/get_web_chat_uikit_init_def.js.map +0 -1
- package/tools/definitions/get_web_create_group_doc_def.js +0 -18
- package/tools/definitions/get_web_create_group_doc_def.js.map +0 -1
- package/tools/definitions/get_web_live_state_detail_def.js +0 -19
- package/tools/definitions/get_web_live_state_detail_def.js.map +0 -1
- package/tools/definitions/get_web_live_uikit_component_detail_def.js +0 -27
- package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_room_feature_detail_def.js +0 -95
- package/tools/definitions/get_web_room_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_room_state_detail_def.js +0 -19
- package/tools/definitions/get_web_room_state_detail_def.js.map +0 -1
- package/tools/definitions/record_prompt_def.js +0 -53
- package/tools/definitions/record_prompt_def.js.map +0 -1
- package/tools/definitions/record_result_def.js +0 -30
- package/tools/definitions/record_result_def.js.map +0 -1
- package/tools/live/get-native-live-uikit-integration.js +0 -101
- package/tools/live/get-native-live-uikit-integration.js.map +0 -1
- package/tools/live/get-web-live-component-detail.js +0 -31
- package/tools/live/get-web-live-component-detail.js.map +0 -1
- package/tools/live/get-web-live-state-detail.js +0 -31
- package/tools/live/get-web-live-state-detail.js.map +0 -1
- package/tools/live/get-web-live-uikit-integration.js +0 -52
- package/tools/live/get-web-live-uikit-integration.js.map +0 -1
- package/tools/live/get_native_live_uikit_extra_features.js +0 -105
- package/tools/live/get_native_live_uikit_extra_features.js.map +0 -1
- package/tools/live/get_native_live_uikit_interaction.js +0 -101
- package/tools/live/get_native_live_uikit_interaction.js.map +0 -1
- package/tools/native_live/get-native-live-api.js +0 -31
- package/tools/native_live/get-native-live-api.js.map +0 -1
- package/tools/room/get-web-room-feature-detail.js.map +0 -1
- package/tools/room/get-web-room-integration.js.map +0 -1
- package/tools/rtcengine/get-rtcengine-web-sdk-integration.js +0 -28
- package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +0 -1
- package/tools/rtcengine/get-trtc-sdk-faq.js +0 -32
- package/tools/rtcengine/get-trtc-sdk-faq.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-api.js +0 -28
- package/tools/rtcengine/get-trtc-web-sdk-api.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-faq.js +0 -30
- package/tools/rtcengine/get-trtc-web-sdk-faq.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-integration.js +0 -29
- package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js +0 -45
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +0 -1
- package/tools/trtc/get-trtc-native-api.js +0 -31
- package/tools/trtc/get-trtc-native-api.js.map +0 -1
- package/utils/handle-component-name.js +0 -33
- package/utils/handle-component-name.js.map +0 -1
- /package/resource/doc/{chatuikit/android/workflow.md → callkit/core-sdk/.gitkeep} +0 -0
- /package/resource/doc/{tuicallkit/faq/common/error_code.md → callkit/faq/common/error-code.md} +0 -0
- /package/resource/doc/{tuicallkit/react/faq.md → callkit/faq/web-faq.md} +0 -0
- /package/resource/doc/{chatuikit → chatkit}/faq/common/server_error_code.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/error_code.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/flutter/faq.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/react/faq.md +0 -0
- /package/resource/doc/roomkit/faq/common/{error_code.md → error-code.md} +0 -0
|
@@ -7,48 +7,18 @@
|
|
|
7
7
|
|
|
8
8
|
- **Host Invites to Join**: The host can invite any audience member in the live room to co-host.
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
## Core Concepts
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<td rowspan="1" colSpan="1" >**Key APIs / Properties**</td>
|
|
19
|
-
</tr>
|
|
20
|
-
|
|
21
|
-
<tr>
|
|
22
|
-
<td rowspan="1" colSpan="1" >`CoGuestStore`</td>
|
|
23
|
-
|
|
24
|
-
<td rowspan="1" colSpan="1" >Manages the entire signaling workflow for viewer-host interaction (Apply, Invite, Accept, Reject, Disconnect) and maintains real-time state of related user lists.</td>
|
|
25
|
-
|
|
26
|
-
<td rowspan="1" colSpan="1" >- `coGuestState`: A read-only StateFlowcontaining `connected` (current co-guests), `applicants` (pending applications), and `invitees` (pending invitations).<br>- `applyForSeat()`: Viewer applies to become a co-guest.<br>- `inviteToSeat()`: Host invites a viewer to take a seat.<br>- `acceptApplication()`: Host accepts a link mic application.<br>- `disconnect():` Terminates the connection.</td>
|
|
27
|
-
</tr>
|
|
28
|
-
|
|
29
|
-
<tr>
|
|
30
|
-
<td rowspan="1" colSpan="1" >`HostListener`</td>
|
|
31
|
-
|
|
32
|
-
<td rowspan="1" colSpan="1" >Used by the UI layer to respond to events such as "Received viewer application" or "Viewer accepted invitation".</td>
|
|
33
|
-
|
|
34
|
-
<td rowspan="1" colSpan="1" >- `onGuestApplicationReceived()`: Triggered when a viewer applies for a seat.<br>- `onHostInvitationResponded()`: Triggered when a viewer responds to an invitation.</td>
|
|
35
|
-
</tr>
|
|
36
|
-
|
|
37
|
-
<tr>
|
|
38
|
-
<td rowspan="1" colSpan="1" >`GuestListener`</td>
|
|
39
|
-
|
|
40
|
-
<td rowspan="1" colSpan="1" >Used by the UI layer to respond to events such as "Received host invitation", "Application approved", or "Kicked off seat".</td>
|
|
41
|
-
|
|
42
|
-
<td rowspan="1" colSpan="1" >- `onHostInvitationReceived()`: Triggered when the host sends an invitation.<br>- `onGuestApplicationResponded()`: Triggered when the host processes an application (Accept/Reject).<br>- `onKickedOffSeat()`: Triggered when kicked off the seat by the host.</td>
|
|
43
|
-
</tr>
|
|
44
|
-
</table>
|
|
45
|
-
|
|
11
|
+
| **Core Concept** | **Core Responsibilities** | **Key APIs / Properties** |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| `CoGuestStore` | Manages the entire signaling workflow for viewer-host interaction (Apply, Invite, Accept, Reject, Disconnect) and maintains real-time state of related user lists. | - `coGuestState`: A read-only StateFlowcontaining `connected` (current co-guests), `applicants` (pending applications), and `invitees` (pending invitations).<br>- `applyForSeat()`: Viewer applies to become a co-guest.<br>- `inviteToSeat()`: Host invites a viewer to take a seat.<br>- `acceptApplication()`: Host accepts a link mic application.<br>- `disconnect():` Terminates the connection. |
|
|
14
|
+
| `HostListener` | Used by the UI layer to respond to events such as "Received viewer application" or "Viewer accepted invitation". | - `onGuestApplicationReceived()`: Triggered when a viewer applies for a seat.<br>- `onHostInvitationResponded()`: Triggered when a viewer responds to an invitation. |
|
|
15
|
+
| `GuestListener` | Used by the UI layer to respond to events such as "Received host invitation", "Application approved", or "Kicked off seat". | - `onHostInvitationReceived()`: Triggered when the host sends an invitation.<br>- `onGuestApplicationResponded()`: Triggered when the host processes an application (Accept/Reject).<br>- `onKickedOffSeat()`: Triggered when kicked off the seat by the host. |
|
|
46
16
|
|
|
47
17
|
## Implementation
|
|
48
18
|
|
|
49
19
|
### Step 1: Component Integration
|
|
50
20
|
|
|
51
|
-
Refer to
|
|
21
|
+
Refer to Quick Start to integrate AtomicXCore and complete the setup of LiveCoreView.
|
|
52
22
|
|
|
53
23
|
### Step 2: Implement Audience Request to Join
|
|
54
24
|
|
|
@@ -57,16 +27,15 @@ Refer to [Quick Start](https://write.woa.com/document/194571606056804352) to int
|
|
|
57
27
|
As an audience member, your primary tasks are to **initiate a request, handle the host's response, and leave the seat when desired.**
|
|
58
28
|
1. **Initiate a Co-hosting Request**
|
|
59
29
|
|
|
60
|
-
|
|
61
30
|
When the user taps the "Request to Join" button, call the `applyForSeat` method.
|
|
62
31
|
|
|
63
32
|
``` kotlin
|
|
64
33
|
import io.trtc.tuikit.atomicxcore.api.live.CoGuestStore
|
|
65
34
|
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
66
|
-
|
|
35
|
+
|
|
67
36
|
val liveId = "Room ID"
|
|
68
37
|
val guestStore = CoGuestStore.create(liveId)
|
|
69
|
-
|
|
38
|
+
|
|
70
39
|
// User clicks "Request to Join"
|
|
71
40
|
fun requestToConnect() {
|
|
72
41
|
// timeout: Request timeout in seconds, e.g., 30
|
|
@@ -78,7 +47,7 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
78
47
|
override fun onSuccess() {
|
|
79
48
|
println("Co-hosting request sent, waiting for host response...")
|
|
80
49
|
}
|
|
81
|
-
|
|
50
|
+
|
|
82
51
|
override fun onFailure(code: Int, desc: String) {
|
|
83
52
|
println("Failed to send request: $desc")
|
|
84
53
|
}
|
|
@@ -88,7 +57,6 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
88
57
|
```
|
|
89
58
|
2. **Listen for Host Response**
|
|
90
59
|
|
|
91
|
-
|
|
92
60
|
Add a `GuestListener` to receive the host's response.
|
|
93
61
|
|
|
94
62
|
``` kotlin
|
|
@@ -98,7 +66,7 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
98
66
|
import io.trtc.tuikit.atomicxcore.api.live.CoGuestStore
|
|
99
67
|
import io.trtc.tuikit.atomicxcore.api.live.GuestListener
|
|
100
68
|
import io.trtc.tuikit.atomicxcore.api.live.LiveUserInfo
|
|
101
|
-
|
|
69
|
+
|
|
102
70
|
class YourActivity : AppCompatActivity() {
|
|
103
71
|
val liveId = "Room ID"
|
|
104
72
|
val guestStore = CoGuestStore.create(liveId)
|
|
@@ -117,12 +85,12 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
117
85
|
}
|
|
118
86
|
}
|
|
119
87
|
}
|
|
120
|
-
|
|
88
|
+
|
|
121
89
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
122
90
|
super.onCreate(savedInstanceState)
|
|
123
91
|
guestStore.addGuestListener(guestListener)
|
|
124
92
|
}
|
|
125
|
-
|
|
93
|
+
|
|
126
94
|
override fun onDestroy() {
|
|
127
95
|
super.onDestroy()
|
|
128
96
|
guestStore.removeGuestListener(guestListener)
|
|
@@ -131,7 +99,6 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
131
99
|
```
|
|
132
100
|
3. **Leave the Seat**
|
|
133
101
|
|
|
134
|
-
|
|
135
102
|
When the co-hosting audience member wants to end the interaction, call `disconnect` to return to audience status.
|
|
136
103
|
|
|
137
104
|
``` kotlin
|
|
@@ -141,7 +108,7 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
141
108
|
override fun onSuccess() {
|
|
142
109
|
println("Successfully left the seat")
|
|
143
110
|
}
|
|
144
|
-
|
|
111
|
+
|
|
145
112
|
override fun onFailure(code: Int, desc: String) {
|
|
146
113
|
println("Failed to leave seat: $desc")
|
|
147
114
|
}
|
|
@@ -150,7 +117,6 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
150
117
|
```
|
|
151
118
|
4. **(Optional) Cancel Request**
|
|
152
119
|
|
|
153
|
-
|
|
154
120
|
To withdraw a pending request before the host responds, call `cancelApplication`.
|
|
155
121
|
|
|
156
122
|
``` kotlin
|
|
@@ -160,7 +126,7 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
160
126
|
override fun onSuccess() {
|
|
161
127
|
println("Request cancelled")
|
|
162
128
|
}
|
|
163
|
-
|
|
129
|
+
|
|
164
130
|
override fun onFailure(code: Int, desc: String) {
|
|
165
131
|
println("Failed to cancel request: $desc")
|
|
166
132
|
}
|
|
@@ -173,7 +139,6 @@ As an audience member, your primary tasks are to **initiate a request, handle th
|
|
|
173
139
|
As a host, your main responsibilities are to **receive requests, display the applicant list, and process requests**.
|
|
174
140
|
1. **Listen for New Co-hosting Requests**
|
|
175
141
|
|
|
176
|
-
|
|
177
142
|
Add a `HostListener` to be notified when a new audience request arrives.
|
|
178
143
|
|
|
179
144
|
``` kotlin
|
|
@@ -182,7 +147,7 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
182
147
|
import io.trtc.tuikit.atomicxcore.api.live.CoGuestStore
|
|
183
148
|
import io.trtc.tuikit.atomicxcore.api.live.HostListener
|
|
184
149
|
import io.trtc.tuikit.atomicxcore.api.live.LiveUserInfo
|
|
185
|
-
|
|
150
|
+
|
|
186
151
|
class YourActivity : AppCompatActivity() {
|
|
187
152
|
val liveId = "Room ID"
|
|
188
153
|
val guestStore = CoGuestStore.create(liveId)
|
|
@@ -192,13 +157,13 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
192
157
|
// Update UI, e.g., show a badge on the "Request List" button
|
|
193
158
|
}
|
|
194
159
|
}
|
|
195
|
-
|
|
160
|
+
|
|
196
161
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
197
162
|
super.onCreate(savedInstanceState)
|
|
198
163
|
// Add listener
|
|
199
164
|
guestStore.addHostListener(hostListener)
|
|
200
165
|
}
|
|
201
|
-
|
|
166
|
+
|
|
202
167
|
override fun onDestroy() {
|
|
203
168
|
super.onDestroy()
|
|
204
169
|
// Remove listener
|
|
@@ -208,17 +173,16 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
208
173
|
```
|
|
209
174
|
2. **Display Request List**
|
|
210
175
|
|
|
211
|
-
|
|
212
176
|
`CoGuestStore` maintains the current list of applicants in real time. Subscribe to this list to update your UI.
|
|
213
177
|
|
|
214
178
|
``` kotlin
|
|
215
179
|
class YourActivity : AppCompatActivity() {
|
|
216
180
|
val liveId = "Room ID"
|
|
217
181
|
val guestStore = CoGuestStore.create(liveId)
|
|
218
|
-
|
|
182
|
+
|
|
219
183
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
220
184
|
super.onCreate(savedInstanceState)
|
|
221
|
-
|
|
185
|
+
|
|
222
186
|
// Subscribe to applicant list updates
|
|
223
187
|
lifecycleScope.launch {
|
|
224
188
|
guestStore.coGuestState.applicants.collect { applicants ->
|
|
@@ -232,7 +196,6 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
232
196
|
```
|
|
233
197
|
3. **Process Co-hosting Requests**
|
|
234
198
|
|
|
235
|
-
|
|
236
199
|
When you select an audience member and choose "Accept" or "Reject", call the corresponding method.
|
|
237
200
|
|
|
238
201
|
``` kotlin
|
|
@@ -242,20 +205,20 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
242
205
|
override fun onSuccess() {
|
|
243
206
|
println("Accepted $userId's request. They are joining the stage.")
|
|
244
207
|
}
|
|
245
|
-
|
|
208
|
+
|
|
246
209
|
override fun onFailure(code: Int, desc: String) {
|
|
247
210
|
println("Failed to accept request: $desc")
|
|
248
211
|
}
|
|
249
212
|
})
|
|
250
213
|
}
|
|
251
|
-
|
|
214
|
+
|
|
252
215
|
// Host taps "Reject"
|
|
253
216
|
fun reject(userId: String) {
|
|
254
217
|
guestStore.rejectApplication(userId, object : CompletionHandler {
|
|
255
218
|
override fun onSuccess() {
|
|
256
219
|
println("Rejected $userId's request")
|
|
257
220
|
}
|
|
258
|
-
|
|
221
|
+
|
|
259
222
|
override fun onFailure(code: Int, desc: String) {
|
|
260
223
|
println("Failed to reject request: $desc")
|
|
261
224
|
}
|
|
@@ -268,7 +231,6 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
268
231
|
#### Host-Side Implementation
|
|
269
232
|
1. **Send Invitation to Audience**
|
|
270
233
|
|
|
271
|
-
|
|
272
234
|
When the host selects an audience member and taps "Invite to Co-host", call the `inviteToSeat` method.
|
|
273
235
|
|
|
274
236
|
``` kotlin
|
|
@@ -284,7 +246,7 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
284
246
|
override fun onSuccess() {
|
|
285
247
|
println("Invitation sent to $userId. Waiting for response...")
|
|
286
248
|
}
|
|
287
|
-
|
|
249
|
+
|
|
288
250
|
override fun onFailure(code: Int, desc: String) {
|
|
289
251
|
println("Failed to send invitation: $desc")
|
|
290
252
|
}
|
|
@@ -294,7 +256,6 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
294
256
|
```
|
|
295
257
|
2. **Listen for Audience Response**
|
|
296
258
|
|
|
297
|
-
|
|
298
259
|
Listen for the `onHostInvitationResponded` event via `HostListener`.
|
|
299
260
|
|
|
300
261
|
``` kotlin
|
|
@@ -311,7 +272,6 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
311
272
|
#### Audience-Side Implementation
|
|
312
273
|
1. **Receive Host Invitation**
|
|
313
274
|
|
|
314
|
-
|
|
315
275
|
Listen for the `onHostInvitationReceived` event via `GuestListener`.
|
|
316
276
|
|
|
317
277
|
``` kotlin
|
|
@@ -324,12 +284,11 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
324
284
|
```
|
|
325
285
|
2. **Respond to Invitation**
|
|
326
286
|
|
|
327
|
-
|
|
328
287
|
After the user makes a selection, call the corresponding method.
|
|
329
288
|
|
|
330
289
|
``` kotlin
|
|
331
290
|
val inviterId = "Inviting Host ID" // Obtained from onHostInvitationReceived
|
|
332
|
-
|
|
291
|
+
|
|
333
292
|
// User taps "Accept"
|
|
334
293
|
fun accept() {
|
|
335
294
|
guestStore.acceptInvitation(inviterId, object : CompletionHandler {
|
|
@@ -338,20 +297,20 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
338
297
|
DeviceStore.shared().openLocalCamera(true, completion = null)
|
|
339
298
|
DeviceStore.shared().openLocalMicrophone(completion = null)
|
|
340
299
|
}
|
|
341
|
-
|
|
300
|
+
|
|
342
301
|
override fun onFailure(code: Int, desc: String) {
|
|
343
302
|
println("Failed to accept invitation: $desc")
|
|
344
303
|
}
|
|
345
304
|
})
|
|
346
305
|
}
|
|
347
|
-
|
|
306
|
+
|
|
348
307
|
// User taps "Reject"
|
|
349
308
|
fun reject() {
|
|
350
309
|
guestStore.rejectInvitation(inviterId, object : CompletionHandler {
|
|
351
310
|
override fun onSuccess() {
|
|
352
311
|
println("Invitation rejected")
|
|
353
312
|
}
|
|
354
|
-
|
|
313
|
+
|
|
355
314
|
override fun onFailure(code: Int, desc: String) {
|
|
356
315
|
println("Failed to reject invitation: $desc")
|
|
357
316
|
}
|
|
@@ -361,10 +320,7 @@ As a host, your main responsibilities are to **receive requests, display the app
|
|
|
361
320
|
|
|
362
321
|
### Run and Test
|
|
363
322
|
|
|
364
|
-
After integrating the above features, use two audience members and a host to test co-hosting. For example, Audience A enables both camera and microphone, while Audience B enables only the microphone. The result is shown below. For UI customization, see
|
|
365
|
-
|
|
366
|
-

|
|
367
|
-
|
|
323
|
+
After integrating the above features, use two audience members and a host to test co-hosting. For example, Audience A enables both camera and microphone, while Audience B enables only the microphone. The result is shown below. For UI customization, see Refining UI Details.
|
|
368
324
|
|
|
369
325
|
## Refining UI Details
|
|
370
326
|
|
|
@@ -374,16 +330,13 @@ Use the "slot" feature provided by the `VideoViewAdapter` interface to add custo
|
|
|
374
330
|
|
|
375
331
|
#### Implementation Example
|
|
376
332
|
|
|
377
|
-

|
|
378
|
-
|
|
379
|
-
|
|
380
333
|
#### Implementation
|
|
381
334
|
|
|
382
335
|
> **Note:**
|
|
383
|
-
>
|
|
336
|
+
>
|
|
384
337
|
|
|
385
338
|
> You can also refer to the [widgets](https://github.com/Tencent-RTC/TUIKit_Android/tree/main/live/tuilivekit/src/main/java/com/trtc/uikit/livekit/features/anchorboardcast/view/coguest/widgets) directory in the open-source TUILiveKit project for a complete implementation.
|
|
386
|
-
>
|
|
339
|
+
>
|
|
387
340
|
|
|
388
341
|
- **Step 1**: Create the foreground view `CustomSeatView` to display user info above the video stream.
|
|
389
342
|
|
|
@@ -394,21 +347,21 @@ Use the "slot" feature provided by the `VideoViewAdapter` interface to add custo
|
|
|
394
347
|
import android.view.ViewGroup
|
|
395
348
|
import android.widget.LinearLayout
|
|
396
349
|
import android.widget.TextView
|
|
397
|
-
|
|
350
|
+
|
|
398
351
|
// Custom floating user info view (foreground)
|
|
399
352
|
class CustomSeatView(context: Context) : LinearLayout(context) {
|
|
400
353
|
private val nameLabel: TextView
|
|
401
|
-
|
|
354
|
+
|
|
402
355
|
init {
|
|
403
356
|
orientation = VERTICAL
|
|
404
357
|
gravity = Gravity.BOTTOM or Gravity.START
|
|
405
358
|
setBackgroundColor(Color.parseColor("#80000000")) // Semi-transparent black background
|
|
406
|
-
|
|
359
|
+
|
|
407
360
|
nameLabel = TextView(context).apply {
|
|
408
361
|
setTextColor(Color.WHITE)
|
|
409
362
|
textSize = 14f
|
|
410
363
|
}
|
|
411
|
-
|
|
364
|
+
|
|
412
365
|
addView(nameLabel, LayoutParams(
|
|
413
366
|
ViewGroup.LayoutParams.WRAP_CONTENT,
|
|
414
367
|
ViewGroup.LayoutParams.WRAP_CONTENT
|
|
@@ -416,7 +369,7 @@ Use the "slot" feature provided by the `VideoViewAdapter` interface to add custo
|
|
|
416
369
|
setMargins(20, 0, 0, 20) // Left margin 20, bottom margin 20
|
|
417
370
|
})
|
|
418
371
|
}
|
|
419
|
-
|
|
372
|
+
|
|
420
373
|
fun setUserName(userName: String) {
|
|
421
374
|
nameLabel.text = userName
|
|
422
375
|
}
|
|
@@ -431,24 +384,24 @@ Use the "slot" feature provided by the `VideoViewAdapter` interface to add custo
|
|
|
431
384
|
import android.view.ViewGroup
|
|
432
385
|
import android.widget.ImageView
|
|
433
386
|
import android.widget.LinearLayout
|
|
434
|
-
|
|
387
|
+
|
|
435
388
|
// Custom avatar placeholder view (background)
|
|
436
389
|
class CustomAvatarView(context: Context) : LinearLayout(context) {
|
|
437
390
|
private val avatarImageView: ImageView
|
|
438
|
-
|
|
391
|
+
|
|
439
392
|
init {
|
|
440
393
|
orientation = VERTICAL
|
|
441
394
|
gravity = Gravity.CENTER
|
|
442
395
|
setBackgroundColor(Color.TRANSPARENT)
|
|
443
|
-
|
|
396
|
+
|
|
444
397
|
avatarImageView = ImageView(context).apply {
|
|
445
398
|
setColorFilter(Color.GRAY)
|
|
446
399
|
scaleType = ImageView.ScaleType.CENTER_CROP
|
|
447
400
|
}
|
|
448
|
-
|
|
401
|
+
|
|
449
402
|
addView(avatarImageView, LayoutParams(120, 120)) // 60dp * 2 = 120px
|
|
450
403
|
}
|
|
451
|
-
|
|
404
|
+
|
|
452
405
|
fun setUserAvatar(avatarUrl: String) {
|
|
453
406
|
// Load user avatar here, e.g., using Glide
|
|
454
407
|
// Glide.with(context).load(avatarUrl).into(avatarImageView)
|
|
@@ -464,18 +417,18 @@ Use the "slot" feature provided by the `VideoViewAdapter` interface to add custo
|
|
|
464
417
|
import com.tencent.cloud.tuikit.engine.room.TUIRoomDefine
|
|
465
418
|
import io.trtc.tuikit.atomicxcore.api.view.VideoViewAdapter
|
|
466
419
|
import io.trtc.tuikit.atomicxcore.api.view.ViewLayer
|
|
467
|
-
|
|
420
|
+
|
|
468
421
|
// Implement VideoViewAdapter in your Activity
|
|
469
422
|
class YourActivity : AppCompatActivity(), VideoViewAdapter {
|
|
470
|
-
|
|
423
|
+
|
|
471
424
|
// ... other code ...
|
|
472
|
-
|
|
425
|
+
|
|
473
426
|
// Implement the interface method for both viewLayer types
|
|
474
427
|
override fun createCoGuestView(userInfo: TUIRoomDefine.SeatFullInfo?, viewLayer: ViewLayer?): View? {
|
|
475
428
|
userInfo ?: return null
|
|
476
429
|
val userId = userInfo.userId
|
|
477
430
|
if (userId.isNullOrEmpty()) return null
|
|
478
|
-
|
|
431
|
+
|
|
479
432
|
return when (viewLayer) {
|
|
480
433
|
ViewLayer.FOREGROUND -> {
|
|
481
434
|
// Show foreground view when camera is on
|
|
@@ -492,7 +445,7 @@ Use the "slot" feature provided by the `VideoViewAdapter` interface to add custo
|
|
|
492
445
|
else -> null
|
|
493
446
|
}
|
|
494
447
|
}
|
|
495
|
-
|
|
448
|
+
|
|
496
449
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
497
450
|
super.onCreate(savedInstanceState)
|
|
498
451
|
// Set the adapter
|
|
@@ -502,110 +455,24 @@ Use the "slot" feature provided by the `VideoViewAdapter` interface to add custo
|
|
|
502
455
|
```
|
|
503
456
|
|
|
504
457
|
#### Parameter Description:
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
<tr>
|
|
515
|
-
<td rowspan="1" colSpan="1" >`seatInfo`</td>
|
|
516
|
-
|
|
517
|
-
<td rowspan="1" colSpan="1" >`SeatFullInfo?`</td>
|
|
518
|
-
|
|
519
|
-
<td rowspan="1" colSpan="1" >Seat information object, containing detailed information about the user on the seat</td>
|
|
520
|
-
</tr>
|
|
521
|
-
|
|
522
|
-
<tr>
|
|
523
|
-
<td rowspan="1" colSpan="1" >`seatInfo.userId`</td>
|
|
524
|
-
|
|
525
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
526
|
-
|
|
527
|
-
<td rowspan="1" colSpan="1" >ID of the user on the seat</td>
|
|
528
|
-
</tr>
|
|
529
|
-
|
|
530
|
-
<tr>
|
|
531
|
-
<td rowspan="1" colSpan="1" >`seatInfo.userName`</td>
|
|
532
|
-
|
|
533
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
534
|
-
|
|
535
|
-
<td rowspan="1" colSpan="1" >Nickname of the user on the seat</td>
|
|
536
|
-
</tr>
|
|
537
|
-
|
|
538
|
-
<tr>
|
|
539
|
-
<td rowspan="1" colSpan="1" >`seatInfo.userAvatar`</td>
|
|
540
|
-
|
|
541
|
-
<td rowspan="1" colSpan="1" >`String`</td>
|
|
542
|
-
|
|
543
|
-
<td rowspan="1" colSpan="1" >Avatar URL of the user on the seat</td>
|
|
544
|
-
</tr>
|
|
545
|
-
|
|
546
|
-
<tr>
|
|
547
|
-
<td rowspan="1" colSpan="1" >`seatInfo.userMicrophoneStatus`</td>
|
|
548
|
-
|
|
549
|
-
<td rowspan="1" colSpan="1" >`DeviceStatus`</td>
|
|
550
|
-
|
|
551
|
-
<td rowspan="1" colSpan="1" >Microphone status of the user on the seat</td>
|
|
552
|
-
</tr>
|
|
553
|
-
|
|
554
|
-
<tr>
|
|
555
|
-
<td rowspan="1" colSpan="1" >`seatInfo.userCameraStatus`</td>
|
|
556
|
-
|
|
557
|
-
<td rowspan="1" colSpan="1" >`DeviceStatus`</td>
|
|
558
|
-
|
|
559
|
-
<td rowspan="1" colSpan="1" >Camera status of the user on the seat</td>
|
|
560
|
-
</tr>
|
|
561
|
-
|
|
562
|
-
<tr>
|
|
563
|
-
<td rowspan="1" colSpan="1" >`viewLayer`</td>
|
|
564
|
-
|
|
565
|
-
<td rowspan="1" colSpan="1" >`ViewLayer`</td>
|
|
566
|
-
|
|
567
|
-
<td rowspan="1" colSpan="1" >View layer enum:<br>- `FOREGROUND`: Foreground widget view, always displayed on top of the video<br>- `BACKGROUND`: Background widget view, displayed below the foreground view, only shown when the user has no video stream (e.g., camera is off); typically used for the user's avatar or a placeholder image</td>
|
|
568
|
-
</tr>
|
|
569
|
-
</table>
|
|
570
|
-
|
|
458
|
+
| **Parameter** | **Type** | **Description** |
|
|
459
|
+
| --- | --- | --- |
|
|
460
|
+
| `seatInfo` | `SeatFullInfo?` | Seat information object, containing detailed information about the user on the seat |
|
|
461
|
+
| `seatInfo.userId` | `String` | ID of the user on the seat |
|
|
462
|
+
| `seatInfo.userName` | `String` | Nickname of the user on the seat |
|
|
463
|
+
| `seatInfo.userAvatar` | `String` | Avatar URL of the user on the seat |
|
|
464
|
+
| `seatInfo.userMicrophoneStatus` | `DeviceStatus` | Microphone status of the user on the seat |
|
|
465
|
+
| `seatInfo.userCameraStatus` | `DeviceStatus` | Camera status of the user on the seat |
|
|
466
|
+
| `viewLayer` | `ViewLayer` | View layer enum:<br>- `FOREGROUND`: Foreground widget view, always displayed on top of the video<br>- `BACKGROUND`: Background widget view, displayed below the foreground view, only shown when the user has no video stream (e.g., camera is off); typically used for the user's avatar or a placeholder image |
|
|
571
467
|
|
|
572
468
|
## API Documentation
|
|
573
469
|
|
|
574
470
|
For detailed information on all public interfaces, properties, and methods of [CoGuestStore](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-co-guest-store/index.html) and related classes, refer to the official API documentation included with the [AtomicXCore](https://tencent-rtc.github.io/TUIKit_Android/index.html) framework. The relevant stores used in this guide include:
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
<td rowspan="1" colSpan="1" >**API Documentation**</td>
|
|
582
|
-
</tr>
|
|
583
|
-
|
|
584
|
-
<tr>
|
|
585
|
-
<td rowspan="1" colSpan="1" >LiveCoreView</td>
|
|
586
|
-
|
|
587
|
-
<td rowspan="1" colSpan="1" >Core view component for live video stream display and interaction. Handles video rendering and widget management, supporting host streaming, audience co-hosting, host connections, and more.</td>
|
|
588
|
-
|
|
589
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.view/-live-core-view/index.html)</td>
|
|
590
|
-
</tr>
|
|
591
|
-
|
|
592
|
-
<tr>
|
|
593
|
-
<td rowspan="1" colSpan="1" >DeviceStore</td>
|
|
594
|
-
|
|
595
|
-
<td rowspan="1" colSpan="1" >Audio and video device control: microphone (on/off, volume), camera (on/off, switch, quality), screen sharing, real-time device status monitoring.</td>
|
|
596
|
-
|
|
597
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-device-store/index.html)</td>
|
|
598
|
-
</tr>
|
|
599
|
-
|
|
600
|
-
<tr>
|
|
601
|
-
<td rowspan="1" colSpan="1" >CoGuestStore</td>
|
|
602
|
-
|
|
603
|
-
<td rowspan="1" colSpan="1" >Audience co-hosting management: request/invite/accept/reject co-hosting, permission control (microphone/camera), state synchronization.</td>
|
|
604
|
-
|
|
605
|
-
<td rowspan="1" colSpan="1" >[API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-co-guest-store/index.html)</td>
|
|
606
|
-
</tr>
|
|
607
|
-
</table>
|
|
608
|
-
|
|
471
|
+
| **Store/Component** | **Function Description** | **API Documentation** |
|
|
472
|
+
| --- | --- | --- |
|
|
473
|
+
| LiveCoreView | Core view component for live video stream display and interaction. Handles video rendering and widget management, supporting host streaming, audience co-hosting, host connections, and more. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.view/-live-core-view/index.html) |
|
|
474
|
+
| DeviceStore | Audio and video device control: microphone (on/off, volume), camera (on/off, switch, quality), screen sharing, real-time device status monitoring. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-device-store/index.html) |
|
|
475
|
+
| CoGuestStore | Audience co-hosting management: request/invite/accept/reject co-hosting, permission control (microphone/camera), state synchronization. | [API Documentation](https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.live/-co-guest-store/index.html) |
|
|
609
476
|
|
|
610
477
|
## FAQs
|
|
611
478
|
|
|
@@ -620,7 +487,6 @@ The viewLayer parameter distinguishes between foreground and background widgets:
|
|
|
620
487
|
|
|
621
488
|
- `BACKGROUND`: Background layer, displayed only when the user has no video stream (e.g., camera is off); typically used to show the user's avatar or a placeholder image.
|
|
622
489
|
|
|
623
|
-
|
|
624
490
|
### Why is my custom view not showing up?
|
|
625
491
|
- **Check adapter settings**: Ensure you have called liveCoreView.setVideoViewAdapter(this) and set the adapter successfully.
|
|
626
492
|
|