@tencent-rtc/mcp 1.3.9 → 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/{tuicallkit → callkit/preset}/android/integration.md +53 -365
- 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/{chatuikit → chatkit}/android/integration.md +28 -121
- 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 +18 -87
- 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/{voice → core-sdk/voice}/android/voice-audience-list.md +18 -89
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-audio-effect.md +34 -192
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-barrage.md +28 -141
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-co-guest-interaction.md +50 -259
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-gift.md +75 -455
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-host-interaction.md +51 -265
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-integration.md +61 -427
- package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-room-list.md +33 -173
- package/resource/doc/livekit/{voice → core-sdk/voice}/flutter/voice-co-guest-interaction.md +44 -203
- package/resource/doc/livekit/{voice → core-sdk/voice}/flutter/voice-integration.md +56 -416
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-audience-list.md +35 -111
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-audio-effect.md +35 -193
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-barrage.md +31 -144
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-co-guest-interaction.md +43 -252
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-gift.md +79 -459
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-host-interaction.md +46 -264
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-integration.md +61 -445
- package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-room-list.md +32 -169
- 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 +21 -76
- 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 -34
- 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 -41
- 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 -46
- 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 -61
- 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/workflow.md +0 -713
- 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/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 -733
- package/resource/doc/tuicallkit/android/workflow.md +0 -441
- 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/present-scenario-choice.js +0 -16
- package/tools/common/present-scenario-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 -75
- package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -63
- 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 -92
- 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/present_scenario_choice_def.js +0 -53
- package/tools/definitions/present_scenario_choice_def.js.map +0 -1
- package/tools/definitions/record_prompt_def.js +0 -58
- package/tools/definitions/record_prompt_def.js.map +0 -1
- package/tools/definitions/record_result_def.js +0 -46
- package/tools/definitions/record_result_def.js.map +0 -1
- package/tools/live/get-native-live-uikit-integration.js +0 -177
- 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 -194
- 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/iOS/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
|
@@ -1,1000 +0,0 @@
|
|
|
1
|
-
Tencent Cloud Live Streaming SDK V2TXLivePusher Streaming API Documentation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
`V2TXLivePusher` is the primary streaming interface in the Tencent Cloud Live Streaming SDK. It handles encoding of local audio and video frames and pushes them to a specified streaming URL. Compatible with any streaming server.
|
|
6
|
-
|
|
7
|
-
**Supported Platforms**: iOS, macOS
|
|
8
|
-
**Features**: Stream control, audio/video capture, effects processing, cloud stream mixing, local recording
|
|
9
|
-
|
|
10
|
-
## 📋 Table of Contents
|
|
11
|
-
|
|
12
|
-
### 1. Core Feature Highlights
|
|
13
|
-
### 2. Pusher Initialization
|
|
14
|
-
### 3. Video Preview & Rendering
|
|
15
|
-
### 4. Audio/Video Capture Control
|
|
16
|
-
### 5. Streaming Control APIs
|
|
17
|
-
### 6. Audio/Video Quality Control
|
|
18
|
-
### 7. Effects & Device Management
|
|
19
|
-
### 8. Advanced Feature APIs
|
|
20
|
-
### 9. Cloud Stream Mixing & Recording
|
|
21
|
-
### 10. Usage Examples
|
|
22
|
-
|
|
23
|
-
## 1. Core Feature Highlights
|
|
24
|
-
|
|
25
|
-
### 🎯 Main Capabilities
|
|
26
|
-
|
|
27
|
-
- **Custom Video Capture**: Supports custom audio and video input sources
|
|
28
|
-
- **Beauty Filters & Stickers**: Includes multiple beauty algorithms and color filters
|
|
29
|
-
- **QoS Traffic Control**: Adapts to upstream network conditions
|
|
30
|
-
- **AI Face Effects**: Features like eye enlargement, face slimming, and nose enhancement powered by Youtu AI
|
|
31
|
-
- **Cloud Stream Mixing (MixTranscoding)**: Combines multiple audio/video streams into a single live stream
|
|
32
|
-
- **Local Recording**: Records audio and video streams locally
|
|
33
|
-
|
|
34
|
-
### 🔧 Technical Specifications
|
|
35
|
-
|
|
36
|
-
- **Supported Protocols**: RTMP, RTC
|
|
37
|
-
- **Platform Compatibility**: iOS 11.0+, macOS
|
|
38
|
-
- **Encoding Formats**: H.264/H.265 for video, AAC for audio
|
|
39
|
-
- **Resolution**: Up to 4K Ultra HD
|
|
40
|
-
- **Frame Rate**: Adaptive, 15–60 fps
|
|
41
|
-
|
|
42
|
-
## 2. Pusher Initialization
|
|
43
|
-
|
|
44
|
-
### initWithLiveMode – Initialize Pusher
|
|
45
|
-
|
|
46
|
-
**Parameters**:
|
|
47
|
-
- `liveMode`: Streaming protocol
|
|
48
|
-
- `V2TXLiveModeRTMP`: RTMP protocol (default)
|
|
49
|
-
- `V2TXLiveModeRTC`: RTC protocol
|
|
50
|
-
|
|
51
|
-
**Usage**: Call during app initialization
|
|
52
|
-
|
|
53
|
-
**Example**:
|
|
54
|
-
```objc
|
|
55
|
-
// Create RTMP streaming instance; startPush must use an RTMP URL
|
|
56
|
-
V2TXLivePusher *pusher = [[V2TXLivePusher alloc] initWithLiveMode:V2TXLiveModeRTMP];
|
|
57
|
-
|
|
58
|
-
// Create RTC streaming instance; startPush must use an RTC URL
|
|
59
|
-
V2TXLivePusher *pusher = [[V2TXLivePusher alloc] initWithLiveMode:V2TXLiveModeRTC];
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### setObserver – Set Pusher Observer
|
|
63
|
-
|
|
64
|
-
```objc
|
|
65
|
-
- (void)setObserver:(id<V2TXLivePusherObserver>)observer;
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**Parameters**:
|
|
69
|
-
- `observer`: Object conforming to V2TXLivePusherObserver protocol
|
|
70
|
-
|
|
71
|
-
**Usage**: Set immediately after initializing the pusher
|
|
72
|
-
|
|
73
|
-
**Notes**:
|
|
74
|
-
- The observer must remain valid for the duration of the streaming session
|
|
75
|
-
- Receives streaming status, statistics, warnings, and error notifications
|
|
76
|
-
|
|
77
|
-
## 3. Video Preview & Rendering
|
|
78
|
-
|
|
79
|
-
### setRenderView – Configure Local Camera Preview
|
|
80
|
-
|
|
81
|
-
```objc
|
|
82
|
-
- (V2TXLiveCode)setRenderView:(TXView *)view;
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
**Parameters**:
|
|
86
|
-
- `view`: View for local camera preview
|
|
87
|
-
|
|
88
|
-
**Usage**: Set before starting the stream
|
|
89
|
-
|
|
90
|
-
**Description**: Displays the local camera feed with applied beauty, face shaping, filters, and other effects
|
|
91
|
-
|
|
92
|
-
### setRenderMirror – Configure Preview Mirroring
|
|
93
|
-
|
|
94
|
-
```objc
|
|
95
|
-
- (V2TXLiveCode)setRenderMirror:(V2TXLiveMirrorType)mirrorType;
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**Function**: Sets mirroring for the local camera preview
|
|
99
|
-
|
|
100
|
-
**Parameters**:
|
|
101
|
-
- `mirrorType`:
|
|
102
|
-
- `V2TXLiveMirrorTypeAuto`: Default (front camera mirrored, rear camera not mirrored)
|
|
103
|
-
- `V2TXLiveMirrorTypeEnable`: Both cameras mirrored
|
|
104
|
-
- `V2TXLiveMirrorTypeDisable`: No mirroring
|
|
105
|
-
|
|
106
|
-
### setEncoderMirror – Configure Encoding Mirroring
|
|
107
|
-
|
|
108
|
-
```objc
|
|
109
|
-
- (V2TXLiveCode)setEncoderMirror:(BOOL)mirror;
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
**Function**: Sets mirroring for the encoded video, affecting what the audience sees
|
|
113
|
-
|
|
114
|
-
**Parameters**:
|
|
115
|
-
- `mirror`:
|
|
116
|
-
- `NO`: Audience sees non-mirrored video (default)
|
|
117
|
-
- `YES`: Audience sees mirrored video
|
|
118
|
-
|
|
119
|
-
**Return Value**: `V2TXLiveCode`
|
|
120
|
-
- `V2TXLIVE_OK`: Success
|
|
121
|
-
|
|
122
|
-
**Difference**:
|
|
123
|
-
- `setRenderMirror`: Affects only local preview
|
|
124
|
-
- `setEncoderMirror`: Affects the audience view
|
|
125
|
-
|
|
126
|
-
**Usage**: No restrictions
|
|
127
|
-
|
|
128
|
-
**Example**:
|
|
129
|
-
```objc
|
|
130
|
-
// Audience sees mirrored video
|
|
131
|
-
[pusher setEncoderMirror:YES];
|
|
132
|
-
// Audience sees non-mirrored video
|
|
133
|
-
[pusher setEncoderMirror:NO];
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### setRenderRotation – Configure Preview Rotation
|
|
137
|
-
|
|
138
|
-
```objc
|
|
139
|
-
- (V2TXLiveCode)setRenderRotation:(V2TXLiveRotation)rotation;
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
**Function**: Sets the rotation angle for the local camera preview
|
|
143
|
-
|
|
144
|
-
**Parameters**:
|
|
145
|
-
- `rotation`:
|
|
146
|
-
- `V2TXLiveRotation0`: No rotation (default)
|
|
147
|
-
- `V2TXLiveRotation90`: 90° clockwise
|
|
148
|
-
- `V2TXLiveRotation180`: 180° clockwise
|
|
149
|
-
- `V2TXLiveRotation270`: 270° clockwise
|
|
150
|
-
|
|
151
|
-
**Return Value**: `V2TXLiveCode`
|
|
152
|
-
- `V2TXLIVE_OK`: Success
|
|
153
|
-
|
|
154
|
-
**Description**: Rotates only the local preview, does not affect the streamed video
|
|
155
|
-
|
|
156
|
-
**Usage**: No restrictions
|
|
157
|
-
|
|
158
|
-
**Example**:
|
|
159
|
-
```objc
|
|
160
|
-
[pusher setRenderRotation:V2TXLiveRotation0];
|
|
161
|
-
[pusher setRenderRotation:V2TXLiveRotation90];
|
|
162
|
-
[pusher setRenderRotation:V2TXLiveRotation180];
|
|
163
|
-
[pusher setRenderRotation:V2TXLiveRotation270];
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### setRenderFillMode – Configure Preview Fill Mode
|
|
167
|
-
|
|
168
|
-
```objc
|
|
169
|
-
- (V2TXLiveCode)setRenderFillMode:(V2TXLiveFillMode)mode;
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**Function**: Sets how the local camera preview fits the view
|
|
173
|
-
|
|
174
|
-
**Parameters**:
|
|
175
|
-
- `mode`:
|
|
176
|
-
- `V2TXLiveFillModeFill`: Fills screen, may crop (default)
|
|
177
|
-
- `V2TXLiveFillModeFit`: Fits screen, preserves full image, may show black bars
|
|
178
|
-
- `V2TXLiveFillModeScaleFill`: Stretches to fill, may distort
|
|
179
|
-
|
|
180
|
-
**Return Value**: `V2TXLiveCode`
|
|
181
|
-
- `V2TXLIVE_OK`: Success
|
|
182
|
-
|
|
183
|
-
**Description**: Affects only local preview, not the streamed video
|
|
184
|
-
|
|
185
|
-
**Usage**: No restrictions
|
|
186
|
-
|
|
187
|
-
**Example**:
|
|
188
|
-
```objc
|
|
189
|
-
[pusher setRenderFillMode:V2TXLiveFillModeFill];
|
|
190
|
-
[pusher setRenderFillMode:V2TXLiveFillModeFit];
|
|
191
|
-
[pusher setRenderFillMode:V2TXLiveFillModeScaleFill];
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### startCamera – Enable Local Camera
|
|
195
|
-
|
|
196
|
-
```objc
|
|
197
|
-
// iOS
|
|
198
|
-
- (V2TXLiveCode)startCamera:(BOOL)frontCamera;
|
|
199
|
-
|
|
200
|
-
// macOS
|
|
201
|
-
- (V2TXLiveCode)startCamera:(NSString *)cameraId;
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
**Parameters**:
|
|
205
|
-
- **iOS**: `frontCamera` – Use front camera
|
|
206
|
-
- **macOS**: `cameraId` – Camera identifier
|
|
207
|
-
|
|
208
|
-
**Important**:
|
|
209
|
-
- Enable at least one capture source before streaming, or streaming will fail
|
|
210
|
-
- Only one capture source can be active per pusher instance: `startVirtualCamera`, `startCamera`, or `startScreenCapture`
|
|
211
|
-
- To switch sources, stop the current one before starting another
|
|
212
|
-
|
|
213
|
-
**Usage**: Call before streaming
|
|
214
|
-
|
|
215
|
-
### startMicrophone – Enable Microphone
|
|
216
|
-
|
|
217
|
-
```objc
|
|
218
|
-
- (V2TXLiveCode)startMicrophone;
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
**Use Cases**:
|
|
222
|
-
- Audio/video streaming: Use with camera capture
|
|
223
|
-
- Audio-only streaming: Use microphone alone
|
|
224
|
-
- Screen sharing: Use with screen capture for system and mic audio
|
|
225
|
-
|
|
226
|
-
**Notes**:
|
|
227
|
-
- Must call before streaming to enable microphone capture, or only video will be streamed
|
|
228
|
-
- Microphone capture can be enabled/disabled dynamically during streaming
|
|
229
|
-
|
|
230
|
-
**Usage**: Call before streaming
|
|
231
|
-
|
|
232
|
-
### startVirtualCamera – Enable Image Streaming
|
|
233
|
-
|
|
234
|
-
```objc
|
|
235
|
-
- (V2TXLiveCode)startVirtualCamera:(TXImage *)image;
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
**Parameters**:
|
|
239
|
-
- `image`: Image to stream
|
|
240
|
-
|
|
241
|
-
**Use Cases**:
|
|
242
|
-
- Stream a static image as video source
|
|
243
|
-
- Display maintenance page during downtime
|
|
244
|
-
- Show advertisement images
|
|
245
|
-
|
|
246
|
-
**Notes**:
|
|
247
|
-
- Must call before streaming to enable image streaming, or streaming will fail
|
|
248
|
-
- Image is encoded as video and uses bandwidth
|
|
249
|
-
- Typically used with microphone capture for audio
|
|
250
|
-
- Cannot enable image streaming and camera capture at the same time
|
|
251
|
-
|
|
252
|
-
**Usage**: Call before streaming
|
|
253
|
-
|
|
254
|
-
### startScreenCapture – Enable Screen Capture
|
|
255
|
-
|
|
256
|
-
```objc
|
|
257
|
-
- (V2TXLiveCode)startScreenCapture:(NSString *)appGroup;
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
**Parameters**:
|
|
261
|
-
- `appGroup`: App Group Identifier shared between main app and broadcast extension
|
|
262
|
-
|
|
263
|
-
**Use Cases**:
|
|
264
|
-
- Share device screen via live streaming
|
|
265
|
-
- Online teaching: share teacher’s screen
|
|
266
|
-
- Game streaming: share gameplay
|
|
267
|
-
- App demo: show app workflows
|
|
268
|
-
|
|
269
|
-
**Notes**:
|
|
270
|
-
- Must call before streaming to enable screen capture, or streaming will fail
|
|
271
|
-
- iOS requires screen recording permission
|
|
272
|
-
- Can be used with `startSystemAudioLoopback()` to capture system audio
|
|
273
|
-
- Cannot enable screen capture and camera capture simultaneously
|
|
274
|
-
|
|
275
|
-
**Usage**: Call before streaming
|
|
276
|
-
|
|
277
|
-
### Stop Capture APIs
|
|
278
|
-
|
|
279
|
-
```objc
|
|
280
|
-
- (V2TXLiveCode)stopCamera;
|
|
281
|
-
- (V2TXLiveCode)stopMicrophone;
|
|
282
|
-
- (V2TXLiveCode)stopVirtualCamera;
|
|
283
|
-
- (V2TXLiveCode)stopScreenCapture;
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
## 5. Streaming Control APIs
|
|
287
|
-
|
|
288
|
-
### startPush – Start Streaming
|
|
289
|
-
|
|
290
|
-
```objc
|
|
291
|
-
- (V2TXLiveCode)startPush:(NSString *)url;
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
**Parameters**:
|
|
295
|
-
- `url`: Streaming URL (supports any streaming server)
|
|
296
|
-
|
|
297
|
-
**Return Value**: `V2TXLiveCode`
|
|
298
|
-
- `V2TXLIVE_OK`: Success, starts connecting to the streaming URL
|
|
299
|
-
- `V2TXLIVE_ERROR_INVALID_PARAMETER`: Invalid URL
|
|
300
|
-
- `V2TXLIVE_ERROR_INVALID_LICENSE`: Invalid license, authentication failed
|
|
301
|
-
- `V2TXLIVE_ERROR_REFUSED`: RTC does not support simultaneous push/pull of the same StreamId on one device
|
|
302
|
-
|
|
303
|
-
**Important**:
|
|
304
|
-
- Enable at least one capture source before calling `startPush()`, or streaming will fail
|
|
305
|
-
- Supported sources: camera, microphone, screen, image streaming, custom capture
|
|
306
|
-
- You can switch capture sources during streaming, but must stop the current source before starting a new one
|
|
307
|
-
|
|
308
|
-
**Usage**: After enabling a capture source
|
|
309
|
-
|
|
310
|
-
### stopPush – Stop Streaming
|
|
311
|
-
|
|
312
|
-
```objc
|
|
313
|
-
- (V2TXLiveCode)stopPush;
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**Function**: Stops pushing audio/video data
|
|
317
|
-
|
|
318
|
-
**Return Value**:
|
|
319
|
-
- `V2TXLIVE_OK`: Success
|
|
320
|
-
|
|
321
|
-
### isPushing – Check Streaming Status
|
|
322
|
-
|
|
323
|
-
```objc
|
|
324
|
-
- (int)isPushing;
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
**Function**: Checks if streaming is active
|
|
328
|
-
|
|
329
|
-
**Return Value**:
|
|
330
|
-
- `1`: Streaming in progress
|
|
331
|
-
- `0`: Streaming stopped
|
|
332
|
-
|
|
333
|
-
## 6. Audio/Video Quality Control
|
|
334
|
-
|
|
335
|
-
### setAudioQuality – Configure Audio Quality
|
|
336
|
-
|
|
337
|
-
```objc
|
|
338
|
-
- (V2TXLiveCode)setAudioQuality:(V2TXLiveAudioQuality)quality;
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
**Parameters**:
|
|
342
|
-
- `quality`:
|
|
343
|
-
- `V2TXLiveAudioQualityDefault`: General audio quality (default)
|
|
344
|
-
- `V2TXLiveAudioQualitySpeech`: Optimized for speech
|
|
345
|
-
- `V2TXLiveAudioQualityMusic`: Optimized for music
|
|
346
|
-
|
|
347
|
-
**Return Value**: `V2TXLiveCode`
|
|
348
|
-
- `V2TXLIVE_OK`: Success
|
|
349
|
-
- `V2TXLIVE_ERROR_REFUSED`: Cannot change audio quality during streaming
|
|
350
|
-
|
|
351
|
-
**Usage**: Set before starting streaming
|
|
352
|
-
|
|
353
|
-
**Example**:
|
|
354
|
-
```objc
|
|
355
|
-
[pusher setAudioQuality:V2TXLiveAudioQualityDefault]; // General quality
|
|
356
|
-
[pusher setAudioQuality:V2TXLiveAudioQualitySpeech]; // For voice chat
|
|
357
|
-
[pusher setAudioQuality:V2TXLiveAudioQualityMusic]; // For music streaming
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
### setVideoQuality – Configure Video Encoding Parameters
|
|
361
|
-
|
|
362
|
-
```objc
|
|
363
|
-
- (V2TXLiveCode)setVideoQuality:(V2TXLiveVideoEncoderParam *)param;
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
**Parameters**:
|
|
367
|
-
- `param`: Video encoding parameters
|
|
368
|
-
|
|
369
|
-
**Configurable Options**:
|
|
370
|
-
- Resolution, bitrate, frame rate
|
|
371
|
-
- Encoding mode (Software Encoding/Hardware Encoding)
|
|
372
|
-
- Encoding complexity
|
|
373
|
-
|
|
374
|
-
**Return Value**: `V2TXLiveCode`
|
|
375
|
-
- `V2TXLIVE_OK`: Success
|
|
376
|
-
- `V2TXLIVE_ERROR_REFUSED`: Cannot change video quality during streaming
|
|
377
|
-
|
|
378
|
-
**Usage**: Set before starting streaming
|
|
379
|
-
|
|
380
|
-
**Example**:
|
|
381
|
-
```objc
|
|
382
|
-
V2TXLiveVideoEncoderParam *param = [[V2TXLiveVideoEncoderParam alloc] init];
|
|
383
|
-
param.videoResolution = V2TXLiveVideoResolution1280x720;
|
|
384
|
-
param.videoFps = 15;
|
|
385
|
-
param.videoBitrate = 1200;
|
|
386
|
-
param.minVideoBitrate = 800;
|
|
387
|
-
param.enableAdjustRes = YES;
|
|
388
|
-
param.videoEncoderMode = V2TXLiveVideoEncoderModeHardware;
|
|
389
|
-
|
|
390
|
-
[pusher setVideoQuality:param];
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
### pauseAudio / resumeAudio – Pause/Resume Audio Stream
|
|
394
|
-
|
|
395
|
-
```objc
|
|
396
|
-
- (V2TXLiveCode)pauseAudio;
|
|
397
|
-
- (V2TXLiveCode)resumeAudio;
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
**Use Cases**:
|
|
401
|
-
- Temporarily mute the host
|
|
402
|
-
- Maintain audio continuity for MP4 recording
|
|
403
|
-
- Switch from microphone to background music
|
|
404
|
-
|
|
405
|
-
**Notes**:
|
|
406
|
-
- Unlike `stopMicrophone()`, this does not interrupt the audio stream; silent packets are sent at low bitrate
|
|
407
|
-
- Audio stream remains, but content is silent during pause
|
|
408
|
-
- Useful for scenarios requiring uninterrupted audio during recording
|
|
409
|
-
|
|
410
|
-
**Usage**: During streaming
|
|
411
|
-
|
|
412
|
-
### pauseVideo / resumeVideo – Pause/Resume Video Stream
|
|
413
|
-
|
|
414
|
-
```objc
|
|
415
|
-
- (V2TXLiveCode)pauseVideo;
|
|
416
|
-
- (V2TXLiveCode)resumeVideo;
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
**Use Cases**:
|
|
420
|
-
- Temporarily black out the video feed
|
|
421
|
-
- Switch from camera to image streaming
|
|
422
|
-
- Hide video for privacy
|
|
423
|
-
|
|
424
|
-
**Notes**:
|
|
425
|
-
- Video stream remains, but content is black screen or last frame during pause
|
|
426
|
-
- Useful for scenarios requiring uninterrupted video stream
|
|
427
|
-
|
|
428
|
-
**Usage**: During streaming
|
|
429
|
-
|
|
430
|
-
## 7. Effects & Device Management
|
|
431
|
-
|
|
432
|
-
### getAudioEffectManager – Audio Effects Manager
|
|
433
|
-
|
|
434
|
-
```objc
|
|
435
|
-
- (TXAudioEffectManager *)getAudioEffectManager;
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
**Function**: Returns the audio effects manager
|
|
439
|
-
|
|
440
|
-
**Features**:
|
|
441
|
-
- Adjust microphone volume
|
|
442
|
-
- Set reverb and voice changer effects
|
|
443
|
-
- Enable ear monitoring and adjust monitor volume
|
|
444
|
-
- Add background music and control playback effects
|
|
445
|
-
|
|
446
|
-
### getBeautyManager – Beauty Manager
|
|
447
|
-
|
|
448
|
-
```objc
|
|
449
|
-
- (TXBeautyManager *)getBeautyManager;
|
|
450
|
-
```
|
|
451
|
-
|
|
452
|
-
**Function**: Returns the beauty manager
|
|
453
|
-
|
|
454
|
-
**Features**:
|
|
455
|
-
- Basic beauty: style, whitening, rosy skin
|
|
456
|
-
- Face shaping: eye enlargement, face slimming, V-face, chin, short face
|
|
457
|
-
- Detail optimization: nose slimming, bright eyes, white teeth, remove eye bags, remove wrinkles
|
|
458
|
-
- Face effects: accessories, makeup, gesture recognition
|
|
459
|
-
|
|
460
|
-
### getDeviceManager – Device Manager
|
|
461
|
-
|
|
462
|
-
```objc
|
|
463
|
-
- (TXDeviceManager *)getDeviceManager;
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
**Function**: Returns the device manager
|
|
467
|
-
|
|
468
|
-
**Features**:
|
|
469
|
-
- Switch front/rear camera
|
|
470
|
-
- Set autofocus
|
|
471
|
-
- Adjust camera zoom
|
|
472
|
-
- Toggle flashlight
|
|
473
|
-
- Switch between headset and speaker
|
|
474
|
-
- Change volume type
|
|
475
|
-
|
|
476
|
-
## 8. Advanced Feature APIs
|
|
477
|
-
|
|
478
|
-
### snapshot – Capture Local Frame
|
|
479
|
-
|
|
480
|
-
```objc
|
|
481
|
-
- (V2TXLiveCode)snapshot;
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
**Return Value**: `V2TXLiveCode`
|
|
485
|
-
- `V2TXLIVE_OK`: Success
|
|
486
|
-
- `V2TXLIVE_ERROR_REFUSED`: Streaming stopped, cannot capture snapshot
|
|
487
|
-
|
|
488
|
-
**Usage**: After streaming starts
|
|
489
|
-
|
|
490
|
-
### setWatermark – Configure Watermark
|
|
491
|
-
|
|
492
|
-
```objc
|
|
493
|
-
- (V2TXLiveCode)setWatermark:(TXImage *)image x:(float)x y:(float)y scale:(float)scale;
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
**Function**: Adds a watermark to the stream
|
|
497
|
-
|
|
498
|
-
**Parameters**:
|
|
499
|
-
- `image`: Watermark image (nil to disable)
|
|
500
|
-
- `x`: Horizontal position (0–1)
|
|
501
|
-
- `y`: Vertical position (0–1)
|
|
502
|
-
- `scale`: Scale (0–1)
|
|
503
|
-
|
|
504
|
-
### enableVolumeEvaluation – Enable Volume Level Notifications
|
|
505
|
-
|
|
506
|
-
```objc
|
|
507
|
-
- (V2TXLiveCode)enableVolumeEvaluation:(NSUInteger)intervalMs;
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
**Function**: Enables microphone volume level notifications
|
|
511
|
-
|
|
512
|
-
**Parameters**:
|
|
513
|
-
- `intervalMs`: Callback interval (min 100ms, recommended 300ms)
|
|
514
|
-
|
|
515
|
-
**Usage**: Get volume updates via `onMicrophoneVolumeUpdate` callback
|
|
516
|
-
|
|
517
|
-
### sendSeiMessage – Send SEI Message
|
|
518
|
-
|
|
519
|
-
```objc
|
|
520
|
-
- (V2TXLiveCode)sendSeiMessage:(int)payloadType data:(NSData *)data;
|
|
521
|
-
```
|
|
522
|
-
|
|
523
|
-
**Function**: Sends SEI (Supplemental Enhancement Information) messages
|
|
524
|
-
|
|
525
|
-
**Parameters**:
|
|
526
|
-
- `payloadType`: Data type (supports 5, 242; 242 recommended)
|
|
527
|
-
- `data`: Data to send
|
|
528
|
-
|
|
529
|
-
**Receiver**: Player receives via `onReceiveSeiMessage` callback
|
|
530
|
-
|
|
531
|
-
### showDebugView – Show Debug Dashboard
|
|
532
|
-
|
|
533
|
-
```objc
|
|
534
|
-
- (void)showDebugView:(BOOL)isShow;
|
|
535
|
-
```
|
|
536
|
-
|
|
537
|
-
**Function**: Shows or hides the debug dashboard
|
|
538
|
-
|
|
539
|
-
**Parameters**:
|
|
540
|
-
- `isShow`: Show dashboard (default NO)
|
|
541
|
-
|
|
542
|
-
## 9. Custom Capture APIs
|
|
543
|
-
|
|
544
|
-
### enableCustomVideoCapture – Enable/Disable Custom Video Capture
|
|
545
|
-
|
|
546
|
-
```objc
|
|
547
|
-
- (V2TXLiveCode)enableCustomVideoCapture:(BOOL)enable;
|
|
548
|
-
```
|
|
549
|
-
|
|
550
|
-
**Parameters**:
|
|
551
|
-
- `enable`: Enable (true) or disable (false) custom capture [default: false]
|
|
552
|
-
|
|
553
|
-
**Return Value**: `V2TXLiveCode`
|
|
554
|
-
- `V2TXLIVE_OK`: Success
|
|
555
|
-
|
|
556
|
-
**Use Cases**:
|
|
557
|
-
- Capture from external cameras or capture cards
|
|
558
|
-
- Pre-process video before streaming
|
|
559
|
-
- Compose multiple video sources into one stream
|
|
560
|
-
- Stream special video formats
|
|
561
|
-
|
|
562
|
-
**Notes**:
|
|
563
|
-
- Call before streaming to enable custom capture, or streaming will fail
|
|
564
|
-
- Must be called before `startPush`
|
|
565
|
-
- In custom capture mode, the SDK only encodes and transmits; it does not capture
|
|
566
|
-
|
|
567
|
-
**Usage**: Before starting streaming
|
|
568
|
-
|
|
569
|
-
**Example**:
|
|
570
|
-
```objc
|
|
571
|
-
[pusher enableCustomVideoCapture:YES]; // Enable
|
|
572
|
-
[pusher enableCustomVideoCapture:NO]; // Disable
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
### enableCustomAudioCapture – Enable/Disable Custom Audio Capture
|
|
576
|
-
|
|
577
|
-
```objc
|
|
578
|
-
- (V2TXLiveCode)enableCustomAudioCapture:(BOOL)enable;
|
|
579
|
-
```
|
|
580
|
-
|
|
581
|
-
**Parameters**:
|
|
582
|
-
- `enable`: Enable (true) or disable (false) custom capture [default: false]
|
|
583
|
-
|
|
584
|
-
**Return Value**: `V2TXLiveCode`
|
|
585
|
-
- `V2TXLIVE_OK`: Success
|
|
586
|
-
|
|
587
|
-
**Use Cases**:
|
|
588
|
-
- Capture from external microphones or audio interfaces
|
|
589
|
-
- Pre-process audio before streaming
|
|
590
|
-
- Combine multiple audio sources
|
|
591
|
-
- Stream special audio formats
|
|
592
|
-
|
|
593
|
-
**Notes**:
|
|
594
|
-
- Call before streaming to enable custom capture, or streaming will fail
|
|
595
|
-
- Must be called before `startPush`
|
|
596
|
-
- In custom capture mode, the SDK only encodes and transmits; it does not capture
|
|
597
|
-
|
|
598
|
-
**Usage**: Before starting streaming
|
|
599
|
-
|
|
600
|
-
**Example**:
|
|
601
|
-
```objc
|
|
602
|
-
[pusher enableCustomAudioCapture:YES]; // Enable
|
|
603
|
-
[pusher enableCustomAudioCapture:NO]; // Disable
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
### sendCustomVideoFrame – Send Custom Video Frame
|
|
607
|
-
|
|
608
|
-
```objc
|
|
609
|
-
- (V2TXLiveCode)sendCustomVideoFrame:(V2TXLiveVideoFrame *)videoFrame;
|
|
610
|
-
```
|
|
611
|
-
|
|
612
|
-
**Function**: Sends video data to the SDK in custom capture mode
|
|
613
|
-
|
|
614
|
-
**Prerequisite**: Enable custom video capture first
|
|
615
|
-
|
|
616
|
-
### sendCustomAudioFrame – Send Custom Audio Frame
|
|
617
|
-
|
|
618
|
-
```objc
|
|
619
|
-
- (V2TXLiveCode)sendCustomAudioFrame:(V2TXLiveAudioFrame *)audioFrame;
|
|
620
|
-
```
|
|
621
|
-
|
|
622
|
-
**Function**: Sends audio data to the SDK in custom capture mode
|
|
623
|
-
|
|
624
|
-
### enableCustomVideoProcess – Enable Custom Video Processing
|
|
625
|
-
|
|
626
|
-
```objc
|
|
627
|
-
- (V2TXLiveCode)enableCustomVideoProcess:(BOOL)enable
|
|
628
|
-
pixelFormat:(V2TXLivePixelFormat)pixelFormat
|
|
629
|
-
bufferType:(V2TXLiveBufferType)bufferType;
|
|
630
|
-
```
|
|
631
|
-
|
|
632
|
-
**Function**: Enables or disables custom video processing
|
|
633
|
-
|
|
634
|
-
**Supported Format Combinations**:
|
|
635
|
-
- `V2TXLivePixelFormatTexture2D` + `V2TXLiveBufferTypeTexture`
|
|
636
|
-
- `V2TXLivePixelFormatNV12` + `V2TXLiveBufferTypePixelBuffer`
|
|
637
|
-
- `V2TXLivePixelFormatBGRA32` + `V2TXLiveBufferTypePixelBuffer`
|
|
638
|
-
|
|
639
|
-
### enableAudioProcessObserver – Enable Audio Frame Observer
|
|
640
|
-
|
|
641
|
-
```objc
|
|
642
|
-
- (V2TXLiveCode)enableAudioProcessObserver:(BOOL)enable
|
|
643
|
-
format:(V2TXLiveAudioFrameObserverFormat *)format;
|
|
644
|
-
```
|
|
645
|
-
|
|
646
|
-
**Function**: Enables or disables observer for preprocessed local audio frames
|
|
647
|
-
|
|
648
|
-
**Usage**: Call before `startPush`
|
|
649
|
-
|
|
650
|
-
## 10. Cloud Stream Mixing & Recording
|
|
651
|
-
|
|
652
|
-
### setMixTranscodingConfig – Configure Cloud Stream Mixing
|
|
653
|
-
|
|
654
|
-
```objc
|
|
655
|
-
- (V2TXLiveCode)setMixTranscodingConfig:(V2TXLiveTranscodingConfig *)config;
|
|
656
|
-
```
|
|
657
|
-
|
|
658
|
-
**Parameters**:
|
|
659
|
-
- `config`: MixTranscoding configuration; pass nil to cancel cloud stream mixing
|
|
660
|
-
|
|
661
|
-
**Return Value**: `V2TXLiveCode`
|
|
662
|
-
- `V2TXLIVE_OK`: Success
|
|
663
|
-
- `V2TXLIVE_ERROR_REFUSED`: Cannot set MixTranscoding parameters if streaming hasn't started
|
|
664
|
-
|
|
665
|
-
**Mixing Principle**:
|
|
666
|
-
```
|
|
667
|
-
[Video 1] => Decoding ====> \
|
|
668
|
-
\
|
|
669
|
-
[Video 2] => Decoding => Video Mixing => Encoding => [Mixed Video]
|
|
670
|
-
/
|
|
671
|
-
[Video 3] => Decoding ====> /
|
|
672
|
-
|
|
673
|
-
[Audio 1] => Decoding ====> \
|
|
674
|
-
\
|
|
675
|
-
[Audio 2] => Decoding => Audio Mixing => Encoding => [Mixed Audio]
|
|
676
|
-
/
|
|
677
|
-
[Audio 3] => Decoding ====> /
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
**Important**:
|
|
681
|
-
- Only RTC protocol supports stream mixing; not available for RTMP or other protocols
|
|
682
|
-
- Cloud stream mixing adds 1–2 seconds CDN latency
|
|
683
|
-
- Pass nil promptly to cancel mixing and avoid extra charges
|
|
684
|
-
|
|
685
|
-
**Usage**: During streaming
|
|
686
|
-
|
|
687
|
-
**Example**:
|
|
688
|
-
```objc
|
|
689
|
-
V2TXLiveTranscodingConfig *config = [[V2TXLiveTranscodingConfig alloc] init];
|
|
690
|
-
config.videoWidth = 720;
|
|
691
|
-
config.videoHeight = 1280;
|
|
692
|
-
config.videoBitrate = 1500;
|
|
693
|
-
config.videoFps = 15;
|
|
694
|
-
config.videoGOP = 3;
|
|
695
|
-
config.backgroundColor = 0x000000;
|
|
696
|
-
config.backgroundImage = nil;
|
|
697
|
-
|
|
698
|
-
V2TXLiveMixUser *user1 = [[V2TXLiveMixUser alloc] init];
|
|
699
|
-
user1.userId = @"user1";
|
|
700
|
-
user1.x = 0;
|
|
701
|
-
user1.y = 0;
|
|
702
|
-
user1.width = 0.5;
|
|
703
|
-
user1.height = 1.0;
|
|
704
|
-
user1.zOrder = 0;
|
|
705
|
-
|
|
706
|
-
config.mixUsers = @[user1];
|
|
707
|
-
|
|
708
|
-
V2TXLiveCode result = [pusher setMixTranscodingConfig:config];
|
|
709
|
-
if (result == V2TXLIVE_OK) {
|
|
710
|
-
NSLog(@"MixTranscoding configuration set successfully");
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
result = [pusher setMixTranscodingConfig:nil];
|
|
714
|
-
if (result == V2TXLIVE_OK) {
|
|
715
|
-
NSLog(@"MixTranscoding configuration cancelled successfully");
|
|
716
|
-
}
|
|
717
|
-
```
|
|
718
|
-
|
|
719
|
-
### startLocalRecording – Start Local Recording
|
|
720
|
-
|
|
721
|
-
```objc
|
|
722
|
-
- (V2TXLiveCode)startLocalRecording:(V2TXLiveLocalRecordingParams *)params;
|
|
723
|
-
```
|
|
724
|
-
|
|
725
|
-
**Parameters**:
|
|
726
|
-
- `params`: Local recording settings
|
|
727
|
-
|
|
728
|
-
**Return Value**: `V2TXLiveCode`
|
|
729
|
-
- `V2TXLIVE_OK`: Success
|
|
730
|
-
- `V2TXLIVE_ERROR_INVALID_PARAMETER`: Invalid parameters
|
|
731
|
-
- `V2TXLIVE_ERROR_REFUSED`: Cannot record before streaming starts
|
|
732
|
-
|
|
733
|
-
**Usage**: After streaming starts
|
|
734
|
-
|
|
735
|
-
**Notes**:
|
|
736
|
-
- Recording only starts when streaming is active; starting recording when not streaming has no effect
|
|
737
|
-
- Do not change resolution or encoding mode (Software/Hardware Encoding) during recording
|
|
738
|
-
- If streaming stops during recording, the SDK automatically ends recording
|
|
739
|
-
|
|
740
|
-
**Example**:
|
|
741
|
-
```objc
|
|
742
|
-
[pusher setObserver:self];
|
|
743
|
-
|
|
744
|
-
V2TXLiveLocalRecordingParams *params = [[V2TXLiveLocalRecordingParams alloc] init];
|
|
745
|
-
params.filePath = @"/path/to/record/file.mp4";
|
|
746
|
-
params.recordType = V2TXLiveRecordTypeBoth;
|
|
747
|
-
params.interval = 2000;
|
|
748
|
-
|
|
749
|
-
V2TXLiveCode result = [pusher startLocalRecording:params];
|
|
750
|
-
if (result == V2TXLIVE_OK) {
|
|
751
|
-
NSLog(@"Local recording started successfully");
|
|
752
|
-
} else if (result == V2TXLIVE_ERROR_INVALID_PARAMETER) {
|
|
753
|
-
NSLog(@"Invalid recording parameters");
|
|
754
|
-
} else if (result == V2TXLIVE_ERROR_REFUSED) {
|
|
755
|
-
NSLog(@"Recording request denied, please start streaming first");
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
// Recording status callbacks
|
|
759
|
-
- (void)onLocalRecordBegin:(int)code storagePath:(NSString *)storagePath {
|
|
760
|
-
if (code == V2TXLIVE_OK) {
|
|
761
|
-
NSLog(@"Recording started, storage path: %@", storagePath);
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
- (void)onLocalRecording:(long)durationMs storagePath:(NSString *)storagePath {
|
|
766
|
-
NSLog(@"Recording in progress, duration: %ldms", durationMs);
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
- (void)onLocalRecordComplete:(int)code storagePath:(NSString *)storagePath {
|
|
770
|
-
if (code == V2TXLIVE_OK) {
|
|
771
|
-
NSLog(@"Recording completed, storage path: %@", storagePath);
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
```
|
|
775
|
-
|
|
776
|
-
### stopLocalRecording – Stop Recording
|
|
777
|
-
|
|
778
|
-
```objc
|
|
779
|
-
- (void)stopLocalRecording;
|
|
780
|
-
```
|
|
781
|
-
|
|
782
|
-
**Function**: Stops recording the audio/video stream
|
|
783
|
-
|
|
784
|
-
**Automatic Handling**: If streaming stops during recording, the SDK ends recording automatically
|
|
785
|
-
|
|
786
|
-
### enableVoiceActivityDetection – Enable Voice Activity Detection
|
|
787
|
-
|
|
788
|
-
```objc
|
|
789
|
-
- (void)enableVoiceActivityDetection:(BOOL)enable;
|
|
790
|
-
```
|
|
791
|
-
|
|
792
|
-
**Function**: Enables voice activity detection
|
|
793
|
-
|
|
794
|
-
**Callback**: Voice activity status is reported via `OnVoiceActivityDetectionUpdate` callback
|
|
795
|
-
|
|
796
|
-
## 11. Advanced API Interfaces
|
|
797
|
-
|
|
798
|
-
### setProperty / getProperty – Advanced Property Configuration
|
|
799
|
-
|
|
800
|
-
```objc
|
|
801
|
-
- (V2TXLiveCode)setProperty:(NSString *)key value:(NSObject *)value;
|
|
802
|
-
- (NSString *)getProperty:(NSString *)key;
|
|
803
|
-
```
|
|
804
|
-
|
|
805
|
-
**Function**: Set or get advanced/exploratory SDK properties
|
|
806
|
-
|
|
807
|
-
**Usage**: Access experimental features or advanced settings
|
|
808
|
-
|
|
809
|
-
**Reference**: See definitions in `V2TXLiveProperty.h`
|
|
810
|
-
|
|
811
|
-
## 12. Usage Examples
|
|
812
|
-
|
|
813
|
-
### Basic Streaming Example
|
|
814
|
-
|
|
815
|
-
```objc
|
|
816
|
-
// 1. Initialize pusher
|
|
817
|
-
V2TXLivePusher *pusher = [[V2TXLivePusher alloc] initWithLiveMode:V2TXLiveModeRTMP];
|
|
818
|
-
|
|
819
|
-
// 2. Set observer
|
|
820
|
-
[pusher setObserver:self];
|
|
821
|
-
|
|
822
|
-
// 3. Set preview view
|
|
823
|
-
[pusher setRenderView:self.previewView];
|
|
824
|
-
|
|
825
|
-
// 4. Enable camera and microphone
|
|
826
|
-
[pusher startCamera:YES]; // iOS front camera
|
|
827
|
-
[pusher startMicrophone];
|
|
828
|
-
|
|
829
|
-
// 5. Start streaming
|
|
830
|
-
NSString *pushUrl = @"rtmp://your-push-url/live/stream";
|
|
831
|
-
V2TXLiveCode result = [pusher startPush:pushUrl];
|
|
832
|
-
|
|
833
|
-
if (result == V2TXLIVE_OK) {
|
|
834
|
-
NSLog(@"Streaming started successfully");
|
|
835
|
-
} else {
|
|
836
|
-
NSLog(@"Streaming failed to start, error code: %ld", (long)result);
|
|
837
|
-
}
|
|
838
|
-
```
|
|
839
|
-
|
|
840
|
-
### Beauty Effects Configuration Example
|
|
841
|
-
|
|
842
|
-
```objc
|
|
843
|
-
TXBeautyManager *beautyManager = [pusher getBeautyManager];
|
|
844
|
-
|
|
845
|
-
[beautyManager setBeautyStyle:TXBeautyStyleNature];
|
|
846
|
-
[beautyManager setBeautyLevel:6.0];
|
|
847
|
-
[beautyManager setWhitenessLevel:3.0];
|
|
848
|
-
[beautyManager setRuddyLevel:2.0];
|
|
849
|
-
|
|
850
|
-
[beautyManager setEyeScaleLevel:3.0]; // Eye enlargement
|
|
851
|
-
[beautyManager setFaceSlimLevel:4.0]; // Face slimming
|
|
852
|
-
[beautyManager setFaceVLevel:2.0]; // V-face
|
|
853
|
-
```
|
|
854
|
-
|
|
855
|
-
### Cloud Stream Mixing Configuration Example
|
|
856
|
-
|
|
857
|
-
```objc
|
|
858
|
-
V2TXLiveTranscodingConfig *config = [[V2TXLiveTranscodingConfig alloc] init];
|
|
859
|
-
config.videoWidth = 720;
|
|
860
|
-
config.videoHeight = 1280;
|
|
861
|
-
config.videoBitrate = 1500;
|
|
862
|
-
config.videoFramerate = 15;
|
|
863
|
-
config.videoGOP = 3;
|
|
864
|
-
config.backgroundColor = 0x000000;
|
|
865
|
-
config.backgroundImage = nil;
|
|
866
|
-
|
|
867
|
-
V2TXLiveMixUser *user1 = [[V2TXLiveMixUser alloc] init];
|
|
868
|
-
user1.userId = @"user1";
|
|
869
|
-
user1.x = 0;
|
|
870
|
-
user1.y = 0;
|
|
871
|
-
user1.width = 0.5;
|
|
872
|
-
user1.height = 1.0;
|
|
873
|
-
user1.zOrder = 0;
|
|
874
|
-
|
|
875
|
-
config.mixUsers = @[user1];
|
|
876
|
-
|
|
877
|
-
[pusher setMixTranscodingConfig:config];
|
|
878
|
-
```
|
|
879
|
-
|
|
880
|
-
### Custom Capture Example
|
|
881
|
-
|
|
882
|
-
```objc
|
|
883
|
-
[pusher enableCustomVideoCapture:YES];
|
|
884
|
-
|
|
885
|
-
V2TXLiveVideoFrame *videoFrame = [[V2TXLiveVideoFrame alloc] init];
|
|
886
|
-
videoFrame.pixelFormat = V2TXLivePixelFormatNV12;
|
|
887
|
-
videoFrame.bufferType = V2TXLiveBufferTypePixelBuffer;
|
|
888
|
-
videoFrame.data = pixelBufferData;
|
|
889
|
-
videoFrame.width = 720;
|
|
890
|
-
videoFrame.height = 1280;
|
|
891
|
-
videoFrame.rotation = V2TXLiveRotation0;
|
|
892
|
-
|
|
893
|
-
[pusher sendCustomVideoFrame:videoFrame];
|
|
894
|
-
```
|
|
895
|
-
|
|
896
|
-
## 13. Usage Examples
|
|
897
|
-
|
|
898
|
-
### Basic Streaming Example (Camera + Microphone)
|
|
899
|
-
```objc
|
|
900
|
-
V2TXLivePusher *pusher = [[V2TXLivePusher alloc] initWithLiveMode:V2TXLiveModeRTMP];
|
|
901
|
-
|
|
902
|
-
[pusher setObserver:self];
|
|
903
|
-
[pusher setRenderView:self.previewView];
|
|
904
|
-
|
|
905
|
-
// At least one capture source must be enabled before streaming
|
|
906
|
-
[pusher startCamera:YES];
|
|
907
|
-
[pusher startMicrophone];
|
|
908
|
-
|
|
909
|
-
NSString *pushUrl = @"rtmp://your-stream-url";
|
|
910
|
-
V2TXLiveCode result = [pusher startPush:pushUrl];
|
|
911
|
-
|
|
912
|
-
if (result == V2TXLIVE_OK) {
|
|
913
|
-
NSLog(@"Streaming started successfully");
|
|
914
|
-
} else {
|
|
915
|
-
NSLog(@"Streaming failed to start, error code: %ld", (long)result);
|
|
916
|
-
}
|
|
917
|
-
```
|
|
918
|
-
|
|
919
|
-
### Screen Sharing Streaming Example
|
|
920
|
-
```objc
|
|
921
|
-
V2TXLivePusher *pusher = [[V2TXLivePusher alloc] initWithLiveMode:V2TXLiveModeRTMP];
|
|
922
|
-
|
|
923
|
-
[pusher setObserver:self];
|
|
924
|
-
|
|
925
|
-
// At least one capture source must be enabled before streaming
|
|
926
|
-
[pusher startScreenCapture:@"group.com.your.app"];
|
|
927
|
-
|
|
928
|
-
// Enable microphone if audio is needed
|
|
929
|
-
[pusher startMicrophone];
|
|
930
|
-
|
|
931
|
-
NSString *pushUrl = @"rtmp://your-stream-url";
|
|
932
|
-
V2TXLiveCode result = [pusher startPush:pushUrl];
|
|
933
|
-
|
|
934
|
-
if (result == V2TXLIVE_OK) {
|
|
935
|
-
NSLog(@"Screen sharing streaming started successfully");
|
|
936
|
-
} else {
|
|
937
|
-
NSLog(@"Screen sharing streaming failed to start, error code: %ld", (long)result);
|
|
938
|
-
}
|
|
939
|
-
```
|
|
940
|
-
|
|
941
|
-
### Custom Capture Example
|
|
942
|
-
```objc
|
|
943
|
-
V2TXLivePusher *pusher = [[V2TXLivePusher alloc] initWithLiveMode:V2TXLiveModeRTMP];
|
|
944
|
-
|
|
945
|
-
[pusher setObserver:self];
|
|
946
|
-
|
|
947
|
-
// At least one capture source must be enabled before streaming
|
|
948
|
-
[pusher enableCustomVideoCapture:YES]; // Enable before startPush
|
|
949
|
-
[pusher enableCustomAudioCapture:YES]; // Optional for audio
|
|
950
|
-
|
|
951
|
-
NSString *pushUrl = @"rtmp://your-stream-url";
|
|
952
|
-
V2TXLiveCode result = [pusher startPush:pushUrl];
|
|
953
|
-
|
|
954
|
-
if (result == V2TXLIVE_OK) {
|
|
955
|
-
NSLog(@"Custom capture streaming started successfully");
|
|
956
|
-
} else {
|
|
957
|
-
NSLog(@"Custom capture streaming failed to start, error code: %ld", (long)result);
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
// Send video frame in custom capture mode
|
|
961
|
-
V2TXLiveVideoFrame *videoFrame = [[V2TXLiveVideoFrame alloc] init];
|
|
962
|
-
videoFrame.pixelFormat = V2TXLivePixelFormatNV12;
|
|
963
|
-
videoFrame.bufferType = V2TXLiveBufferTypePixelBuffer;
|
|
964
|
-
videoFrame.width = 1920;
|
|
965
|
-
videoFrame.height = 1080;
|
|
966
|
-
videoFrame.rotation = V2TXLiveRotation0;
|
|
967
|
-
|
|
968
|
-
[pusher sendCustomVideoFrame:videoFrame];
|
|
969
|
-
```
|
|
970
|
-
|
|
971
|
-
## 14. Best Practices
|
|
972
|
-
|
|
973
|
-
### Capture Source Management
|
|
974
|
-
|
|
975
|
-
**Principle**: Only one capture source can be active per pusher instance
|
|
976
|
-
|
|
977
|
-
**Switching Sequence**:
|
|
978
|
-
```objc
|
|
979
|
-
// Switch from camera to image streaming
|
|
980
|
-
[pusher startCamera:YES];
|
|
981
|
-
// ... streaming with camera ...
|
|
982
|
-
[pusher stopCamera]; // Stop current source first
|
|
983
|
-
[pusher startVirtualCamera:image]; // Start new source
|
|
984
|
-
```
|
|
985
|
-
|
|
986
|
-
### Performance Optimization
|
|
987
|
-
|
|
988
|
-
**Audio Processing**:
|
|
989
|
-
- Use `pauseAudio` instead of `stopMicrophone` to keep audio stream active
|
|
990
|
-
- Set audio quality based on scenario; use `V2TXLiveAudioQualitySpeech` for voice
|
|
991
|
-
|
|
992
|
-
**Video Encoding**:
|
|
993
|
-
- Adjust bitrate dynamically according to network conditions
|
|
994
|
-
- Set GOP (Group of Pictures) size to 2–3 seconds for live streaming
|
|
995
|
-
- Prefer Hardware Encoding on mobile for better performance
|
|
996
|
-
|
|
997
|
-
**Resource Management**:
|
|
998
|
-
- Release unused capture sources promptly
|
|
999
|
-
- Call `stopPush` when streaming ends to free resources
|
|
1000
|
-
- Set preview fill mode appropriately
|