@tencentcloud/sdk-mcp 1.7.2 → 1.7.4

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 +26 -0
  2. package/README.md +25 -17
  3. package/knowledge/bm25.js +20 -11
  4. package/knowledge/path-meta.js +23 -1
  5. package/knowledge/search/generic-rerank.js +123 -0
  6. package/knowledge/search/search-pass.js +8 -1
  7. package/package.json +1 -1
  8. package/resource/_schema/query-normalization.yaml +6 -0
  9. package/resource/index/manifest.json +1 -1
  10. package/resource/integration/callkit/preset/android/integration.md +4 -0
  11. package/resource/integration/callkit/preset/flutter/integration.md +4 -0
  12. package/resource/integration/callkit/preset/ios/integration.md +14 -13
  13. package/resource/integration/callkit/preset/vue/integration.md +0 -3
  14. package/resource/integration/chat/preset/android/integration.md +35 -173
  15. package/resource/integration/chat/preset/flutter/integration.md +113 -220
  16. package/resource/integration/chat/preset/ios/integration.md +2 -269
  17. package/resource/integration/chat/preset/react/integration.md +27 -1
  18. package/resource/integration/chat/preset/uni-app/integration.md +5 -1
  19. package/resource/integration/chat/preset/vue/integration.md +21 -31
  20. package/resource/integration/livekit/preset/live/android/live-host-integration.md +4 -0
  21. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +4 -0
  22. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +3 -4
  23. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -1
  24. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -1
  25. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +4 -9
  26. package/resource/integration/roomkit/preset/vue/integration.md +0 -213
  27. package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +490 -0
  28. package/resource/knowledge/callkit/best-practice/flutter/android-keep-call-alive-background.md +79 -0
  29. package/resource/knowledge/callkit/best-practice/flutter/background-incoming-call-no-notification.md +99 -0
  30. package/resource/knowledge/callkit/best-practice/flutter/ios-keep-call-alive-background.md +93 -0
  31. package/resource/knowledge/callkit/best-practice/flutter/ios-startup-crash-version-voip.md +68 -0
  32. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -1
  33. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +9 -7
  34. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +10 -7
  35. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +1 -1
  36. package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +19 -19
  37. package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +16 -16
  38. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -84
  39. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -102
  40. package/resource/knowledge/callkit/core-sdk/web/call-event.md +2 -2
  41. package/resource/knowledge/callkit/faq/error-code.md +62 -36
  42. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +1 -1
  43. package/resource/knowledge/callkit/preset/android/api.md +10 -10
  44. package/resource/knowledge/callkit/preset/harmonyos/api.md +362 -0
  45. package/resource/knowledge/callkit/preset/harmonyos/integration.md +322 -0
  46. package/resource/knowledge/callkit/preset/ios/api.md +9 -9
  47. package/resource/knowledge/callkit/preset/miniprogram/api-uniapp.md +293 -0
  48. package/resource/knowledge/callkit/preset/miniprogram/api.md +19 -19
  49. package/resource/knowledge/callkit/preset/miniprogram/integration.md +292 -0
  50. package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +521 -0
  51. package/resource/knowledge/callkit/preset/uni-app/api.md +49 -0
  52. package/resource/knowledge/callkit/preset/uni-app/integration.md +353 -0
  53. package/resource/knowledge/chat/best-practice/common/web-sdk-log-level.md +76 -0
  54. package/resource/knowledge/chat/best-practice/miniprogram/desktop-wechat-miniprogram-error.md +79 -0
  55. package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +1 -1
  56. package/resource/knowledge/chat/preset/android-view/integration.md +84 -124
  57. package/resource/knowledge/chat/preset/ios/features/language.md +5 -5
  58. package/resource/knowledge/chat/preset/ios-uikit/integration.md +184 -923
  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/search.md +9 -790
  66. package/resource/knowledge/chat/preset/vue/h5/integration.md +724 -0
  67. package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +0 -167
  68. package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +1 -1
  69. package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +1 -1
  70. package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -1
  71. package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +1 -1
  72. package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -1
  73. package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +1 -1
  74. package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +1 -1
  75. package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +2 -2
  76. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +1 -66
  77. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +1 -66
  78. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +1 -1
  79. package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -1
  80. package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +2 -2
  81. package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -1
  82. package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +1 -1
  83. package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +2 -2
  84. package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +2 -2
  85. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +1 -24
  86. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +0 -3
  87. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -5
  88. package/resource/knowledge/push/api-reference/harmonyos.md +9 -9
  89. package/resource/knowledge/push/api-reference/unity.md +10 -10
  90. package/resource/knowledge/push/api-reference/unreal-engine.md +11 -11
  91. package/resource/knowledge/push/config/android/fcm.md +2 -6
  92. package/resource/knowledge/push/integration/android.md +824 -428
  93. package/resource/knowledge/push/integration/donut.md +57 -74
  94. package/resource/knowledge/push/integration/flutter.md +208 -63
  95. package/resource/knowledge/push/integration/harmonyos.md +6 -11
  96. package/resource/knowledge/push/integration/ios.md +44 -99
  97. package/resource/knowledge/push/integration/react-native.md +3 -2
  98. package/resource/knowledge/push/integration/uni-app.md +29 -107
  99. package/resource/knowledge/push/integration/unity.md +3 -2
  100. package/resource/knowledge/push/integration/unreal-engine.md +4 -3
  101. package/resource/knowledge/roomkit/best-practice/vue/screen-share-auto-stop-on-leave.md +62 -0
  102. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +3 -3
  103. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +4 -4
  104. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +2 -2
  105. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -4
  106. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +3 -3
  107. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -4
  108. package/resource/knowledge/roomkit/core-sdk/react/network-proxy.md +84 -0
  109. package/resource/knowledge/roomkit/core-sdk/vue/device-detection.md +0 -9
  110. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
  111. package/resource/knowledge/roomkit/core-sdk/vue/network-proxy.md +84 -0
  112. package/resource/knowledge/roomkit/core-sdk/vue/recording.md +245 -0
  113. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
  114. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -16
  115. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +0 -3
  116. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -3
  117. package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +181 -0
  118. package/resource/knowledge/roomkit/faq/error-code.md +103 -0
  119. package/resource/knowledge/roomkit/preset/android/integration.md +1 -202
  120. package/resource/knowledge/roomkit/preset/flutter/integration.md +13 -13
  121. package/resource/knowledge/roomkit/preset/harmonyos/integration.md +465 -0
  122. package/resource/knowledge/roomkit/preset/ios/integration.md +0 -201
  123. package/resource/knowledge/roomkit/preset/react/features/network-proxy.md +80 -0
  124. package/resource/knowledge/roomkit/preset/react/integration.md +0 -202
  125. package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +279 -0
  126. package/resource/knowledge/roomkit/preset/vue/features/ai-caption-translation.md +69 -0
  127. package/resource/knowledge/roomkit/preset/vue/features/ai-denoiser.md +67 -0
  128. package/resource/knowledge/roomkit/preset/vue/features/network-proxy.md +80 -0
  129. package/resource/knowledge/roomkit/preset/vue/features/recording.md +85 -0
  130. package/resource/knowledge/roomkit/preset/vue/features/whiteboard-annotation.md +86 -0
  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 +18 -6
  134. package/utils/report-cls-client.js +1 -1
  135. package/utils/report-es-client.js +1 -1
