@tencent-rtc/mcp 1.3.9 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/package.json +2 -2
  2. package/resource/doc/{tuicallkit/iOS/faq.md → callkit/faq/android-faq.md} +10 -22
  3. package/resource/doc/{tuicallkit/android/faq.md → callkit/faq/flutter-faq.md} +10 -22
  4. package/resource/doc/{tuicallkit/flutter/faq.md → callkit/faq/ios-faq.md} +10 -22
  5. package/resource/doc/callkit/preset/android/api.md +296 -0
  6. package/resource/doc/{tuicallkit → callkit/preset}/android/integration.md +53 -365
  7. package/resource/doc/callkit/preset/flutter/api.md +410 -0
  8. package/resource/doc/{tuicallkit → callkit/preset}/flutter/integration.md +35 -97
  9. package/resource/doc/callkit/preset/ios/api.md +80 -0
  10. package/resource/doc/{tuicallkit/iOS → callkit/preset/ios}/integration.md +37 -118
  11. package/resource/doc/callkit/preset/react/api.md +501 -0
  12. package/resource/doc/{tuicallkit → callkit/preset}/react/integration.md +5 -20
  13. package/resource/doc/callkit/preset/vue/api.md +501 -0
  14. package/resource/doc/{tuicallkit → callkit/preset}/vue/integration.md +4 -19
  15. package/resource/doc/{chatuikit → chatkit}/android/faq.md +29 -38
  16. package/resource/doc/{chatuikit → chatkit}/android/features/theme.md +22 -166
  17. package/resource/doc/{chatuikit → chatkit}/android/integration.md +28 -121
  18. package/resource/doc/chatkit/faq/android_sdk/client-api.md +281 -0
  19. package/resource/doc/{chatuikit → chatkit}/faq/common/product.md +0 -1
  20. package/resource/doc/{chatuikit → chatkit}/faq/common/server.md +1 -1
  21. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +199 -0
  22. package/resource/doc/{chatuikit → chatkit}/faq/flutter_sdk/faq.md +3 -3
  23. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +235 -0
  24. package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/faq.md +3 -3
  25. package/resource/doc/{chatuikit → chatkit}/flutter/features/theme.md +22 -166
  26. package/resource/doc/{chatuikit → chatkit}/flutter/integration.md +18 -87
  27. package/resource/doc/{chatuikit/iOS → chatkit/ios}/faq.md +29 -38
  28. package/resource/doc/{chatuikit/iOS → chatkit/ios}/features/theme.md +27 -176
  29. package/resource/doc/{chatuikit/iOS → chatkit/ios}/integration.md +47 -165
  30. package/resource/doc/{chatuikit → chatkit}/react/components/avatar.md +0 -33
  31. package/resource/doc/{chatuikit → chatkit}/react/components/chat-header.md +8 -49
  32. package/resource/doc/{chatuikit → chatkit}/react/components/chat-setting.md +6 -35
  33. package/resource/doc/{chatuikit → chatkit}/react/components/chat.md +0 -6
  34. package/resource/doc/{chatuikit → chatkit}/react/components/component-list.md +0 -11
  35. package/resource/doc/{chatuikit → chatkit}/react/components/contact-list.md +96 -502
  36. package/resource/doc/chatkit/react/components/conversation-actions.md +174 -0
  37. package/resource/doc/chatkit/react/components/conversation-list.md +333 -0
  38. package/resource/doc/chatkit/react/components/conversation-preview.md +118 -0
  39. package/resource/doc/chatkit/react/components/conversation-search.md +60 -0
  40. package/resource/doc/{chatuikit → chatkit}/react/components/message-input.md +36 -337
  41. package/resource/doc/{chatuikit → chatkit}/react/components/message-list.md +20 -212
  42. package/resource/doc/chatkit/react/components/search.md +243 -0
  43. package/resource/doc/{chatuikit → chatkit}/react/components/tuikit.md +1 -47
  44. package/resource/doc/{chatuikit → chatkit}/react/integration.md +21 -81
  45. package/resource/doc/{chatuikit → chatkit}/vue/components/avatar.md +0 -33
  46. package/resource/doc/{chatuikit → chatkit}/vue/components/chat-header.md +7 -48
  47. package/resource/doc/{chatuikit → chatkit}/vue/components/chat-setting.md +3 -5
  48. package/resource/doc/{chatuikit → chatkit}/vue/components/chat.md +0 -5
  49. package/resource/doc/{chatuikit → chatkit}/vue/components/component-list.md +0 -15
  50. package/resource/doc/chatkit/vue/components/contact-list.md +271 -0
  51. package/resource/doc/chatkit/vue/components/conversation-actions.md +228 -0
  52. package/resource/doc/{chatuikit → chatkit}/vue/components/conversation-list.md +42 -492
  53. package/resource/doc/chatkit/vue/components/conversation-preview.md +213 -0
  54. package/resource/doc/chatkit/vue/components/conversation-search.md +50 -0
  55. package/resource/doc/{chatuikit → chatkit}/vue/components/message-input.md +2 -223
  56. package/resource/doc/{chatuikit → chatkit}/vue/components/message-list.md +23 -252
  57. package/resource/doc/{chatuikit → chatkit}/vue/components/search.md +73 -640
  58. package/resource/doc/{chatuikit → chatkit}/vue/components/tuikit.md +7 -21
  59. package/resource/doc/{chatuikit → chatkit}/vue/components/userpicker.md +3 -62
  60. package/resource/doc/{chatuikit → chatkit}/vue/faq.md +1 -1
  61. package/resource/doc/{chatuikit → chatkit}/vue/integration.md +22 -23
  62. package/resource/doc/livekit/{live → core-sdk/live}/android/live-audience-list.md +18 -89
  63. package/resource/doc/livekit/{live → core-sdk/live}/android/live-audio-effect.md +34 -192
  64. package/resource/doc/livekit/{live → core-sdk/live}/android/live-barrage.md +28 -141
  65. package/resource/doc/livekit/{live → core-sdk/live}/android/live-base-beauty.md +20 -112
  66. package/resource/doc/livekit/{live → core-sdk/live}/android/live-co-guest-interaction.md +59 -193
  67. package/resource/doc/livekit/{live → core-sdk/live}/android/live-gift.md +75 -455
  68. package/resource/doc/livekit/{live → core-sdk/live}/android/live-host-interaction.md +94 -344
  69. package/resource/doc/livekit/{live → core-sdk/live}/android/live-integration.md +107 -515
  70. package/resource/doc/livekit/{live → core-sdk/live}/android/live-live-list.md +33 -173
  71. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audience-list.md +14 -93
  72. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audio-effect.md +34 -179
  73. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-barrage.md +19 -107
  74. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-base-beauty.md +24 -166
  75. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-co-guest-interaction.md +56 -163
  76. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-gift.md +69 -443
  77. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-host-interaction.md +117 -364
  78. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-integration.md +107 -492
  79. package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-live-list.md +23 -165
  80. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audience-list.md +35 -111
  81. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audio-effect.md +35 -193
  82. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-barrage.md +31 -144
  83. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-base-beauty.md +24 -116
  84. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-co-guest-interaction.md +37 -171
  85. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-gift.md +79 -459
  86. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-host-interaction.md +69 -320
  87. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-integration.md +85 -502
  88. package/resource/doc/livekit/{live → core-sdk/live}/ios/live-live-list.md +32 -169
  89. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-audience-list.md +18 -89
  90. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-audio-effect.md +34 -192
  91. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-barrage.md +28 -141
  92. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-co-guest-interaction.md +50 -259
  93. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-gift.md +75 -455
  94. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-host-interaction.md +51 -265
  95. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-integration.md +61 -427
  96. package/resource/doc/livekit/{voice → core-sdk/voice}/android/voice-room-list.md +33 -173
  97. package/resource/doc/livekit/{voice → core-sdk/voice}/flutter/voice-co-guest-interaction.md +44 -203
  98. package/resource/doc/livekit/{voice → core-sdk/voice}/flutter/voice-integration.md +56 -416
  99. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-audience-list.md +35 -111
  100. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-audio-effect.md +35 -193
  101. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-barrage.md +31 -144
  102. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-co-guest-interaction.md +43 -252
  103. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-gift.md +79 -459
  104. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-host-interaction.md +46 -264
  105. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-integration.md +61 -445
  106. package/resource/doc/livekit/{voice → core-sdk/voice}/ios/voice-room-list.md +32 -169
  107. package/resource/doc/livekit/faq/common/{error_code.md → error-code.md} +2 -2
  108. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +780 -0
  109. package/resource/doc/livekit/preset/live/vue/components/barrage.md +291 -0
  110. package/resource/doc/livekit/{live → preset/live}/vue/components/co-guest-panel.md +10 -49
  111. package/resource/doc/livekit/{live → preset/live}/vue/components/live-audience-list.md +26 -144
  112. package/resource/doc/livekit/{live → preset/live}/vue/components/live-scene-panel.md +12 -75
  113. package/resource/doc/livekit/{live → preset/live}/vue/components/live-view.md +36 -227
  114. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +215 -0
  115. package/resource/doc/livekit/preset/live/vue/faq.md +1 -0
  116. package/resource/doc/livekit/preset/live/vue/live-list-integration.md +241 -0
  117. package/resource/doc/livekit/preset/live/vue/live-player-desk-integration.md +299 -0
  118. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +300 -0
  119. package/resource/doc/livekit/preset/live/vue/live-pusher-integration.md +743 -0
  120. package/resource/doc/roomkit/vue/faq.md +1 -0
  121. package/resource/doc/roomkit/vue/features/call-user-to-room.md +17 -53
  122. package/resource/doc/roomkit/vue/features/device-detection.md +30 -48
  123. package/resource/doc/roomkit/vue/features/device-state.md +24 -44
  124. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +13 -36
  125. package/resource/doc/roomkit/vue/features/room-chat.md +31 -89
  126. package/resource/doc/roomkit/vue/features/room-participant-state.md +28 -50
  127. package/resource/doc/roomkit/vue/features/room-state.md +25 -34
  128. package/resource/doc/roomkit/vue/features/room-view.md +30 -125
  129. package/resource/doc/roomkit/vue/features/schedule-room.md +9 -40
  130. package/resource/doc/roomkit/vue/features/screen-share.md +22 -90
  131. package/resource/doc/roomkit/vue/features/virtual-background.md +13 -29
  132. package/resource/doc/roomkit/vue/integration.md +21 -76
  133. package/resource/doc/rtcengine/faq/common/error_code.md +1 -0
  134. package/resource/doc/rtcengine/faq/web/web.md +14 -24
  135. package/resource/doc/rtcengine/web/api.md +1 -3
  136. package/resource/doc/rtcengine/web/how_to_integrated_web_sdk.md +3 -10
  137. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +1 -5
  138. package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +1 -2
  139. package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +2 -4
  140. package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +3 -5
  141. package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +1 -7
  142. package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +0 -2
  143. package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +4 -8
  144. package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +11 -11
  145. package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +12 -88
  146. package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +5 -5
  147. package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +30 -37
  148. package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +13 -90
  149. package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +1 -2
  150. package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +1 -2
  151. package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +19 -19
  152. package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +1 -1
  153. package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +4 -5
  154. package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +3 -3
  155. package/resource/doc/trtc/C++/ITRTCCloud.md +686 -2835
  156. package/resource/doc/trtc/C++/ITRTCStatistics.md +53 -308
  157. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +202 -1022
  158. package/resource/doc/trtc/C++/ITXDeviceManager.md +126 -767
  159. package/resource/doc/trtc/C++/TRTCCloudCallback.md +579 -2147
  160. package/resource/doc/trtc/C++/TRTCTypeDef.md +703 -3378
  161. package/resource/doc/trtc/C++/TXLiteAVCode.md +116 -908
  162. package/resource/doc/trtc/android/TRTCCloud.md +606 -2573
  163. package/resource/doc/trtc/android/TRTCCloudDef.md +752 -3640
  164. package/resource/doc/trtc/android/TRTCCloudListener.md +581 -2008
  165. package/resource/doc/trtc/android/TRTCStatistics.md +48 -278
  166. package/resource/doc/trtc/android/TXAudioEffectManager.md +202 -1022
  167. package/resource/doc/trtc/android/TXBeautyManager.md +127 -704
  168. package/resource/doc/trtc/android/TXDeviceManager.md +51 -318
  169. package/resource/doc/trtc/android/TXLiteAVCode.md +114 -892
  170. package/resource/doc/trtc/iOS/TRTCCloud.md +694 -2904
  171. package/resource/doc/trtc/iOS/TRTCCloudDef.md +726 -3498
  172. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +543 -2028
  173. package/resource/doc/trtc/iOS/TRTCStatistics.md +48 -278
  174. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +174 -877
  175. package/resource/doc/trtc/iOS/TXBeautyManager.md +128 -710
  176. package/resource/doc/trtc/iOS/TXDeviceManager.md +129 -772
  177. package/resource/doc/trtc/iOS/TXLiteAVCode.md +117 -915
  178. package/server.js +1 -5
  179. package/server.js.map +1 -1
  180. package/tools/call/get_callkit_api.js +32 -0
  181. package/tools/call/get_callkit_api.js.map +1 -0
  182. package/tools/call/get_native_call_uikit_integration.js +34 -0
  183. package/tools/call/get_native_call_uikit_integration.js.map +1 -0
  184. package/tools/call/{get-web-call-integration.js → get_web_call_uikit_integration.js} +13 -8
  185. package/tools/call/get_web_call_uikit_integration.js.map +1 -0
  186. package/tools/chat/get_native_chat_uikit_feature_detail.js +34 -0
  187. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +1 -0
  188. package/tools/chat/get_native_chat_uikit_integration.js +45 -0
  189. package/tools/chat/get_native_chat_uikit_integration.js.map +1 -0
  190. package/tools/chat/get_web_chat_uikit_component_detail.js +34 -0
  191. package/tools/chat/get_web_chat_uikit_component_detail.js.map +1 -0
  192. package/tools/chat/get_web_chat_uikit_integration.js +45 -0
  193. package/tools/chat/get_web_chat_uikit_integration.js.map +1 -0
  194. package/tools/common/get_faq.js +265 -0
  195. package/tools/common/get_faq.js.map +1 -0
  196. package/tools/common/{get-usersig.js → get_usersig.js} +6 -3
  197. package/tools/common/get_usersig.js.map +1 -0
  198. package/tools/common/present_framework_choice.js +63 -0
  199. package/tools/common/present_framework_choice.js.map +1 -0
  200. package/tools/common/record_skill_session.js +58 -0
  201. package/tools/common/record_skill_session.js.map +1 -0
  202. package/tools/definitions/get_callkit_api_def.js +29 -0
  203. package/tools/definitions/get_callkit_api_def.js.map +1 -0
  204. package/tools/definitions/get_faq_def.js +17 -18
  205. package/tools/definitions/get_faq_def.js.map +1 -1
  206. package/tools/definitions/get_native_call_uikit_integration_def.js +15 -34
  207. package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
  208. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +31 -0
  209. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +1 -0
  210. package/tools/definitions/get_native_chat_uikit_integration_def.js +16 -41
  211. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  212. package/tools/definitions/get_native_livekit_core_features_def.js +34 -0
  213. package/tools/definitions/get_native_livekit_core_features_def.js.map +1 -0
  214. package/tools/definitions/get_native_livekit_core_integration_def.js +34 -0
  215. package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -0
  216. package/tools/definitions/get_native_trtc_sdk_docs_def.js +32 -0
  217. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +1 -0
  218. package/tools/definitions/get_usersig_def.js +17 -22
  219. package/tools/definitions/get_usersig_def.js.map +1 -1
  220. package/tools/definitions/get_web_call_uikit_integration_def.js +15 -7
  221. package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
  222. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +17 -49
  223. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
  224. package/tools/definitions/get_web_chat_uikit_integration_def.js +16 -19
  225. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
  226. package/tools/definitions/get_web_live_uikit_integration_def.js +15 -18
  227. package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
  228. package/tools/definitions/get_web_livekit_api_def.js +30 -0
  229. package/tools/definitions/get_web_livekit_api_def.js.map +1 -0
  230. package/tools/definitions/get_web_livekit_component_detail_def.js +32 -0
  231. package/tools/definitions/get_web_livekit_component_detail_def.js.map +1 -0
  232. package/tools/definitions/get_web_room_uikit_integration_def.js +15 -46
  233. package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
  234. package/tools/definitions/get_web_roomkit_feature_detail_def.js +31 -0
  235. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +1 -0
  236. package/tools/definitions/get_web_trtc_sdk_api_def.js +27 -0
  237. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +1 -0
  238. package/tools/definitions/get_web_trtc_sdk_integration_def.js +27 -0
  239. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +1 -0
  240. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +27 -0
  241. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +1 -0
  242. package/tools/definitions/present_framework_choice_def.js +24 -12
  243. package/tools/definitions/present_framework_choice_def.js.map +1 -1
  244. package/tools/definitions/record_skill_session_def.js +31 -0
  245. package/tools/definitions/record_skill_session_def.js.map +1 -0
  246. package/tools/index.js +49 -61
  247. package/tools/index.js.map +1 -1
  248. package/tools/live/get_native_livekit_core_features.js +65 -0
  249. package/tools/live/get_native_livekit_core_features.js.map +1 -0
  250. package/tools/live/get_native_livekit_core_integration.js +59 -0
  251. package/tools/live/get_native_livekit_core_integration.js.map +1 -0
  252. package/tools/live/get_web_live_uikit_integration.js +48 -0
  253. package/tools/live/get_web_live_uikit_integration.js.map +1 -0
  254. package/tools/live/get_web_livekit_api.js +32 -0
  255. package/tools/live/get_web_livekit_api.js.map +1 -0
  256. package/tools/live/get_web_livekit_component_detail.js +34 -0
  257. package/tools/live/get_web_livekit_component_detail.js.map +1 -0
  258. package/tools/room/{get-web-room-integration.js → get_web_room_uikit_integration.js} +13 -14
  259. package/tools/room/get_web_room_uikit_integration.js.map +1 -0
  260. package/tools/room/{get-web-room-feature-detail.js → get_web_roomkit_feature_detail.js} +30 -31
  261. package/tools/room/get_web_roomkit_feature_detail.js.map +1 -0
  262. package/tools/rtcengine/get_web_trtc_sdk_api.js +31 -0
  263. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +1 -0
  264. package/tools/rtcengine/get_web_trtc_sdk_integration.js +31 -0
  265. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +1 -0
  266. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +31 -0
  267. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +1 -0
  268. package/tools/trtc/get_native_trtc_sdk_docs.js +73 -0
  269. package/tools/trtc/get_native_trtc_sdk_docs.js.map +1 -0
  270. package/utils/generate-structured-result.js +61 -17
  271. package/utils/generate-structured-result.js.map +1 -1
  272. package/utils/report-cls-client.js +21 -1
  273. package/utils/report-cls-client.js.map +1 -1
  274. package/utils/report-es-client.js +2 -2
  275. package/resource/doc/chatuikit/android/workflow.md +0 -713
  276. package/resource/doc/chatuikit/faq/android_sdk/client-api.md +0 -1371
  277. package/resource/doc/chatuikit/faq/flutter_sdk/client-api.md +0 -932
  278. package/resource/doc/chatuikit/faq/ios_sdk/client-api.md +0 -1119
  279. package/resource/doc/chatuikit/flutter/workflow.md +0 -941
  280. package/resource/doc/chatuikit/react/components/conversation-list.md +0 -1017
  281. package/resource/doc/chatuikit/react/components/search.md +0 -745
  282. package/resource/doc/chatuikit/react/create-group.md +0 -23
  283. package/resource/doc/chatuikit/react/init.md +0 -26
  284. package/resource/doc/chatuikit/react/workflow.md +0 -258
  285. package/resource/doc/chatuikit/vue/components/contact-list.md +0 -679
  286. package/resource/doc/chatuikit/vue/create-group.md +0 -25
  287. package/resource/doc/chatuikit/vue/init.md +0 -40
  288. package/resource/doc/chatuikit/vue/workflow.md +0 -395
  289. package/resource/doc/livekit/live/android/workflow.md +0 -320
  290. package/resource/doc/livekit/live/flutter/workflow.md +0 -353
  291. package/resource/doc/livekit/live/ios/workflow.md +0 -454
  292. package/resource/doc/livekit/live/vue/components/barrage.md +0 -616
  293. package/resource/doc/livekit/live/vue/components/stream-mixer.md +0 -446
  294. package/resource/doc/livekit/live/vue/faq.md +0 -0
  295. package/resource/doc/livekit/live/vue/live-list-integration.md +0 -200
  296. package/resource/doc/livekit/live/vue/live-player-desk-integration.md +0 -269
  297. package/resource/doc/livekit/live/vue/live-player-h5-integration.md +0 -269
  298. package/resource/doc/livekit/live/vue/live-pusher-integration.md +0 -595
  299. package/resource/doc/livekit/live/vue/states/live-state.md +0 -3591
  300. package/resource/doc/livekit/live/vue/workflow.md +0 -218
  301. package/resource/doc/native_live/android/V2TXLiveCode_api_android.md +0 -312
  302. package/resource/doc/native_live/android/V2TXLiveDef_api_android.md +0 -430
  303. package/resource/doc/native_live/android/V2TXLivePlayerObserver_api_android.md +0 -679
  304. package/resource/doc/native_live/android/V2TXLivePlayer_api_android.md +0 -671
  305. package/resource/doc/native_live/android/V2TXLivePremier_api_android.md +0 -271
  306. package/resource/doc/native_live/android/V2TXLivePusherObserver_api_android.md +0 -849
  307. package/resource/doc/native_live/android/V2TXLivePusher_api_android.md +0 -1046
  308. package/resource/doc/native_live/flutter/V2TXLiveCode_api_flutter.md +0 -460
  309. package/resource/doc/native_live/flutter/V2TXLiveDef_api_flutter.md +0 -558
  310. package/resource/doc/native_live/flutter/V2TXLivePlayerObserver_api_flutter.md +0 -865
  311. package/resource/doc/native_live/flutter/V2TXLivePlayer_api_flutter.md +0 -657
  312. package/resource/doc/native_live/flutter/V2TXLivePremier_api_flutter.md +0 -437
  313. package/resource/doc/native_live/flutter/V2TXLivePusherObserver_api_flutter.md +0 -335
  314. package/resource/doc/native_live/flutter/V2TXLivePusher_api_flutter.md +0 -748
  315. package/resource/doc/native_live/iOS/V2TXLiveCode_api_iOS.md +0 -327
  316. package/resource/doc/native_live/iOS/V2TXLiveDef_api_iOS.md +0 -507
  317. package/resource/doc/native_live/iOS/V2TXLivePlayerObserver_api_iOS.md +0 -507
  318. package/resource/doc/native_live/iOS/V2TXLivePlayer_api_iOS.md +0 -659
  319. package/resource/doc/native_live/iOS/V2TXLivePremier_api_iOS.md +0 -284
  320. package/resource/doc/native_live/iOS/V2TXLivePusherObserver_api_iOS.md +0 -814
  321. package/resource/doc/native_live/iOS/V2TXLivePusher_api_iOS.md +0 -1000
  322. package/resource/doc/roomkit/vue/features/workflow.md +0 -553
  323. package/resource/doc/roomkit/vue/workflow.md +0 -733
  324. package/resource/doc/tuicallkit/android/workflow.md +0 -441
  325. package/resource/doc/tuicallkit/faq/android_sdk/call-observer-api.md +0 -784
  326. package/resource/doc/tuicallkit/faq/android_sdk/callkit-api.md +0 -610
  327. package/resource/doc/tuicallkit/faq/flutter_sdk/call-define-api.md +0 -938
  328. package/resource/doc/tuicallkit/faq/flutter_sdk/call-observer-api.md +0 -897
  329. package/resource/doc/tuicallkit/faq/flutter_sdk/callkit-api.md +0 -469
  330. package/resource/doc/tuicallkit/faq/ios_sdk/call-observer-api.md +0 -781
  331. package/resource/doc/tuicallkit/faq/ios_sdk/callkit-api.md +0 -398
  332. package/resource/doc/tuicallkit/flutter/workflow.md +0 -331
  333. package/resource/doc/tuicallkit/react/api.md +0 -1404
  334. package/resource/doc/tuicallkit/vue/api.md +0 -1406
  335. package/resource/doc/tuicallkit/vue/faq.md +0 -36
  336. package/tools/call/get-native-call-integration.js +0 -43
  337. package/tools/call/get-native-call-integration.js.map +0 -1
  338. package/tools/call/get-web-call-api.js +0 -27
  339. package/tools/call/get-web-call-api.js.map +0 -1
  340. package/tools/call/get-web-call-integration.js.map +0 -1
  341. package/tools/chat/get-native-chat-feature-detail.js +0 -30
  342. package/tools/chat/get-native-chat-feature-detail.js.map +0 -1
  343. package/tools/chat/get-native-chat-integration.js +0 -45
  344. package/tools/chat/get-native-chat-integration.js.map +0 -1
  345. package/tools/chat/get-web-chat-component-detail.js +0 -31
  346. package/tools/chat/get-web-chat-component-detail.js.map +0 -1
  347. package/tools/chat/get-web-chat-integration.js +0 -45
  348. package/tools/chat/get-web-chat-integration.js.map +0 -1
  349. package/tools/chat/get-web-chat-uikit-init.js +0 -28
  350. package/tools/chat/get-web-chat-uikit-init.js.map +0 -1
  351. package/tools/chat/get-web-create-group-doc.js +0 -28
  352. package/tools/chat/get-web-create-group-doc.js.map +0 -1
  353. package/tools/common/get-faq.js +0 -91
  354. package/tools/common/get-faq.js.map +0 -1
  355. package/tools/common/get-usersig.js.map +0 -1
  356. package/tools/common/present-framework-choice.js +0 -16
  357. package/tools/common/present-framework-choice.js.map +0 -1
  358. package/tools/common/present-scenario-choice.js +0 -16
  359. package/tools/common/present-scenario-choice.js.map +0 -1
  360. package/tools/common/record-prompt.js +0 -55
  361. package/tools/common/record-prompt.js.map +0 -1
  362. package/tools/common/record-result.js +0 -60
  363. package/tools/common/record-result.js.map +0 -1
  364. package/tools/definitions/get_native_chat_feature_detail_def.js +0 -32
  365. package/tools/definitions/get_native_chat_feature_detail_def.js.map +0 -1
  366. package/tools/definitions/get_native_live_api_def.js +0 -23
  367. package/tools/definitions/get_native_live_api_def.js.map +0 -1
  368. package/tools/definitions/get_native_live_uikit_extra_features_def.js +0 -87
  369. package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +0 -1
  370. package/tools/definitions/get_native_live_uikit_integration_def.js +0 -75
  371. package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
  372. package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -63
  373. package/tools/definitions/get_native_live_uikit_interaction_def.js.map +0 -1
  374. package/tools/definitions/get_trtc_native_api_def.js +0 -16
  375. package/tools/definitions/get_trtc_native_api_def.js.map +0 -1
  376. package/tools/definitions/get_web_call_uikit_api_def.js +0 -23
  377. package/tools/definitions/get_web_call_uikit_api_def.js.map +0 -1
  378. package/tools/definitions/get_web_chat_uikit_init_def.js +0 -23
  379. package/tools/definitions/get_web_chat_uikit_init_def.js.map +0 -1
  380. package/tools/definitions/get_web_create_group_doc_def.js +0 -18
  381. package/tools/definitions/get_web_create_group_doc_def.js.map +0 -1
  382. package/tools/definitions/get_web_live_state_detail_def.js +0 -19
  383. package/tools/definitions/get_web_live_state_detail_def.js.map +0 -1
  384. package/tools/definitions/get_web_live_uikit_component_detail_def.js +0 -27
  385. package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +0 -1
  386. package/tools/definitions/get_web_room_feature_detail_def.js +0 -92
  387. package/tools/definitions/get_web_room_feature_detail_def.js.map +0 -1
  388. package/tools/definitions/get_web_room_state_detail_def.js +0 -19
  389. package/tools/definitions/get_web_room_state_detail_def.js.map +0 -1
  390. package/tools/definitions/present_scenario_choice_def.js +0 -53
  391. package/tools/definitions/present_scenario_choice_def.js.map +0 -1
  392. package/tools/definitions/record_prompt_def.js +0 -58
  393. package/tools/definitions/record_prompt_def.js.map +0 -1
  394. package/tools/definitions/record_result_def.js +0 -46
  395. package/tools/definitions/record_result_def.js.map +0 -1
  396. package/tools/live/get-native-live-uikit-integration.js +0 -177
  397. package/tools/live/get-native-live-uikit-integration.js.map +0 -1
  398. package/tools/live/get-web-live-component-detail.js +0 -31
  399. package/tools/live/get-web-live-component-detail.js.map +0 -1
  400. package/tools/live/get-web-live-state-detail.js +0 -31
  401. package/tools/live/get-web-live-state-detail.js.map +0 -1
  402. package/tools/live/get-web-live-uikit-integration.js +0 -52
  403. package/tools/live/get-web-live-uikit-integration.js.map +0 -1
  404. package/tools/live/get_native_live_uikit_extra_features.js +0 -105
  405. package/tools/live/get_native_live_uikit_extra_features.js.map +0 -1
  406. package/tools/live/get_native_live_uikit_interaction.js +0 -194
  407. package/tools/live/get_native_live_uikit_interaction.js.map +0 -1
  408. package/tools/native_live/get-native-live-api.js +0 -31
  409. package/tools/native_live/get-native-live-api.js.map +0 -1
  410. package/tools/room/get-web-room-feature-detail.js.map +0 -1
  411. package/tools/room/get-web-room-integration.js.map +0 -1
  412. package/tools/rtcengine/get-rtcengine-web-sdk-integration.js +0 -28
  413. package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +0 -1
  414. package/tools/rtcengine/get-trtc-sdk-faq.js +0 -32
  415. package/tools/rtcengine/get-trtc-sdk-faq.js.map +0 -1
  416. package/tools/rtcengine/get-trtc-web-sdk-api.js +0 -28
  417. package/tools/rtcengine/get-trtc-web-sdk-api.js.map +0 -1
  418. package/tools/rtcengine/get-trtc-web-sdk-faq.js +0 -30
  419. package/tools/rtcengine/get-trtc-web-sdk-faq.js.map +0 -1
  420. package/tools/rtcengine/get-trtc-web-sdk-integration.js +0 -29
  421. package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +0 -1
  422. package/tools/rtcengine/get-trtc-web-sdk-plugin.js +0 -45
  423. package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +0 -1
  424. package/tools/trtc/get-trtc-native-api.js +0 -31
  425. package/tools/trtc/get-trtc-native-api.js.map +0 -1
  426. package/utils/handle-component-name.js +0 -33
  427. package/utils/handle-component-name.js.map +0 -1
  428. /package/resource/doc/{chatuikit/iOS/workflow.md → callkit/core-sdk/.gitkeep} +0 -0
  429. /package/resource/doc/{tuicallkit/faq/common/error_code.md → callkit/faq/common/error-code.md} +0 -0
  430. /package/resource/doc/{tuicallkit/react/faq.md → callkit/faq/web-faq.md} +0 -0
  431. /package/resource/doc/{chatuikit → chatkit}/faq/common/server_error_code.md +0 -0
  432. /package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/error_code.md +0 -0
  433. /package/resource/doc/{chatuikit → chatkit}/flutter/faq.md +0 -0
  434. /package/resource/doc/{chatuikit → chatkit}/react/faq.md +0 -0
  435. /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