@tencentcloud/sdk-mcp 1.6.3 → 1.6.5

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 (302) hide show
  1. package/index.js +0 -4
  2. package/knowledge/build-index.js +1 -1
  3. package/knowledge/chunker.js +81 -52
  4. package/knowledge/path-meta.js +181 -21
  5. package/knowledge/search/exact-lookup.js +166 -0
  6. package/knowledge/search/filter-pool.js +73 -19
  7. package/knowledge/search/product-scope-intent.js +2 -2
  8. package/knowledge/search/requires-framework.js +1 -1
  9. package/knowledge/search/search-knowledge.js +234 -57
  10. package/package.json +1 -1
  11. package/resource/_schema/feature-aliases.yaml +1 -0
  12. package/resource/integration/callkit/preset/android/integration.md +3 -5
  13. package/resource/integration/callkit/preset/flutter/integration.md +2 -3
  14. package/resource/integration/callkit/preset/ios/integration.md +2 -5
  15. package/resource/integration/callkit/preset/react/integration.md +12 -26
  16. package/resource/integration/callkit/preset/vue/integration.md +17 -33
  17. package/resource/integration/chat/preset/android/integration.md +44 -14
  18. package/resource/integration/chat/preset/flutter/integration.md +54 -13
  19. package/resource/integration/chat/preset/ios/integration.md +42 -6
  20. package/resource/integration/chat/preset/react/integration.md +30 -28
  21. package/resource/integration/chat/preset/uni-app/integration.md +101 -40
  22. package/resource/integration/chat/preset/vue/integration.md +62 -28
  23. package/resource/integration/livekit/preset/live/android/live-audience-integration.md +133 -0
  24. package/resource/integration/livekit/preset/live/android/live-host-integration.md +225 -0
  25. package/resource/integration/livekit/preset/live/android/live-list-integration.md +278 -0
  26. package/resource/integration/livekit/preset/live/android/prepare-integration.md +271 -0
  27. package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +207 -0
  28. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +358 -0
  29. package/resource/integration/livekit/preset/live/ios/live-list-integration.md +246 -0
  30. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +218 -0
  31. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +4 -7
  32. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +5 -12
  33. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +4 -11
  34. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +250 -482
  35. package/resource/integration/roomkit/preset/vue/integration.md +399 -106
  36. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
  37. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +20 -0
  38. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
  39. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +11 -15
  40. package/resource/knowledge/callkit/core-sdk/android/make-call.md +10 -13
  41. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +2 -4
  42. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +10 -17
  43. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +11 -17
  44. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +11 -20
  45. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +10 -15
  46. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +9 -14
  47. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +12 -18
  48. package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +390 -0
  49. package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +317 -0
  50. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +16 -22
  51. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +17 -23
  52. package/resource/knowledge/callkit/core-sdk/web/call-engine.md +39 -0
  53. package/resource/knowledge/callkit/core-sdk/web/call-event.md +341 -0
  54. package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +39 -0
  55. package/resource/knowledge/callkit/faq/android.md +1 -5
  56. package/resource/knowledge/callkit/faq/common.md +10 -12
  57. package/resource/knowledge/callkit/faq/ios.md +5 -7
  58. package/resource/knowledge/callkit/faq/uniapp-app.md +7 -7
  59. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +9 -12
  60. package/resource/knowledge/callkit/faq/web.md +2 -12
  61. package/resource/knowledge/callkit/preset/android/api.md +5 -8
  62. package/resource/knowledge/callkit/preset/ios/api.md +4 -6
  63. package/resource/knowledge/callkit/preset/miniprogram/api.md +295 -0
  64. package/resource/knowledge/callkit/preset/react/api.md +622 -0
  65. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +475 -0
  66. package/resource/knowledge/callkit/preset/vue/api.md +622 -0
  67. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +587 -0
  68. package/resource/knowledge/callkit/preset/web/api.md +1 -1
  69. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
  70. package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
  71. package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -1
  72. package/resource/knowledge/chat/preset/android/features/language.md +2 -4
  73. package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
  74. package/resource/knowledge/chat/preset/android/features/message-list.md +1 -2
  75. package/resource/knowledge/chat/preset/android/features/search.md +0 -1
  76. package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
  77. package/resource/knowledge/chat/preset/android-view/integration.md +35 -10
  78. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
  79. package/resource/knowledge/chat/preset/flutter/features/language.md +1 -1
  80. package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -1
  81. package/resource/knowledge/chat/preset/flutter/features/search.md +4 -5
  82. package/resource/knowledge/chat/preset/flutter/features/theme.md +1 -1
  83. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
  84. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -1
  85. package/resource/knowledge/chat/preset/ios/features/language.md +2 -5
  86. package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -1
  87. package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
  88. package/resource/knowledge/chat/preset/ios/features/theme.md +1 -1
  89. package/resource/knowledge/chat/preset/ios-uikit/integration.md +57 -166
  90. package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -1
  91. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +3 -3
  92. package/resource/knowledge/chat/preset/react/features/conversation-list.md +3 -3
  93. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -1
  94. package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
  95. package/resource/knowledge/chat/preset/react/features/search.md +0 -1
  96. package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -1
  97. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -4
  98. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +4 -4
  99. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +1 -1
  100. package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -2
  101. package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -2
  102. package/resource/knowledge/chat/preset/vue/features/search.md +0 -1
  103. package/resource/knowledge/chat/preset/vue/features/theme.md +4 -4
  104. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
  105. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +2 -5
  106. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +12 -15
  107. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
  108. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
  109. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
  110. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
  111. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +2 -4
  112. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
  113. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
  114. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
  115. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +2 -4
  116. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
  117. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
  118. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +3 -6
  119. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
  120. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +12 -15
  121. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
  122. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
  123. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
  124. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +2 -4
  125. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
  126. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
  127. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
  128. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +2 -4
  129. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
  130. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
  131. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +2 -5
  132. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
  133. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +3 -6
  134. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
  135. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
  136. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
  137. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +2 -4
  138. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
  139. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
  140. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
  141. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +2 -4
  142. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
  143. package/resource/knowledge/livekit/core-sdk/api-reference/vue/capability-matrix.md +82 -0
  144. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +2 -4
  145. package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +1 -1
  146. package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +1 -1
  147. package/resource/knowledge/livekit/core-sdk/{voice/android/voice-gift.md → features/android/gift.md} +2 -3
  148. package/resource/knowledge/livekit/core-sdk/{live/android/live-live-list.md → features/android/live-list.md} +1 -1
  149. package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
  150. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +3 -3
  151. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-gift.md → features/flutter/gift.md} +2 -2
  152. package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
  153. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -1
  154. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
  155. package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-barrage.md → features/ios/barrage.md} +2 -2
  156. package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +1 -1
  157. package/resource/knowledge/livekit/core-sdk/{live/ios/live-gift.md → features/ios/gift.md} +8 -9
  158. package/resource/knowledge/livekit/core-sdk/{live/ios/live-live-list.md → features/ios/live-list.md} +2 -2
  159. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audio-effect.md → features/uni-app/audio-effect.md} +2 -3
  160. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-barrage.md → features/uni-app/barrage.md} +2 -2
  161. package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +145 -0
  162. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-gift.md → features/uni-app/gift.md} +6 -7
  163. package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-room-list.md → features/uni-app/live-list.md} +1 -1
  164. package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
  165. package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +2 -4
  166. package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +6 -9
  167. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +1 -3
  168. package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -6
  169. package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
  170. package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +3 -5
  171. package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +7 -10
  172. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +561 -0
  173. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +323 -0
  174. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +312 -0
  175. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
  176. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +2 -4
  177. package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +11 -14
  178. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -1
  179. package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +1 -4
  180. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
  181. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +2 -4
  182. package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +7 -10
  183. package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-co-guest-interaction.md → co-guest-interaction.md} +6 -6
  184. package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-integration.md → integration.md} +6 -7
  185. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
  186. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
  187. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +1 -1
  188. package/resource/knowledge/push/api-reference/android.md +337 -0
  189. package/resource/knowledge/push/api-reference/donut.md +190 -0
  190. package/resource/knowledge/push/api-reference/flutter.md +176 -0
  191. package/resource/knowledge/push/api-reference/harmonyos.md +140 -0
  192. package/resource/knowledge/push/api-reference/ios.md +537 -0
  193. package/resource/knowledge/push/api-reference/react-native.md +154 -0
  194. package/resource/knowledge/push/api-reference/uni-app.md +148 -0
  195. package/resource/knowledge/push/api-reference/unity.md +119 -0
  196. package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
  197. package/resource/knowledge/push/config/android/fcm.md +1 -8
  198. package/resource/knowledge/push/config/android/honor.md +3 -7
  199. package/resource/knowledge/push/config/android/huawei.md +0 -5
  200. package/resource/knowledge/push/config/android/meizu.md +0 -5
  201. package/resource/knowledge/push/config/android/oppo.md +0 -4
  202. package/resource/knowledge/push/config/android/vivo.md +0 -4
  203. package/resource/knowledge/push/config/android/xiaomi.md +0 -2
  204. package/resource/knowledge/push/config/donut.md +33 -46
  205. package/resource/knowledge/push/config/harmonyos.md +6 -9
  206. package/resource/knowledge/push/config/ios.md +2 -9
  207. package/resource/knowledge/push/config/react-native.md +17 -25
  208. package/resource/knowledge/push/config/unity.md +16 -24
  209. package/resource/knowledge/push/config/unreal-engine.md +16 -24
  210. package/resource/knowledge/push/integration/android.md +21 -21
  211. package/resource/knowledge/push/integration/donut.md +24 -34
  212. package/resource/knowledge/push/integration/flutter.md +12 -1
  213. package/resource/knowledge/push/integration/harmonyos.md +2 -1
  214. package/resource/knowledge/push/integration/ios.md +16 -10
  215. package/resource/knowledge/push/integration/react-native.md +10 -14
  216. package/resource/knowledge/push/integration/uni-app.md +10 -6
  217. package/resource/knowledge/push/integration/unity.md +19 -22
  218. package/resource/knowledge/push/integration/unreal-engine.md +7 -9
  219. package/resource/knowledge/push/overview/prepare.md +2 -2
  220. package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
  221. package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +82 -0
  222. package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
  223. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
  224. package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +82 -0
  225. package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
  226. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -1
  227. package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +82 -0
  228. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
  229. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -4
  230. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +2 -5
  231. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
  232. package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -2
  233. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +2 -6
  234. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -1
  235. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +1 -1
  236. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +2 -4
  237. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +2 -3
  238. package/resource/knowledge/roomkit/preset/android/integration.md +14 -16
  239. package/resource/knowledge/roomkit/preset/flutter/integration.md +9 -17
  240. package/resource/knowledge/roomkit/preset/ios/integration.md +9 -17
  241. package/resource/knowledge/roomkit/preset/react/integration.md +0 -4
  242. package/resource/knowledge/trtc/android/TRTCCloud.md +97 -180
  243. package/resource/knowledge/trtc/android/TRTCCloudDef.md +20 -20
  244. package/resource/knowledge/trtc/android/TRTCCloudListener.md +43 -77
  245. package/resource/knowledge/trtc/android/TRTCStatistics.md +1 -1
  246. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +4 -24
  247. package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
  248. package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
  249. package/resource/knowledge/trtc/c++/ITRTCCloud.md +96 -189
  250. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +1 -1
  251. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +1 -21
  252. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -6
  253. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +42 -76
  254. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +18 -19
  255. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
  256. package/resource/knowledge/trtc/ios/TRTCCloud.md +95 -181
  257. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +43 -78
  258. package/resource/knowledge/trtc/ios/TRTCStatistics.md +1 -1
  259. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +1 -20
  260. package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -6
  261. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
  262. package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +20 -20
  263. package/server-config.js +7 -4
  264. package/server.js +2 -2
  265. package/tools/common/finalize_answer.js +1 -1
  266. package/tools/common/present_framework_choice.js +2 -2
  267. package/tools/common/search_trtc_knowledge.js +3 -3
  268. package/tools/common/submit_feedback.js +1 -1
  269. package/tools/definitions/get_native_live_uikit_integration_def.js +60 -0
  270. package/tools/definitions/get_native_livekit_core_integration_def.js +1 -1
  271. package/tools/definitions/present_framework_choice_def.js +2 -2
  272. package/tools/definitions/search_trtc_knowledge_def.js +5 -5
  273. package/tools/index.js +2 -0
  274. package/tools/live/get_native_live_uikit_integration.js +69 -0
  275. package/tools/live/get_native_livekit_core_integration.js +6 -6
  276. package/utils/is-valid-sdkappid.js +4 -0
  277. package/utils/report-cls-client.js +1 -1
  278. package/utils/report-es-client.js +1 -1
  279. package/resource/index/component-slugs.json +0 -1
  280. package/resource/index/doc-source-urls.json +0 -1
  281. package/resource/index/manifest.json +0 -1
  282. package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -229
  283. package/resource/knowledge/livekit/core-sdk/live/android/live-gift.md +0 -459
  284. package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -506
  285. package/resource/knowledge/livekit/core-sdk/live/flutter/live-gift.md +0 -427
  286. package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
  287. package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -265
  288. package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -214
  289. package/resource/knowledge/livekit/core-sdk/live/ios/live-barrage.md +0 -427
  290. package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -272
  291. package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -486
  292. package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +0 -523
  293. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -262
  294. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -600
  295. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-gift.md +0 -411
  296. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +0 -404
  297. /package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +0 -0
  298. /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
  299. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
  300. /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
  301. /package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audience-list.md → features/uni-app/audience-list.md} +0 -0
  302. /package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -0