@@ -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】
@@ -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 自定义集成
@@ -0,0 +1,181 @@
1
+ 本文介绍如何使用 Atomicx API 为自己的会议界面接入白板或屏幕共享批注。
2
+
3
+ 先选择您要实现的功能:
4
+
5
+ |目标|是否需要先开启屏幕共享|接入顺序|
6
+ |---------|---------|---------|
7
+ |白板:在空白画布上书写|不需要|显示区域准备好后,调用 `startWhiteboard`|
8
+ |屏幕共享批注:在屏幕共享画面上批注|需要|先调用 `startScreenShare`,再调用 `startWhiteboard`|
9
+
10
+ > **说明:**
11
+ > **接入屏幕共享批注,不需要先接入独立白板。**两种功能都使用 `startWhiteboard` 创建绘制层,但接入流程彼此独立,按您的业务目标选择其中一种即可。
12
+ >
13
+
14
+ ## 准备工作
15
+
16
+ 开始前,请确认:
17
+ - 用户状态:用户已经通过 `useLoginState` 完成登录鉴权,参见 接入概览,并已作为一个房间的房主或成员在房间内,参考 房间管理。
18
+
19
+ - 环境依赖:项目已正确安装并引入 `tuikit-atomicx-vue3`(Vue 3),版本为 `6.1.0` 或更高
20
+
21
+ - 使用 Windows 或 macOS 桌面端的 Chrome、Edge 最新稳定版本。
22
+
23
+ 本文代码中的“显示区域”,就是页面中用来显示白板或共享画面的一个 `<div>`。为它设置 `id` 后,将该 `id` 传给 API 即可。它既决定内容显示在哪里,也决定显示尺寸,不需要额外理解白板内部实现。
24
+
25
+ ## 接入白板
26
+
27
+ 白板不依赖屏幕共享。准备一个显示区域,并在用户点击“打开白板”时把它的 `id` 传给 `startWhiteboard`:
28
+ ``` typescript
29
+ <template>
30
+ <button @click="openWhiteboard">打开白板</button>
31
+ <div id="whiteboard-view" class="content-view" />
32
+ </template>
33
+
34
+ <script setup lang="ts">
35
+ import { useWhiteboardState } from 'tuikit-atomicx-vue3/room';
36
+
37
+ const { startWhiteboard } = useWhiteboardState();
38
+
39
+ async function openWhiteboard() {
40
+ await startWhiteboard({
41
+ view: 'whiteboard-view',
42
+ canvasColor: '#FFFFFF',
43
+ });
44
+ }
45
+ </script>
46
+
47
+ ```
48
+
49
+ 调用成功后,当前用户可以在该区域绘制,房间内其他成员会实时看到白板画面。
50
+
51
+ ## 接入屏幕共享批注
52
+
53
+ 屏幕共享批注是在共享画面上增加一层透明的绘制区域。整个流程只有两步:
54
+ 1. 把屏幕共享画面显示到页面中的 `<div>`。
55
+
56
+ 2. 把同一个 `<div>` 的 `id` 传给 `startWhiteboard`,让笔迹覆盖在共享画面上。
57
+
58
+ 以下示例提供“开始共享”和“开启批注”两个按钮:
59
+
60
+ ``` typescript
61
+ <template>
62
+ <button @click="shareScreen">开始共享</button>
63
+ <button @click="openAnnotation">开启批注</button>
64
+ <div id="screen-share-view" class="content-view" />
65
+ </template>
66
+
67
+ <script setup lang="ts">
68
+ import {
69
+ DeviceStatus,
70
+ useDeviceState,
71
+ useWhiteboardState,
72
+ } from 'tuikit-atomicx-vue3/room';
73
+
74
+ const { screenStatus, startScreenShare } = useDeviceState();
75
+ const { startWhiteboard } = useWhiteboardState();
76
+
77
+ async function shareScreen() {
78
+ await startScreenShare({
79
+ screenAudio: true,
80
+ view: 'screen-share-view',
81
+ });
82
+ }
83
+
84
+ async function openAnnotation() {
85
+ if (screenStatus.value !== DeviceStatus.On) {
86
+ throw new Error('请先开启屏幕共享');
87
+ }
88
+
89
+ await startWhiteboard({
90
+ view: 'screen-share-view',
91
+ });
92
+ }
93
+ </script>
94
+
95
+ ```
96
+
97
+ ## 添加绘制工具
98
+
99
+ 白板和屏幕共享批注使用同一套工具 API。将下面的方法连接到您的工具栏按钮即可:
100
+ ``` typescript
101
+ import {
102
+ useWhiteboardState,
103
+ WhiteboardTool,
104
+ } from 'tuikit-atomicx-vue3/room';
105
+
106
+ const {
107
+ setToolConfig,
108
+ undo,
109
+ redo,
110
+ clear,
111
+ snapshot,
112
+ } = useWhiteboardState();
113
+
114
+ // 画笔
115
+ setToolConfig({
116
+ tool: WhiteboardTool.Pen,
117
+ color: '#006EFF',
118
+ lineWidth: 4,
119
+ });
120
+
121
+ // 矩形
122
+ setToolConfig({
123
+ tool: WhiteboardTool.Shape,
124
+ shapeType: 'rect',
125
+ color: '#006EFF',
126
+ lineWidth: 4,
127
+ });
128
+
129
+ await undo(); // 撤销
130
+ await redo(); // 重做
131
+ await clear(); // 清空
132
+ const image = await snapshot();
133
+ ```
134
+
135
+ 可用工具包括:
136
+
137
+ |工具|枚举值|用途|
138
+ |---------|---------|---------|
139
+ |选择|`WhiteboardTool.None`|停止绘制。|
140
+ |画笔|`WhiteboardTool.Pen`|自由书写。|
141
+ |激光笔|`WhiteboardTool.Laser`|短暂停留后自动消失。|
142
+ |形状|`WhiteboardTool.Shape`|通过 `shapeType` 绘制矩形或椭圆。|
143
+ |箭头|`WhiteboardTool.Arrow`|标记方向或重点。|
144
+ |橡皮擦|`WhiteboardTool.EraserObject`|擦除图形对象。|
145
+
146
+ 绘制形状时,在同一个配置对象中设置 `shapeType`:`rect` 表示矩形,`ellipse` 表示椭圆。
147
+
148
+ ## 隐藏白板和批注入口
149
+
150
+ 关闭白板或批注时调用 `stopWhiteboard`:
151
+ ``` typescript
152
+ const { stopWhiteboard } = useWhiteboardState();
153
+
154
+ stopWhiteboard();
155
+ ```
156
+
157
+ ## 更新白板显示区域
158
+
159
+ 当需要将白板切换到另一个显示区域时,可调用 `updateWhiteboard` 并传入新的元素 id。
160
+ ``` typescript
161
+ const { updateWhiteboard } = useWhiteboardState();
162
+
163
+ updateWhiteboard({ view: 'whiteboard-new-view' });
164
+ ```
165
+
166
+ ## 使用范围
167
+ - 暂不支持移动端浏览器和研讨会(Webinar)房间。
168
+
169
+ - 当前由发起者绘制,其他成员实时观看,暂不支持多人同时绘制。
170
+
171
+ - 白板与普通屏幕共享使用同一路共享通道,不能同时开启。
172
+
173
+ ## 常见问题
174
+
175
+ ### 为什么调用 `startWhiteboard` 后页面没有显示内容?
176
+
177
+ 请确认调用时已经通过 `view` 传入显示区域的 `id`,并且页面中存在对应的 `<div>`。如果该元素稍后才挂载,请在白板启动后调用 `updateWhiteboard({ view })`。
178
+
179
+ ### 白板和普通屏幕共享可以同时开启吗?
180
+
181
+ 不可以。白板与普通屏幕共享使用同一路共享通道;屏幕共享批注则是在屏幕共享画面上叠加绘制层,是支持的组合方式。
@@ -0,0 +1,103 @@
1
+ ## 客户端错误码
2
+
3
+ ### 通用错误码
4
+ | 错误码 | 描述 |
5
+ | --- | --- |
6
+ | 0 | 操作成功 |
7
+ | -1 | 暂未归类的通用错误 |
8
+ | -2 | 请求被限频,请稍后重试 |
9
+ | -1000 | 未找到 SDKAppID,请在 <a href="https://console.cloud.tencent.com/vcube/project/manage">腾讯云视立方 SDK 控制台</a> 确认应用信息 |
10
+ | -1001 | 调用 API 时,传入的参数不合法,检查入参是否合法 |
11
+ | -1002 | 未登录,请调用 Login 接口 |
12
+ | -1003 | 获取权限失败,当前未授权音/视频权限,请查看是否开启设备权限 |
13
+ | -1004 | 该功能需要开通额外的套餐,请在 <a href="https://console.cloud.tencent.com/vcube/project/manage">腾讯云视立方 SDK 控制台</a> 按需开通对应套餐 |
14
+
15
+ ### 本地用户渲染,视频管理,音频管理 API 回调错误定义
16
+ | 错误码 | 描述 |
17
+ | --- | --- |
18
+ | -1100 | 系统问题,打开摄像头失败。检查摄像头设备是否正常 |
19
+ | -1101 | 摄像头没有系统授权, 检查系统授权 |
20
+ | -1102 | 摄像头被占用,检查是否有其他进程使用摄像头 |
21
+ | -1103 | 当前无摄像头设备,请插入摄像头设备解决该问题 |
22
+ | -1104 | 系统问题,打开麦克风失败。检查麦克风设备是否正常 |
23
+ | -1105 | 麦克风没有系统授权,检查系统授权 |
24
+ | -1106 | 麦克风被占用 |
25
+ | -1107 | 当前无麦克风设备 |
26
+ | -1108 | 获取屏幕分享对象失败,检查屏幕录制权限 |
27
+ | -1109 | 开启屏幕分享失败,检查房间内是否有人正在屏幕分享 |
28
+
29
+ ### 房间管理相关 API 回调错误定义
30
+ | 错误码 | 描述 |
31
+ | --- | --- |
32
+ | -2100 | 进房时房间不存在,或许已被解散 |
33
+ | -2101 | 需要进房后才可使用此功能 |
34
+ | -2102 | 房主不支持退房操作,Conference(会议)房间类型: 可以先转让房主,再退房。LivingRoom(直播)房间类型: 房主只能解散房间 |
35
+ | -2103 | 当前房间类型下不支持该操作 |
36
+ | -2104 | 当前发言模式下不支持该操作 |
37
+ | -2105 | 创建房间 ID 非法,自定义 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长48个字节 |
38
+ | -2106 | 房间 ID 已被使用,请选择别的房间 ID |
39
+ | -2107 | 房间名称非法,名称最长30字节,字符编码必须是 UTF-8 ,如果包含中文 |
40
+ | -2108 | 当前用户已在别的房间内,单个 roomEngine 实例只支持用户进入一个房间,如果要进入不同的房间请先退房或者使用新的 roomEngine 实例 |
41
+
42
+ ### 房间内用户信息 API 回调错误定义
43
+ | 错误码 | 描述 |
44
+ | --- | --- |
45
+ | -2200 | 未找到该用户 |
46
+ | -2201 | 房间内未找到该用户 |
47
+
48
+ ### 房间内用户发言管理 API 回调错误定义&房间内麦位管理 API 回调错误定义
49
+ | 错误码 | 描述 |
50
+ | --- | --- |
51
+ | -2300 | 需要房主权限才能操作 |
52
+ | -2301 | 需要房主或者管理员权限才能操作 |
53
+ | -2310 | 信令请求无权限,比如取消非自己发起的邀请。 |
54
+ | -2311 | 信令请求 ID 无效或已经被处理过。 |
55
+ | -2340 | 最大麦位超出套餐包数量限制 |
56
+ | -2341 | 当前用户已经在麦位上 |
57
+ | -2342 | 当前麦位已经有人了 |
58
+ | -2343 | 当前麦位被锁 |
59
+ | -2344 | 麦位编号不存在 |
60
+ | -2345 | 当前用户没有在麦上 |
61
+ | -2346 | 上麦人数已满 |
62
+ | -2360 | 当前麦位音频被锁 |
63
+ | -2361 | 需要向房主或管理员申请后打开麦克风 |
64
+ | -2370 | 当前麦位视频被锁, 需要由房主解锁麦位后,才能打开摄像头 |
65
+ | -2371 | 需要向房主或管理员申请后打开摄像头 |
66
+ | -2380 | 当前房间已开启全员禁言 |
67
+ | -2381 | 当前房间内,您已被已禁言 |
68
+
69
+ ## 服务端错误码
70
+ | 错误码 | 描述 |
71
+ | --- | --- |
72
+ | 83007 | 请求被限频 |
73
+ | 84002 | 房间不存在 |
74
+ | 84003 | 房间内人数已超出最大套餐包限制 |
75
+ | 84004 | 房间不存在该用户 |
76
+ | 84005 | 房间已存在 |
77
+ | 84006 | 房主不能退房 |
78
+ | 85001 | 麦位已满 |
79
+ | 85002 | 麦位被锁定 |
80
+ | 85003 | 用户已上麦 |
81
+ | 85004 | 麦位被使用 |
82
+ | 85005 | 麦位号不存在 |
83
+ | 85006 | 麦位音频被锁定 |
84
+ | 85007 | 麦位视频被锁定 |
85
+ | 85008 | 非直播场景不能使用麦位 |
86
+ | 87001 | 不允许修改成员身份或房间信息 |
87
+ | 87002 | 权限不足,需要房主或管理员身份 |
88
+ | 87003 | IM 群属性更新错误 |
89
+ | 87005 | IM 群属性获取异常 |
90
+ | 87006 | 权限不足,需要房主才可以操作 |
91
+ | 87007 | 权限不足,需要管理员才可以操作 |
92
+ | 87008 | 不允许销毁 IM 房间 |
93
+ | 41001 | 创建 IM 群组错误 |
94
+ | 41002 | 销毁 IM 群组错误 |
95
+ | 41003 | 添加 IM 成员错误 |
96
+ | 41004 | 删除 IM 成员错误 |
97
+ | 41005 | IM 改变角色错误 |
98
+ | 42001 | 预定会议错误 |
99
+ | 42002 | 预定会议无效 |
100
+ | 42003 | 预定会议必须是会议场景 |
101
+ | 42004 | 预定会议未开始 |
102
+ | 42005 | 预定会议已经开始 |
103
+ | 42006 | 预定会议邀请成员太多,超出数量限制 |
@@ -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
 
