@tencentcloud/sdk-mcp 1.6.8 → 1.7.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 (158) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +59 -35
  3. package/knowledge/build-index.js +28 -4
  4. package/knowledge/chunker.js +82 -14
  5. package/knowledge/chunking-policy.js +100 -0
  6. package/knowledge/doc-url-resolver.js +70 -19
  7. package/knowledge/frontmatter-meta.js +167 -0
  8. package/knowledge/path-meta.js +28 -6
  9. package/knowledge/search/exact-lookup.js +126 -125
  10. package/knowledge/search/filter-pool.js +12 -29
  11. package/knowledge/search/framework-fallback.js +22 -0
  12. package/knowledge/search/intent-router.js +29 -0
  13. package/knowledge/search/l1-enrich.js +159 -0
  14. package/knowledge/search/query-normalizer.js +63 -3
  15. package/knowledge/search/search-core.js +410 -0
  16. package/knowledge/search/search-knowledge.js +419 -377
  17. package/knowledge/search/search-message.js +88 -0
  18. package/knowledge/search/search-pass.js +428 -0
  19. package/knowledge/search/search-types.js +1 -0
  20. package/knowledge/search/url-row-idf.js +120 -0
  21. package/knowledge/search/url-row-scorer.js +337 -0
  22. package/package.json +3 -1
  23. package/resource/index/manifest.json +1 -1
  24. package/resource/integration/callkit/preset/flutter/integration.md +7 -3
  25. package/resource/integration/callkit/preset/ios/integration.md +1 -0
  26. package/resource/integration/chat/preset/android/integration.md +1 -0
  27. package/resource/integration/chat/preset/flutter/integration.md +111 -10
  28. package/resource/integration/chat/preset/ios/integration.md +1 -0
  29. package/resource/integration/chat/preset/react/integration.md +1 -0
  30. package/resource/integration/chat/preset/uni-app/integration.md +1 -0
  31. package/resource/integration/chat/preset/vue/integration.md +1 -0
  32. package/resource/integration/livekit/preset/live/android/prepare-integration.md +1 -0
  33. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +12 -10
  34. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +14 -14
  35. package/resource/integration/roomkit/preset/vue/integration.md +1 -0
  36. package/resource/knowledge/callkit/best-practice/callkit-miniprogram/uniapp-shrink.md +64 -0
  37. package/resource/knowledge/callkit/best-practice/common/call-autoplay-blocked.md +81 -0
  38. package/resource/knowledge/callkit/best-practice/common/call-message-in-chat.md +84 -0
  39. package/resource/knowledge/callkit/best-practice/common/call-vs-calls.md +114 -0
  40. package/resource/knowledge/callkit/best-practice/common/callengine-call-flow.md +128 -0
  41. package/resource/knowledge/callkit/best-practice/common/callengine-log-level.md +72 -0
  42. package/resource/knowledge/callkit/best-practice/common/callkit-get-engine-instance.md +87 -0
  43. package/resource/knowledge/callkit/best-practice/common/callkit-get-roomid.md +83 -0
  44. package/resource/knowledge/callkit/best-practice/common/callkit-limitations.md +37 -0
  45. package/resource/knowledge/callkit/best-practice/common/callkit-user-register-and-kicked.md +103 -0
  46. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +1 -0
  47. package/resource/knowledge/callkit/core-sdk/android/make-call.md +1 -0
  48. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1 -0
  49. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1 -0
  50. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1 -0
  51. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1 -0
  52. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +1 -1
  53. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +1 -0
  54. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1 -0
  55. package/resource/knowledge/callkit/faq/flutter.md +1 -0
  56. package/resource/knowledge/callkit/faq/uniapp-app.md +1 -0
  57. package/resource/knowledge/callkit/preset/react/api.md +1 -150
  58. package/resource/knowledge/callkit/preset/vue/api.md +1 -38
  59. package/resource/knowledge/chat/best-practice/common/avchatroom-message-loss-diagnosis.md +71 -0
  60. package/resource/knowledge/chat/best-practice/common/group-conversation-cleanup-on-system-notice.md +67 -0
  61. package/resource/knowledge/chat/best-practice/common/image-message-url-lifecycle.md +63 -0
  62. package/resource/knowledge/chat/best-practice/common/login-repeat-2025-diagnosis.md +65 -0
  63. package/resource/knowledge/chat/best-practice/common/message-read-report-and-receipt.md +72 -0
  64. package/resource/knowledge/chat/best-practice/common/message-receive-event.md +70 -0
  65. package/resource/knowledge/chat/best-practice/common/message-risk-error-and-render.md +69 -0
  66. package/resource/knowledge/chat/best-practice/common/message-unread-count.md +71 -0
  67. package/resource/knowledge/chat/best-practice/miniprogram/audio-message-send.md +118 -0
  68. package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +67 -0
  69. package/resource/knowledge/chat/best-practice/miniprogram/media-upload-fail-diagnosis.md +68 -0
  70. package/resource/knowledge/chat/best-practice/web/audio-message-send.md +123 -0
  71. package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -0
  72. package/resource/knowledge/chat/preset/android/features/language.md +1 -0
  73. package/resource/knowledge/chat/preset/android/features/message-input.md +1 -0
  74. package/resource/knowledge/chat/preset/android/features/message-list.md +1 -0
  75. package/resource/knowledge/chat/preset/android-view/integration.md +1 -0
  76. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +1 -0
  77. package/resource/knowledge/chat/preset/flutter/features/message-input.md +1 -0
  78. package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -0
  79. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -0
  80. package/resource/knowledge/chat/preset/ios/features/message-input.md +1 -0
  81. package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -0
  82. package/resource/knowledge/chat/preset/ios-uikit/integration.md +1 -0
  83. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -0
  84. package/resource/knowledge/chat/preset/react/features/message-input.md +61 -3
  85. package/resource/knowledge/chat/preset/react/features/message-list.md +7 -0
  86. package/resource/knowledge/chat/preset/vue/features/message-input.md +58 -5
  87. package/resource/knowledge/chat/preset/vue/features/message-list.md +7 -0
  88. package/resource/knowledge/chat/urls/product.md +8 -8
  89. package/resource/knowledge/chat/urls/restapi.md +3 -3
  90. package/resource/knowledge/chat/urls/sdk/android.md +5 -5
  91. package/resource/knowledge/chat/urls/sdk/flutter.md +5 -5
  92. package/resource/knowledge/chat/urls/sdk/ios.md +5 -5
  93. package/resource/knowledge/chat/urls/sdk/web.md +8 -8
  94. package/resource/knowledge/chat/urls/webhook.md +11 -17
  95. package/resource/knowledge/livekit/best-practice/android/voice-room-anchor-start.md +124 -0
  96. package/resource/knowledge/livekit/best-practice/common/admin-take-seat.md +73 -0
  97. package/resource/knowledge/livekit/best-practice/common/audience-leave-live.md +81 -0
  98. package/resource/knowledge/livekit/best-practice/common/voice-room-no-audio-troubleshoot.md +100 -0
  99. package/resource/knowledge/livekit/best-practice/common/voice-room-seat-list-change.md +65 -0
  100. package/resource/knowledge/livekit/best-practice/flutter/voice-room-anchor-start.md +126 -0
  101. package/resource/knowledge/livekit/best-practice/ios/voice-room-anchor-start.md +130 -0
  102. package/resource/knowledge/push/config/harmonyos.md +1 -1
  103. package/resource/knowledge/push/config/ios.md +2 -2
  104. package/resource/knowledge/push/config/react-native.md +1 -0
  105. package/resource/knowledge/push/config/unity.md +1 -0
  106. package/resource/knowledge/push/config/unreal-engine.md +1 -0
  107. package/resource/knowledge/push/integration/android.md +17 -16
  108. package/resource/knowledge/push/integration/donut.md +2 -2
  109. package/resource/knowledge/push/integration/flutter.md +4 -3
  110. package/resource/knowledge/push/integration/harmonyos.md +1 -1
  111. package/resource/knowledge/push/integration/ios.md +4 -3
  112. package/resource/knowledge/push/integration/react-native.md +1 -1
  113. package/resource/knowledge/push/integration/uni-app.md +1 -0
  114. package/resource/knowledge/push/integration/unity.md +4 -4
  115. package/resource/knowledge/push/integration/unreal-engine.md +37 -35
  116. package/resource/knowledge/roomkit/best-practice/common/room-ghost-member.md +75 -0
  117. package/resource/knowledge/roomkit/best-practice/common/room-limit-and-multi.md +88 -0
  118. package/resource/knowledge/roomkit/best-practice/common/room-screen-share-preview.md +87 -0
  119. package/resource/knowledge/roomkit/best-practice/common/room-status-after-all-leave.md +73 -0
  120. package/resource/knowledge/roomkit/best-practice/vue/room-uikit-vs-atomicx.md +115 -0
  121. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +1 -0
  122. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +1 -0
  123. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +1 -0
  124. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +1 -0
  125. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +1 -0
  126. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -0
  127. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +1 -0
  128. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +1 -0
  129. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +1 -0
  130. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +1 -0
  131. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -0
  132. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +1 -0
  133. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +1 -0
  134. package/resource/knowledge/roomkit/preset/react/integration.md +1 -0
  135. package/resource/knowledge/rtcengine/web/plugin/30-advanced-cross-room-link.md +2 -0
  136. package/resource/knowledge/rtcengine/web/plugin/39-advanced-video-decoder.md +2 -0
  137. package/resource/knowledge/trtc/android/TRTCCloud.md +1 -0
  138. package/resource/knowledge/trtc/c++/ITRTCCloud.md +1 -0
  139. package/resource/knowledge/trtc/ios/TRTCCloud.md +1 -0
  140. package/server.js +9 -4
  141. package/streamable-http.js +19 -54
  142. package/tools/common/search_trtc_knowledge.js +24 -12
  143. package/tools/definitions/finalize_answer_def.js +2 -2
  144. package/tools/definitions/integration-boundary.js +2 -1
  145. package/tools/definitions/search_trtc_knowledge_def.js +5 -3
  146. package/utils/fetch-doc-content.js +198 -0
  147. package/utils/preflight-route.js +197 -0
  148. package/utils/report-cls-client.js +1 -1
  149. package/utils/report-es-client.js +1 -1
  150. package/cursor-setting.png +0 -0
  151. package/mcp-server-prompt.png +0 -0
  152. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +0 -80
  153. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +0 -20
  154. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +0 -116
  155. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +0 -469
  156. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +0 -581
  157. package/resource/knowledge/callkit/preset/web/api.md +0 -79
  158. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +0 -16