@@ -111,12 +111,12 @@ Function: 分辨率、质量等级等枚举和常量值的定义
111
111
 
112
112
  **视频宽高比模式。**
113
113
 
114
- TRTCVideoResolution 中仅定义了横屏分辨率(如 640 × 360),如需使用竖屏分辨率(如360 × 640),需要同时指定 ` TRTCVideoResolutionMode ` 为 Portrait。
114
+ TRTCVideoResolution 中仅定义了横屏分辨率(如 640 × 360),如需使用竖屏分辨率(如360 × 640),需要同时指定 `TRTCVideoResolutionMode` 为 Portrait。
115
115
 
116
116
  |枚举|取值|描述|
117
117
  |---------|---------|---------|
118
- |TRTCVideoResolutionModeLandscape|0|横屏分辨率,例如:` TRTCVideoResolution_640_360 + TRTCVideoResolutionModeLandscape = 640 × 360 `。|
119
- |TRTCVideoResolutionModePortrait|1|竖屏分辨率,例如:` TRTCVideoResolution_640_360 + TRTCVideoResolutionModePortrait = 360 × 640 `。|
118
+ |TRTCVideoResolutionModeLandscape|0|横屏分辨率,例如: `TRTCVideoResolution_640_360 + TRTCVideoResolutionModeLandscape = 640 × 360` 。|
119
+ |TRTCVideoResolutionModePortrait|1|竖屏分辨率,例如: `TRTCVideoResolution_640_360 + TRTCVideoResolutionModePortrait = 360 × 640` 。|
120
120
 
121
121
  ## TRTCVideoStreamType
122
122
 
@@ -131,7 +131,6 @@ TRTC 内部有三种不同的视频流,分别是:
131
131
 
132
132
  > **注意**
133
133
  >
134
-
135
134
  > 不支持单独开启低清小画面,小画面必须依附于大画面而存在,SDK 会自动设定低清小画面的分辨率和码率。
136
135
  >
137
136
 
@@ -340,11 +339,12 @@ TRTC 会每隔两秒对当前的网络质量进行评估,评估结果为六个
340
339
 
341
340
  **音频采样率。**
342
341
 
343
- 音频采样率用来衡量声音的保真程度,采样率越高保真程度越好,如果您的应用场景有音乐的存在,推荐使用 ` TRTCAudioSampleRate48000 `。
342
+ 音频采样率用来衡量声音的保真程度,采样率越高保真程度越好,如果您的应用场景有音乐的存在,推荐使用 `TRTCAudioSampleRate48000` 。
344
343
 
345
344
  |枚举|取值|描述|
346
345
  |---------|---------|---------|
347
346
  |TRTCAudioSampleRate16000|16000|16k 采样率。|
347
+ |TRTCAudioSampleRate24000|24000|24k 采样率。|
348
348
  |TRTCAudioSampleRate32000|32000|32k 采样率。|
349
349
  |TRTCAudioSampleRate44100|44100|44.1k 采样率。|
350
350
  |TRTCAudioSampleRate48000|48000|48k采样率|
@@ -505,10 +505,10 @@ TRTC 的云端混流服务能够将房间中的多路音视频流混合成一路
505
505
  | 枚举 | 取值 | 描述 |
506
506
  | --- | --- | --- |
507
507
  | TRTCTranscodingConfigMode_Unknown | 0 | 未定义。 |
508
- | TRTCTranscodingConfigMode_Manual | 1 | 全手动排版模式。<br>该模式下,您需要指定每一路画面的精确排版位置。该模式的自由度最高,但易用性也最差:<br>- 您需要填写 TRTCTranscodingConfig 中的所有参数,包括每一路画面(TRTCMixUser)的位置坐标。<br>- 您需要监听 TRTCCloudDelegate 中的 onUserVideoAvailable 和 onUserAudioAvailable 事件回调,并根据当前房间中各个麦上用户的音视频状态不断地调整 <code> mixUsers </code> 参数。 |
509
- | TRTCTranscodingConfigMode_Template_PureAudio | 2 | 纯音频模式。<br>该模式适用于语音通话(AudioCall)和语音聊天室(VoiceChatRoom)等纯音频的应用场景。<br>- 您只需要在进入房间后,通过 setMixTranscodingConfig 接口设置一次,之后 SDK 就会自动把房间内所有上麦用户的声音混流到当前用户的直播流上。<br>- 您无需设置 TRTCTranscodingConfig 中的 <code> mixUsers </code> 参数,只需设置 <code> audioSampleRate </code>、<code> audioBitrate </code> 和 <code> audioChannels </code> 等参数即可。 |
508
+ | TRTCTranscodingConfigMode_Manual | 1 | 全手动排版模式。<br>该模式下,您需要指定每一路画面的精确排版位置。该模式的自由度最高,但易用性也最差:<br>- 您需要填写 TRTCTranscodingConfig 中的所有参数,包括每一路画面(TRTCMixUser)的位置坐标。<br>- 您需要监听 TRTCCloudDelegate 中的 onUserVideoAvailable 和 onUserAudioAvailable 事件回调,并根据当前房间中各个麦上用户的音视频状态不断地调整 <code>mixUsers</code> 参数。 |
509
+ | TRTCTranscodingConfigMode_Template_PureAudio | 2 | 纯音频模式。<br>该模式适用于语音通话(AudioCall)和语音聊天室(VoiceChatRoom)等纯音频的应用场景。<br>- 您只需要在进入房间后,通过 setMixTranscodingConfig 接口设置一次,之后 SDK 就会自动把房间内所有上麦用户的声音混流到当前用户的直播流上。<br>- 您无需设置 TRTCTranscodingConfig 中的 <code>mixUsers</code> 参数,只需设置 <code>audioSampleRate</code> 、 <code>audioBitrate</code> 和 <code>audioChannels</code> 等参数即可。 |
510
510
  | TRTCTranscodingConfigMode_Template_PresetLayout | 3 | 预排版模式。<br>最受欢迎的排版模式,因为该模式支持您通过占位符提前对各路画面的位置进行设定,之后 SDK 会自动根据房间中画面的路数动态进行适配调整。<br>此模式下,您依然需要设置 mixUsers 参数,但可以将 userId 设置为“占位符”,可选的占位符有:<br>- "$PLACE_HOLDER_REMOTE$" : 指代远程用户的画面,可以设置多个。<br>- "$PLACE_HOLDER_LOCAL_MAIN$" : 指代本地摄像头画面,只允许设置一个。<br>- "$PLACE_HOLDER_LOCAL_SUB$" : 指代本地屏幕分享画面,只允许设置一个。<br>此模式下,您不需要监听 TRTCCloudDelegate 中的 onUserVideoAvailable 和 onUserAudioAvailable 回调进行实时调整,只需要在进房成功后调用一次 setMixTranscodingConfig 即可,之后 SDK 会自动将真实的 userId 补位到您设置的占位符上。 |