@@ -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,12 @@ 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
305
  ## 核心功能
306
306
 
307
- 接入`RoomMainWidget`代码后,开发者将得到一个完整的多人音视频页面,内部包含成员管理,音视频设备控制,房间信息展示等功能,这是 `TUIRoomKit` 组件的核心。
307
+ 接入 `RoomMainWidget` 代码后,开发者将得到一个完整的多人音视频页面,内部包含成员管理,音视频设备控制,房间信息展示等功能,这是 `TUIRoomKit` 组件的核心。
308
308
 
309
309
  ## 界面定制
310
310
 
@@ -331,9 +331,9 @@ class YourMainPage extends StatelessWidget {
331
331
  > ` ref: your-branch`
332
332
  > ` path: room`
333
333
 
334
- `RoomMainWidget`房间主页面内功能丰富,可定制化度高,开发者可以根据实际产品需求,对 UI 进行定制化修改,以适配业务交互场景。以下将详细为开发者展示`RoomMainWidget`页面中视图组件,便于开发者快速修改。
334
+ `RoomMainWidget` 房间主页面内功能丰富,可定制化度高,开发者可以根据实际产品需求,对 UI 进行定制化修改,以适配业务交互场景。以下将详细为开发者展示 `RoomMainWidget` 页面中视图组件,便于开发者快速修改。
335
335
 
336
- `RoomMainWidget`**中组件详细说明**
336
+ `RoomMainWidget` **中组件详细说明**
337
337
 
338
338
  |组件|功能描述|定制化建议|
339
339
  |---------|---------|---------|
@@ -372,13 +372,13 @@ TUIRoomKit 使用 Flutter 标准的 ARB 文件来管理 UI 所需的文案显示
372
372
 
373
373
  `LoginStore.shared.logout` 与自己的登录业务关联。
374
374
 
375
- ### iOS在release下运行/打包后无法进房?
375
+ ### iOS 在 release 下运行/打包后无法进房?
376
376
 
377
377
  使用 Xcode 打开您的工程,选择项目 > Build Settings > Deployment,将其下的 Strip Style 设置为 `Non-Global Symbols`,以保留所需要的全局符号信息。
378
378
 
379
- ### pubspec.yaml文件有没有示例配置可以参考?
379
+ ### pubspec.yaml 文件有没有示例配置可以参考?
380
380
 
381
- 您可以参考 [GitHub TUIKit_Flutter Example](https://github.com/Tencent-RTC/TUIKit_Flutter/tree/main/application) 工程 `pubspec.yaml` 示例文件。
381
+ 您可以参考 [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
382
 
383
383
  ### 进房后无画面?
384
384