@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
|
@@ -29,7 +29,7 @@ trtc.on(TRTC.EVENT.ERROR, error => {
|
|
|
29
29
|
// User network firewall restrictions may cause audio and video calls to fail.
|
|
30
30
|
// At this time, guide users to change networks or check network firewall settings.
|
|
31
31
|
if (error.code === TRTC.ERROR_CODE.OPERATION_FAILED && error.extraCode === 5501) {
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
35
|
```
|
|
@@ -44,7 +44,7 @@ trtc.on(TRTC.EVENT.ERROR, error => {
|
|
|
44
44
|
| B | Users can only access an internal proxy server on the network | The proxy server is deployed on the internal network, and the internal network firewall needs to open a whitelist to allow the internal proxy server to access the external network. |
|
|
45
45
|
|
|
46
46
|
<div style="display: flex;justify-content: center;">
|
|
47
|
-
|
|
47
|
+
|
|
48
48
|
</div>
|
|
49
49
|
|
|
50
50
|
<div style="display: flex;justify-content: center;">
|
|
@@ -52,7 +52,7 @@ trtc.on(TRTC.EVENT.ERROR, error => {
|
|
|
52
52
|
</div>
|
|
53
53
|
|
|
54
54
|
<div style="display: flex;justify-content: center;">
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
</div>
|
|
57
57
|
|
|
58
58
|
<div style="display: flex;justify-content: center;">Example of Solution 2-B</div>
|
|
@@ -62,7 +62,7 @@ trtc.on(TRTC.EVENT.ERROR, error => {
|
|
|
62
62
|
After you have set up Nginx and Turn server, you can refer to the following example to set up a proxy server.
|
|
63
63
|
|
|
64
64
|
```javascript
|
|
65
|
-
const trtc = TRTC.create();
|
|
65
|
+
const trtc = TRTC.create();
|
|
66
66
|
|
|
67
67
|
await trtc.enterRoom({
|
|
68
68
|
...,
|
|
@@ -72,7 +72,7 @@ await trtc.enterRoom({
|
|
|
72
72
|
// Set up a turn server to relay media data packets between the SDK and the TRTC backend. 14.3.3.3:3478 is the IP address and port of the turn server.
|
|
73
73
|
turnServer: { url: '14.3.3.3:3478', username: 'turn', credential: 'turn', credentialType: 'password' },
|
|
74
74
|
// By default, the SDK will connect to trtc server directly, if connection failed, then SDK will try to connect the TURN server to relay the media data. You can set 'relay' to force the connection through the TURN server.
|
|
75
|
-
iceTransportPolicy: 'all',
|
|
75
|
+
iceTransportPolicy: 'all',
|
|
76
76
|
// By default, the SDK reports logs to the yun.tim.qq.com domain name. If this domain name cannot be accessed in your internal network, you need to whitelist the domain name or configure the following log proxy.
|
|
77
77
|
// Set up a log reporting proxy. Logs are key data for troubleshooting, so be sure to set up this proxy.
|
|
78
78
|
loggerProxy: 'https://proxy.example.com/logger/',
|
|
@@ -91,38 +91,36 @@ await trtc.enterRoom({
|
|
|
91
91
|
2. Configure Nginx server
|
|
92
92
|
|
|
93
93
|
```sh
|
|
94
|
-
vi /etc/nginx/nginx.conf
|
|
94
|
+
vi /etc/nginx/nginx.conf
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
```
|
|
98
98
|
http {
|
|
99
|
-
server {
|
|
99
|
+
server {
|
|
100
100
|
# The access domain name of the Nginx server
|
|
101
|
-
server_name proxy.example.com;
|
|
101
|
+
server_name proxy.example.com;
|
|
102
102
|
# The access port of the Nginx server
|
|
103
|
-
listen 443;
|
|
104
|
-
|
|
105
|
-
ssl on;
|
|
106
|
-
|
|
103
|
+
listen 443;
|
|
104
|
+
|
|
105
|
+
ssl on;
|
|
106
|
+
|
|
107
107
|
location /ws/ { # Corresponding to the websocketProxy parameter in setProxyServer
|
|
108
108
|
proxy_pass https://signaling.rtc.qq.com/; # TRTC server
|
|
109
|
-
proxy_http_version 1.1;
|
|
110
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
111
|
-
proxy_set_header Connection "upgrade";
|
|
109
|
+
proxy_http_version 1.1;
|
|
110
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
111
|
+
proxy_set_header Connection "upgrade";
|
|
112
112
|
}
|
|
113
113
|
location /logger/ { # Corresponding to the loggerProxy parameter in setProxyServer
|
|
114
114
|
proxy_pass https://yun.tim.qq.com/;
|
|
115
115
|
}
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
# SSL certificate corresponding to the domain name, used for HTTPS, users need to apply for it themselves
|
|
118
|
-
ssl_certificate ./crt/1_proxy.trtcapi.com_bundle.crt;
|
|
119
|
-
ssl_certificate_key ./crt/2_proxy.trtcapi.com.key;
|
|
118
|
+
ssl_certificate ./crt/1_proxy.trtcapi.com_bundle.crt;
|
|
119
|
+
ssl_certificate_key ./crt/2_proxy.trtcapi.com.key;
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
126
124
|
3. Reload Nginx
|
|
127
125
|
|
|
128
126
|
```sh
|
|
@@ -137,47 +135,46 @@ You can search for turn server setup tutorials on the Internet for setup, or you
|
|
|
137
135
|
|
|
138
136
|
1. Create a script file `turn.sh` in the Linux server, and the script content is as follows:
|
|
139
137
|
|
|
140
|
-
|
|
141
138
|
```sh
|
|
142
139
|
#!/usr/bin/env bash
|
|
143
|
-
|
|
140
|
+
|
|
144
141
|
# current file name is turn.sh
|
|
145
|
-
|
|
142
|
+
|
|
146
143
|
# ref:
|
|
147
144
|
# https://gabrieltanner.org/blog/turn-server STEP 3 testing turn server
|
|
148
145
|
# https://medium.com/av-transcode/what-is-webrtc-and-how-to-setup-stun-turn-server-for-webrtc-communication-63314728b9d0
|
|
149
|
-
|
|
146
|
+
|
|
150
147
|
# as super-user
|
|
151
148
|
# usage: current_program <external-ip>
|
|
152
|
-
|
|
149
|
+
|
|
153
150
|
set -x
|
|
154
151
|
set -e
|
|
155
|
-
|
|
152
|
+
|
|
156
153
|
ip a
|
|
157
154
|
pwd
|
|
158
155
|
whoami
|
|
159
|
-
|
|
156
|
+
|
|
160
157
|
display_usage() {
|
|
161
158
|
echo "This script must be run with super-user privileges."
|
|
162
159
|
echo -e "\nUsage: $0 <external-ip> \ne.g. $0 154.8.246.205"
|
|
163
160
|
}
|
|
164
|
-
|
|
161
|
+
|
|
165
162
|
# if less than two arguments supplied, display usage
|
|
166
163
|
if [ $# -lt 1 ]
|
|
167
164
|
then
|
|
168
165
|
display_usage
|
|
169
166
|
exit 1
|
|
170
167
|
fi
|
|
171
|
-
|
|
168
|
+
|
|
172
169
|
if [[ $1 =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
173
170
|
echo "get external ip $1"
|
|
174
171
|
else
|
|
175
172
|
echo "wrong external ip $1 , must not have whitespace, tab and other char"
|
|
176
173
|
exit 2
|
|
177
174
|
fi
|
|
178
|
-
|
|
175
|
+
|
|
179
176
|
yum install -y coturn
|
|
180
|
-
|
|
177
|
+
|
|
181
178
|
# $1 is <external-ip>
|
|
182
179
|
cat <<EOF > /etc/coturn/turnserver.conf
|
|
183
180
|
external-ip=$1
|
|
@@ -209,10 +206,10 @@ You can search for turn server setup tutorials on the Internet for setup, or you
|
|
|
209
206
|
|
|
210
207
|
```sh
|
|
211
208
|
systemctl start coturn
|
|
212
|
-
|
|
209
|
+
|
|
213
210
|
# Check if turn is started successfully
|
|
214
211
|
ps aux | grep coturn
|
|
215
|
-
|
|
212
|
+
|
|
216
213
|
# If you want to restart the service, execute
|
|
217
214
|
service coturn restart
|
|
218
215
|
```
|
|
@@ -225,9 +222,6 @@ You can search for turn server setup tutorials on the Internet for setup, or you
|
|
|
225
222
|
|
|
226
223
|
Use this [test page](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/) to test whether the turn server is accessible. If the result shows "done" as shown in the screenshot below, the turn server is working properly.
|
|
227
224
|
|
|
228
|
-
<img src="./assets/turn-test.png" alt="turn-test" style="zoom: 33%;" />
|
|
229
|
-
|
|
230
|
-
|
|
231
225
|
### Solution 2-B
|
|
232
226
|
|
|
233
227
|
Solution B builds the Nginx proxy in the same way as Scenario A. There are two main differences:
|
|
@@ -245,4 +239,3 @@ sudo . /turn.sh 10.0.0.4
|
|
|
245
239
|
|
|
246
240
|
- For the Nginx server, the domain name whitelist needs to be configured in the company's intranet firewall to allow the Nginx server to access TRTC's related domain names. Refer to: [TRTC Web SDK domain and port whitelist](https://trtc.io/document/59667?platform=web&product=rtcengine&menulabel=coresdk)
|
|
247
241
|
- For the Turn Server, allow the Turn Server to access the external network.
|
|
248
|
-
|
|
@@ -4,7 +4,7 @@ This document will describe how to implement the virtual background feature duri
|
|
|
4
4
|
|
|
5
5
|
| Original Camera | Background Blur | Background Image |
|
|
6
6
|
| --- | --- | --- |
|
|
7
|
-
|
|
|
7
|
+
| | | |
|
|
8
8
|
|
|
9
9
|
## Prerequisites
|
|
10
10
|
|
|
@@ -12,94 +12,18 @@ This document will describe how to implement the virtual background feature duri
|
|
|
12
12
|
- [TRTC SDK](https://www.npmjs.com/package/trtc-sdk-v5) version must be >= 5.5.0
|
|
13
13
|
- System and configuration requirements for various platforms are as follows:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<
|
|
15
|
+
| Platform | Operating System | Browser Version | FPS | Recommended Configuration | Remarks |
|
|
16
|
+
| --- | --- | --- | --- | --- | --- |
|
|
17
|
+
| Web | Windows | Chrome 90+<br>Firefox 90+<br>Edge 97+ | 30 | Memory: 16GB<br>CPU: i5-10500<br>GPU: Dedicated 2GB | It is recommended to use the latest version of Chrome browser<br><b> (Enable hardware acceleration in the browser)</b> |
|
|
18
|
+
| 15 | Memory: 8GB<br>CPU: i3-8300<br>GPU: Integrated Intel 1GB | | | | |
|
|
19
|
+
| Mac | Chrome 98+<br>Firefox 96+<br>Safari 15+ | 30 | 2019 MacBook<br>Memory: 16GB (2667MHz)<br>CPU: i7 (6-core 2.60GHz)<br>GPU: AMD Radeon 5300M | | |
|
|
20
|
+
| Android | Chrome<br>Firefox Browser
|
|
18
21
|
|
|
19
|
-
<td rowspan="1" colspan="1">
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<td rowspan="1" colspan="1">Recommended Configuration</td>
|
|
26
|
-
|
|
27
|
-
<td rowspan="1" colspan="1">Remarks</td>
|
|
28
|
-
</tr>
|
|
29
|
-
|
|
30
|
-
<tr>
|
|
31
|
-
<td rowspan="8" colspan="1">Web</td>
|
|
32
|
-
|
|
33
|
-
<td rowspan="2" colspan="1">Windows</td>
|
|
34
|
-
|
|
35
|
-
<td rowspan="2" colspan="1">Chrome 90+<br>Firefox 90+<br>Edge 97+</td>
|
|
36
|
-
|
|
37
|
-
<td rowspan="1" colspan="1">30</td>
|
|
38
|
-
|
|
39
|
-
<td rowspan="1" colspan="1">Memory: 16GB<br>CPU: i5-10500<br>GPU: Dedicated 2GB</td>
|
|
40
|
-
|
|
41
|
-
<td rowspan="3" colspan="1">It is recommended to use the latest version of Chrome browser<br> <b> (Enable hardware acceleration in the browser)</b></td>
|
|
42
|
-
</tr>
|
|
43
|
-
|
|
44
|
-
<tr>
|
|
45
|
-
<td rowspan="1" colspan="1">15</td>
|
|
46
|
-
|
|
47
|
-
<td rowspan="1" colspan="1">Memory: 8GB<br>CPU: i3-8300<br>GPU: Integrated Intel 1GB</td>
|
|
48
|
-
</tr>
|
|
49
|
-
|
|
50
|
-
<tr>
|
|
51
|
-
<td rowspan="1" colspan="1">Mac</td>
|
|
52
|
-
|
|
53
|
-
<td rowspan="1" colspan="1">Chrome 98+<br>Firefox 96+<br>Safari 15+</td>
|
|
54
|
-
|
|
55
|
-
<td rowspan="1" colspan="1">30</td>
|
|
56
|
-
|
|
57
|
-
<td rowspan="1" colspan="1">2019 MacBook<br>Memory: 16GB (2667MHz)<br>CPU: i7 (6-core 2.60GHz)<br>GPU: AMD Radeon 5300M</td>
|
|
58
|
-
</tr>
|
|
59
|
-
|
|
60
|
-
<tr>
|
|
61
|
-
<td rowspan="3" colspan="1">Android</td>
|
|
62
|
-
|
|
63
|
-
<td rowspan="3" colspan="1">Chrome<br>Firefox Browser
|
|
64
|
-
|
|
65
|
-
<td rowspan="1" colspan="1">30</td>
|
|
66
|
-
|
|
67
|
-
<td rowspan="1" colspan="1">High-end devices (e.g., Qualcomm Snapdragon 8 Gen1)</td>
|
|
68
|
-
|
|
69
|
-
<td rowspan="3" colspan="1">It is recommended to use Chrome, or Firefox browsers and other mainstream browsers<br>
|
|
70
|
-
</tr>
|
|
71
|
-
|
|
72
|
-
<tr>
|
|
73
|
-
<td rowspan="1" colspan="1">20</td>
|
|
74
|
-
|
|
75
|
-
<td rowspan="1" colspan="1">Mid-range devices (e.g., MediaTek Dimensity 8000-MAX)</td>
|
|
76
|
-
</tr>
|
|
77
|
-
|
|
78
|
-
<tr>
|
|
79
|
-
<td rowspan="1" colspan="1">10</td>
|
|
80
|
-
|
|
81
|
-
<td rowspan="1" colspan="1">Low-end devices (e.g., Qualcomm Snapdragon 660)</td>
|
|
82
|
-
</tr>
|
|
83
|
-
|
|
84
|
-
<tr>
|
|
85
|
-
<td rowspan="2" colspan="1">iOS</td>
|
|
86
|
-
|
|
87
|
-
<td rowspan="2" colspan="1">Chrome<br>Safari<br>Firefox</td>
|
|
88
|
-
|
|
89
|
-
<td rowspan="1" colspan="1">30</td>
|
|
90
|
-
|
|
91
|
-
<td rowspan="1" colspan="1">iPhone 13</td>
|
|
92
|
-
|
|
93
|
-
<td rowspan="2" colspan="1">- Requires iOS 14.4 or above<br>- It is recommended to use Chrome or Safari browsers<br></td>
|
|
94
|
-
</tr>
|
|
95
|
-
|
|
96
|
-
<tr>
|
|
97
|
-
<td rowspan="1" colspan="1">20</td>
|
|
98
|
-
|
|
99
|
-
<td rowspan="1" colspan="1">iPhone XR</td>
|
|
100
|
-
</tr>
|
|
101
|
-
|
|
102
|
-
</table>
|
|
22
|
+
<td rowspan="1" colspan="1">30 | High-end devices (e.g., Qualcomm Snapdragon 8 Gen1) | | | |
|
|
23
|
+
| 20 | Mid-range devices (e.g., MediaTek Dimensity 8000-MAX) | | | | |
|
|
24
|
+
| 10 | Low-end devices (e.g., Qualcomm Snapdragon 660) | | | | |
|
|
25
|
+
| iOS | Chrome<br>Safari<br>Firefox | 30 | iPhone 13 | - Requires iOS 14.4 or above<br>- It is recommended to use Chrome or Safari browsers | |
|
|
26
|
+
| 20 | iPhone XR | | | | |
|
|
103
27
|
|
|
104
28
|
## Implementation Steps
|
|
105
29
|
|
|
@@ -203,7 +127,7 @@ Allows modification of virtual background parameters.
|
|
|
203
127
|
| Name | Type | Attributes | Description |
|
|
204
128
|
|------------|----------|------------|-----------------------------------------|
|
|
205
129
|
| type | `string` | Required | - `image` for image background <br> - `blur` for background blur |
|
|
206
|
-
| enableFaceCentering (Since v5.11.0) | `boolean` | Optional |`false`(default)
|
|
130
|
+
| enableFaceCentering (Since v5.11.0) | `boolean` | Optional |`false`(default)
|
|
207
131
|
| blurLevel | `number` | Optional | - Set the level of blur when `type` is set to `blur`. Default value is 3, with a range from 1 to 10. |
|
|
208
132
|
| src | `string` | Required if type is `image` | Image URL, such as `https://picsum.photos/seed/picsum/200/300` |
|
|
209
133
|
|
|
@@ -228,7 +152,6 @@ This plugin uses GPU acceleration, and you need to enable hardware acceleration
|
|
|
228
152
|
|
|
229
153
|
**2. When device performance is insufficient, causing high latency and rendering issues**
|
|
230
154
|
|
|
231
|
-
|
|
232
155
|
```javascript
|
|
233
156
|
async function onAbort(error) {
|
|
234
157
|
await trtc.stopPlugin('VirtualBackground'); // Stop the plugin
|
|
@@ -44,7 +44,6 @@ await trtc.stopPlugin('VoiceChanger');
|
|
|
44
44
|
await trtc.stopLocalAudio();
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
47
|
## API Reference
|
|
49
48
|
|
|
50
49
|
### trtc.startPlugin('VoiceChanger', options)
|
|
@@ -96,4 +95,4 @@ Disable voice changing effects
|
|
|
96
95
|
// Disable the plugin before stopping microphone
|
|
97
96
|
await trtc.stopPlugin('VoiceChanger');
|
|
98
97
|
await trtc.stopLocalAudio();
|
|
99
|
-
```
|
|
98
|
+
```
|
|
@@ -19,7 +19,6 @@ The plugin relies on some static resource files. To ensure that the browser can
|
|
|
19
19
|
> - If the host URL of the directory files is different from the host URL of the web application, you need to enable the CORS policy for the file domain.
|
|
20
20
|
> - Do not place the directory files under an HTTP service, as loading HTTP resources under an HTTPS domain will be blocked by browser security policies.
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
### 2. Import and Register Plugin
|
|
24
23
|
|
|
25
24
|
```javascript
|
|
@@ -30,4 +29,4 @@ const trtc = TRTC.create({ plugins: [TRTCVideoDecoder], assetsPath: 'https://exa
|
|
|
30
29
|
|
|
31
30
|
## Plugin Activation
|
|
32
31
|
|
|
33
|
-
The plugin functionality will automatically activate the fallback logic when SDK regular decoding fails, using software decoding method to decode.
|
|
32
|
+
The plugin functionality will automatically activate the fallback logic when SDK regular decoding fails, using software decoding method to decode.
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
This document provides a detailed guide on how to use the TRTC Web SDK's VideoMixer plugin to composite multiple input sources including camera, screen sharing, text, images, and videos into a single video track for streaming with custom layouts. Developers can flexibly control the layout (position, size, layer zIndex) of each source.
|
|
4
4
|
|
|
5
|
-

|
|
6
|
-
|
|
7
5
|
## Prerequisites
|
|
8
6
|
|
|
9
7
|
- TRTC Web SDK version >= 5.12.0.
|
|
@@ -51,7 +49,7 @@ const { track } = await trtc.startPlugin('VideoMixer', options);
|
|
|
51
49
|
The mixing plugin is only responsible for generating the mixed video track. Publishing operation is still controlled by the TRTC SDK. Pass the track returned by startPlugin as a parameter to the startLocalVideo interface to publish.
|
|
52
50
|
|
|
53
51
|
```js
|
|
54
|
-
await trtc.startLocalVideo({ option: {
|
|
52
|
+
await trtc.startLocalVideo({ option: {
|
|
55
53
|
videoTrack: track,
|
|
56
54
|
profile: { width: 1920, height: 1080, bitrate: 2000 } // Set encoding parameters
|
|
57
55
|
}});
|
|
@@ -64,7 +62,7 @@ Dynamically add, update, or remove mixing input sources by calling `trtc.updateP
|
|
|
64
62
|
**Update Rules:**
|
|
65
63
|
|
|
66
64
|
* **Input Source Description:** Input sources are divided into: `camera, screen, text, image, video`. All are arrays, each array element represents an input source, uniquely identified by the id attribute.
|
|
67
|
-
* **Update Input Source:** Pass the same id and modify other parameters.
|
|
65
|
+
* **Update Input Source:** Pass the same id and modify other parameters.
|
|
68
66
|
* **Add Input Source:** Pass a new id object.
|
|
69
67
|
* **Remove Input Source:** Remove the object from the corresponding input source array.
|
|
70
68
|
|
|
@@ -73,7 +71,7 @@ Dynamically add, update, or remove mixing input sources by calling `trtc.updateP
|
|
|
73
71
|
Control camera capture and layout.
|
|
74
72
|
|
|
75
73
|
```javascript
|
|
76
|
-
// Update camera layout with id 'camera1'
|
|
74
|
+
// Update camera layout with id 'camera1'
|
|
77
75
|
await trtc.updatePlugin('VideoMixer', {
|
|
78
76
|
camera: [
|
|
79
77
|
{
|
|
@@ -84,7 +82,7 @@ await trtc.updatePlugin('VideoMixer', {
|
|
|
84
82
|
]
|
|
85
83
|
});
|
|
86
84
|
|
|
87
|
-
// Remove all cameras
|
|
85
|
+
// Remove all cameras
|
|
88
86
|
await trtc.updatePlugin('VideoMixer', { camera: [] });
|
|
89
87
|
// If you only want to temporarily hide the input source on the canvas without physically closing capture, you can set hidden: true in the layout parameter. The same applies to other input sources.
|
|
90
88
|
```
|
|
@@ -102,7 +100,7 @@ await trtc.updatePlugin('VideoMixer', {
|
|
|
102
100
|
y: 0,
|
|
103
101
|
width: 1920,
|
|
104
102
|
height: 1080,
|
|
105
|
-
zIndex: 0,
|
|
103
|
+
zIndex: 0,
|
|
106
104
|
}
|
|
107
105
|
}],
|
|
108
106
|
// If the user stops screen sharing via browser button instead of SDK, you can listen through this callback
|
|
@@ -142,13 +140,13 @@ Add images (such as logos) or local video files as mixing input sources.
|
|
|
142
140
|
|
|
143
141
|
```js
|
|
144
142
|
await trtc.updatePlugin('VideoMixer', {
|
|
145
|
-
image: [{
|
|
146
|
-
id: 'img1',
|
|
143
|
+
image: [{
|
|
144
|
+
id: 'img1',
|
|
147
145
|
url: './image.png',
|
|
148
146
|
layout: { x: 0, y: 500, width: 800, height: 400, zIndex: 4 }
|
|
149
147
|
}],
|
|
150
|
-
video: [{
|
|
151
|
-
id: 'video1',
|
|
148
|
+
video: [{
|
|
149
|
+
id: 'video1',
|
|
152
150
|
url: './video.mp4',
|
|
153
151
|
layout: { x: 0, y: 0, width: 1000, height: 500, zIndex: 5 }
|
|
154
152
|
}]
|
|
@@ -189,11 +187,11 @@ try {
|
|
|
189
187
|
})
|
|
190
188
|
console.log(result.successOptions) // Successfully applied options for this update
|
|
191
189
|
} catch (error: any) {
|
|
192
|
-
// Scenario 2: Error catching for all failures (catching thrown errors)
|
|
190
|
+
// Scenario 2: Error catching for all failures (catching thrown errors)
|
|
193
191
|
console.error(error);
|
|
194
192
|
error?.data?.failedDetails.forEach(({ id, error }: { id: string, error: any }) => {
|
|
195
193
|
console.error(`${id} mix failed`, error);
|
|
196
|
-
})
|
|
194
|
+
})
|
|
197
195
|
}
|
|
198
196
|
```
|
|
199
197
|
|
|
@@ -220,7 +218,6 @@ Used to start the mixing plugin and initialize canvas and input sources.
|
|
|
220
218
|
| video | [VideoSource](#videosource)[] | Optional | Parameters for controlling video input sources |
|
|
221
219
|
| onScreenShareStop | (id: string) => {} | Optional | Callback invoked when mixed screen sharing stops. May be used when user cancels screen sharing via browser button instead of SDK. The callback parameter is the id of the stopped screen capture |
|
|
222
220
|
|
|
223
|
-
|
|
224
221
|
**Returns: Promise\<MixParseResult\>**
|
|
225
222
|
|
|
226
223
|
`MixParseResult`
|
|
@@ -229,7 +226,10 @@ Used to start the mixing plugin and initialize canvas and input sources.
|
|
|
229
226
|
| ------ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
230
227
|
| track | [MediaStreamTrack](https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack) | Mixed output video track |
|
|
231
228
|
| systemAudioTrackList | object | This returns a list of system audio tracks. After setting the ScreenSource parameter `systemAudio:true` and successfully capturing the audio, it will return the system audio tracks. The data format is: `{key: audioTrack}`, where `key` is the ID configured in the ScreenSource, for example: `{id1: audioTrack, id2: audioTrack}`. |
|
|
232
|
-
| result | object | Information about the success or failure of the parameters passed in this time, structured as follows
|
|
229
|
+
| result | object | Information about the success or failure of the parameters passed in this time, structured as follows:| Name | Type | Description |
|
|
230
|
+
| --- | --- | --- |
|
|
231
|
+
| successOptions | [Options](#options) | Successfully executed options for this update |
|
|
232
|
+
| failedDetails | MixFailedDetail[] | Detailed information about failed updates | |
|
|
233
233
|
|
|
234
234
|
`MixFailedDetail`
|
|
235
235
|
|
|
@@ -322,10 +322,10 @@ Stop mixing.
|
|
|
322
322
|
|
|
323
323
|
### 1. Frame Rate and Performance Optimization
|
|
324
324
|
|
|
325
|
-
* **Frame Rate Settings:**
|
|
326
|
-
* **Not Recommended**: manually setting canvasInfo.frameRate.
|
|
327
|
-
* **Recommended**: let the plugin automatically calculate internally: when camera or screen sharing exists, take the maximum frame rate of the two; otherwise fixed at 15 fps. Manual specification may cause performance loss.
|
|
328
|
-
* **Performance Considerations:**
|
|
325
|
+
* **Frame Rate Settings:**
|
|
326
|
+
* **Not Recommended**: manually setting canvasInfo.frameRate.
|
|
327
|
+
* **Recommended**: let the plugin automatically calculate internally: when camera or screen sharing exists, take the maximum frame rate of the two; otherwise fixed at 15 fps. Manual specification may cause performance loss.
|
|
328
|
+
* **Performance Considerations:**
|
|
329
329
|
* The larger the canvas resolution and the more mixing input sources, the greater the rendering overhead. The business side should determine appropriate canvas parameters and number of input sources based on user device performance.
|
|
330
330
|
|
|
331
331
|
### 2. How to Set Resolution and Bitrate?
|
|
@@ -84,7 +84,7 @@ trtc.startPlugin('SmallStreamAutoSwitcher', {
|
|
|
84
84
|
2. Frame rate conditions: Small stream frame rate is stable (difference between maximum and minimum frame rate does not exceed 1/3 of maximum frame rate)
|
|
85
85
|
3. Limiting conditions: User is currently subscribed to small stream, and the user has only switched to small stream once, and not in sleep period
|
|
86
86
|
|
|
87
|
-
> **Note:**
|
|
87
|
+
> **Note:**
|
|
88
88
|
> - Detection frequency is once every 2 seconds
|
|
89
89
|
> - The statistical window size for network quality and frame rate data automatically adapts to the maximum value of poorDuration and goodDuration
|
|
90
90
|
> - After each switch, it enters a sleep period of `sleepTime` duration, during which automatic switching will not be triggered again
|
|
@@ -90,7 +90,7 @@ const robotId = await trtc.startPlugin('RealtimeTranscriber', {
|
|
|
90
90
|
trtc.on(TRTC.EVENT.REALTIME_TRANSCRIBER_MESSAGE, (data) => {
|
|
91
91
|
console.log(`👤 ${data.speakerUserId}:`);
|
|
92
92
|
console.log(` Original: ${data.sourceText}`);
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
if (data.translationTexts) {
|
|
95
95
|
Object.entries(data.translationTexts).forEach(([lang, text]) => {
|
|
96
96
|
console.log(` ${lang.toUpperCase()}: ${text}`);
|
|
@@ -204,10 +204,10 @@ Transcription message event, triggered when new transcription results are availa
|
|
|
204
204
|
```javascript
|
|
205
205
|
trtc.on(TRTC.EVENT.REALTIME_TRANSCRIBER_MESSAGE, (event) => {
|
|
206
206
|
const { speakerUserId, sourceText, translationTexts, isCompleted } = event;
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
// Display real-time transcription result
|
|
209
209
|
console.log(`[${isCompleted ? 'Completed' : 'In Progress'}] ${speakerUserId}: ${sourceText}`);
|
|
210
|
-
|
|
210
|
+
|
|
211
211
|
// Display translation results
|
|
212
212
|
if (translationTexts) {
|
|
213
213
|
translationTexts.forEach(({ language, text }) => {
|
|
@@ -301,7 +301,7 @@ const subtitleMap = new Map();
|
|
|
301
301
|
|
|
302
302
|
trtc.on(TRTC.EVENT.REALTIME_TRANSCRIBER_MESSAGE, (event) => {
|
|
303
303
|
subtitleMap.set(event.segmentId, event);
|
|
304
|
-
|
|
304
|
+
|
|
305
305
|
if (event.isCompleted) {
|
|
306
306
|
// Speech segment completed, can be archived
|
|
307
307
|
archiveSubtitle(subtitleMap.get(event.segmentId));
|
|
@@ -312,4 +312,3 @@ trtc.on(TRTC.EVENT.REALTIME_TRANSCRIBER_MESSAGE, (event) => {
|
|
|
312
312
|
**3. How to save bandwidth?**
|
|
313
313
|
|
|
314
314
|
When you don't need to receive transcription messages, remove all listeners for the `REALTIME_TRANSCRIBER_MESSAGE` event, and the plugin will automatically pause receiving messages to save bandwidth. When listeners are added again, message receiving will automatically resume.
|
|
315
|
-
|
|
@@ -34,8 +34,8 @@ The plugin relies on static resource files. To ensure the browser can load and r
|
|
|
34
34
|
```javascript
|
|
35
35
|
import { FaceDetection } from 'trtc-sdk-v5/plugins/video-effect/face-detection';
|
|
36
36
|
|
|
37
|
-
const trtc = TRTC.create({
|
|
38
|
-
plugins: [FaceDetection],
|
|
37
|
+
const trtc = TRTC.create({
|
|
38
|
+
plugins: [FaceDetection],
|
|
39
39
|
assetsPath: 'https://xxxx/assets' // Replace with your static resource address
|
|
40
40
|
});
|
|
41
41
|
```
|
|
@@ -177,4 +177,4 @@ Adjust sensitivity by combining these parameters:
|
|
|
177
177
|
|
|
178
178
|
**2. Do I need to restart detection after the video stream recovers?**
|
|
179
179
|
|
|
180
|
-
No. The plugin automatically handles video stream state changes and resumes detection upon recovery.
|
|
180
|
+
No. The plugin automatically handles video stream state changes and resumes detection upon recovery.
|