511
- | TRTCTranscodingConfigMode_Template_ScreenSharing | 4 | 屏幕分享模式。<br>适用于在线教育场景等以屏幕分享为主的应用场景,仅支持 Windows 和 Mac 两个平台的 SDK。<br>该模式下,SDK 会先根据您通过 videoWidth 和 videoHeight 参数设置的目标分辨率构建一张画布,<br>- 当老师未开启屏幕分享时,SDK 会将老师的摄像头画面等比例拉伸绘制到该画布上;<br>- 当老师开启屏幕分享之后,SDK 会将屏幕分享画面绘制到同样的画布上。<br>此种排版模式的目的是为了确保混流模块的输出分辨率一致,避免课程回放和网页观看的花屏问题(网页播放器不支持可变分辨率)。<br>同时,连麦学生的声音也会被默认混合到老师的音视频流中。<br>由于教学模式下的视频内容以屏幕分享为主,因此同时传输摄像头画面和屏幕分享画面是非常浪费带宽的。<br>推荐的做法是直接将摄像头画面通过 setLocalVideoRenderCallback 接口自定义绘制到当前屏幕上。<br>在该模式下,您无需设置 TRTCTranscodingConfig 中的 <code> mixUsers </code> 参数,SDK 不会混合学生的画面,以免干扰屏幕分享的效果。<br>您可以将 TRTCTranscodingConfig 中的 width x height 设为 0px × 0px,SDK 会自动根据用户当前屏幕的宽高比计算出一个合适的分辨率:<br>- 如果老师当前屏幕宽度 <= 1920px,SDK 会使用老师当前屏幕的实际分辨率。<br>- 如果老师当前屏幕宽度 > 1920px,SDK 会根据当前屏幕宽高比,选择 1920x1080(16:9)、1920x1200(16:10)、1920x1440(4:3) 三种分辨率中的一种。 |
511
+ | TRTCTranscodingConfigMode_Template_ScreenSharing | 4 | 屏幕分享模式。<br>适用于在线教育场景等以屏幕分享为主的应用场景,仅支持 Windows 和 Mac 两个平台的 SDK。<br>该模式下,SDK 会先根据您通过 videoWidth 和 videoHeight 参数设置的目标分辨率构建一张画布,<br>- 当老师未开启屏幕分享时,SDK 会将老师的摄像头画面等比例拉伸绘制到该画布上;<br>- 当老师开启屏幕分享之后,SDK 会将屏幕分享画面绘制到同样的画布上。<br>此种排版模式的目的是为了确保混流模块的输出分辨率一致,避免课程回放和网页观看的花屏问题(网页播放器不支持可变分辨率)。<br>同时,连麦学生的声音也会被默认混合到老师的音视频流中。<br>由于教学模式下的视频内容以屏幕分享为主,因此同时传输摄像头画面和屏幕分享画面是非常浪费带宽的。<br>推荐的做法是直接将摄像头画面通过 setLocalVideoRenderCallback 接口自定义绘制到当前屏幕上。<br>在该模式下,您无需设置 TRTCTranscodingConfig 中的 <code>mixUsers</code> 参数,SDK 不会混合学生的画面,以免干扰屏幕分享的效果。<br>您可以将 TRTCTranscodingConfig 中的 width x height 设为 0px × 0px,SDK 会自动根据用户当前屏幕的宽高比计算出一个合适的分辨率:<br>- 如果老师当前屏幕宽度 <= 1920px,SDK 会使用老师当前屏幕的实际分辨率。<br>- 如果老师当前屏幕宽度 > 1920px,SDK 会根据当前屏幕宽高比,选择 1920x1080(16:9)、1920x1200(16:10)、1920x1440(4:3) 三种分辨率中的一种。 |
512
512
 
513
513
  ## TRTCRecordType
514
514
 
@@ -608,11 +608,11 @@ v11.7 版本开始支持,只在 SDK 内部摄像头采集场景生效
608
608
  | bussInfo | 【字段含义】业务数据字段(选填),部分高级特性才需要用到此字段。<br>【推荐取值】请不要自行设置该字段。 |
609
609
  | privateMapKey | 【字段含义】用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。<br>【推荐取值】仅建议有高级别安全需求的客户使用,更多详情请参见 <a href="https://cloud.tencent.com/document/product/647/32240">进房权限保护</a>。 |
610
610
  | role | 【字段含义】直播场景下的角色,仅适用于直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom),通话场景下指定该参数是无效的。<br>【推荐取值】默认值:主播(TRTCRoleAnchor)。 |
611
- | roomId | 【字段含义】数字房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。<br>【推荐取值】取值范围:1 - 4294967294。<br>【特别说明】1. roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为 0。若两者都填,SDK 将优先选用 roomId。<br>2. 不要混用 roomId 和 strRoomId,因为它们之间是不互通的,例如数字 123 和字符串 <code> 123 </code> 在 TRTC 看来是两个完全不同的房间。 |
611
+ | roomId | 【字段含义】数字房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。<br>【推荐取值】取值范围:1 - 4294967294。<br>【特别说明】1. roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为 0。若两者都填,SDK 将优先选用 roomId。<br>2. 不要混用 roomId 和 strRoomId,因为它们之间是不互通的,例如数字 123 和字符串 <code>123</code> 在 TRTC 看来是两个完全不同的房间。 |
612
612
  | sdkAppId | 【字段含义】应用标识(必填),腾讯云基于 sdkAppId 完成计费统计。<br>【推荐取值】在 <a href="https://console.cloud.tencent.com/rav/">实时音视频控制台</a> 创建应用后可以在账号信息页面中得到该 ID。 |
