@tencentcloud/sdk-mcp 1.7.3 → 1.7.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 (135) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +22 -23
  3. package/knowledge/path-meta.js +23 -1
  4. package/package.json +1 -1
  5. package/resource/index/manifest.json +1 -1
  6. package/resource/integration/callkit/preset/android/integration.md +4 -0
  7. package/resource/integration/callkit/preset/flutter/integration.md +8 -4
  8. package/resource/integration/callkit/preset/ios/integration.md +16 -15
  9. package/resource/integration/callkit/preset/react/integration.md +2 -2
  10. package/resource/integration/callkit/preset/vue/integration.md +9 -12
  11. package/resource/integration/chat/preset/android/integration.md +5 -147
  12. package/resource/integration/chat/preset/flutter/integration.md +22 -130
  13. package/resource/integration/chat/preset/ios/integration.md +12 -279
  14. package/resource/integration/chat/preset/react/integration.md +27 -1
  15. package/resource/integration/chat/preset/uni-app/integration.md +5 -1
  16. package/resource/integration/chat/preset/vue/integration.md +21 -31
  17. package/resource/integration/livekit/preset/live/android/live-host-integration.md +4 -0
  18. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +4 -0
  19. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +3 -3
  20. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +3 -4
  21. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -1
  22. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -1
  23. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +4 -9
  24. package/resource/integration/roomkit/preset/vue/integration.md +152 -652
  25. package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +490 -0
  26. package/resource/knowledge/callkit/best-practice/flutter/android-keep-call-alive-background.md +79 -0
  27. package/resource/knowledge/callkit/best-practice/flutter/background-incoming-call-no-notification.md +99 -0
  28. package/resource/knowledge/callkit/best-practice/flutter/ios-keep-call-alive-background.md +93 -0
  29. package/resource/knowledge/callkit/best-practice/flutter/ios-startup-crash-version-voip.md +68 -0
  30. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +2 -2
  31. package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -5
  32. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +7 -7
  33. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +10 -10
  34. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -1
  35. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +18 -16
  36. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +16 -14
  37. package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +19 -19
  38. package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +16 -16
  39. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +2 -86
  40. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +2 -104
  41. package/resource/knowledge/callkit/core-sdk/web/call-event.md +2 -2
  42. package/resource/knowledge/callkit/faq/android.md +4 -4
  43. package/resource/knowledge/callkit/faq/common.md +4 -4
  44. package/resource/knowledge/callkit/faq/error-code.md +62 -36
  45. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +1 -1
  46. package/resource/knowledge/callkit/preset/android/api.md +10 -10
  47. package/resource/knowledge/callkit/preset/harmonyos/api.md +362 -0
  48. package/resource/knowledge/callkit/preset/harmonyos/integration.md +322 -0
  49. package/resource/knowledge/callkit/preset/ios/api.md +9 -9
  50. package/resource/knowledge/callkit/preset/miniprogram/api-uniapp.md +293 -0
  51. package/resource/knowledge/callkit/preset/miniprogram/api.md +19 -19
  52. package/resource/knowledge/callkit/preset/miniprogram/integration.md +292 -0
  53. package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +521 -0
  54. package/resource/knowledge/callkit/preset/uni-app/api.md +49 -0
  55. package/resource/knowledge/callkit/preset/uni-app/integration.md +353 -0
  56. package/resource/knowledge/chat/preset/android-view/integration.md +54 -102
  57. package/resource/knowledge/chat/preset/ios/features/language.md +5 -5
  58. package/resource/knowledge/chat/preset/ios-uikit/integration.md +194 -926
  59. package/resource/knowledge/chat/preset/react/features/search.md +9 -214
  60. package/resource/knowledge/chat/preset/react/h5/integration.md +965 -0
  61. package/resource/knowledge/chat/preset/vue/features/chat-header.md +0 -36
  62. package/resource/knowledge/chat/preset/vue/features/contact-list.md +0 -34
  63. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +0 -39
  64. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +0 -74
  65. package/resource/knowledge/chat/preset/vue/features/message-input.md +4 -4
  66. package/resource/knowledge/chat/preset/vue/features/search.md +9 -790
  67. package/resource/knowledge/chat/preset/vue/h5/integration.md +724 -0
  68. package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +3 -3
  69. package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +3 -3
  70. package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +3 -3
  71. package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -3
  72. package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +3 -3
  73. package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +3 -3
  74. package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +3 -3
  75. package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +3 -170
  76. package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +1 -1
  77. package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +3 -3
  78. package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -1
  79. package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +3 -3
  80. package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +3 -3
  81. package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +1 -1
  82. package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +3 -3
  83. package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +2 -2
  84. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +13 -78
  85. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +5 -70
  86. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +10 -10
  87. package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -1
  88. package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +4 -4
  89. package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -1
  90. package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +1 -1
  91. package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +4 -4
  92. package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +7 -7
  93. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +1 -24
  94. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +0 -3
  95. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -5
  96. package/resource/knowledge/push/api-reference/harmonyos.md +9 -9
  97. package/resource/knowledge/push/api-reference/unity.md +10 -10
  98. package/resource/knowledge/push/api-reference/unreal-engine.md +11 -11
  99. package/resource/knowledge/push/config/donut.md +3 -3
  100. package/resource/knowledge/push/config/harmonyos.md +12 -12
  101. package/resource/knowledge/push/config/ios.md +2 -2
  102. package/resource/knowledge/push/integration/android.md +90 -1067
  103. package/resource/knowledge/push/integration/donut.md +11 -11
  104. package/resource/knowledge/push/integration/flutter.md +38 -24
  105. package/resource/knowledge/push/integration/harmonyos.md +1 -11
  106. package/resource/knowledge/push/integration/ios.md +29 -40
  107. package/resource/knowledge/push/integration/react-native.md +1 -1
  108. package/resource/knowledge/push/integration/uni-app.md +1 -1
  109. package/resource/knowledge/push/integration/unity.md +4 -4
  110. package/resource/knowledge/push/integration/unreal-engine.md +9 -9
  111. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +6 -6
  112. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +13 -13
  113. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +5 -5
  114. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -4
  115. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +6 -6
  116. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -4
  117. package/resource/knowledge/roomkit/core-sdk/vue/device-detection.md +0 -9
  118. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
  119. package/resource/knowledge/roomkit/core-sdk/vue/recording.md +3 -3
  120. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
  121. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -16
  122. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +0 -3
  123. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +3 -6
  124. package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +0 -15
  125. package/resource/knowledge/roomkit/preset/android/integration.md +5 -202
  126. package/resource/knowledge/roomkit/preset/flutter/integration.md +17 -13
  127. package/resource/knowledge/roomkit/preset/harmonyos/integration.md +10 -2
  128. package/resource/knowledge/roomkit/preset/ios/integration.md +7 -204
  129. package/resource/knowledge/roomkit/preset/react/integration.md +0 -202
  130. package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +244 -500
  131. package/resource/knowledge/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +25 -6
  132. package/server.js +1 -1
  133. package/utils/preflight-route.js +203 -185
  134. package/utils/report-cls-client.js +1 -1
  135. package/utils/report-es-client.js +1 -1