@@ -1165,3 +1165,4 @@ end
1165
1165
  ##### 表情包的使用
1166
1166
 
1167
1167
  为了尊重版权,IM Demo/TUIKit 工程中默认不包含大表情元素切图。正式上线商用前请您替换为自己设计或拥有版权的其他表情包。下图所示默认的**小黄脸表情包版权归腾讯云所有**,可有偿授权使用,如需获得授权,您可以通过升级至 [IM 企业版套餐](https://buy.cloud.tencent.com/avc) 免费使用该表情包。
1168
+
@@ -91,3 +91,4 @@ const App = () => {
91
91
  ```
92
92
 
93
93
  `ConversationListPreview` 定制后效果如下:
94
+
@@ -13,7 +13,8 @@ MessageInput 是一个功能完整的消息输入组件,提供了文本编辑
13
13
  |className|string|undefined|根容器自定义 CSS 类名|
14
14
  |style|React.CSSProperties|undefined|根容器自定义内联样式|
15
15
  |attachmentPickerMode|'collapsed' \| 'expanded'|'collapsed'|附件选择器显示模式|
16
- |actions|MessageInputActions|['EmojiPicker', 'AttachmentPicker']|工具栏操作按钮配置|
16
+ |actions|MessageInputActions|['EmojiPicker', 'FilePicker']|工具栏操作按钮配置|
17
+ |setOfflinePushInfo|(payload: SendMessagePayload) => OfflinePushInfo \| undefined|undefined|发送消息时修改携带的离线推送参数|
17
18
  |slots|MessageInputSlots|undefined|插槽配置对象|
18
19
  |TextEditor|JSX.Element|undefined|自定义文本编辑器组件|
19
20
  |EmojiPicker|JSX.Element|undefined|自定义表情选择器组件|
@@ -73,8 +74,8 @@ attachmentPickerMode 用于设置附件选择器的显示模式,默认值为 `
73
74
  >
74
75
  > 默认的 AttachmentPicker 意为附件选择器,包括文件选择、图片选择和视频选择。
75
76
  >
76
- > 1. 当 attachmentPickerModel 为 "collapsed" 时,点击附件选择器会弹出一个 popup 菜单展示文件选择、图片选择、视频选择。
77
- > 2. 当 attachmentPickerModel 为 "expanded" 时,附件选择器会默认展开,平铺展示文件选择、图片选择、视频选择。
77
+ > 1. 当 attachmentPickerMode 为 "collapsed" 时,点击附件选择器会弹出一个 popup 菜单展示文件选择、图片选择、视频选择。
78
+ > 2. 当 attachmentPickerMode 为 "expanded" 时,附件选择器会默认展开,平铺展示文件选择、图片选择、视频选择。
78
79
 
79
80
  ### actions
80
81
 
@@ -186,6 +187,63 @@ function CustomerServiceChat() {
186
187
  }
187
188
  ```
188
189
 
190
+ ### setOfflinePushInfo
191
+
192
+ 参数类型:`(payload: SendMessagePayload) => OfflinePushInfo | undefined`
193
+
194
+ setOfflinePushInfo 用于在发送前根据当前的消息内容设置自定义的离线推送参数。
195
+ ``` typescript
196
+ type SendMessagePayload = {
197
+ type: 'textMessage';
198
+ text: string;
199
+ } | {
200
+ type: 'customMessage';
201
+ customData: string;
202
+ description?: string;
203
+ extensionInfo?: string;
204
+ } | {
205
+ type: 'imageMessage';
206
+ file: File | HTMLInputElement;
207
+ width?: number;
208
+ height?: number;
209
+ } | {
210
+ type: 'audioMessage';
211
+ file: File | HTMLInputElement;
212
+ duration: number;
213
+ } | {
214
+ type: 'videoMessage';
215
+ file: File | HTMLInputElement;
216
+ duration: number;
217
+ snapshotFile?: File | HTMLInputElement;
218
+ snapshotWidth?: number;
219
+ snapshotHeight?: number;
220
+ } | {
221
+ type: 'fileMessage';
222
+ file: File | HTMLInputElement;
223
+ } | {
224
+ type: 'locationMessage';
225
+ description: string;
226
+ longitude: number;
227
+ latitude: number;
228
+ } | {
229
+ type: 'faceMessage';
230
+ index: number;
231
+ data: string;
232
+ };
233
+
234
+ interface OfflinePushInfo {
235
+ title: string;
236
+ description: string;
237
+ extensionInfo: {
238
+ disablePush: boolean;
239
+ disableVoipPush: boolean;
240
+ extension: string;
241
+ androidInfo: Record<string, any>;
242
+ apnsInfo: Record<string, any>;
243
+ };
244
+ }
245
+ ```
246
+
189
247
  ### slots
190
248
 
191
249
  参数类型: `MessageInputSlots`
@@ -10,6 +10,7 @@ MessageList 是一个功能强大的聊天消息列表组件,提供了完整
10
10
  | messageActionList | IMessageAction[] | ['copy', 'recall', 'quote', 'forward', 'delete'] | 自定义消息操作列表,例如复制、撤回、删除等。 |
11
11
  | messageAggregationTime | number | 300 (5分钟) | 消息聚合时间间隔(秒),相同发送者在此时间内的连续消息会被聚合显示。 |
12
12
  | filter | (message: MessageInfo) => boolean | undefined | 消息过滤函数,用于控制哪些消息需要显示。 |
13
+ | showSelfAvatar | boolean | false | 自己发出的消息是否展示头像。 |
13
14
  | className | string | undefined | 自定义 CSS 类名。 |
14
15
  | style | React.CSSProperties | undefined | 自定义内联样式。 |
15
16
  | Message | React.ComponentType | Message | 自定义消息组件。 |
@@ -175,6 +176,12 @@ function ChatApp() {
175
176
  }
176
177
  ```
177
178
 
179
+ ### showSelfAvatar
180
+
181
+ 参数类型: `boolean`
182
+
183
+ 为了更好的利用屏幕效率,自己发送的消息默认不展示头像,默认值为 `false`。
184
+
178
185
  ### className
179
186
 
180
187
  参数类型: `string`
@@ -10,6 +10,7 @@ MessageInput 是一个功能完整的消息输入组件,专为 Vue3 应用设
10
10
  |disabled|boolean|false|是否禁用输入组件|
11
11
  |placeholder|string|''|输入框占位符文本|
12
12
  |actions|MessageInputActions|['EmojiPicker', 'ImagePicker', 'FilePicker', 'VideoPicker']|工具栏操作按钮配置|
13
+ |setOfflinePushInfo|(payload: SendMessagePayload) => OfflinePushInfo \| undefined|undefined|发送消息时修改携带的离线推送参数|
13
14
 
14
15
  ## Slots 配置
15
16
 
@@ -35,11 +36,6 @@ MessageInput 是一个功能完整的消息输入组件,专为 Vue3 应用设
35
36
 
36
37
  - 详细说明:disabled 用于设置是否禁用整个输入组件,包括文本输入和所有操作按钮,默认值为 `false`。
37
38
 
38
- ### hideSendButton
39
- - 类型:`boolean`
40
-
41
- - 详细说明:hideSendButton 用于设置是否隐藏发送按钮,适用于需要自定义发送触发方式的场景,默认值为 `false`。
42
-
43
39
  ### placeholder
44
40
  - 类型:`string`
45
41
 
@@ -357,6 +353,63 @@ const CustomEmojiPicker = defineComponent({
357
353
 
358
354
  示例效果:
359
355
 
356
+ ### setOfflinePushInfo
357
+
358
+ 参数类型:`(payload: SendMessagePayload) => OfflinePushInfo | undefined`
359
+
360
+ setOfflinePushInfo 用于在发送前根据当前的消息内容设置自定义的离线推送参数。
361
+ ``` typescript
362
+ type SendMessagePayload = {
363
+ type: 'textMessage';
364
+ text: string;
365
+ } | {
366
+ type: 'customMessage';
367
+ customData: string;
368
+ description?: string;
369
+ extensionInfo?: string;
370
+ } | {
371
+ type: 'imageMessage';
372
+ file: File | HTMLInputElement;
373
+ width?: number;
374
+ height?: number;
375
+ } | {
376
+ type: 'audioMessage';
377
+ file: File | HTMLInputElement;
378
+ duration: number;
379
+ } | {
380
+ type: 'videoMessage';
381
+ file: File | HTMLInputElement;
382
+ duration: number;
383
+ snapshotFile?: File | HTMLInputElement;
384
+ snapshotWidth?: number;
385
+ snapshotHeight?: number;
386
+ } | {
387
+ type: 'fileMessage';
388
+ file: File | HTMLInputElement;
389
+ } | {
390
+ type: 'locationMessage';
391
+ description: string;
392
+ longitude: number;
393
+ latitude: number;
394
+ } | {
395
+ type: 'faceMessage';
396
+ index: number;
397
+ data: string;
398
+ };
399
+
400
+ interface OfflinePushInfo {
401
+ title: string;
402
+ description: string;
403
+ extensionInfo: {
404
+ disablePush: boolean;
405
+ disableVoipPush: boolean;
406
+ extension: string;
407
+ androidInfo: Record<string, any>;
408
+ apnsInfo: Record<string, any>;
409
+ };
410
+ }
411
+ ```
412
+
360
413
  ## Slots 详解
361
414
  - 类型:`MessageInputSlots`
362
415
 
@@ -50,6 +50,7 @@ import { UIKitProvider, Chat, MessageList, MessageInput } from '@tencentcloud/ch
50
50
  |messageActionList|MessageAction[]|undefined|自定义消息操作列表,例如撤回、删除等。|
51
51
  |messageAggregationTime|number|300 (秒)|消息聚合的时间间隔(秒),在此时间内发送的同一发送者的消息会被聚合。设置为 0 可禁用消息聚合。|
52
52
  |filter|(message: MessageInfo) => boolean|undefined|自定义消息过滤函数,用于控制哪些消息应该显示。|
53
+ |showSelfAvatar|boolean|false|自己发出的消息是否展示头像。|
53
54
  |enableReadReceipt|boolean|false|是否启用消息已读回执功能。|
54
55
  |Message|Component|undefined|自定义消息组件,用于渲染单条消息。|
55
56
  |MessageTimeDivider|Component|undefined|自定义消息时间分割线组件。|
@@ -228,6 +229,12 @@ const customMessageFilter = (message: MessageInfo): boolean => {
228
229
  </script>
229
230
  ```
230
231
 
232
+ ### showSelfAvatar
233
+
234
+ 参数类型: `boolean`
235
+
236
+ 为了更好的利用屏幕效率,自己发送的消息默认不展示头像,默认值为 `false`。
237
+
231
238
  ### Message
232
239
  - 类型:Component | undefined
233
240
 
@@ -24,18 +24,18 @@
24
24
  | 单聊消息权限控制与配置 | `https://cloud.tencent.com/document/product/269/3662` |
25
25
  | 群组消息管理(App 管理员发送消息/群消息发送控制/消息优先级与频率控制
26
26
  ) | `https://cloud.tencent.com/document/product/269/3663` |
27
- | 不同类型群组基础能力操作差异 | `https://cloud.tencent.com/document/product/269/1502` |
28
- | 不同类型群组加群方式差异 | `https://cloud.tencent.com/document/product/269/1502` |
29
- | 不同类型群组成员管理能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
30
- | 不同类型群组群组限制差异 | `https://cloud.tencent.com/document/product/269/1502` |
31
- | 不同类型群组消息能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
27
+ | 群组基础能力操作差异 | `https://cloud.tencent.com/document/product/269/1502` |
28
+ | 群组加群方式差异 | `https://cloud.tencent.com/document/product/269/1502` |
29
+ | 群组成员管理能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
30
+ | 群组限制差异 | `https://cloud.tencent.com/document/product/269/1502` |
31
+ | 群组消息能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
32
32
  | 群组/群成员/群消息导入 | `https://cloud.tencent.com/document/product/269/1502` |
33
33
  | 群组自动回收能力 | `https://cloud.tencent.com/document/product/269/1502` |
34
34
  | 自定义群组ID(话题 ID) | `https://cloud.tencent.com/document/product/269/1502` |
35
35
  | 群组自定义字段 | `https://cloud.tencent.com/document/product/269/1502` |
36
36
  | 云端审核能力介绍 | `https://cloud.tencent.com/document/product/269/83795` |
37
37
 
38
- ### 使用限制
38
+ ## 使用限制
39
39
 
40
40
  | 子问题 | 目标文档 |
41
41
  |--------|---------|
@@ -46,7 +46,7 @@
46
46
  | 关系链管理限制(添加与删除好友限制/好友分组限制/黑名单限制/批量好友接口上限等) | `https://cloud.tencent.com/document/product/269/32429` |
47
47
  | 群组管理限制(群主转让/群成员禁言/群封禁人数限制/群计数器限制/群自定义字段数等) | `https://cloud.tencent.com/document/product/269/32429` |
48
48
 
49
- ## 出海解决方案
49
+ ## 海外解决方案
50
50
 
51
51
  | 子问题 | 目标文档 |
52
52
  |--------|---------|
@@ -54,7 +54,7 @@
54
54
  | 海外节点全球加速 | `https://cloud.tencent.com/document/product/269/86463` |
55
55
  | 海外数据安全合规 | `https://cloud.tencent.com/document/product/269/86464` |
56
56
 
57
- ## 场景解决方案
57
+ ## 内网代理实现方案
58
58
 
59
59
  | 子问题 | 目标文档 |
60
60
  |--------|---------|
@@ -1,10 +1,10 @@
1
1
  # 服务端 REST API — 官方文档 URL 映射
2
2
 
3
- ### 通用技术
3
+ ## 通用技术
4
4
 
5
5
  | 子问题 | 目标文档 |
6
6
  |--------|---------|
7
- | UserSig 生成方法(登录鉴权) | `https://cloud.tencent.com/document/product/269/32688` |
7
+ | UserSig 生成方法 | `https://cloud.tencent.com/document/product/269/32688` |
8
8
  | 服务端消息格式 | `https://cloud.tencent.com/document/product/269/2720` |
9
9
 
10
10
  ## 消息相关 REST API
@@ -19,8 +19,8 @@
19
19
  | 发送 C2C 流式消息 | `https://cloud.tencent.com/document/product/269/128596` |
20
20
  | 发送群流式消息 | `https://cloud.tencent.com/document/product/269/128597` |
21
21
  | 直播群广播消息 | `https://cloud.tencent.com/document/product/269/77402` |
22
- | 导入群消息 | `https://cloud.tencent.com/document/product/269/1635` |
23
22
  | 导入单聊消息 | `https://cloud.tencent.com/document/product/269/2568` |
23
+ | 导入群消息 | `https://cloud.tencent.com/document/product/269/1635` |
24
24
  | 公众号用户发送广播消息 | `https://cloud.tencent.com/document/product/269/102298` |
25
25
 
26
26
  ### 历史消息
@@ -1,20 +1,20 @@
1
1
  # Android — SDK 官方文档 URL 映射
2
2
 
3
- ## A — SDK 集成和初始化(Android)
3
+ ## SDK 集成和初始化(Android)
4
4
 
5
5
  | 子问题 | 目标文档 |
6
6
  |--------|---------|
7
7
  | Android SDK 集成 | `https://cloud.tencent.com/document/product/269/75283` |
8
8
  | Android SDK 初始化 | `https://cloud.tencent.com/document/product/269/75291` |
9
9
 
10
- ## B — 登录
10
+ ## 登录与鉴权
11
11
 
12
12
  | 子问题 | 目标文档 |
13
13
  |--------|---------|
14
- | 登录(`login` API) | `https://cloud.tencent.com/document/product/269/75294` |
15
- | 登出(`logout` API) | `https://cloud.tencent.com/document/product/269/75294` |
14
+ | 登录(`login`) | `https://cloud.tencent.com/document/product/269/75294` |
15
+ | 登出(`logout`) | `https://cloud.tencent.com/document/product/269/75294` |
16
16
 
17
- ## C — SDK API 使用
17
+ ## SDK API 使用
18
18
 
19
19
  | 子问题 | 目标文档 |
20
20
  |--------|---------|
@@ -1,20 +1,20 @@
1
1
  # Flutter — SDK 官方文档 URL 映射
2
2
 
3
- ## A — SDK 集成和初始化(Flutter)
3
+ ## SDK 集成和初始化(Flutter)
4
4
 
5
5
  | 子问题 | 目标文档 |
6
6
  |--------|---------|
7
7
  | Flutter SDK 集成 | `https://cloud.tencent.com/document/product/269/75286` |
8
8
  | Flutter SDK 初始化 | `https://cloud.tencent.com/document/product/269/75293` |
9
9
 
10
- ## B — 多端登录配置与 UserSig 鉴权
10
+ ## 登录与鉴权
11
11
 
12
12
  | 子问题 | 目标文档 |
13
13
  |--------|---------|
14
- | 登录(`login` API) | `https://cloud.tencent.com/document/product/269/75296` |
15
- | 登出(`logout` API) | `https://cloud.tencent.com/document/product/269/75296` |
14
+ | 登录(`login`) | `https://cloud.tencent.com/document/product/269/75296` |
15
+ | 登出(`logout`) | `https://cloud.tencent.com/document/product/269/75296` |
16
16
 
17
- ## C — SDK API 使用
17
+ ## SDK API 使用
18
18
 
19
19
  | 子问题 | 目标文档 |
20
20
  |--------|---------|
@@ -1,20 +1,20 @@
1
1
  # iOS — SDK 官方文档 URL 映射
2
2
 
3
- ## A — SDK 集成和初始化(iOS)
3
+ ## SDK 集成和初始化(iOS)
4
4
 
5
5
  | 子问题 | 目标文档 |
6
6
  |--------|---------|
7
7
  | iOS SDK 集成 | `https://cloud.tencent.com/document/product/269/75284` |
8
8
  | iOS SDK 初始化 | `https://cloud.tencent.com/document/product/269/75291` |
9
9
 
10
- ## B — 登录
10
+ ## 登录与鉴权
11
11
 
12
12
  | 子问题 | 目标文档 |
13
13
  |--------|---------|
14
- | 登录(`login` API) | `https://cloud.tencent.com/document/product/269/75294` |
15
- | 登出(`logout` API) | `https://cloud.tencent.com/document/product/269/75294` |
14
+ | 登录(`login`) | `https://cloud.tencent.com/document/product/269/75294` |
15
+ | 登出(`logout`) | `https://cloud.tencent.com/document/product/269/75294` |
16
16
 
17
- ## C — SDK API 使用
17
+ ## SDK API 使用
18
18
 
19
19
  | 子问题 | 目标文档 |
20
20
  |--------|---------|
@@ -1,29 +1,29 @@
1
1
  # Web — SDK 官方文档 URL 映射
2
2
 
3
- ## A — SDK 集成和初始化(Web & 小程序)
3
+ ## SDK 集成和初始化(Web & 小程序)
4
4
 
5
5
  | 子问题 | 目标文档 |
6
6
  |--------|---------|
7
7
  | Web 端集成和初始化(V4) | `https://cloud.tencent.com/document/product/269/75285` |
8
8
  | 小程序端集成和初始化(V4) | `https://cloud.tencent.com/document/product/269/117335` |
9
9
 
10
- ## B — 登录
10
+ ## 登录与鉴权
11
11
 
12
12
  | 子问题 | 目标文档 |
13
13
  |--------|---------|
14
- | 登录(`login` API) | `https://cloud.tencent.com/document/product/269/75295` |
15
- | 登出(`logout` API) | `https://cloud.tencent.com/document/product/269/75295` |
14
+ | 登录(`login`) | `https://cloud.tencent.com/document/product/269/75295` |
15
+ | 登出(`logout`) | `https://cloud.tencent.com/document/product/269/75295` |
16
16
 
17
- ## C — SDK API 使用
17
+ ## SDK API 使用
18
18
 
19
19
  | 子问题 | 目标文档 |
20
20
  |--------|---------|
21
21
  | SDK 消息类型介绍 | `https://cloud.tencent.com/document/product/269/75314` |
22
- | IM 消息 Payload 结构(Message payload) | `https://web.sdk.qcloud.com/im/doc/v3/zh-cn/Message.html` |
22
+ | 消息结构与 Payload 字段(Message payload) | `https://web.sdk.qcloud.com/im/doc/v3/zh-cn/Message.html` |
23
23
  | 文本消息(createTextMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
24
24
  | 群 @ 消息(createTextAtMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
25
25
  | 图片消息(createImageMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
26
- | 语音消息(createVoiceMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
26
+ | 语音消息(createAudioMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
27
27
  | 视频消息(createVideoMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
28
28
  | 文件消息(createFileMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
29
29
  | 自定义消息(createCustomMessage → sendMessage) | `https://cloud.tencent.com/document/product/269/75316` |
@@ -76,7 +76,7 @@
76
76
  | 云端搜索群组(searchGroups) | `https://cloud.tencent.com/document/product/269/114760` |
77
77
  | 云端搜索群成员(searchGroupMembers) | `https://cloud.tencent.com/document/product/269/114763` |
78
78
 
79
- ## D — 版本升级指南
79
+ ## 版本升级指南
80
80
 
81
81
  | 子问题 | 目标文档 |
82
82
  |--------|---------|
@@ -1,49 +1,43 @@
1
1
  # 服务端回调(Webhook)— 官方文档 URL 映射
2
2
 
3
- ## 回调概览
4
-
5
- | 子问题 | 目标文档 |
6
- |--------|---------|
7
- | 第三方回调概览 / 配置方法 / 规范 | `https://cloud.tencent.com/document/product/269/1522` |
8
-
9
- ## 在线状态相关回调
3
+ ## 在线状态回调
10
4
 
11
5
  | 子问题 | 目标文档 |
12
6
  |--------|---------|
13
7
  | 用户状态变更回调 | `https://cloud.tencent.com/document/product/269/2570` |
14
8
  | 更新用户资料后回调 | `https://cloud.tencent.com/document/product/269/76489` |
15
9
 
16
- ## 资料关系链相关回调
10
+ ## 资料关系链回调
17
11
 
18
12
  | 子问题 | 目标文档 |
19
13
  |--------|---------|
20
14
  | 添加好友之前回调 | `https://cloud.tencent.com/document/product/269/61698` |
21
- | 添加好友回应之前回调 | `https://cloud.tencent.com/document/product/269/61699` |
15
+ | 添加好友请求回应之前回调 | `https://cloud.tencent.com/document/product/269/61699` |
22
16
  | 添加好友之后回调 | `https://cloud.tencent.com/document/product/269/1657` |
23
17
  | 删除好友之后回调 | `https://cloud.tencent.com/document/product/269/1659` |
24
18
  | 添加黑名单之后回调 | `https://cloud.tencent.com/document/product/269/1660` |
25
19
  | 删除黑名单之后回调 | `https://cloud.tencent.com/document/product/269/1661` |
26
20
 
27
- ## 关注与粉丝相关回调
21
+ ## 关注与粉丝回调
28
22
 
29
23
  | 子问题 | 目标文档 |
30
24
  |--------|---------|
31
25
  | 关注用户之后回调 | `https://cloud.tencent.com/document/product/269/118915` |
32
26
  | 取关用户之后回调 | `https://cloud.tencent.com/document/product/269/118916` |
33
27
 
34
- ## 单聊消息相关回调
28
+ ## 单聊消息回调
35
29
 
36
30
  | 子问题 | 目标文档 |
37
31
  |--------|---------|
38
32
  | 设置单聊消息扩展回调 | `https://cloud.tencent.com/document/product/269/126475` |
39
- | 发单聊消息之前回调 | `https://cloud.tencent.com/document/product/269/1632` |
40
- | 发单聊消息之后回调 | `https://cloud.tencent.com/document/product/269/2716` |
33
+ | 单聊消息发送之前回调 | `https://cloud.tencent.com/document/product/269/1632` |
34
+ | 单聊消息发送之后回调 | `https://cloud.tencent.com/document/product/269/2716` |
41
35
  | 单聊消息已读上报后回调 | `https://cloud.tencent.com/document/product/269/61696` |
42
36
  | 单聊消息撤回后回调 | `https://cloud.tencent.com/document/product/269/61697` |
43
37
  | 单聊单条消息已读回执之后回调 | `https://cloud.tencent.com/document/product/269/128223` |
44
38
  | 单聊消息编辑之后回调 | `https://cloud.tencent.com/document/product/269/128224` |
45
39
 
46
- ## 群组系统相关回调
40
+ ## 群组系统回调
47
41
 
48
42
  | 子问题 | 目标文档 |
49
43
  |--------|---------|
@@ -54,14 +48,14 @@
54
48
  | 拉人入群之前回调 | `https://cloud.tencent.com/document/product/269/1666` |
55
49
  | 新成员入群之后回调 | `https://cloud.tencent.com/document/product/269/1667` |
56
50
  | 群成员离开之后回调 | `https://cloud.tencent.com/document/product/269/1668` |
57
- | 群内发言之前回调 | `https://cloud.tencent.com/document/product/269/1619` |
58
- | 群内发言之后回调 | `https://cloud.tencent.com/document/product/269/2661` |
51
+ | 群消息发送之前回调 | `https://cloud.tencent.com/document/product/269/1619` |
52
+ | 群消息发送之后回调 | `https://cloud.tencent.com/document/product/269/2661` |
59
53
  | 群组满员之后回调 | `https://cloud.tencent.com/document/product/269/1669` |
60
54
  | 群组解散之后回调 | `https://cloud.tencent.com/document/product/269/1670` |
61
55
  | 群组资料变动之后回调 | `https://cloud.tencent.com/document/product/269/2930` |
62
56
  | 撤回群消息之后回调 | `https://cloud.tencent.com/document/product/269/73141` |
63
57
  | 直播群成员在线状态回调 | `https://cloud.tencent.com/document/product/269/76156` |
64
- | 发送群聊消息异常回调 | `https://cloud.tencent.com/document/product/269/78619` |
58
+ | 群消息发送异常回调 | `https://cloud.tencent.com/document/product/269/78619` |
65
59
  | 创建话题之前回调 | `https://cloud.tencent.com/document/product/269/78206` |
66
60
  | 创建话题之后回调 | `https://cloud.tencent.com/document/product/269/78207` |
67
61
  | 解散话题之后回调 | `https://cloud.tencent.com/document/product/269/78208` |
@@ -0,0 +1,124 @@
1
+ ---
2
+ title: 语聊房房主创建房间并开播推流(Android)
3
+ product: live
4
+ frameworks: [android]
5
+ scope: platform_specific
6
+ tags: [语聊房, 房主, 开播, 推流, createLive, openLocalMicrophone, muteMicrophone, unmuteMicrophone, LiveListStore, AudioSalon, keepOwnerOnSeat, seatMode, TakeSeatMode, Android]
7
+ version_range: ">=2.0.0"
8
+ ---
9
+
10
+ # 语聊房房主创建房间并开播推流(Android)
11
+
12
+ ## 1. 核心结论
13
+
14
+ - 语聊房开播流程:构造 `LiveInfo`(含 `liveID`、`seatTemplate`、`keepOwnerOnSeat`、`seatMode`),调用 `createLive` 创建房间;成功后调用 `openLocalMicrophone` 采集音频并发布推流,房间内用户即可听到主播声音。
15
+ - `liveID` 必填,直播间的唯一标识符。
16
+ - `keepOwnerOnSeat` 设为 `true` 时主播进房后自动上麦(上麦是推流的前提,只有上麦的用户才能在房间内推音频流)。
17
+ - `seatTemplate` 设为语聊房模板 `SeatLayoutTemplate.AudioSalon(n)`,n 为套餐支持的最大麦位数或小于该值的麦位数。
18
+ - `seatMode` 设置上麦模式(如 `TakeSeatMode.APPLY` 申请上麦)。
19
+ - `muteMicrophone` 暂停发布本机音频流;`unmuteMicrophone` 恢复发布本机音频流。
20
+
21
+ ## 2. 字段语义对照
22
+
23
+ | 字段/能力 | 作用 | 说明 |
24
+ |---|---|---|
25
+ | `LiveInfo` | 房间信息 | 包含 `liveID`、`liveName`、`seatTemplate`、`keepOwnerOnSeat`、`seatMode` 等参数 |
26
+ | `liveID` | 房间 ID | `createLive` 必填参数 |
27
+ | `liveName` | 房间名称 | 创建房间的展示名称 |
28
+ | `seatTemplate` | 麦位布局模板 | 语聊房使用 `SeatLayoutTemplate.AudioSalon(seatCount = n)`,n ≤ 套餐最大麦位数 |
29
+ | `keepOwnerOnSeat` | 房主自动上麦 | 设为 `true`,主播进房后自动上麦 |
30
+ | `seatMode` | 上麦模式 | 如 `TakeSeatMode.APPLY` 申请上麦 |
31
+ | `createLive(liveInfo, callback)` | 创建房间(开播) | 传入 `LiveInfo` 和 `LiveInfoCompletionHandler` 回调 |
32
+ | `openLocalMicrophone` | 采集音频并发布 | 打开本地麦克风,发布音频流到房间 |
33
+ | `muteMicrophone` | 暂停发布音频 | 已打开麦克风时,暂停发布本地音频流 |
34
+ | `unmuteMicrophone` | 恢复发布音频 | 已打开麦克风时,恢复发布本地音频流 |
35
+
36
+ ## 3. 机制/时序
37
+
38
+ 构造 `LiveInfo`(`liveID` 必填,`seatTemplate=AudioSalon(n)`,`keepOwnerOnSeat=true`,`seatMode` 按需设置) -> 调用 `createLive` 创建房间 -> `onSuccess` 回调触发,房主默认自动上麦 -> 调用 `openLocalMicrophone` 采集并发布音频 -> 房间内用户听到主播声音。
39
+
40
+ 上麦是推流的前提:`keepOwnerOnSeat=true` 保证房主上麦后才能推音频流。`muteMicrophone` / `unmuteMicrophone` 用于推流过程中的暂停/恢复。
41
+
42
+ ## 4. 标准用法
43
+
44
+ 1. 构造 `LiveInfo`:设置 `liveID`、`seatTemplate`、`keepOwnerOnSeat`、`seatMode`。
45
+ 2. 实现 `LiveInfoCompletionHandler`,调用 `createLive` 发起开播。
46
+ 3. `onSuccess` 回调后,调用 `openLocalMicrophone` 采集音频并发布推流。
47
+ 4. 需要暂停/恢复推流时调用 `muteMicrophone` / `unmuteMicrophone`。
48
+
49
+ ```kotlin
50
+ import android.util.Log
51
+ import androidx.appcompat.app.AppCompatActivity
52
+ import io.trtc.tuikit.atomicxcore.api.live.LiveInfo
53
+ import io.trtc.tuikit.atomicxcore.api.live.LiveInfoCompletionHandler
54
+ import io.trtc.tuikit.atomicxcore.api.live.TakeSeatMode
55
+
56
+ class YourAnchorActivity : AppCompatActivity() {
57
+ // ... 其他代码 ...
58
+
59
+ private fun startLive() {
60
+ val liveInfo = LiveInfo().apply {
61
+ // 1. 设置房间基础信息
62
+ liveID = this@YourAnchorActivity.liveID
63
+ liveName = "test 语聊房"
64
+
65
+ // 2. 设置语聊房麦位模板,seatCount 传入所需麦位数(≤ 套餐最大麦位数)
66
+ seatTemplate = SeatLayoutTemplate.AudioSalon(seatCount = 9)
67
+
68
+ // 3. 主播开播后自动上麦(上麦后才能推音频流)
69
+ keepOwnerOnSeat = true
70
+
71
+ // 4. 设置上麦模式(例如申请上麦)
72
+ seatMode = TakeSeatMode.APPLY
73
+ }
74
+
75
+ // 5. 调用 createLive 创建房间(开播)
76
+ liveListStore.createLive(liveInfo, object : LiveInfoCompletionHandler {
77
+ override fun onFailure(code: Int, desc: String) {
78
+ Log.e("Live", "Response startLive onError: $desc")
79
+ }
80
+
81
+ override fun onSuccess(liveInfo: LiveInfo) {
82
+ Log.d("Live", "Response startLive onSuccess")
83
+ // 6. 房主创建成功后默认自动上麦,此时调用 openLocalMicrophone 采集并发布音频
84
+ liveSeatStore.openLocalMicrophone(null)
85
+ }
86
+ })
87
+ }
88
+ }
89
+ ```
90
+
91
+ ## 5. 结果判定
92
+
93
+ - `onSuccess` 回调触发:房间创建成功,房主默认自动上麦。
94
+ - `openLocalMicrophone` 后:房间内用户能听到主播声音。
95
+ - `muteMicrophone` 后:本机音频暂停发布;`unmuteMicrophone` 后恢复。
96
+ - `keepOwnerOnSeat` 未设 `true`:主播未自动上麦,无法推流。
97
+ - `onFailure(code, desc)` 回调触发:开播失败,`code` 为错误码,`desc` 为错误描述。
98
+
99
+ ## 6. 常见误区
100
+
101
+ - 误区 1:跳过 `createLive` 直接调用 `openLocalMicrophone`(未创建房间无法推流)。
102
+ - 误区 2:`keepOwnerOnSeat` 未设 `true`,主播未上麦,推流不生效。
103
+ - 误区 3:`seatTemplate` 未设置或 `seatCount` 超过套餐最大麦位数。
104
+ - 误区 4:混淆 `muteMicrophone`(暂停发布音频流)与关闭麦克风(停止采集)。
105
+ - 误区 5:`liveID` 重复使用(必须全局唯一,否则创建失败)。
106
+ - 误区 6:混淆 `onSuccess` 和 `onFailure` 回调(两个分支都需防御性处理)。
107
+
108
+ ## 7. 问题定义(检索辅助,极简)
109
+
110
+ Android 语聊房房主需要按正确顺序创建房间并开播推流,了解 `createLive`、`openLocalMicrophone`、`muteMicrophone`、`unmuteMicrophone` 的调用时机与参数含义。
111
+
112
+ ## 8. 同义问法覆盖(检索召回,极简)
113
+
114
+ - Android 语聊房房主怎么开播?
115
+ - Android `createLive` 和 `openLocalMicrophone` 的调用顺序是什么?
116
+ - Android 主播怎么上麦推流?
117
+ - `keepOwnerOnSeat` 参数有什么作用?
118
+ - `seatTemplate` 怎么设置语聊房 `AudioSalon` 模板?
119
+ - Android `muteMicrophone` 和 `unmuteMicrophone` 区别是什么?
120
+ - 语聊房创建房间后如何推音频流?
121
+
122
+ ## 9. 参考来源(可选)
123
+
124
+ - LiveKit Android 文档:`https://cloud.tencent.com/document/product/647/124968`