613
- | strRoomId | 【字段含义】字符串房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。<br>【推荐取值】限制长度为 64 字节。以下为支持的字符集范围(共 89 个字符):<br>- 大小写英文字母(a-zA-Z);<br>- 数字(0-9);<br>- 空格、<code> ! </code>、<code> # </code>、<code> $ </code>、<code> % </code>、<code> & </code>、<code> ( </code>、<code> ) </code>、<code> + </code>、<code> - </code>、<code> : </code>、<code> ; </code>、<code> < </code>、<code> = </code>、<code> . </code>、<code> > </code>、<code> ? </code>、<code> @ </code>、<code> [ </code>、<code> ] </code>、<code> ^ </code>、<code> _ </code>、<code> { </code>、<code> } </code>、<code> \\| </code>、<code> ~ </code>、<code> , </code>。<br>【特别说明】1. roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,SDK 将优先选用 roomId。<br>2. 不要混用 roomId 和 strRoomId,因为它们之间是不互通的,例如数字 123 和字符串 <code> 123 </code> 在 TRTC 看来是两个完全不同的房间。 |
614
- | streamId | 【字段含义】用于指定在腾讯云直播平台上的 streamId(选填),设置之后,您可以在腾讯云直播 CDN 上通过标准拉流方案(FLV 或 HLS)播放该用户的音视频流。<br>【推荐取值】限制长度为64字节,可以不填写,一种推荐的方案是使用 <code> sdkappid_roomid_userid_main </code> 作为 streamid,这种命名方式容易辨认且不会在您的多个应用中发生冲突。<br>【特别说明】要使用腾讯云直播 CDN,您需要先在 <a href="https://console.cloud.tencent.com/trtc/">控制台</a> 中的功能配置页开启“启动自动旁路直播”开关。<br>【参考文档】<a href="https://cloud.tencent.com/document/product/647/84721">发布音视频流到直播 CDN</a>。 |
615
- | userDefineRecordId | 【字段含义】云端录制开关(选填),用于指定是否要在云端将该用户的音视频流录制下来。<br>【参考文档】<a href="https://cloud.tencent.com/document/product/647/76497">云端录制</a>。<br>【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。<br>方案一:手动录制方案:<br>1. 在 <a href="https://console.cloud.tencent.com/trtc">控制台</a>>应用管理>云端录制配置 中开启云端录制。<br>2. 设置 <code> 录制形式 </code> 为 <code> 手动录制 </code>。<br>3. 设置手动录制后,在一个 TRTC 房间中只有设置了 userDefineRecordId 参数的用户才会在云端录制出视频文件,不指定该参数的用户不会产生录制行为。<br>4. 云端会以 “userDefineRecordId_起始时间_结束时间” 的格式命名录制下来的文件。<br>方案二:自动录制方案:<br>1. 需要在 <a href="https://console.cloud.tencent.com/trtc">控制台</a>>应用管理>云端录制配置 中开启云端录制。<br>2. 设置<code> 录制形式 </code>为<code> 自动录制 </code>。<br>3. 设置自动录制后,在一个 TRTC 房间中的任何一个有音视频上行的用户,均会在云端录制出视频文件。<br>4. 文件会以 <code> userDefineRecordId_起始时间_结束时间 </code> 的格式命名,如果不指定 userDefineRecordId,则文件会以 <code> streamId_起始时间_结束时间 </code> 命名。 |
613
+ | strRoomId | 【字段含义】字符串房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。<br>【推荐取值】限制长度为 64 字节。以下为支持的字符集范围(共 89 个字符):<br>- 大小写英文字母(a-zA-Z);<br>- 数字(0-9);<br>- 空格、 <code>!</code> 、 <code>#</code> 、 <code>$</code> 、 <code>%</code> 、 <code>&</code> 、 <code>(</code> 、 <code>)</code> 、 <code>+</code> 、 <code>-</code> 、 <code>:</code> 、 <code>;</code> 、 <code><</code> 、 <code>=</code> 、 <code>.</code> 、 <code>></code> 、 <code>?</code> 、 <code>@</code> 、 <code>[</code> 、 <code>]</code> 、 <code>^</code> 、 <code>_</code> 、 <code>{</code> 、 <code>}</code> 、 <code>\\|</code> 、 <code>~</code> 、 <code>,</code> 。<br>【特别说明】1. roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,SDK 将优先选用 roomId。<br>2. 不要混用 roomId 和 strRoomId,因为它们之间是不互通的,例如数字 123 和字符串 <code>123</code> 在 TRTC 看来是两个完全不同的房间。 |
614
+ | streamId | 【字段含义】用于指定在腾讯云直播平台上的 streamId(选填),设置之后,您可以在腾讯云直播 CDN 上通过标准拉流方案(FLV 或 HLS)播放该用户的音视频流。<br>【推荐取值】限制长度为64字节,可以不填写,一种推荐的方案是使用 <code>sdkappid_roomid_userid_main</code> 作为 streamid,这种命名方式容易辨认且不会在您的多个应用中发生冲突。<br>【特别说明】要使用腾讯云直播 CDN,您需要先在 <a href="https://console.cloud.tencent.com/trtc/">控制台</a> 中的功能配置页开启“启动自动旁路直播”开关。<br>【参考文档】<a href="https://cloud.tencent.com/document/product/647/84721">发布音视频流到直播 CDN</a>。 |
615
+ | userDefineRecordId | 【字段含义】云端录制开关(选填),用于指定是否要在云端将该用户的音视频流录制下来。<br>【参考文档】<a href="https://cloud.tencent.com/document/product/647/76497">云端录制</a>。<br>【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。<br>方案一:手动录制方案:<br>1. 在 <a href="https://console.cloud.tencent.com/trtc">控制台</a>>应用管理>云端录制配置 中开启云端录制。<br>2. 设置 <code>录制形式</code> 为 <code>手动录制</code> 。<br>3. 设置手动录制后,在一个 TRTC 房间中只有设置了 userDefineRecordId 参数的用户才会在云端录制出视频文件,不指定该参数的用户不会产生录制行为。<br>4. 云端会以 “userDefineRecordId_起始时间_结束时间” 的格式命名录制下来的文件。<br>方案二:自动录制方案:<br>1. 需要在 <a href="https://console.cloud.tencent.com/trtc">控制台</a>>应用管理>云端录制配置 中开启云端录制。<br>2. 设置 <code>录制形式</code> 为 <code>自动录制</code> 。<br>3. 设置自动录制后,在一个 TRTC 房间中的任何一个有音视频上行的用户,均会在云端录制出视频文件。<br>4. 文件会以 <code>userDefineRecordId_起始时间_结束时间</code> 的格式命名,如果不指定 userDefineRecordId,则文件会以 <code>streamId_起始时间_结束时间</code> 命名。 |
616
616
  | userId | 【字段含义】用户标识(必填),当前用户的 userId,相当于用户名,使用 UTF-8 编码。<br>【推荐取值】如果一个用户在您的账号系统中的 ID 为 “mike”,则 userId 即可设置为 “mike”。 |
617
617
  | userSig | 【字段含义】用户签名(必填),当前 userId 对应的验证签名,相当于使用云服务的登录密码。<br>【推荐取值】具体计算方法请参见 <a href="https://cloud.tencent.com/document/product/647/17275">如何计算UserSig</a>。 |
618
618
 
@@ -624,11 +624,11 @@ v11.7 版本开始支持,只在 SDK 内部摄像头采集场景生效
624
624
  | 枚举类型 | 描述 |
625
625
  | --- | --- |
626
626
  | enableAdjustRes | 【字段含义】是否允许动态调整分辨率(开启后会对云端录制产生影响)。<br>【推荐取值】该功能适用于不需要云端录制的场景,开启后 SDK 会根据当前网络情况,智能选择出一个合适的分辨率,避免出现“大分辨率+小码率”的低效编码模式。<br>【特别说明】默认值:关闭。如有云端录制的需求,请不要开启此功能,因为如果视频分辨率发生变化后,云端录制出的 MP4 在普通的播放器上无法正常播放。 |
627
- | minVideoBitrate | 【字段含义】最低视频码率,SDK 会在网络不佳的情况下主动降低视频码率以保持流畅度,最低会降至 minVideoBitrate 所设定的数值。<br>【特别说明】 默认值:0,此时最低码率由 SDK 会根据您指定的分辨率,自动计算出合适的数值。<br>【推荐取值】您可以通过同时设置 videoBitrate 和 minVideoBitrate 两个参数,用于约束 SDK 对视频码率的调整范围:<br>- 如果您追求<code> 弱网络下允许卡顿但要保持清晰 </code>的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60%。<br>- 如果您追求<code> 弱网络下允许模糊但要保持流畅 </code>的效果,可以设置 minVideoBitrate 为一个较低的数值(例如 100kbps)。<br>- 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 对视频码率的自适应调节能力。 |
628
- | resMode | 【字段含义】分辨率模式(横屏分辨率 or 竖屏分辨率)。<br>【推荐取值】手机平台(iOS、Android)建议选择 Portrait,桌面平台(Windows、Mac)建议选择 Landscape。<br>【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: <code> 640 × 360 + Portrait = 360 × 640 </code>。 |
627
+ | minVideoBitrate | 【字段含义】最低视频码率,SDK 会在网络不佳的情况下主动降低视频码率以保持流畅度,最低会降至 minVideoBitrate 所设定的数值。<br>【特别说明】 默认值:0,此时最低码率由 SDK 会根据您指定的分辨率,自动计算出合适的数值。<br>【推荐取值】您可以通过同时设置 videoBitrate 和 minVideoBitrate 两个参数,用于约束 SDK 对视频码率的调整范围:<br>- 如果您追求 <code>弱网络下允许卡顿但要保持清晰</code> 的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60%。<br>- 如果您追求 <code>弱网络下允许模糊但要保持流畅</code> 的效果,可以设置 minVideoBitrate 为一个较低的数值(例如 100kbps)。<br>- 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 对视频码率的自适应调节能力。 |
628
+ | resMode | 【字段含义】分辨率模式(横屏分辨率 or 竖屏分辨率)。<br>【推荐取值】手机平台(iOS、Android)建议选择 Portrait,桌面平台(Windows、Mac)建议选择 Landscape。<br>【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: <code>640 × 360 + Portrait = 360 × 640</code> 。 |
629
629
  | videoBitrate | 【字段含义】目标视频码率,SDK 会按照目标码率进行编码,只有在弱网络环境下才会主动降低视频码率。<br>【推荐取值】请参见本 TRTCVideoResolution 在各档位注释的最佳码率,也可以在此基础上适当调高。例如:TRTCVideoResolution_1280_720 对应 1200kbps 的目标码率,您也可以设置为 1500kbps 用来获得更好的观感清晰度。<br>【特别说明】您可以通过同时设置 videoBitrate 和 minVideoBitrate 两个参数,用于约束 SDK 对视频码率的调整范围:<br>- 如果您追求“弱网络下允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60%。<br>- 如果您追求“弱网络下允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为一个较低的数值(例如 100kbps)。<br>- 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 对视频码率的自适应调节能力。 |
630
630
  | videoFps | 【字段含义】视频采集帧率。<br>【推荐取值】15fps或20fps。5fps以下,卡顿感明显。10fps以下,会有轻微卡顿感。20fps以上,会浪费带宽(电影的帧率为24fps)。<br>【特别说明】部分 Android 手机的前置摄像头并不支持15fps以上的采集帧率,部分主打美颜功能的 Android 手机的前置摄像头的采集帧率可能低于10fps。 |