@@ -77,7 +77,7 @@ Future<void> scheduleRoom() async {
77
77
  | 参数名 | 类型 | 必填 | 说明 |
78
78
  | --- | --- | --- | --- |
79
79
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
80
- | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法
80
+ | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">ScheduleRoomOptions 结构体详细说明</a> |
81
81
 
82
82
  ##### ScheduleRoomOptions 结构体详细说明
83
83
  | 参数名 | 类型 | 必填 | 说明 |
@@ -87,7 +87,7 @@ Future<void> scheduleRoom() async {
87
87
  | scheduleStartTime | int | 是 | - 预定的房间开始时间(Unix 时间戳,单位:秒)。<br>- 取值必须大于当前时间。<br>- 推荐设置为未来的整分时间。例如:1736164800(代表 2025-01-06 20:00:00)。 |
88
88
  | scheduleEndTime | int | 是 | - 预定的房间结束时间(Unix 时间戳,单位:秒)。<br>- 取值必须大于 scheduleStartTime。<br>- 建议根据预期时长设置。例如:scheduleStartTime + 3600(预定 1 小时时长的房间)。 |
89
89
  | reminderSecondsBeforeStart | int | 否 | - 房间开始前的提醒时间(单位:秒)。用于系统触发开始提醒。<br>- 推荐设置为 300(5分钟)或 900(15分钟),用于在 App 端触发本地通知。 |
90
- | scheduleAttendees | List<String> | 否 | - 预定参与者的用户 ID 列表,在预定房间时设置,系统将向这些用户发送预定邀请。<br>- 获取方式。 |
90
+ | scheduleAttendees | List<String> | 否 | - 预定参与者的用户 ID 列表,在预定房间时设置,系统将向这些用户发送预定邀请。<br>- 获取方式请参考 <a href="#88039583-8ee8-4662-bf73-d71c3af652fe">获取指定预定房间的参与成员列表</a>。 |
91
91
  | isAllMicrophoneDisabled | bool | 否 | - 是否全员禁止打开麦克风。开启后,除房主/管理员外,普通参与者默认禁止打开麦克风。<br>- 参数含义:<br>- true : 禁止。<br>- false :取消禁止 (默认值)。 |
92
92
  | isAllCameraDisabled | bool | 否 | - 是否全员禁止打开摄像头。开启后,除房主/管理员外,普通参与者默认禁止打开摄像头。<br>- 参数含义:<br>- true : 禁止。<br>- false :取消禁止(默认值)。 |
93
93
  | isAllScreenShareDisabled | bool | 否 | - 是否全员禁止发起屏幕共享。开启后,仅房主/管理员可进行屏幕共享。<br>- 参数含义:<br>- true : 禁止。<br>- false :取消禁止(默认值)。 |
@@ -150,8 +150,8 @@ Future<void> scheduleRoom() async {
150
150
  | 参数名 | 类型 | 必填 | 说明 |
151
151
  | --- | --- | --- | --- |
152
152
  | roomID | String | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
153
- | options | ScheduleRoomOptions | 是 | - 预定房间配置对象。<br>- 详细用法
154
- | modifyFlagList | List<ScheduleRoomOptionsModifyFlag> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>开始时间</strong>、<strong>结束时间。</strong><br>- 详细用法。 |
153
+ | options | ScheduleRoomOptions | 是 | - 预定房间配置对象。<br>- 详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">ScheduleRoomOptions 结构体详细说明</a> |
154
+ | modifyFlagList | List<ScheduleRoomOptionsModifyFlag> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>开始时间</strong>、<strong>结束时间。</strong><br>- 详细用法请参考:<a href="#ScheduleRoomOptionsModifyFlag">ScheduleRoomOptionsModifyFlag 详细说明</a>。 |
155
155
 
156
156
  **ScheduleRoomOptionsModifyFlag 详细说明**
157
157
  | 参数名 | 说明 |
@@ -72,7 +72,7 @@ func createAndJoinRoom() {
72
72
  | --- | --- | --- | --- |
73
73
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
74
74
  | <code>roomType</code> | <code>RoomType</code> | 是 | 房间类型:<br>- <code>standard</code>:标准房间,所有成员可自由音视频互动。<br>- <code>webinar</code>:大型研讨会房间,区分嘉宾和观众角色,观众默认无上麦权限。<br>多人会议场景这里填写 <code>standard</code> 房间类型。 |
75
- | <code>options</code> | <code>CreateRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法。 |
75
+ | <code>options</code> | <code>CreateRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">CreateRoomOptions 结构体详细说明</a>。 |
76
76
  | <code>completion</code> | <code>CompletionClosure</code> | 否 | 操作完成回调,用于返回创建和加入房间的结果。若创建失败则会返回错误码和错误信息。 |
77
77
 
78
78
  ##### CreateRoomOptions 结构体详细说明
@@ -203,8 +203,8 @@ func updateRoomInfo() {
203
203
  | 参数名 | 类型 | 必填 | 说明 |
204
204
  | --- | --- | --- | --- |
205
205
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
206
- | <code>options</code> | <code>UpdateRoomOptions</code> | 是 | - 更新房间属性配置对象。<br>- 详细用法。 |
207
- | <code>modifyFlag</code> | <code>UpdateRoomOptions.ModifyFlag</code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>房间密码</strong>。<br>- 详细用法。 |
206
+ | <code>options</code> | <code>UpdateRoomOptions</code> | 是 | - 更新房间属性配置对象。<br>- 详细用法请参考:<a href="#UpdateRoomOptionsStruct">UpdateRoomOptions 结构体详细说明</a>。 |
207
+ | <code>modifyFlag</code> | <code>UpdateRoomOptions.ModifyFlag</code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>房间密码</strong>。<br>- 详细用法请参考:<a href="#UpdateRoomOptions.ModifyFlag">UpdateRoomOptions.ModifyFlag 详细说明</a>。 |
208
208
  | <code>completion</code> | <code>CompletionClosure</code> | 否 | 操作完成回调,用于返回更新房间信息的结果。若更新失败则会返回错误码和错误信息。 |
209
209
 
210
210
  **UpdateRoomOptions 结构体详细说明**
@@ -307,11 +307,11 @@ private func subscribeRoomState() {
307
307
 
308
308
  - **更新机制与频率控制:**
309
309
 
310
- - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
310
+ - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
311
311
 
312
- - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
312
+ - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
313
313
 
314
- - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
314
+ - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
315
315
 
316
316
  **这对开发者意味着什么?**
317
317
 
@@ -76,7 +76,7 @@ func scheduleRoom() {
76
76
  | 参数名 | 类型 | 必填 | 说明 |
77
77
  | --- | --- | --- | --- |
78
78
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
79
- | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法
79
+ | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">ScheduleRoomOptions 结构体详细说明</a> |
80
80
  | <code>completion</code> | <code>CompletionClosure</code> | 否 | 操作完成回调,用于返回预定房间的结果。若预定失败则会返回错误码和错误信息。 |
81
81
 
82
82
  ##### ScheduleRoomOptions 结构体详细说明
@@ -87,7 +87,7 @@ func scheduleRoom() {
87
87
  | <code>scheduleStartTime</code> | <code>Int</code> | 是 | - 预定的房间开始时间(Unix 时间戳,单位:秒)。<br>- 取值必须大于当前时间。<br>- 推荐设置为未来的整分时间。例如:1736164800(代表 2025-01-06 20:00:00)。 |
88
88
  | <code>scheduleEndTime</code> | <code>Int</code> | 是 | - 预定的房间结束时间(Unix 时间戳,单位:秒)。<br>- 取值必须大于 <code>scheduleStartTime</code>。<br>- 建议根据预期时长设置。例如:<code>scheduleStartTime</code> + 3600(预定 1 小时时长的房间)。 |
89
89
  | <code>reminderSecondsBeforeStart</code> | <code>Int</code> | 否 | - 房间开始前的提醒时间(单位:秒)。用于系统触发开始提醒。<br>- 推荐设置为 300(5分钟)或 900(15分钟),用于在 App 端触发本地通知。 |
90
- | <code>scheduleAttendees</code> | <code>[String]</code> | 否 | - 预定参与者的用户 ID 列表,在预定房间时设置,系统将向这些用户发送预约邀请。<br>- 获取。 |
90
+ | <code>scheduleAttendees</code> | <code>[String]</code> | 否 | - 预定参与者的用户 ID 列表,在预定房间时设置,系统将向这些用户发送预约邀请。<br>- 获取请参考<a href="#88039583-8ee8-4662-bf73-d71c3af652fe">获取指定预定房间的参与成员列表</a>。 |
91
91
  | <code>isAllMicrophoneDisabled</code> | <code>Bool</code> | 否 | 是否全员禁止打开麦克风。开启后,除房主/管理员外,普通参与者默认禁止打开麦克风。<br>- true : 禁止<br>- false :取消禁止 (默认值) |
92
92
  | <code>isAllCameraDisabled</code> | <code>Bool</code> | 否 | 是否全员禁止打开摄像头。开启后,除房主/管理员外,普通参与者默认禁止打开摄像头。<br>- true : 禁止<br>- false :取消禁止(默认值) |
93
93
  | <code>isAllScreenShareDisabled</code> | <code>Bool</code> | 否 | 是否全员禁止发起屏幕共享。开启后,仅房主/管理员可进行屏幕共享。<br>- true : 禁止<br>- false :取消禁止(默认值) |
@@ -150,8 +150,8 @@ func updateScheduledRoom() {
150
150
  | 参数名 | 类型 | 必填 | 说明 |
151
151
  | --- | --- | --- | --- |
152
152
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
153
- | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 预定房间配置对象。<br>- 详细用法
154
- | <code>modifyFlag</code> | <code>ScheduleRoomOptions.ModifyFlag</code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>开始时间</strong>、<strong>结束时间。</strong><br>- 详细用法。 |
153
+ | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 预定房间配置对象。<br>- 详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">ScheduleRoomOptions 结构体详细说明</a> |
154
+ | <code>modifyFlag</code> | <code>ScheduleRoomOptions.ModifyFlag</code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>开始时间</strong>、<strong>结束时间。</strong><br>- 详细用法请参考:<a href="#ScheduleRoomOptions.ModifyFlag">ScheduleRoomOptions.ModifyFlag 详细说明</a>。 |
155
155
  | <code>completion</code> | <code>CompletionClosure</code> | 否 | 操作完成回调,用于返回更新预定房间的结果。若更新失败则会返回错误码和错误信息。 |
156
156
 
157
157
  **ScheduleRoomOptions.ModifyFlag 详细说明**
@@ -112,9 +112,6 @@ const handleCameraChange = async (event: Event) => {
112
112
  };
113
113
  </script>
114
114
 
115
- <style scoped>
116
- .preview-container { position: relative; width: 100%; max-width: 640px; margin: 0 auto;}.camera-preview { width: 100%; position: relative; aspect-ratio: 16 / 9; background-color: #000; border-radius: 8px; overflow: hidden;}.loading-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background-color: rgba(0, 0, 0, 0.7); color: white; border-radius: 8px;}.loading-spinner { width: 40px; height: 40px; border: 4px solid rgba(255, 255, 255, 0.3); border-top-color: white; border-radius: 50%; animation: spin 0.8s linear infinite;}@keyframes spin { to { transform: rotate(360deg); }}.error-message { display: flex; align-items: center; gap: 8px; padding: 12px; margin-top: 12px; background-color: #ffebee; color: #c62828; border-radius: 4px; font-size: 14px;}.camera-selector { margin-top: 16px; display: flex; align-items: center; gap: 12px;}.camera-selector label { font-weight: 500; min-width: 80px;}.camera-selector select { flex: 1; padding: 8px 12px; border: 1px solid #e0e0e0; border-radius: 4px; font-size: 14px;}.control-buttons { margin-top: 16px; display: flex; gap: 12px;}.control-buttons button { flex: 1; padding: 12px 24px; background-color: #1976d2; color: white; border: none; border-radius: 4px; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.3s;}.control-buttons button:hover:not(:disabled) { background-color: #1565c0;}.control-buttons button:disabled { background-color: #bdbdbd; cursor: not-allowed;}
117
- </style>
118
115
  ```
119
116
 
120
117
  【React】
@@ -332,9 +329,6 @@ const handleMicrophoneChange = async (event: Event) => {
332
329
  };
333
330
  </script>
334
331
 
335
- <style scoped>
336
- .microphone-test { width: 100%; max-width: 640px; margin: 0 auto;}.volume-display { padding: 24px; background-color: #f5f5f5; border-radius: 8px; margin-bottom: 16px;}.volume-label { font-size: 14px; font-weight: 500; color: #666; margin-bottom: 12px;}.volume-bar-container { width: 100%; height: 24px; background-color: #e0e0e0; border-radius: 12px; overflow: hidden; margin-bottom: 8px;}.volume-bar { height: 100%; transition: width 0.1s ease; border-radius: 12px;}.volume-bar.volume-zero { background-color: #9e9e9e;}.volume-bar.volume-low { background-color: #ff9800;}.volume-bar.volume-medium { background-color: #4caf50;}.volume-bar.volume-high { background-color: #2196f3;}.volume-value { text-align: center; font-size: 18px; font-weight: 600; color: #333;}.microphone-selector { display: flex; align-items: center; gap: 12px; margin-bottom: 16px;}.microphone-selector label { font-weight: 500; min-width: 80px;}.microphone-selector select { flex: 1; padding: 8px 12px; border: 1px solid #e0e0e0; border-radius: 4px; font-size: 14px;}.error-message { display: flex; align-items: center; gap: 8px; padding: 12px; margin-bottom: 16px; background-color: #ffebee; color: #c62828; border-radius: 4px; font-size: 14px;}.control-buttons { margin-bottom: 12px; display: flex; gap: 8px; }.control-buttons button { flex: 1; width: 100%; padding: 12px 24px; background-color: #1976d2; color: white; border: none; border-radius: 4px; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.3s;}.control-buttons button:hover:not(:disabled) { background-color: #1565c0;}.control-buttons button:disabled { background-color: #bdbdbd; cursor: not-allowed;}.test-tip { display: flex; align-items: center; gap: 8px; padding: 12px; background-color: #e3f2fd; color: #1565c0; border-radius: 4px; font-size: 13px;}
337
- </style>
338
332
  ```
339
333
 
340
334
  【React】
@@ -552,9 +546,6 @@ const handleSpeakerChange = async (event: Event) => {
552
546
  };
553
547
  </script>
554
548
 
555
- <style scoped>
556
- .speaker-test { width: 100%; max-width: 640px; margin: 0 auto;}.speaker-selector { display: flex; align-items: center; gap: 12px; margin-bottom: 24px;}.speaker-selector label { font-weight: 500; min-width: 80px;}.speaker-selector select { flex: 1; padding: 8px 12px; border: 1px solid #e0e0e0; border-radius: 4px; font-size: 14px;}.volume-slider-container { display: flex; align-items: center; gap: 12px;}.volume-slider { flex: 1; height: 6px; border-radius: 3px; background: #e0e0e0; outline: none; -webkit-appearance: none;}.volume-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #1976d2; cursor: pointer;}.volume-slider::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #1976d2; cursor: pointer; border: none;}.volume-value { min-width: 50px; text-align: right; font-weight: 500; color: #333;}.control-buttons { display: flex; gap: 12px; margin-bottom: 12px;}button { flex: 1; padding: 12px 24px; background-color: #1976d2; color: white; border: none; border-radius: 4px; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.3s;}.control-buttons button:hover:not(:disabled) { background-color: #1565c0;}.control-buttons button:disabled { background-color: #bdbdbd; cursor: not-allowed;}.test-tip { display: flex; align-items: center; gap: 8px; padding: 12px; background-color: #e3f2fd; color: #1565c0; border-radius: 4px; font-size: 13px;}
557
- </style>
558
549
  ```
559
550
 
560
551
  【React】
@@ -87,15 +87,6 @@ const openBeautySettings = () => {
87
87
  };
88
88
  </script>
89
89
 
90
- <style scoped>
91
- .modal-mask {
92
- position: fixed; top: 0; left: 0; width: 100%; height: 100%;
93
- background: rgba(0,0,0,0.5); display: flex; justify-content: center; align-items: center; z-index: 1000;
94
- }
95
- .modal-content { background: white; width: 600px; border-radius: 8px; overflow: hidden; }
96
- .modal-header { padding: 16px; display: flex; justify-content: space-between; border-bottom: 1px solid #eee; }
97
- .modal-body { padding: 16px; }
98
- </style>
99
90
  ```
100
91
 
101
92
  该组件内部逻辑如下:
@@ -12,11 +12,11 @@
12
12
 
13
13
  - 已完成云端录制套餐开通及存储配置:
14
14
 
15
- - 购买含云录制能力的视频会议 SDK 套餐。
15
+ - 购买含云录制能力的视频会议 SDK 套餐。
16
16
 
17
- - 开通录制文件存储服务:录制文件支持存储至 [云点播(VOD)](https://console.cloud.tencent.com/vod) 或 [对象存储(COS)](https://console.cloud.tencent.com/cos),请在对应控制台完成开通并记录存储信息。
17
+ - 开通录制文件存储服务:录制文件支持存储至 [云点播(VOD)](https://console.cloud.tencent.com/vod) 或 [对象存储(COS)](https://console.cloud.tencent.com/cos),请在对应控制台完成开通并记录存储信息。
18
18
 
19
- - [提交工单](https://console.cloud.tencent.com/workorder/category),选择**实时音视频**产品,申请为您的 SDKAppID 配置云端录制存储信息。
19
+ - [提交工单](https://console.cloud.tencent.com/workorder/category),选择**实时音视频**产品,申请为您的 SDKAppID 配置云端录制存储信息。
20
20
 
21
21
  ## 录制效果
22
22
 
@@ -144,9 +144,6 @@ const placeholder = computed(() =>
144
144
  const messageActionList = useMessageActions(['copy', 'recall', 'delete']);
145
145
  </script>
146
146
 
147
- <style scoped>
148
- .room-chat-container{display:flex;flex-direction:column;height:100%;padding:8px;gap:8px}.message-list{flex:1;overflow:hidden}.message-input{flex-shrink:0;border:1px solid #e0e0e0;border-radius:8px}
149
- </style>
150
147
  ```
151
148
 
152
149
  【React】
@@ -62,10 +62,6 @@
62
62
  import { RoomLayoutTemplate, RoomView } from 'tuikit-atomicx-vue3/room';
63
63
  </script>
64
64
 
65
- <style scoped>
66
- /* 必须为 RoomView 父容器明确设置宽高 */
67
- .room-view-wrapper { width: 100%; height: 100%; }
68
- </style>
69
65
  ```
70
66
 
71
67
  【React】
@@ -95,10 +91,6 @@ export default function ConferenceRoom() {
95
91
  import { RoomLayoutTemplate, RoomView } from 'tuikit-atomicx-vue3/room';
96
92
  </script>
97
93
 
98
- <style scoped>
99
- /* 必须为 RoomView 父容器明确设置宽高 */
100
- .room-view-wrapper { width: 100%; height: 100%; }
101
- </style>
102
94
  ```
103
95
 
104
96
  【React】
@@ -228,14 +220,6 @@ const isMicrophoneOn = computed(() => props.participant.microphoneStatus === Dev
228
220
  const shouldShowCameraPlaceholder = computed(() => isCameraStream.value && props.participant.cameraStatus !== DeviceStatus.On);
229
221
  </script>
230
222
 
231
- <style scoped>
232
- /* 必须设置 pointer-events 属性值为 none,否则会拦截底层视频画面的双击、拖拽交互! */
233
- .participant-view-ui { position: absolute; inset: 0; pointer-events: none; }
234
- .participant-view-ui.camera-off { background: #1f2937; }
235
- .camera-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #fff; font-size: 16px; }
236
- .participant-info { position: absolute; left: 8px; bottom: 8px; display: flex; align-items: center; gap: 6px; max-width: calc(100% - 16px); padding: 4px 8px; color: #fff; background: rgb(0 0 0 / 50%); border-radius: 12px; }
237
- .user-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
238
- </style>
239
223
  ```
240
224
 
241
225
  【React】
@@ -93,9 +93,6 @@ const handleJoinRoom = async (roomInfo: { roomId: string }) => {
93
93
  };
94
94
  </script>
95
95
 
96
- <style scoped>
97
- .schedule-container{padding:24px;max-width:1000px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif}button{background-color:#006eff;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s;margin-bottom:24px}button:hover{background-color:#0056cc}.list-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);padding:16px}.modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.4);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);padding:24px;width:100%;max-width:480px}
98
- </style>
99
96
  ```
100
97
 
101
98
  【React】
@@ -18,11 +18,11 @@
18
18
 
19
19
  - **资源依赖:** 虚拟背景功能依赖 AI 模型文件,为保证浏览器可以正常加载和运行这些文件,您需要完成以下步骤。
20
20
 
21
- - 将 `node_modules/trtc-sdk-v5/assets` 目录发布至 CDN 或者静态资源服务器中,详情可见 [SDK 文档](https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-36-advanced-virtual-background.html)。
21
+ - 将 `node_modules/trtc-sdk-v5/assets` 目录发布至 CDN 或者静态资源服务器中,详情可见 [SDK 文档](https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-36-advanced-virtual-background.html)。
22
22
 
23
- - 若选择 方案一:使用 UI 组件快速集成,在使用 [VirtualBackgroundPanel](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/VirtualBackgroundPanel) 组件时,需要通过 props 传入 `assetsPath` 静态资源地址。
23
+ - 若选择 方案一:使用 UI 组件快速集成,在使用 [VirtualBackgroundPanel](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/VirtualBackgroundPanel) 组件时,需要通过 props 传入 `assetsPath` 静态资源地址。
24
24
 
25
- - 若选择 方案二:使用底层 API 自定义集成,在使用 [initVirtualBackground](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#initVirtualBackground) 接口时,需要传入 `assetsPath` 静态资源地址。
25
+ - 若选择 方案二:使用底层 API 自定义集成,在使用 [initVirtualBackground](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#initVirtualBackground) 接口时,需要传入 `assetsPath` 静态资源地址。
26
26
 
27
27
  ## 实现虚拟背景功能
28
28
 
@@ -107,9 +107,6 @@ const openSettings = () => {
107
107
  };
108
108
  </script>
109
109
 
110
- <style scoped>
111
- .modal-mask{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:white;width:600px;border-radius:8px;overflow:hidden}.modal-header{padding:16px;display:flex;justify-content:space-between;border-bottom:1px solid #eee}
112
- </style>
113
110
  ```
114
111
 
115
112
  ## 方案二:使用底层 API 自定义集成
@@ -44,14 +44,6 @@ async function openWhiteboard() {
44
44
  }
45
45
  </script>
46
46
 
47
- <style scoped>
48
- .content-view {
49
- position: relative;
50
- width: 100%;
51
- height: 600px;
52
- background: #fff;
53
- }
54
- </style>
55
47
  ```
56
48
 
57
49
  调用成功后,当前用户可以在该区域绘制,房间内其他成员会实时看到白板画面。
@@ -100,13 +92,6 @@ async function openWhiteboard() {
100
92
  }
101
93
  </script>
102
94
 
103
- <style scoped>
104
- .content-view {
105
- position: relative;
106
- width: 100%;
107
- height: 600px;
108
- }
109
- </style>
110
95
  ```
111
96
 
112
97
  ## 添加绘制工具
@@ -1,206 +1,5 @@
1
1
  TUIRoomKit 是腾讯云提供的一站式多人音视频房间解决方案,集成了完整的 UI 组件和核心功能。通过本文档,开发者可以快速了解如何将 TUIRoomKit 集成到项目中,实现多人音视频房间功能。本文还将详细介绍如何快速替换图片资源、本地化文案等个性化配置,帮助开发者打造符合品牌特色的音视频应用。
2
2
 
3
- <style>
4
- .vsdk-survey-card * {
5
- box-sizing: border-box;
6
- }
7
-
8
- .vsdk-survey-card {
9
- position: relative;
10
- display: flex;
11
- align-items: center;
12
- justify-content: space-between;
13
- gap: 20px;
14
- padding: 18px 22px;
15
- margin: 16px 0;
16
- border-radius: 14px;
17
- overflow: hidden;
18
- background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
19
- border: 1px solid #D7E8FF;
20
- box-shadow: 0 4px 16px rgba(0,110,255,.05);
21
- transition: all .25s ease;
22
- }
23
-
24
- .vsdk-survey-card::before{
25
- content:"";
26
- position:absolute;
27
- right:-60px;
28
- top:-60px;
29
- width:180px;
30
- height:180px;
31
- background:radial-gradient(circle,
32
- rgba(0,110,255,.16) 0%,
33
- rgba(0,110,255,.08) 45%,
34
- transparent 75%);
35
- pointer-events:none;
36
- }
37
-
38
- .vsdk-survey-card::after{
39
- content:"";
40
- position:absolute;
41
- left:-40px;
42
- bottom:-60px;
43
- width:120px;
44
- height:120px;
45
- background:radial-gradient(circle,
46
- rgba(76,169,255,.08),
47
- transparent 70%);
48
- pointer-events:none;
49
- }
50
-
51
- .vsdk-survey-card:hover{
52
- border-color:#006EFF;
53
- box-shadow:
54
- 0 10px 28px rgba(0,110,255,.10),
55
- 0 0 36px rgba(0,110,255,.08);
56
- transform:translateY(-2px);
57
- }
58
-
59
- .vsdk-card-left{
60
- display:flex;
61
- align-items:center;
62
- gap:14px;
63
- flex:1;
64
- min-width:0;
65
- position:relative;
66
- z-index:1;
67
- }
68
-
69
- .vsdk-ico{
70
- width:46px;
71
- height:46px;
72
- flex:0 0 46px;
73
- border-radius:12px;
74
- background:linear-gradient(180deg,#EDF5FF,#DCEBFF);
75
- display:flex;
76
- align-items:center;
77
- justify-content:center;
78
- font-size:22px;
79
- box-shadow:
80
- inset 0 1px 0 rgba(255,255,255,.8),
81
- 0 6px 18px rgba(0,110,255,.12);
82
- }
83
-
84
- .vsdk-text{
85
- min-width:0;
86
- }
87
-
88
- .vsdk-title{
89
- display:flex;
90
- align-items:center;
91
- gap:8px;
92
- flex-wrap:wrap;
93
- font-size:18px;
94
- font-weight:600;
95
- color:#1F2329;
96
- line-height:1.4;
97
- }
98
-
99
- .vsdk-badge{
100
- padding:2px 8px;
101
- border-radius:999px;
102
- background:#EAF3FF;
103
- color:#006EFF;
104
- font-size:11px;
105
- font-weight:600;
106
- }
107
-
108
- .vsdk-desc{
109
- margin-top:6px;
110
- font-size:13px;
111
- line-height:1.7;
112
- color:#4E5969;
113
- }
114
-
115
- .vsdk-card-right{
116
- flex-shrink:0;
117
- position:relative;
118
- z-index:1;
119
- }
120
-
121
- .vsdk-cta{
122
- display:inline-flex;
123
- align-items:center;
124
- justify-content:center;
125
- min-width:112px;
126
- height:40px;
127
- padding:0 22px;
128
- border-radius:8px;
129
- background:#006EFF;
130
- color:#FFFFFF;
131
- text-decoration:none;
132
- font-size:14px;
133
- font-weight:600;
134
- box-shadow:0 8px 20px rgba(0,110,255,.25);
135
- transition:all .2s ease;
136
- }
137
-
138
- .vsdk-cta:hover{
139
- background:#0052D9;
140
- box-shadow:0 10px 24px rgba(0,110,255,.35);
141
- }
142
-
143
- @media (max-width:768px){
144
-
145
- .vsdk-survey-card{
146
- flex-direction:column;
147
- align-items:flex-start;
148
- }
149
-
150
- .vsdk-card-left{
151
- width:100%;
152
- align-items:flex-start;
153
- }
154
-
155
- .vsdk-title{
156
- font-size:16px;
157
- }
158
-
159
- .vsdk-desc{
160
- font-size:12px;
161
- }
162
-
163
- .vsdk-card-right{
164
- width:100%;
165
- margin-top:14px;
166
- }
167
-
168
- .vsdk-cta{
169
- width:100%;
170
- }
171
-
172
- }
173
- </style>
174
-
175
- <div class="vsdk-survey-card">
176
-
177
- <div class="vsdk-card-left">
178
-
179
- <div class="vsdk-ico">💡</div>
180
-
181
- <div class="vsdk-text">
182
-
183
- <div class="vsdk-title">
184
- 有接入卡点?30 秒反馈
185
- <span class="vsdk-badge">全部选填</span>
186
- </div>
187
-
188
- <div class="vsdk-desc">
189
- 正在了解或评估视频会议 SDK?UI、功能、文档或套餐开通如有卡点,欢迎填写反馈。
190
- </div>
191
-
192
- </div>
193
-
194
- </div>
195
-
196
- <div class="vsdk-card-right">
197
- <a class="vsdk-cta" href="https://wj.qq.com/s2/27395009/ac34/" target="_blank">
198
- 填写反馈
199
- </a>
200
- </div>
201
-
202
- </div>
203
-
204
3
  ## 前提条件
205
4
 
206
5
  ### 开通服务
@@ -223,7 +22,7 @@ TUIRoomKit 是腾讯云提供的一站式多人音视频房间解决方案,集
223
22
 
224
23
  ### **步骤1:下载 TUIRoomKit 组件**
225
24
 
226
- 在 [GitHub](https://github.com/Tencent-RTC/TUIKit_Android) 中克隆/下载代码,然后将 `room` 子目录和 `atomic_x` 子目录拷贝到您当前 `Android` 项目的 `app` 文件夹同级目录中。
25
+ 在 [GitHub](https://github.com/Tencent-RTC/TUIKit_Android) 或者 [CNB](https://cnb.cool/tencent/cloud/trtc/TUIKit_Android) 中克隆/下载代码,然后将 `room` 子目录和 `atomic_x` 子目录拷贝到您当前 `Android` 项目的 `app` 文件夹同级目录中。
227
26
 
228
27
  ### 步骤2:工程配置
229
28
 
@@ -510,6 +309,10 @@ class MainActivity : AppCompatActivity() {
510
309
 
511
310
  **参数详细说明。
512
311
 
312
+ ## AI 助手:知识咨询与代码集成
313
+
314
+ 您在接入视频会议 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 Room 组件和 AtomicXCore SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
315
+
513
316
  ## 核心功能
514
317
 
515
318
  接入 `RoomMainView` 代码后,开发者将得到一个完整的多人音视频页面,内部包含成员管理,音视频设备控制,房间信息展示等功能,这是 `TUIRoomKit` 组件的核心。
@@ -35,9 +35,9 @@ flutter pub get
35
35
  ### 步骤2:工程配置
36
36
  - 使用 **Xcode** 打开您的工程,选择**项目** > **Build Settings** > **Deployment**,将其下的 **Strip Style** 设置为 `Non-Global Symbols`,以保留所需要的全局符号信息。
37
37
 
38
- - 若您需要在 **iOS** 端使用音视频功能,需要授权麦克风和摄像头的使用权限(`Android`端已在 SDK 中声明相关权限,您无需手动进行相关配置)。
38
+ - 若您需要在 **iOS** 端使用音视频功能,需要授权麦克风和摄像头的使用权限(`Android` 端已在 SDK 中声明相关权限,您无需手动进行相关配置)。
39
39
 
40
- 在您 App 的`Info.plist`(路径:`ios/Runner/Info.plist`)中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。
40
+ 在您 App 的 `Info.plist`(路径:`ios/Runner/Info.plist`)中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。
41
41
 
42
42
  ``` xml
43
43
  <key>NSCameraUsageDescription</key>
@@ -152,7 +152,7 @@ if (result.isSuccess) {
152
152
  }
153
153
  ```
154
154
 
155
- **setSelfInfo接口参数/返回值说明:**
155
+ **setSelfInfo 接口参数/返回值说明:**
156
156
  | 参数/返回值 | 类型 | 说明 |
157
157
  | --- | --- | --- |
158
158
  | <code>userProfile</code> | <code>UserProfile</code> | 个人用户信息核心模型,包含:<br>- userID:要设置用户信息的用户 ID。<br>- nickname:昵称信息。<br>- avatarURL:头像链接。 |
@@ -173,7 +173,7 @@ if (result.isSuccess) {
173
173
 
174
174
  > **说明:**
175
175
  >
176
- > 移动端仅支持创建标准房间,如您需要创建大型研讨会房间,请参考 Web 快速接入 使用Web端创建。
176
+ > 移动端仅支持创建标准房间,如您需要创建大型研讨会房间,请参考 Web 快速接入 使用 Web 端创建。
177
177
  >
178
178
 
179
179
  #### **示例代码:**
@@ -230,7 +230,7 @@ class YourMainPage extends StatelessWidget {
230
230
  | 参数 | 类型 | 说明 |
231
231
  | --- | --- | --- |
232
232
  | <code>roomID</code> | <code>String</code> | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
233
- | <code>behavior</code> | <code>RoomBehavior</code> | - 房间主页面初始化来源。<br>- 参数含义:<br>- create: 房主身份创建房间,此方式需要构造创建房间配置项,关于CreateRoomOptions的详细用法。<br>- enter:参与者身份加入房间。 |
233
+ | <code>behavior</code> | <code>RoomBehavior</code> | - 房间主页面初始化来源。<br>- 参数含义:<br>- create: 房主身份创建房间,此方式需要构造创建房间配置项,关于 CreateRoomOptions 的详细用法。<br>- enter:参与者身份加入房间。 |
234
234
  | <code>config</code> | <code>ConnectConfig</code> | 进房后音视频设备控制的配置项。 |
235
235
 
236
236
  **ConnectConfig 参数详细说明:**
@@ -242,7 +242,7 @@ class YourMainPage extends StatelessWidget {
242
242
 
243
243
  ### 步骤7:加入房间
244
244
 
245
- 以下示例将向开发者演示如何以参与者身份将`RoomMainWidget`嵌入到应用中。
245
+ 以下示例将向开发者演示如何以参与者身份将 `RoomMainWidget` 嵌入到应用中。
246
246
 
247
247
  #### **实现方式:**
248
248
  1. **构造进房的配置项**:进入房间后是否需要自动打开音视频设备的配置项。
@@ -299,12 +299,16 @@ class YourMainPage extends StatelessWidget {
299
299
  **参数详细说明请参考:**[RoomMainWidget 构造函数参数详细说明]( 构造函数参数详细说明) 和 [ConnectConfig 参数详细说明]( 参数详细说明)
300
300
 
301
301
  > **说明:**
302
- > 使用TUIRoomKit组件进入大型研讨会房间时,需确保Web端创建的研讨会房间的房间ID以 `webinar_` 开头。
302
+ > 使用 TUIRoomKit 组件进入大型研讨会房间时,需确保 Web 端创建的研讨会房间的房间 ID 以 `webinar_` 开头。
303
303
  >
304
304
 
305
+ ## AI 助手:知识咨询与代码集成
306
+
307
+ 您在接入视频会议 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 Room 组件和 AtomicXCore SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
308
+
305
309
  ## 核心功能
306
310
 
307
- 接入`RoomMainWidget`代码后,开发者将得到一个完整的多人音视频页面,内部包含成员管理,音视频设备控制,房间信息展示等功能,这是 `TUIRoomKit` 组件的核心。
311
+ 接入 `RoomMainWidget` 代码后,开发者将得到一个完整的多人音视频页面,内部包含成员管理,音视频设备控制,房间信息展示等功能,这是 `TUIRoomKit` 组件的核心。
308
312
 
309
313
  ## 界面定制
310
314
 
@@ -331,9 +335,9 @@ class YourMainPage extends StatelessWidget {
331
335
  > ` ref: your-branch`
332
336
  > ` path: room`
333
337
 
334
- `RoomMainWidget`房间主页面内功能丰富,可定制化度高,开发者可以根据实际产品需求,对 UI 进行定制化修改,以适配业务交互场景。以下将详细为开发者展示`RoomMainWidget`页面中视图组件,便于开发者快速修改。
338
+ `RoomMainWidget` 房间主页面内功能丰富,可定制化度高,开发者可以根据实际产品需求,对 UI 进行定制化修改,以适配业务交互场景。以下将详细为开发者展示 `RoomMainWidget` 页面中视图组件,便于开发者快速修改。
335
339
 
336
- `RoomMainWidget`**中组件详细说明**
340
+ `RoomMainWidget` **中组件详细说明**
337
341
 
338
342
  |组件|功能描述|定制化建议|
339
343
  |---------|---------|---------|
@@ -372,13 +376,13 @@ TUIRoomKit 使用 Flutter 标准的 ARB 文件来管理 UI 所需的文案显示
372
376
 
373
377
  `LoginStore.shared.logout` 与自己的登录业务关联。
374
378
 
375
- ### iOS在release下运行/打包后无法进房?
379
+ ### iOS 在 release 下运行/打包后无法进房?
376
380
 
377
381
  使用 Xcode 打开您的工程,选择项目 > Build Settings > Deployment,将其下的 Strip Style 设置为 `Non-Global Symbols`,以保留所需要的全局符号信息。
378
382
 
379
- ### pubspec.yaml文件有没有示例配置可以参考?
383
+ ### pubspec.yaml 文件有没有示例配置可以参考?
380
384
 
381
- 您可以参考 [GitHub TUIKit_Flutter Example](https://github.com/Tencent-RTC/TUIKit_Flutter/tree/main/application) 工程 `pubspec.yaml` 示例文件。
385
+ 您可以参考 [GitHub TUIKit_Flutter Example](https://github.com/Tencent-RTC/TUIKit_Flutter/tree/main/application) 或者 [CNB TUIKit_Flutter Example](https://cnb.cool/tencent/cloud/trtc/TUIKit_Flutter/-/tree/main/application) 工程 `pubspec.yaml` 示例文件。
382
386
 
383
387
  ### 进房后无画面?
384
388
 
@@ -22,9 +22,13 @@ TUIRoomKit 是腾讯云提供的一站式多人音视频房间解决方案,集
22
22
 
23
23
  #### 下载源码
24
24
 
25
- 从 GitHub 下载 [TUIKit Harmony](https://github.com/Tencent-RTC/TUIKit_Harmony) 源码:
25
+ 从 [GitHub](https://github.com/Tencent-RTC/TUIKit_Harmony) 或者 [CNB](https://cnb.cool/tencent/cloud/trtc/TUIKit_Harmony) 下载 TUIKit Harmony 源码:
26
26
  ``` bash
27
+ github:
27
28
  git clone https://github.com/Tencent-RTC/TUIKit_Harmony.git
29
+
30
+ cnb:
31
+ git clone https://cnb.cool/tencent/cloud/trtc/TUIKit_Harmony
28
32
  ```
29
33
 
30
34
  #### 集成组件
@@ -409,6 +413,10 @@ struct RoomMainDestination {
409
413
  > 使用 TUIRoomKit 组件进入大型研讨会房间时,需确保 Web 端创建的研讨会房间的房间 ID 以 `webinar_` 开头。
410
414
  >
411
415
 
416
+ ## AI 助手:知识咨询与代码集成
417
+
418
+ 您在接入视频会议 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 Room 组件和 AtomicXCore SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
419
+
412
420
  ## 核心功能
413
421
 
414
422
  接入 `RoomMainPage` 代码后,开发者将得到一个完整的多人音视频页面,内部包含成员管理,音视频设备控制,房间信息展示等功能,这是 `TUIRoomKit` 组件的核心。
@@ -458,4 +466,4 @@ TUIRoomKit 使用 HarmonyOS 标准的资源文件来管理 UI 所需的文案显
458
466
 
459
467
  ### oh-package.json5 文件有没有示例配置可以参考?
460
468
 
461
- 您可以参考 GitHub TUIKit_Harmony [application](https://github.com/Tencent-RTC/TUIKit_Harmony/tree/main/application) 工程中的 `oh-package.json5` 示例文件。
469
+ 您可以参考 [GitHub](https://github.com/Tencent-RTC/TUIKit_Harmony/tree/main/application) 或者 [CNB](https://cnb.cool/tencent/cloud/trtc/TUIKit_Harmony/-/tree/main/application) TUIKit_Harmony application 工程中的 `oh-package.json5` 示例文件。