631
- | videoResolution | 【字段含义】视频分辨率。<br>【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: <code> 640 × 360 + Portrait = 360 × 640 </code>。<br>【推荐取值】<br>- 手机视频通话:建议选择 360 × 640 及以下分辨率,resMode 选择 Portrait,即竖屏分辨率。<br>- 手机在线直播:建议选择 540 × 960,resMode 选择 Portrait,即竖屏分辨率。<br>- 桌面平台(Win + Mac):建议选择 640 × 360 及以上分辨率,resMode 选择 Landscape,即横屏分辨率。 |
631
+ | videoResolution | 【字段含义】视频分辨率。<br>【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: <code>640 × 360 + Portrait = 360 × 640</code> 。<br>【推荐取值】<br>- 手机视频通话:建议选择 360 × 640 及以下分辨率,resMode 选择 Portrait,即竖屏分辨率。<br>- 手机在线直播:建议选择 540 × 960,resMode 选择 Portrait,即竖屏分辨率。<br>- 桌面平台(Win + Mac):建议选择 640 × 360 及以上分辨率,resMode 选择 Landscape,即横屏分辨率。 |
632
632
 
633
633
  ## TRTCNetworkQosParam
634
634
 
@@ -682,8 +682,8 @@ v11.7 版本开始支持,只在 SDK 内部摄像头采集场景生效
682
682
  您可以在用户进入房间前通过 startSpeedTest 接口测试网速(注意:请不要在通话中调用)。
683
683
  | 枚举类型 | 描述 |
684
684
  | --- | --- |
685
- | expectedDownBandwidth | 预期的下行带宽(kbps,取值范围:[10, 5000],为 0 时不测试)。<br><strong>注意</strong><br>当参数 scene 设置为 TRTCSpeedTestScene_OnlineChorusTesting 时,为了获取更准确的 <code> rtt / jitter </code> 等信息,取值范围限制为 [10, 1000]。 |
686
- | expectedUpBandwidth | 预期的上行带宽(kbps,取值范围: [10, 5000],为 0 时不测试)。<br><strong>注意</strong><br>当参数 scene 设置为 TRTCSpeedTestScene_OnlineChorusTesting 时,为了获取更准确的 <code> rtt / jitter </code> 等信息,取值范围限制为 [10, 1000]。 |
685
+ | expectedDownBandwidth | 预期的下行带宽(kbps,取值范围:[10, 5000],为 0 时不测试)。<br><strong>注意</strong><br>当参数 scene 设置为 TRTCSpeedTestScene_OnlineChorusTesting 时,为了获取更准确的 <code>rtt / jitter</code> 等信息,取值范围限制为 [10, 1000]。 |
686
+ | expectedUpBandwidth | 预期的上行带宽(kbps,取值范围: [10, 5000],为 0 时不测试)。<br><strong>注意</strong><br>当参数 scene 设置为 TRTCSpeedTestScene_OnlineChorusTesting 时,为了获取更准确的 <code>rtt / jitter</code> 等信息,取值范围限制为 [10, 1000]。 |
687
687
  | scene | 测速场景。 |
688
688
  | sdkAppId | 应用标识,请参见 TRTCParams 中的相关说明。 |
689
689
  | userId | 用户标识,请参见 TRTCParams 中的相关说明。 |
@@ -830,7 +830,7 @@ TRTC 中的“音效”特指一些短暂的音频文件,通常仅有几秒钟
830
830
 
831
831
  在 7.3 版本以后,音效接口已被新的接口 startPlayMusic 所取代。
832
832
 
833
- 您在指定 startPlayMusic 的参数 TXAudioMusicParam 时,如果将 ` isShortFile ` 设置为 YES,即为“音效”文件。
833
+ 您在指定 startPlayMusic 的参数 TXAudioMusicParam 时,如果将 `isShortFile` 设置为 YES,即为“音效”文件。
834
834
  | 枚举类型 | 描述 |
835
835
  | --- | --- |
836
836
  | effectId | 【字段含义】音效 ID<br>【特别说明】SDK 允许播放多路音效,因此需要音效 ID 进行标记,用于控制音效的开始、停止、音量等。 |
@@ -861,7 +861,7 @@ TRTC 中的“音效”特指一些短暂的音频文件,通常仅有几秒钟
861
861
  | channels | 【字段含义】声道数。<br>【推荐取值】默认值:1,代表单声道。可设定的数值只有两个数字:1-单声道,2-双声道。 |
862
862
  | mode | 【字段含义】回调数据读写模式<br>【推荐取值】TRTCAudioFrameOperationModeReadOnly:仅从回调中获取音频数据。可设定的模式有 TRTCAudioFrameOperationModeReadOnly,TRTCAudioFrameOperationModeReadWrite。 |
863
863
  | sampleRate | 【字段含义】采样率。<br>【推荐取值】默认值:48000Hz。支持 16000, 32000, 44100, 48000。 |
864
- | samplesPerCall | 【字段含义】采样点数。<br>【推荐取值】取值必须是 <code> sampleRate/100 </code> 的整数倍。 |
864
+ | samplesPerCall | 【字段含义】采样点数。<br>【推荐取值】取值必须是 <code>sampleRate/100</code> 的整数倍。 |
865
865
 
866
866
  ## TRTCScreenCaptureSourceInfo
867
867
 
@@ -898,7 +898,7 @@ TRTCScreenCaptureSourceInfo 用于描述待分享目标的信息,包括 ID、
898
898
  | 枚举类型 | 描述 |
899
899
  | --- | --- |
900
900
  | intRoomId | 【字段含义】数字房间号,需要和您的进房参数 (TRTCParams) 中的房间号类型相匹配。<br>【推荐取值】取值范围:1 - 4294967294。<br>【特别说明】intRoomId 与 strRoomId 是互斥的,若您进房参数中选用 strRoomId,则 intRoomId 需要填写为0。若两者都填,SDK 将优先选用 intRoomId。 |
901
- | strRoomId | 【字段含义】字符串房间号,需要和您的进房参数 (TRTCParams) 中的房间号类型相匹配。<br>【特别说明】intRoomId 与 strRoomId 是互斥的,若您进房参数中选用 roomId,则 strRoomId 无需填写。若两者都填,SDK 将优先选用 intRoomId。<br>【推荐取值】限制长度为 64 字节。以下为支持的字符集范围(共 89 个字符):<br>- 大小写英文字母(a-zA-Z);<br>- 数字(0-9);<br>- 空格、<code> ! </code>、<code> # </code>、<code> $ </code>、<code> % </code>、<code> & </code>、<code> ( </code>、<code> ) </code>、<code> + </code>、<code> - </code>、<code> : </code>、<code> ; </code>、<code> < </code>、<code> = </code>、<code> . </code>、<code> > </code>、<code> ? </code>、<code> @ </code>、<code> [ </code>、<code> ] </code>、<code> ^ </code>、<code> _ </code>、<code> { </code>、<code> } </code>、<code> \\| </code>、<code> ~ </code>、<code> , </code>。 |
901
+ | strRoomId | 【字段含义】字符串房间号,需要和您的进房参数 (TRTCParams) 中的房间号类型相匹配。<br>【特别说明】intRoomId 与 strRoomId 是互斥的,若您进房参数中选用 roomId,则 strRoomId 无需填写。若两者都填,SDK 将优先选用 intRoomId。<br>【推荐取值】限制长度为 64 字节。以下为支持的字符集范围(共 89 个字符):<br>- 大小写英文字母(a-zA-Z);<br>- 数字(0-9);<br>- 空格、 <code>!</code> 、 <code>#</code> 、 <code>$</code> 、 <code>%</code> 、 <code>&</code> 、 <code>(</code> 、 <code>)</code> 、 <code>+</code> 、 <code>-</code> 、 <code>:</code> 、 <code>;</code> 、 <code><</code> 、 <code>=</code> 、 <code>.</code> 、 <code>></code> 、 <code>?</code> 、 <code>@</code> 、 <code>[</code> 、 <code>]</code> 、 <code>^</code> 、 <code>_</code> 、 <code>{</code> 、 <code>}</code> 、 <code>\\|</code> 、 <code>~</code> 、 <code>,</code> 。 |
902
902
  | userId | 【字段含义】用户标识,当前用户的 userId,相当于用户名,使用 UTF-8 编码。<br>【推荐取值】如果一个用户在您的账号系统中的 ID 为“mike”,则 userId 即可设置为“mike”。 |
903
903
 
904
904
  ## TRTCPublishCdnUrl
package/server-config.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { reportESClient } from './utils/report-es-client.js';
2
+ import { isValidSDKAppID } from './utils/is-valid-sdkappid.js';
3
+ import { getDeviceIdentifier } from './utils/get-device-identifier.js';
2
4
  class ServerConfig {
3
5
  static instance;
4
6
  config;
@@ -16,11 +18,12 @@ class ServerConfig {
16
18
  const { SDKAPPID, SECRETKEY } = process.env || {};
17
19
  if (SDKAPPID) {
18
20
  config.SDKAppID = SDKAPPID;
19
- reportESClient({
20
- SDKAppID: SDKAPPID,
21
- method: 'mcp_config'
22
- });
23
21
  }
22
+ const sdkappid = isValidSDKAppID(SDKAPPID) ? SDKAPPID : `${getDeviceIdentifier()}:zh`;
23
+ reportESClient({
24
+ SDKAppID: sdkappid,
25
+ method: 'mcp_config'
26
+ });
24
27
  if (SECRETKEY) {
25
28
  config.secretKey = SECRETKEY;
26
29
  }
package/server.js CHANGED
@@ -17,7 +17,7 @@ You are using Tencent RTC MCP Server for SDK documentation retrieval.
17
17
  - 推送 + IM 同时涉及 → 可传 ["push","chat"]
18
18
  - 无法从 prompt 唯一判断 product → 先向用户确认,不要无 product 硬搜,也不要 web_search
19
19
 
20
- **Framework**:返回 needs_framework 时 MUST 先 present_framework_choice;详见 search_trtc_knowledge 工具 description 决策表。
20
+ **Frameworks**:返回 needs_framework 时 MUST 先 present_framework_choice;详见 search_trtc_knowledge 工具 description 决策表。
21
21
  **When in doubt**:仍优先调用 search_trtc_knowledge(带最佳猜测 product);status=empty 或 low_confidence 时再澄清或重搜。
22
22
 
23
23
  **queryID 传递规则(硬规则,违反会导致 CLS 数据断裂)**:
@@ -36,7 +36,7 @@ Workflow:
36
36
  export function createServer() {
37
37
  const server = new McpServer({
38
38
  name: "Tencent RTC MCP Server",
39
- version: "1.6.1",
39
+ version: "1.6.5",
40
40
  }, {
41
41
  instructions: SERVER_INSTRUCTIONS,
42
42
  });
@@ -9,7 +9,7 @@ const registryFinalizeAnswerTool = (mcpServer) => {
9
9
  prompt: z.string().describe(parameter_descriptions.prompt),
10
10
  answer: z.string().describe(parameter_descriptions.answer),
11
11
  product: z.array(z.enum(['chat', 'call', 'live', 'room', 'push', 'rtcengine', 'native_trtc_sdk'])).min(1).max(4).optional().describe(parameter_descriptions.product),
12
- framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
12
+ framework: z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
13
13
  queryID: z.string().describe(parameter_descriptions.queryID),
14
14
  },
15
15
  }, (params) => {
@@ -7,7 +7,7 @@ const PRODUCT_OPTIONS_MAP = {
7
7
  },
8
8
  call: {
9
9
  title: 'Call 音视频通话支持的平台或框架',
10
- options: ['react', 'vue', 'flutter', 'android', 'ios', 'uni-app'],
10
+ options: ['web', 'miniprogram', 'react', 'vue', 'flutter', 'android', 'ios', 'uni-app'],
11
11
  },
12
12
  live: {
13
13
  title: 'Live 直播互动支持的平台或框架',
@@ -44,7 +44,7 @@ ${config.title}:
44
44
  ${options}
45
45
 
46
46
  请等待用户回复具体平台后(**硬规则,不可跳过**):
47
- - **咨询 / 查文档 / API / 组件 / feature** → MUST 调用 \`search_trtc_knowledge\`,传入 **product + framework**
47
+ - **咨询 / 查文档 / API / 组件 / feature** → MUST 调用 \`search_trtc_knowledge\`,传入 **product + frameworks**
48
48
  - **要写代码集成进项目** → MUST 调用对应的 \`get_*_integration\` 工具`;
49
49
  }
50
50
  const registryPresentFrameworkChoiceTool = (mcpServer) => {
@@ -10,7 +10,7 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
10
10
  inputSchema: {
11
11
  prompt: z.string().describe(parameter_descriptions.prompt),
12
12
  product: z.array(z.enum(['chat', 'call', 'live', 'room', 'push', 'rtcengine', 'native_trtc_sdk'])).min(1).max(4).optional().describe(parameter_descriptions.product),
13
- framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
13
+ frameworks: z.array(z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut'])).min(1).optional().describe(parameter_descriptions.frameworks),
14
14
  queryID: z.string().describe(parameter_descriptions.queryID),
15
15
  ide: z.string().describe(parameter_descriptions.ide),
16
16
  types: z.array(z.enum([
@@ -26,14 +26,14 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
26
26
  method: 'search_trtc_knowledge',
27
27
  queryID: qid,
28
28
  prompt: params.prompt,
29
- framework: params.framework ?? '',
29
+ framework: params.frameworks?.join(',') ?? '',
30
30
  product: params.product ? params.product.join(',') : '',
31
31
  ide: params.ide,
32
32
  });
33
33
  const response = searchKnowledge({
34
34
  prompt: params.prompt,
35
35
  product: params.product,
36
- framework: params.framework,
36
+ frameworks: params.frameworks,
37
37
  types: params.types,
38
38
  scenario: params.scenario,
39
39
  limit: params.limit,
@@ -7,7 +7,7 @@ const registrySubmitFeedbackTool = (mcpServer) => {
7
7
  description,
8
8
  inputSchema: {
9
9
  prompt: z.string().describe(parameter_descriptions.prompt),
10
- framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
10
+ framework: z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
11
11
  queryID: z.string().describe(parameter_descriptions.queryID),
12
12
  resolved: z.enum(['0', '1']).describe(parameter_descriptions.resolved),
13
13
  },
@@ -0,0 +1,60 @@
1
+ import { INTEGRATION_BOUNDARY_SUFFIX } from './integration-boundary.js';
2
+ const TOOL_DESCRIPTION = `
3
+ 用途:
4
+ 返回基于 TUILiveKit 预制 UI 组件的 Native 视频直播集成文档,供 AI 完成移动端(Android / iOS)视频直播的开箱即用界面接入与代码生成。覆盖直播列表页(观众入口)、主播开播页、观众观看页,均为含完整交互 UI 与业务逻辑的预制组件(如 AnchorPrepareView、直播列表瀑布流视图等)。
5
+
6
+ 典型适用问题(共用触发词,可能同时命中 'get_native_livekit_core_integration' Core 工具):
7
+ 集成 LiveKit, 接入 TUILiveKit, 视频直播, 直播开播, 主播开播, 观众观看, 直播列表, 开播页, 观看页, 直播间列表, Android, iOS
8
+ 命中以上共用触发词时,请**先主动追问用户**:"您希望使用默认直播界面快速集成(TUILiveKit preset),还是基于 Core SDK / AtomicXCore 自定义直播界面?" 用户选择"默认/preset"后再调用本工具;选择"自定义/Core"则调用 'get_native_livekit_core_integration'。
9
+
10
+ 典型适用问题(preset 专属触发词,仅命中本工具,无需追问,直接调用):
11
+ TUILiveKit, Native TUILiveKit, Native Live UIKit, preset, preset 集成, 预制 UI, 预制开播页, 预制观看页, 预制直播列表, 默认直播界面, 开箱即用直播界面, 现成的开播页面, 直播界面已经有了, TUILiveKit Android, TUILiveKit iOS, AnchorPrepareView
12
+
13
+ 输入:
14
+ - framework: android | ios
15
+ - goals: 功能模块列表(可多选,返回时按 直播列表→开播→观看 顺序组织)
16
+ - prompt: 用户的原始问题全文,保留完整上下文,不要压缩成关键词摘要
17
+
18
+ 返回:
19
+ - content: [{ type: 'text', text: 文档正文(含各平台通用的环境准备/依赖接入 + 所选功能页的集成步骤与代码)}]
20
+
21
+ 边界:
22
+ - 仅面向**视频直播(live)**场景。语聊房(voice / 语聊 / 音频房 / 麦位)**不在本工具范围**,如遇该需求请改用 'get_native_livekit_core_integration' 或告知用户暂不支持预制 UI
23
+ - framework 仅支持 android | ios(TUILiveKit 视频直播预制 UI 暂无 flutter / uni-app 端文档,如遇该需求请改用 'get_native_livekit_core_integration' 或告知用户暂不支持)
24
+ - 当用户未明确平台时,应先调用 'present_framework_choice'
25
+ - 当用户已明示「自定义 UI」「Core SDK」「AtomicXCore」「LiveCoreView」「自己画直播页面」等 Core 专属触发词时,直接调用 'get_native_livekit_core_integration',不要走本工具
26
+ - 面向主播开播 / 观众观看 / 直播列表整体页面集成,不负责连麦、PK、礼物、弹幕、美颜、音效等单功能扩展(这些请使用 'search_trtc_knowledge')
27
+ ${INTEGRATION_BOUNDARY_SUFFIX}
28
+ `;
29
+ const PARAMETER_DESCRIPTIONS = {
30
+ framework: '目标平台。参数名固定为 framework,禁止传 platform。可选值:android | ios。',
31
+ goals: '功能列表(可多选)。可选值:live_list(直播列表页,观众入口)| host_streaming(主播开播页)| audience_streaming(观众观看页)。做完整移动端直播 App 通常需要 live_list + host_streaming + audience_streaming。',
32
+ prompt: '用户的原始问题全文,保留完整上下文,不要压缩成关键词摘要。',
33
+ };
34
+ export const GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION = {
35
+ name: 'get_native_live_uikit_integration',
36
+ description: TOOL_DESCRIPTION,
37
+ parameter_descriptions: PARAMETER_DESCRIPTIONS,
38
+ };
39
+ // 展示给 AI 的返回文案(拼装标题/小节/缺失提示等)。
40
+ // 工具实现(get_native_live_uikit_integration.ts)在 zh/en 保持字节级一致,靠 sync-tools.js 自动同步;
41
+ // 这里的文案是唯一按 locale 维护的差异点,en 侧需要单独提供一份英文版 UI_TEXT。
42
+ export const GET_NATIVE_LIVE_UIKIT_INTEGRATION_UI_TEXT = {
43
+ goalTitles: {
44
+ live_list: '直播列表页(TUILiveKit 预制 UI)',
45
+ host_streaming: '主播开播页(TUILiveKit 预制 UI)',
46
+ audience_streaming: '观众观看页(TUILiveKit 预制 UI)',
47
+ },
48
+ headerTitle: '# TUILiveKit 视频直播(Native 预制 UI)集成指南',
49
+ platformLabel: '平台',
50
+ selectedFeaturesLabel: '已选功能',
51
+ labelSeparator: ':',
52
+ listSeparator: '、',
53
+ headerNotes: [
54
+ '下方先给出所有平台通用的环境准备与依赖接入步骤,再按功能给出各页面的集成代码。',
55
+ '请严格按文档中的类名、包名、import 路径生成代码,禁止臆造 API。',
56
+ ],
57
+ prepareSectionTitle: (framework) => `环境准备与代码集成(${framework} 前置步骤)`,
58
+ prepareSectionFallback: '## 环境准备与代码集成\n\n> 未找到该平台的准备工作文档。',
59
+ goalNotFound: (framework) => `未找到 ${framework} 平台该功能的集成文档,请确认 goal 与平台是否受支持,或改用 search_trtc_knowledge 查询。`,
60
+ };
@@ -22,7 +22,7 @@ Native LiveKit Core, AtomicXCore, 无 UI SDK, Core SDK, 视频直播, 语聊房,
22
22
  ${INTEGRATION_BOUNDARY_SUFFIX}
23
23
  `;
24
24
  const PARAMETER_DESCRIPTIONS = {
25
- scenario: '场景类型。可选值:live(视频直播)| voice(语聊房)。当需求是开播、观看、房间列表时使用 integration;当需求是连麦、PK、成员列表、美颜、音效、弹幕、礼物时应使用 features。',
25
+ scenario: '场景类型。可选值:live(视频直播)| voice(语聊房)。当需求是开播、观看、房间列表时使用 integration;当需求是连麦、PK、成员列表、美颜、音效、弹幕、礼物时请改用 search_trtc_knowledge 检索。',
26
26
  framework: '目标平台。参数名固定为 framework,禁止传 platform。可选值:android | ios | flutter | uni-app。',
27
27
  goals: '功能列表。可选值:host_streaming(主播/房主开播)| audience_streaming(观众/听众观看)| live_list(房间列表)。',
28
28
  prompt: '用户的原始问题全文,保留完整上下文,不要压缩成关键词摘要。',
@@ -3,7 +3,7 @@ const TOOL_DESCRIPTION = `
3
3
  当用户未明确平台或框架时,先引导用户从受支持选项中明确选择,再继续调用 \`search_trtc_knowledge\` 或对应的 integration 工具。
4
4
 
5
5
  典型适用问题:
6
- 平台选择, 框架选择, 先选平台, 先选框架, 未指定平台, 未指定框架, 获取集成指南, 获取接入文档, 快速开始, 查询 API, 查询组件, 查询功能点, 怎么设置, 怎么配置, Chat UIKit 集成, Call UIKit 集成, Live UIKit 集成, Room UIKit 集成, CallKit API, LiveKit API, WebRTC SDK 集成, Native TRTC SDK 集成, react, vue, uni-app, flutter, android, ios, webrtc
6
+ 平台选择, 框架选择, 先选平台, 先选框架, 未指定平台, 未指定框架, 获取集成指南, 获取接入文档, 快速开始, 查询 API, 查询组件, 查询功能点, 怎么设置, 怎么配置, Chat UIKit 集成, Call UIKit 集成, Live UIKit 集成, Room UIKit 集成, CallKit API, LiveKit API, WebRTC SDK 集成, Native TRTC SDK 集成, react, vue, web, miniprogram, 小程序, uni-app, flutter, android, ios, webrtc
7
7
 
8
8
  触发示例:
9
9
  - 获取 Chat UIKit 集成指南(未说明 React/Vue)
@@ -19,7 +19,7 @@ const TOOL_DESCRIPTION = `
19
19
 
20
20
  边界:
21
21
  - 只负责收集平台或框架选择,不返回文档正文
22
- - **咨询链路(硬规则)**:用户问 API/组件/feature/客户端排障/集成查阅,但未说明平台 → MUST **先本工具**,用户选定后再 \`search_trtc_knowledge\`(**product + framework**);**禁止**跳过
22
+ - **咨询链路(硬规则)**:用户问 API/组件/feature/客户端排障/集成查阅,但未说明平台 → MUST **先本工具**,用户选定后再 \`search_trtc_knowledge\`(**product + frameworks**);**禁止**跳过
23
23
  - **codegen 链路(硬规则)**:用户要集成进项目且未说明平台 → MUST **先本工具**,选定后再对应 \`get_*_integration\`
24
24
  - 跨平台通用问题(计费、服务端 REST、UserSig 原理)且与单一客户端无关 → 可直接 \`search_trtc_knowledge\`,不必经过本工具(**product 仍 MUST 从 prompt 提取**)
25
25
  `;
@@ -5,9 +5,9 @@ const TOOL_DESCRIPTION = `
5
5
  push:TIMPush/推送/厂商/FCM/华为/小米/OPPO(≠chat)| chat:会话/TUIKit/IM/主题 | call:CallKit | live:LiveKit | room:RoomKit/会议
6
6
  rtcengine:Web TRTC | native_trtc_sdk:TRTCCloud | 跨域:["push","chat"]
7
7
 
8
- **framework**(requires-framework.ts 顺序):
8
+ **frameworks**(requires-framework.ts 顺序):
9
9
  已传→检索 | needs_framework→present_framework_choice后重搜
10
- chat+错误码/ERR_→先问platform | native→MUST android/ios/c++ | rtcengine→隐式web
10
+ chat+错误码/ERR_→先问platform | native→MUST 包含 android/ios/c++ 之一 | rtcengine→隐式web
11
11
  push:厂商名≠平台(可不传);开通/接入/控制台/厂商配置可不传;含android/ios/flutter等→MUST
12
12
  计费/REST/Webhook/UserSig→可不传 | types仅server_api/webhook/product→可不传
13
13
  控制台/产品能力配置(多端登录/登录策略/消息存储时长/控制台设置)→types=["product"],勿用feature;误传feature时runtime按跨平台产品配置处理
@@ -19,12 +19,12 @@ types含api/component/feature/plugin/sdk/integration→MUST | API/组件/enterRo
19
19
 
20
20
  **L0/L1**:本地fragments仅基于片段答;chat/urls/须fetch官网URL,禁止臆造。
21
21
 
22
- **返回**:status、confidence、fragments(doc_urls)、meta.references/exact_hits、top_score/second_score、queryID、message。答案须引用 references/doc_urls。最终回复前 MUST 调用 finalize_answer;明确 follow-up 反馈后调用 submit_feedback。
22
+ **返回**:status、confidence、fragments(doc_urls)、meta.references/exact_hits、top_score/second_score、queryID、message、meta.answer_contract。答案须严格遵守 answer_contract(结论先行、用户可执行、未确认显式化);正文不展开证据链,且禁止输出“命中片段/检索结果/置信度”等系统话术,但末尾需保留“参考文档”并列出 references/doc_urls。最终回复前 MUST 调用 finalize_answer;明确 follow-up 反馈后调用 submit_feedback。
23
23
  `;
24
24
  const PARAMETER_DESCRIPTIONS = {
25
25
  prompt: '用户原始问题全文,保留完整上下文,不要压缩成关键词摘要。',
26
- product: '产品数组:chat|call|live|room|push|rtcengine|native_trtc_sdk。能推断 MUST 传;push优先(TIMPush/推送→push,禁止误归chat)。不能确定先问用户。',
27
- framework: '平台:react|vue|web|android|ios|flutter|c++|uni-app|harmonyos|react-native|unity|unreal-engine|donut。按description决策表;harmonyos/react-native/unity/unreal/donut仅push适用。',
26
+ product: '产品数组:chat|call|live|room|push|rtcengine|native_trtc_sdk。能推断 MUST 传;push优先(TIMPush/推送→push,禁止误归chat)。live 常见关键词:LiveKit/直播/语聊房/TUILiveKit/AtomicXCore/开播/观看。不能确定先问用户。',
27
+ frameworks: '平台数组:react|vue|web|miniprogram|android|ios|flutter|c++|uni-app|harmonyos|react-native|unity|unreal-engine|donut。支持传多个平台用于跨端检索;CallKit 中 TUICallKit 建议按 react/vue 区分检索,TUICallEngine/TUICallEvent 仍归 web;小程序用 miniprogram;harmonyos/react-native/unity/unreal/donut仅push适用。',
28
28
  types: '默认不传;开放["faq"]。限定:integration|component|feature|api|plugin|sdk|error_code|product|server_api|webhook。component 与 feature 等价(同时匹配);发现型/罗列型问题("有哪些组件")MUST 省略 types。控制台/计费/产品能力配置→product(非feature)。勿主动窄传。',
29
29
  scenario: 'live|voice,仅live产品。',
30
30
  queryID: '首次\'\',后续同一咨询MUST透传(见server)。',
package/tools/index.js CHANGED
@@ -14,6 +14,7 @@ import { registryGetNativeCallKitCoreIntegrationTool } from './call/get_native_c
14
14
  // live
15
15
  import { registryGetWebLiveUIKitIntegrationTool } from './live/get_web_live_uikit_integration.js';
16
16
  import { registryGetNativeLiveKitCoreIntegrationTool } from './live/get_native_livekit_core_integration.js';
17
+ import { registryGetNativeLiveUIKitIntegrationTool } from './live/get_native_live_uikit_integration.js';
17
18
  // room
18
19
  import { registryGetWebRoomUIKitIntegrationTool } from './room/get_web_room_uikit_integration.js';
19
20
  import { registryGetWebRoomCoreIntegrationTool } from './room/get_web_room_core_integration.js';
@@ -33,6 +34,7 @@ function registryTools(mcpServer) {
33
34
  // live
34
35
  registryGetWebLiveUIKitIntegrationTool(mcpServer);
35
36
  registryGetNativeLiveKitCoreIntegrationTool(mcpServer);
37
+ registryGetNativeLiveUIKitIntegrationTool(mcpServer);
36
38
  // room
37
39
  registryGetWebRoomUIKitIntegrationTool(mcpServer);
38
40
  registryGetWebRoomCoreIntegrationTool(mcpServer);
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ import { GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION, GET_NATIVE_LIVE_UIKIT_INTEGRATION_UI_TEXT as UI_TEXT, } from '../definitions/get_native_live_uikit_integration_def.js';
3
+ import { getIntegrationContent } from '../../utils/get-doc-content.js';
4
+ import { reportCLSClient } from '../../utils/report-cls-client.js';
5
+ // goal → 直播列表/开播/观看对应的 preset 文档文件名(均在 livekit/preset/live/{framework}/ 下)
6
+ // 展示文案(title)统一从 UI_TEXT.goalTitles 取,做到 zh/en 按 locale 差异化。
7
+ const GOAL_FILE = {
8
+ host_streaming: 'live-host-integration.md',
9
+ audience_streaming: 'live-audience-integration.md',
10
+ live_list: 'live-list-integration.md',
11
+ };
12
+ // 观众进直播间需要先有列表入口;固定的推荐阅读顺序,保证多 goal 时输出结构稳定
13
+ const GOAL_ORDER = ['live_list', 'host_streaming', 'audience_streaming'];
14
+ const DOC_NOT_FOUND = 'Not found relevant documents';
15
+ function getResultText(params) {
16
+ const { framework = '', goals = [], prompt = '' } = params;
17
+ // 去重 + 稳定排序,避免同一 goal 传多次导致重复正文
18
+ const uniqueGoals = GOAL_ORDER.filter((goal) => goals.includes(goal));
19
+ reportCLSClient({
20
+ method: 'get_native_live_uikit_integration',
21
+ prompt,
22
+ framework,
23
+ info: `live:${uniqueGoals.join(',')}`,
24
+ });
25
+ const prepareContent = getIntegrationContent(['livekit', 'preset', 'live', framework, 'prepare-integration.md']);
26
+ const sections = uniqueGoals.map((goal) => {
27
+ const title = UI_TEXT.goalTitles[goal];
28
+ const file = GOAL_FILE[goal];
29
+ const content = getIntegrationContent(['livekit', 'preset', 'live', framework, file]);
30
+ if (!content || content === DOC_NOT_FOUND) {
31
+ return `## ${title}\n\n> ${UI_TEXT.goalNotFound(framework)}`;
32
+ }
33
+ return `## ${title}\n\n${content}`;
34
+ });
35
+ const header = [
36
+ UI_TEXT.headerTitle,
37
+ `- ${UI_TEXT.platformLabel}${UI_TEXT.labelSeparator}${framework}`,
38
+ `- ${UI_TEXT.selectedFeaturesLabel}${UI_TEXT.labelSeparator}${uniqueGoals.map((g) => UI_TEXT.goalTitles[g]).join(UI_TEXT.listSeparator)}`,
39
+ ...UI_TEXT.headerNotes.map((note) => `- ${note}`),
40
+ ].join('\n');
41
+ const prepareSection = (!prepareContent || prepareContent === DOC_NOT_FOUND)
42
+ ? UI_TEXT.prepareSectionFallback
43
+ : `## ${UI_TEXT.prepareSectionTitle(framework)}\n\n${prepareContent}`;
44
+ return [header, prepareSection, '---', ...sections].join('\n\n');
45
+ }
46
+ const registryGetNativeLiveUIKitIntegrationTool = (mcpServer) => {
47
+ const { name, description, parameter_descriptions } = GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION;
48
+ mcpServer.registerTool(name, {
49
+ description,
50
+ inputSchema: {
51
+ framework: z.enum(['android', 'ios']).describe(parameter_descriptions.framework),
52
+ goals: z
53
+ .array(z.enum(['live_list', 'host_streaming', 'audience_streaming']))
54
+ .min(1)
55
+ .describe(parameter_descriptions.goals),
56
+ prompt: z.string().describe(parameter_descriptions.prompt),
57
+ },
58
+ }, (params) => {
59
+ return {
60
+ content: [
61
+ {
62
+ type: 'text',
63
+ text: getResultText(params),
64
+ },
65
+ ],
66
+ };
67
+ });
68
+ };
69
+ export { registryGetNativeLiveUIKitIntegrationTool };
@@ -5,15 +5,15 @@ import { reportCLSClient } from '../../utils/report-cls-client.js';
5
5
  function generatePathMap(scenario, framework) {
6
6
  if (scenario === 'live') {
7
7
  return {
8
- 'host_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'live-integration.md'],
9
- 'audience_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'live-integration.md'],
10
- 'live_list': ['livekit', 'core-sdk', 'live', `${framework}`, 'live-live-list.md']
8
+ 'host_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'integration.md'],
9
+ 'audience_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'integration.md'],
10
+ 'live_list': ['livekit', 'core-sdk', 'features', `${framework}`, 'live-list.md']
11
11
  };
12
12
  }
13
13
  return {
14
- 'host_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'voice-integration.md'],
15
- 'audience_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'voice-integration.md'],
16
- 'live_list': ['livekit', 'core-sdk', 'voice', `${framework}`, 'voice-room-list.md']
14
+ 'host_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'integration.md'],
15
+ 'audience_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'integration.md'],
16
+ 'live_list': ['livekit', 'core-sdk', 'features', `${framework}`, 'live-list.md']
17
17
  };
18
18
  }
19
19
  async function getResultText(params) {
@@ -0,0 +1,4 @@
1
+ function isValidSDKAppID(value) {
2
+ return !!value && /^\d+$/.test(value);
3
+ }
4
+ export { isValidSDKAppID };
@@ -32,7 +32,7 @@ function sendCLSReport(reportData) {
32
32
  const time = Date.now();
33
33
  const data = {
34
34
  platform: 'mcp',
35
- verison: '1.6.3',
35
+ verison: '1.6.5',
36
36
  sdkappid: `${SDKAppID}`,
37
37
  method: method,
38
38
  userid: queryID || userID,
@@ -7,7 +7,7 @@ function reportESClient(reportData) {
7
7
  report: [
8
8
  {
9
9
  platform: 'mcp',
10
- version: '1.6.3',
10
+ version: '1.6.5',
11
11
  sdkappid: `${SDKAppID}`,
12
12
  method: method,
13
13
  userID: `${userID}`,
@@ -1 +0,0 @@
1
- {"chat-setting":["chat-setting","chatsetting","chat_setting"],"contact-list":["contact-list","contactlist","contact_list"],"conversation-actions":["conversation-actions","conversationactions","conversation_actions"],"conversation-list":["conversation-list","conversationlist","conversation_list"],"conversation-preview":["conversation-preview","conversationpreview","conversation_preview"],"conversation-search":["conversation-search","conversationsearch","conversation_search"],"message-input":["message-input","messageinput","message_input"],"message-list":["message-list","messagelist","message_list"],"search":["search","search","search"],"theme":["theme","theme","theme"],"chat-header":["chat-header","chatheader","chat_header"]}
@@ -1 +0,0 @@
1
- {"knowledge/rtcengine/web/how_to_run_web_sdk_demo.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-10-basic-get-started-with-demo.md","knowledge/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-20-advanced-customized-capture-rendering.md","knowledge/rtcengine/web/plugin/21-advanced-auto-play-policy.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-21-advanced-auto-play-policy.md","knowledge/rtcengine/web/plugin/22-advanced-audio-mixer.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-22-advanced-audio-mixer.md","knowledge/rtcengine/web/plugin/23-advanced-support-detection.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-23-advanced-support-detection.md","knowledge/rtcengine/web/plugin/24-advanced-network-quality.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-24-advanced-network-quality.md","knowledge/rtcengine/web/plugin/25-advanced-device-change.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-25-advanced-device-change.md","knowledge/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-26-advanced-publish-cdn-stream.md","knowledge/rtcengine/web/plugin/27-advanced-small-stream.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-27-advanced-small-stream.md","knowledge/rtcengine/web/plugin/28-advanced-beauty.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-28-advanced-beauty.md","knowledge/rtcengine/web/plugin/29-advanced-water-mark.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-29-advanced-water-mark.md","knowledge/rtcengine/web/plugin/30-advanced-cross-room-link.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-30-advanced-cross-room-link.md","knowledge/rtcengine/web/plugin/31-advanced-plugins-overview.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-31-advanced-plugins-overview.md","knowledge/rtcengine/web/plugin/34-advanced-proxy.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-34-advanced-proxy.md","knowledge/rtcengine/web/plugin/35-advanced-ai-denoiser.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-35-advanced-ai-denoiser.md","knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-36-advanced-virtual-background.md","knowledge/rtcengine/web/plugin/37-advanced-voice-changer.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-37-advanced-voice-changer.md","knowledge/rtcengine/web/plugin/38-advanced-basic-beauty.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-38-advanced-basic-beauty.md","knowledge/rtcengine/web/plugin/39-advanced-video-decoder.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-39-advanced-video-decoder.md","knowledge/rtcengine/web/plugin/40-advanced-video-mixer.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-40-advanced-video-mixer.md","knowledge/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-41-advanced-small-stream-auto-switcher.md","knowledge/rtcengine/web/plugin/42-advanced-realtime-transcriber.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-42-advanced-realtime-transcriber.md","knowledge/rtcengine/web/plugin/43-advanced-face-detection.md":"https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-43-advanced-face-detection.md"}