@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.
- package/CHANGELOG.md +26 -0
- package/README.md +25 -17
- package/knowledge/bm25.js +20 -11
- package/knowledge/path-meta.js +23 -1
- package/knowledge/search/generic-rerank.js +123 -0
- package/knowledge/search/search-pass.js +8 -1
- package/package.json +1 -1
- package/resource/_schema/query-normalization.yaml +6 -0
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +4 -0
- package/resource/integration/callkit/preset/flutter/integration.md +4 -0
- package/resource/integration/callkit/preset/ios/integration.md +14 -13
- package/resource/integration/callkit/preset/vue/integration.md +0 -3
- package/resource/integration/chat/preset/android/integration.md +35 -173
- package/resource/integration/chat/preset/flutter/integration.md +113 -220
- package/resource/integration/chat/preset/ios/integration.md +2 -269
- package/resource/integration/chat/preset/react/integration.md +27 -1
- package/resource/integration/chat/preset/uni-app/integration.md +5 -1
- package/resource/integration/chat/preset/vue/integration.md +21 -31
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +4 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +4 -0
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +3 -4
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -1
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -1
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +4 -9
- package/resource/integration/roomkit/preset/vue/integration.md +0 -213
- package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +490 -0
- package/resource/knowledge/callkit/best-practice/flutter/android-keep-call-alive-background.md +79 -0
- package/resource/knowledge/callkit/best-practice/flutter/background-incoming-call-no-notification.md +99 -0
- package/resource/knowledge/callkit/best-practice/flutter/ios-keep-call-alive-background.md +93 -0
- package/resource/knowledge/callkit/best-practice/flutter/ios-startup-crash-version-voip.md +68 -0
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -1
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +9 -7
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +10 -7
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +1 -1
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +19 -19
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +16 -16
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -84
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -102
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +2 -2
- package/resource/knowledge/callkit/faq/error-code.md +62 -36
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +1 -1
- package/resource/knowledge/callkit/preset/android/api.md +10 -10
- package/resource/knowledge/callkit/preset/harmonyos/api.md +362 -0
- package/resource/knowledge/callkit/preset/harmonyos/integration.md +322 -0
- package/resource/knowledge/callkit/preset/ios/api.md +9 -9
- package/resource/knowledge/callkit/preset/miniprogram/api-uniapp.md +293 -0
- package/resource/knowledge/callkit/preset/miniprogram/api.md +19 -19
- package/resource/knowledge/callkit/preset/miniprogram/integration.md +292 -0
- package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +521 -0
- package/resource/knowledge/callkit/preset/uni-app/api.md +49 -0
- package/resource/knowledge/callkit/preset/uni-app/integration.md +353 -0
- package/resource/knowledge/chat/best-practice/common/web-sdk-log-level.md +76 -0
- package/resource/knowledge/chat/best-practice/miniprogram/desktop-wechat-miniprogram-error.md +79 -0
- package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +1 -1
- package/resource/knowledge/chat/preset/android-view/integration.md +84 -124
- package/resource/knowledge/chat/preset/ios/features/language.md +5 -5
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +184 -923
- package/resource/knowledge/chat/preset/react/features/search.md +9 -214
- package/resource/knowledge/chat/preset/react/h5/integration.md +965 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +0 -36
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +0 -34
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +0 -39
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +0 -74
- package/resource/knowledge/chat/preset/vue/features/search.md +9 -790
- package/resource/knowledge/chat/preset/vue/h5/integration.md +724 -0
- package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +0 -167
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +2 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +1 -66
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +1 -66
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +2 -2
- package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +2 -2
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +2 -2
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +1 -24
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +0 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -5
- package/resource/knowledge/push/api-reference/harmonyos.md +9 -9
- package/resource/knowledge/push/api-reference/unity.md +10 -10
- package/resource/knowledge/push/api-reference/unreal-engine.md +11 -11
- package/resource/knowledge/push/config/android/fcm.md +2 -6
- package/resource/knowledge/push/integration/android.md +824 -428
- package/resource/knowledge/push/integration/donut.md +57 -74
- package/resource/knowledge/push/integration/flutter.md +208 -63
- package/resource/knowledge/push/integration/harmonyos.md +6 -11
- package/resource/knowledge/push/integration/ios.md +44 -99
- package/resource/knowledge/push/integration/react-native.md +3 -2
- package/resource/knowledge/push/integration/uni-app.md +29 -107
- package/resource/knowledge/push/integration/unity.md +3 -2
- package/resource/knowledge/push/integration/unreal-engine.md +4 -3
- package/resource/knowledge/roomkit/best-practice/vue/screen-share-auto-stop-on-leave.md +62 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +3 -3
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +3 -3
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/react/network-proxy.md +84 -0
- package/resource/knowledge/roomkit/core-sdk/vue/device-detection.md +0 -9
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
- package/resource/knowledge/roomkit/core-sdk/vue/network-proxy.md +84 -0
- package/resource/knowledge/roomkit/core-sdk/vue/recording.md +245 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -16
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +181 -0
- package/resource/knowledge/roomkit/faq/error-code.md +103 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +1 -202
- package/resource/knowledge/roomkit/preset/flutter/integration.md +13 -13
- package/resource/knowledge/roomkit/preset/harmonyos/integration.md +465 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +0 -201
- package/resource/knowledge/roomkit/preset/react/features/network-proxy.md +80 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +0 -202
- package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +279 -0
- package/resource/knowledge/roomkit/preset/vue/features/ai-caption-translation.md +69 -0
- package/resource/knowledge/roomkit/preset/vue/features/ai-denoiser.md +67 -0
- package/resource/knowledge/roomkit/preset/vue/features/network-proxy.md +80 -0
- package/resource/knowledge/roomkit/preset/vue/features/recording.md +85 -0
- package/resource/knowledge/roomkit/preset/vue/features/whiteboard-annotation.md +86 -0
- package/resource/knowledge/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +25 -6
- package/server.js +1 -1
- package/utils/preflight-route.js +18 -6
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
视频会议 SDK 基于腾讯云即时通信 IM 与实时音视频 TRTC 提供服务,支持在内网 / 防火墙环境下统一配置 IM 与 TRTC 代理,适用于私有化部署、企业内网隔离等无法直连腾讯云服务的场景。
|
|
2
|
+
|
|
3
|
+
## 代理架构
|
|
4
|
+
|
|
5
|
+
|代理服务器|代理链路|
|
|
6
|
+
|---------|---------|
|
|
7
|
+
|IM 代理|代理 IM 登录、消息收发等信令通道(WebSocket),以及聊天图片、文件等资源的上传与下载。|
|
|
8
|
+
|TRTC WebSocket 代理(如 Nginx)|代理 TRTC 进房、控制等信令通道(WebSocket),负责房间管理与用户状态同步。|
|
|
9
|
+
|TRTC TURN Server|中继转发 TRTC 音视频媒体流。|
|
|
10
|
+
|
|
11
|
+
> **说明:**
|
|
12
|
+
> 代理服务器(IM 代理、Nginx、TURN)需自行部署,搭建方式参见 [TRTC Web SDK 应对防火墙受限](https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-34-advanced-proxy.html)。
|
|
13
|
+
>
|
|
14
|
+
|
|
15
|
+
## 接口与参数
|
|
16
|
+
|
|
17
|
+
视频会议 SDK 支持用户在调用 `login()` 之前通过 `callExperimentalAPI` 接口统一配置内网代理:
|
|
18
|
+
``` typescript
|
|
19
|
+
callExperimentalAPI({
|
|
20
|
+
api: 'setNetworkProxy',
|
|
21
|
+
params: {
|
|
22
|
+
im?: { /* IM 代理参数 */ },
|
|
23
|
+
rtc?: { /* TRTC 代理参数 */ },
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### IM 代理参数
|
|
29
|
+
|
|
30
|
+
|参数|类型|说明|
|
|
31
|
+
|---------|---------|---------|
|
|
32
|
+
|`proxyServer`|String|IM 信令 WebSocket 代理地址。|
|
|
33
|
+
|`fileUploadProxy`|String|IM 文件上传代理地址。|
|
|
34
|
+
|`fileDownloadProxy`|String|IM 文件下载代理地址。|
|
|
35
|
+
|
|
36
|
+
### TRTC 代理参数
|
|
37
|
+
|
|
38
|
+
|参数|类型|说明|
|
|
39
|
+
|---------|---------|---------|
|
|
40
|
+
|`websocketProxy`|String|TRTC 信令 WebSocket 代理地址,如 `wss://proxy.example.com/ws/`。|
|
|
41
|
+
|`turnServer`|Array|TURN 服务器列表,每项含 `url` / `username` / `credential`。|
|
|
42
|
+
|`iceTransportPolicy`|`'relay' \| 'all'`|客户端 ICE 传输策略;内网环境建议设为 `'relay'`,强制连接 TURN server。|
|
|
43
|
+
|
|
44
|
+
## 示例代码
|
|
45
|
+
|
|
46
|
+
``` typescript
|
|
47
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
48
|
+
|
|
49
|
+
conference.callExperimentalAPI({
|
|
50
|
+
api: 'setNetworkProxy',
|
|
51
|
+
params: {
|
|
52
|
+
im: {
|
|
53
|
+
proxyServer: 'wss://proxy.example.com:8080',
|
|
54
|
+
fileUploadProxy: 'https://proxy.example.com:8080',
|
|
55
|
+
fileDownloadProxy: 'https://proxy.example.com:8080',
|
|
56
|
+
},
|
|
57
|
+
rtc: {
|
|
58
|
+
websocketProxy: 'wss://proxy.example.com/ws/',
|
|
59
|
+
turnServer: [
|
|
60
|
+
{ url: '14.3.3.3:3478', username: 'turn', credential: 'turn' },
|
|
61
|
+
],
|
|
62
|
+
iceTransportPolicy: 'relay',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
await conference.login({ sdkAppId, userId, userSig });
|
|
68
|
+
await conference.createAndJoinRoom({ roomId });
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 常见问题
|
|
72
|
+
|
|
73
|
+
### 用户在外网正常进会,但是内网无法进会?
|
|
74
|
+
|
|
75
|
+
检查是否在 `login()` 前调用了 `setNetworkProxy`;若已配置仍失败,排查 TURN 端口与代理服务器出站白名单。
|
|
76
|
+
|
|
77
|
+
### 用户能进会但看不到远端画面、听不到远端声音?
|
|
78
|
+
|
|
79
|
+
确认 `turnServer` 可达,内网环境将 `iceTransportPolicy` 设为 `'relay'`。
|
|
80
|
+
|
|
@@ -2,208 +2,6 @@ TUIRoomKit 是腾讯云推出的音视频房间 UI 应用。本次升级引入
|
|
|
2
2
|
|
|
3
3
|
本文档介绍如何将 TUIRoomKit 集成到现有的 React 项目中,同时介绍如何对 TUIRoomKit 的样式、布局及功能进行自定义修改。
|
|
4
4
|
|
|
5
|
-
<style>
|
|
6
|
-
.vsdk-survey-card * {
|
|
7
|
-
box-sizing: border-box;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.vsdk-survey-card {
|
|
11
|
-
position: relative;
|
|
12
|
-
display: flex;
|
|
13
|
-
align-items: center;
|
|
14
|
-
justify-content: space-between;
|
|
15
|
-
gap: 20px;
|
|
16
|
-
padding: 18px 22px;
|
|
17
|
-
margin: 16px 0;
|
|
18
|
-
border-radius: 14px;
|
|
19
|
-
width: 90%;
|
|
20
|
-
overflow: hidden;
|
|
21
|
-
background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
|
|
22
|
-
border: 1px solid #D7E8FF;
|
|
23
|
-
box-shadow: 0 4px 16px rgba(0,110,255,.05);
|
|
24
|
-
transition: all .25s ease;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.vsdk-survey-card::before{
|
|
28
|
-
content:"";
|
|
29
|
-
position:absolute;
|
|
30
|
-
right:-60px;
|
|
31
|
-
top:-60px;
|
|
32
|
-
width:180px;
|
|
33
|
-
height:180px;
|
|
34
|
-
background:radial-gradient(circle,
|
|
35
|
-
rgba(0,110,255,.16) 0%,
|
|
36
|
-
rgba(0,110,255,.08) 45%,
|
|
37
|
-
transparent 75%);
|
|
38
|
-
pointer-events:none;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.vsdk-survey-card::after{
|
|
42
|
-
content:"";
|
|
43
|
-
position:absolute;
|
|
44
|
-
left:-40px;
|
|
45
|
-
bottom:-60px;
|
|
46
|
-
width:120px;
|
|
47
|
-
height:120px;
|
|
48
|
-
background:radial-gradient(circle,
|
|
49
|
-
rgba(76,169,255,.08),
|
|
50
|
-
transparent 70%);
|
|
51
|
-
pointer-events:none;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.vsdk-survey-card:hover{
|
|
55
|
-
border-color:#006EFF;
|
|
56
|
-
box-shadow:
|
|
57
|
-
0 10px 28px rgba(0,110,255,.10),
|
|
58
|
-
0 0 36px rgba(0,110,255,.08);
|
|
59
|
-
transform:translateY(-2px);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.vsdk-card-left{
|
|
63
|
-
display:flex;
|
|
64
|
-
align-items:center;
|
|
65
|
-
gap:14px;
|
|
66
|
-
flex:1;
|
|
67
|
-
min-width:0;
|
|
68
|
-
position:relative;
|
|
69
|
-
z-index:1;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.vsdk-ico{
|
|
73
|
-
width:46px;
|
|
74
|
-
height:46px;
|
|
75
|
-
flex:0 0 46px;
|
|
76
|
-
border-radius:12px;
|
|
77
|
-
background:linear-gradient(180deg,#EDF5FF,#DCEBFF);
|
|
78
|
-
display:flex;
|
|
79
|
-
align-items:center;
|
|
80
|
-
justify-content:center;
|
|
81
|
-
font-size:22px;
|
|
82
|
-
box-shadow:
|
|
83
|
-
inset 0 1px 0 rgba(255,255,255,.8),
|
|
84
|
-
0 6px 18px rgba(0,110,255,.12);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.vsdk-text{
|
|
88
|
-
min-width:0;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.vsdk-title{
|
|
92
|
-
display:flex;
|
|
93
|
-
align-items:center;
|
|
94
|
-
gap:8px;
|
|
95
|
-
flex-wrap:wrap;
|
|
96
|
-
font-size:18px;
|
|
97
|
-
font-weight:600;
|
|
98
|
-
color:#1F2329;
|
|
99
|
-
line-height:1.4;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.vsdk-badge{
|
|
103
|
-
padding:2px 8px;
|
|
104
|
-
border-radius:999px;
|
|
105
|
-
background:#EAF3FF;
|
|
106
|
-
color:#006EFF;
|
|
107
|
-
font-size:11px;
|
|
108
|
-
font-weight:600;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.vsdk-desc{
|
|
112
|
-
margin-top:6px;
|
|
113
|
-
font-size:13px;
|
|
114
|
-
line-height:1.7;
|
|
115
|
-
color:#4E5969;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.vsdk-card-right{
|
|
119
|
-
flex-shrink:0;
|
|
120
|
-
position:relative;
|
|
121
|
-
z-index:1;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.vsdk-cta{
|
|
125
|
-
display:inline-flex;
|
|
126
|
-
align-items:center;
|
|
127
|
-
justify-content:center;
|
|
128
|
-
min-width:112px;
|
|
129
|
-
height:40px;
|
|
130
|
-
padding:0 22px;
|
|
131
|
-
border-radius:8px;
|
|
132
|
-
background:#006EFF;
|
|
133
|
-
color:#FFFFFF;
|
|
134
|
-
text-decoration:none;
|
|
135
|
-
font-size:14px;
|
|
136
|
-
font-weight:600;
|
|
137
|
-
box-shadow:0 8px 20px rgba(0,110,255,.25);
|
|
138
|
-
transition:all .2s ease;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.vsdk-cta:hover{
|
|
142
|
-
background:#0052D9;
|
|
143
|
-
box-shadow:0 10px 24px rgba(0,110,255,.35);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
@media (max-width:768px){
|
|
147
|
-
|
|
148
|
-
.vsdk-survey-card{
|
|
149
|
-
flex-direction:column;
|
|
150
|
-
align-items:flex-start;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
.vsdk-card-left{
|
|
154
|
-
width:100%;
|
|
155
|
-
align-items:flex-start;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.vsdk-title{
|
|
159
|
-
font-size:16px;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
.vsdk-desc{
|
|
163
|
-
font-size:12px;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.vsdk-card-right{
|
|
167
|
-
width:100%;
|
|
168
|
-
margin-top:14px;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.vsdk-cta{
|
|
172
|
-
width:100%;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
</style>
|
|
177
|
-
|
|
178
|
-
<div class="vsdk-survey-card">
|
|
179
|
-
|
|
180
|
-
<div class="vsdk-card-left">
|
|
181
|
-
|
|
182
|
-
<div class="vsdk-ico">💡</div>
|
|
183
|
-
|
|
184
|
-
<div class="vsdk-text">
|
|
185
|
-
|
|
186
|
-
<div class="vsdk-title">
|
|
187
|
-
有接入卡点?30 秒反馈
|
|
188
|
-
<span class="vsdk-badge">全部选填</span>
|
|
189
|
-
</div>
|
|
190
|
-
|
|
191
|
-
<div class="vsdk-desc">
|
|
192
|
-
正在了解或评估视频会议 SDK?UI、功能、文档或套餐开通如有卡点,欢迎填写反馈。
|
|
193
|
-
</div>
|
|
194
|
-
|
|
195
|
-
</div>
|
|
196
|
-
|
|
197
|
-
</div>
|
|
198
|
-
|
|
199
|
-
<div class="vsdk-card-right">
|
|
200
|
-
<a class="vsdk-cta" href="https://wj.qq.com/s2/27395009/ac34/" target="_blank">
|
|
201
|
-
填写反馈
|
|
202
|
-
</a>
|
|
203
|
-
</div>
|
|
204
|
-
|
|
205
|
-
</div>
|
|
206
|
-
|
|
207
5
|
## 前提条件
|
|
208
6
|
|
|
209
7
|
### 开通服务
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
本文档介绍如何在 uniapp 业务项目中集成 TUIRoomKit,快速获得开箱即用的多人音视频会议能力。
|
|
2
|
+
|
|
3
|
+
## 前提条件
|
|
4
|
+
|
|
5
|
+
### 开通服务
|
|
6
|
+
|
|
7
|
+
请参考 开通服务 领取 TUIRoomKit 体验版,并在 [应用管理](https://console.cloud.tencent.com/trtc) 页面获取以下信息:
|
|
8
|
+
- **SDKAppID**:应用标识(必填),腾讯云基于 SDKAppID 完成计费统计。
|
|
9
|
+
|
|
10
|
+
- **SDKSecretKey**:应用密钥,用于初始化配置文件的密钥信息。
|
|
11
|
+
|
|
12
|
+
### 环境准备
|
|
13
|
+
- **IDE**: HBuilderX 升级到新版本。
|
|
14
|
+
|
|
15
|
+
- **语言**: nvue。
|
|
16
|
+
|
|
17
|
+
- **运行环境**: Node.js v12 版本及以上。
|
|
18
|
+
|
|
19
|
+
- **包管理**: npm (版本需与 Node 版本匹配)。
|
|
20
|
+
|
|
21
|
+
- **支持平台**: uni-app 打包 App。
|
|
22
|
+
|
|
23
|
+
## 集成步骤
|
|
24
|
+
|
|
25
|
+
### 步骤1:创建项目
|
|
26
|
+
|
|
27
|
+
打开 HBuilderX,在菜单栏中选择**文件 > 新建 > 项目**,创建一个名为 `room-example` 的 uni-app vue3 项目。
|
|
28
|
+
|
|
29
|
+
### 步骤2:安装 TUIKit 插件
|
|
30
|
+
|
|
31
|
+
进入[【官方】腾讯云聊天+通话+直播响应式 SDK](https://ext.dcloud.net.cn/plugin)。点击**下载插件并导入 HBuilderX**,将插件导入 `room-example` 项目中。
|
|
32
|
+
|
|
33
|
+
### 步骤3:配置原生模块与 Android 权限
|
|
34
|
+
|
|
35
|
+
【Android 权限配置】
|
|
36
|
+
|
|
37
|
+
``` json
|
|
38
|
+
<uses-permission android:name="android.permission.CAMERA"/>
|
|
39
|
+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
40
|
+
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
|
41
|
+
<uses-permission android:name="android.permission.INTERNET"/>
|
|
42
|
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
【iOS 权限配置】
|
|
46
|
+
|
|
47
|
+
``` java
|
|
48
|
+
"privacyDescription" : {
|
|
49
|
+
"NSCameraUsageDescription" : "应用需要访问您的相机以进行直播",
|
|
50
|
+
"NSMicrophoneUsageDescription" : "应用需要访问您的麦克风以进行直播"
|
|
51
|
+
},
|
|
52
|
+
"UIBackgroundModes" : [ "audio" ]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 步骤4:集成 TUIKit
|
|
56
|
+
1. **拷贝 TUIKit 页面及静态资源**:将 `uni_modules/tuikit-atomic-x/quickstart_room/`下的`pages/*` 拷贝到项目 `page` 目录,`static/*` 拷贝到项目 `static` 目录下。
|
|
57
|
+
|
|
58
|
+
【Windows 端】
|
|
59
|
+
``` bash
|
|
60
|
+
xcopy /E /I /Y "uni_modules\tuikit-atomic-x\quickstart_room\static\*" "static\" && xcopy /E /I /Y "uni_modules\tuikit-atomic-x\quickstart_room\pages\*" "pages\"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
【Mac 端】
|
|
64
|
+
``` bash
|
|
65
|
+
cp -r uni_modules/tuikit-atomic-x/quickstart_room/static/* static/ && cp -r uni_modules/tuikit-atomic-x/quickstart_room/pages/* pages/
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
2. **配置页面路由:**替换 `pages.json` 内容,注册所需页面路由:
|
|
69
|
+
|
|
70
|
+
``` json
|
|
71
|
+
{
|
|
72
|
+
"pages": [
|
|
73
|
+
{
|
|
74
|
+
"path": "pages/login/login",
|
|
75
|
+
"style": {
|
|
76
|
+
"navigationStyle": "custom"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"path": "pages/index/index",
|
|
81
|
+
"style": {
|
|
82
|
+
"navigationStyle": "custom"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"path": "pages/scenes/room/index",
|
|
87
|
+
"style": {
|
|
88
|
+
"navigationStyle": "custom"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"path": "pages/scenes/room/join/index",
|
|
93
|
+
"style": {
|
|
94
|
+
"navigationStyle": "custom"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"path": "pages/scenes/room/create/index",
|
|
99
|
+
"style": {
|
|
100
|
+
"navigationStyle": "custom"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"path": "pages/scenes/room/main/index",
|
|
105
|
+
"style": {
|
|
106
|
+
"navigationStyle": "custom",
|
|
107
|
+
"disableScroll": true,
|
|
108
|
+
"disableSwipeBack": true
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"globalStyle": {
|
|
113
|
+
"navigationBarTextStyle": "black",
|
|
114
|
+
"navigationBarTitleText": "腾讯云 IM",
|
|
115
|
+
"navigationBarBackgroundColor": "#EBF0F6",
|
|
116
|
+
"backgroundColor": "#F8F8F8"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## 运行和测试
|
|
122
|
+
|
|
123
|
+
> **说明:**
|
|
124
|
+
> 接入过程中遇到任何卡点或有改进建议,欢迎通过 [视频会议 SDK 接入反馈问卷](https://wj.qq.com/s2/27395009/ac34/) 反馈,官方会及时跟进处理。
|
|
125
|
+
>
|
|
126
|
+
|
|
127
|
+
### 步骤1:**制作自定义基座**
|
|
128
|
+
|
|
129
|
+
点击**运行** > **运行到手机或模拟器** > **制作自定义调试基座**。
|
|
130
|
+
|
|
131
|
+
> **说明:**
|
|
132
|
+
> 首次制作自定义基座需要下载 Gradle 依赖,Android 通常需要 10~20 分钟,iOS 需要 5~10 分钟。过程中请勿中断。
|
|
133
|
+
>
|
|
134
|
+
|
|
135
|
+
### 步骤2:**登录**
|
|
136
|
+
|
|
137
|
+
在 `pages/login/login.vue` 中,填入 `SDKAppID`、 `userID`、`SecretKey`,点击**登录**。
|
|
138
|
+
| 参数 | 类型 | 说明 |
|
|
139
|
+
| --- | --- | --- |
|
|
140
|
+
| SDKAppID | Number | SDKAppID 是 RoomKit 客户应用的唯一标识。您可以在 <a href="https://console.cloud.tencent.com/trtc">TRTC 控制台 > 应用管理</a> 创建新应用获取 。<br><strong>说明:</strong><br>SDKAppID 是 RoomKit 客户应用的唯一标识。我们建议每一个独立的 App 都申请一个新的 SDKAppID。不同 SDKAppID 之间是天然隔离的,不能互通。 |
|
|
141
|
+
| SecretKey | String | SecretKey 是 RoomKit 客户应用的密钥。您可以在 <a href="https://console.cloud.tencent.com/trtc">TRTC 控制台 > 应用管理</a> 对应应用获取。<br><strong>安全提示:</strong><br>- 项目示例支持通过 <code>genTestUserSig</code> 函数生成 <code>userSig</code>。该方法中 <code>SecretKey</code> 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。<strong>该方法仅适合本地跑通功能调试</strong>。 正确的 UserSig 签发方式请参见 <a href="https://cloud.tencent.com/document/product/647/17275#formal">服务端生成 UserSig</a>。<br>- 敏感信息(SecretKey)仅用于 Demo 测试,不可提交到代码仓库或用于生产环境。 |
|
|
142
|
+
| userID | String | 用户的唯一标识符,由您定义,只能包含大小写字母(a-z,A-Z)、数字(0-9)、下划线和连字符。 |
|
|
143
|
+
|
|
144
|
+
``` java
|
|
145
|
+
|
|
146
|
+
import { ref } from 'vue'
|
|
147
|
+
import { useLoginState } from '@/uni_modules/tuikit-atomic-x/state/LoginState';
|
|
148
|
+
import { genTestUserSig } from '@/uni_modules/tuikit-atomic-x/debug/GenerateTestUserSig';
|
|
149
|
+
const { login } = useLoginState();
|
|
150
|
+
|
|
151
|
+
const sdkAppId = 0; // SDKAppID
|
|
152
|
+
const userId = ref(''); // userID
|
|
153
|
+
const secretKey = ''; // SecretKey
|
|
154
|
+
|
|
155
|
+
// 登录
|
|
156
|
+
login({
|
|
157
|
+
sdkAppID: sdkAppId,
|
|
158
|
+
userID: userId.value,
|
|
159
|
+
userSig: genTestUserSig({
|
|
160
|
+
SDKAppID: sdkAppId,
|
|
161
|
+
userID: userId.value,
|
|
162
|
+
secretKey: secretKey
|
|
163
|
+
}).userSig,
|
|
164
|
+
success: () => {
|
|
165
|
+
uni.reLaunch({ url: '/pages/scenes/chat/conversationList/conversationList' })
|
|
166
|
+
},
|
|
167
|
+
fail: (code: number, msg: string) => {
|
|
168
|
+
uni.showToast({ title: msg || '登录失败', icon: 'none' })
|
|
169
|
+
}
|
|
170
|
+
})
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### 步骤3:**运行项目**
|
|
174
|
+
|
|
175
|
+
点击**运行** > **运行到手机或模拟器** > **运行到 Android/iOS 基座**,使用制作好的**自定义基座**运行到手机。
|
|
176
|
+
|
|
177
|
+
## AI 助手:知识咨询与代码集成
|
|
178
|
+
|
|
179
|
+
您在接入视频会议 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 Room 组件和 AtomicXCore SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
|
|
180
|
+
|
|
181
|
+
## 高级功能
|
|
182
|
+
|
|
183
|
+
### 屏幕共享
|
|
184
|
+
|
|
185
|
+
#### Android - 无需配置
|
|
186
|
+
|
|
187
|
+
开箱即用。
|
|
188
|
+
|
|
189
|
+
#### iOS - 需配置 Broadcast Upload Extension
|
|
190
|
+
|
|
191
|
+
##### **步骤1:生成并绑定** Extension
|
|
192
|
+
|
|
193
|
+
使用您的账号 [登录](https://developer.apple.com/),进行以下操作,注意完成后需要下载对应的 Provisioning Profile。
|
|
194
|
+
1. 单击 Certificates, IDs & Profiles。
|
|
195
|
+
|
|
196
|
+
2. 在右侧的界面中单击加号。
|
|
197
|
+
|
|
198
|
+
3. 选择 App Groups,单击 Continue。
|
|
199
|
+
|
|
200
|
+
4. 在弹出的表单中填写 Description 和 Identifier,其中 Identifier 需要传入接口中的对应的 AppGroup 参数。完成后单击 Continue。
|
|
201
|
+
|
|
202
|
+
5. 回到 Identifier 页面,左上边的菜单中选择 App IDs,然后单击您的 App ID(主 App 与 Extension 的 AppID 需要进行同样的配置)。
|
|
203
|
+
|
|
204
|
+
6. 选中 App Groups 并单击 Edit。
|
|
205
|
+
|
|
206
|
+
7. 在弹出的表单中选择您之前创建的 App Group,单击 Continue 返回编辑页,单击 Save 保存。
|
|
207
|
+
|
|
208
|
+
##### **步骤2:配置屏幕共享扩展。**
|
|
209
|
+
|
|
210
|
+
2. 在 `nativeResources/ios` 下新建 `ios-extension.json` 文件,配置文件内容如下:
|
|
211
|
+
|
|
212
|
+
|参数|说明|
|
|
213
|
+
|---------|---------|
|
|
214
|
+
|identifier|步骤1中 Apple 开发者后台创建的 Extension 的 Bundle ID。|
|
|
215
|
+
|profile|`nativeResources/ios` 下的 .mobileprovision 的文件名。|
|
|
216
|
+
|entitlements.com.apple.security.application-groups|步骤1中 Apple 开发者后台创建的 App Group ID。|
|
|
217
|
+
|
|
218
|
+
``` java
|
|
219
|
+
{
|
|
220
|
+
"ScreenShareExtension.appex": {
|
|
221
|
+
"identifier": "xxx",
|
|
222
|
+
"profile": "xxx.mobileprovision",
|
|
223
|
+
"entitlements": {
|
|
224
|
+
"com.apple.security.application-groups": ["xxx"]
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
3. 在 `nativeResources/ios` 下新建 UniApp.entitlements 文件,配置文件内容如下:
|
|
231
|
+
|
|
232
|
+
|**参数**|**说明**|
|
|
233
|
+
|---------|---------|
|
|
234
|
+
|com.apple.security.application-groups|步骤1中 Apple 开发者后台创建的 App Group ID。|
|
|
235
|
+
|
|
236
|
+
``` xml
|
|
237
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
238
|
+
<plist version="1.0">
|
|
239
|
+
<dict>
|
|
240
|
+
<key>com.apple.security.application-groups</key>
|
|
241
|
+
<array>
|
|
242
|
+
<string>xxx</string>
|
|
243
|
+
</array>
|
|
244
|
+
</dict>
|
|
245
|
+
</plist>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
4. 在 项目根目录下新建 `Info.plist` 文件,配置文件内容如下:
|
|
249
|
+
|
|
250
|
+
|**参数**|**说明**|
|
|
251
|
+
|---------|---------|
|
|
252
|
+
|TUIRoomAppGroup|步骤1中 Apple 开发者后台创建的 App Group ID。|
|
|
253
|
+
|
|
254
|
+
``` xml
|
|
255
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
256
|
+
<plist version="1.0">
|
|
257
|
+
<dict>
|
|
258
|
+
<key>TUIRoomAppGroup</key>
|
|
259
|
+
<string>xxx</string>
|
|
260
|
+
</dict>
|
|
261
|
+
</plist>
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
##### **步骤3:**重新制作自定义基座**。**
|
|
265
|
+
|
|
266
|
+
点击**运行** > **运行到手机或模拟器** > **制作 iOS 自定义调试基座。**
|
|
267
|
+
|
|
268
|
+
## 常见问题
|
|
269
|
+
|
|
270
|
+
#### **该 TUIKit 插件是否支持编译到 H5 或微信小程序?**
|
|
271
|
+
|
|
272
|
+
**不支持。**由于新版 TUIKit 基于 **UTS (Uni-app Type Script)** 插件架构开发,深度依赖 Android 和 iOS 的原生能力(如原生渲染引擎、本地数据库、音视频编解码),因此仅支持打包为 **App (Android/iOS)**。
|
|
273
|
+
|
|
274
|
+
#### **我的现有项目全是** `.vue` **页面(Webview 渲染),能直接集成吗?**
|
|
275
|
+
|
|
276
|
+
**可以混用,但需要注意页面模式。**
|
|
277
|
+
|
|
278
|
+
nvue 页面和 vue 页面可以互相跳转,但是 vue 页面的子组件不建议是 nvue 组件。TUIKit 的 UI 组件是 nvue 组件,因此使用 TUIKit 所在的**页面(pages)**必须也是 nvue 文件。
|
|
279
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
TUIRoomKit 内置 AI 会议助手功能,为在线会议提供 AI 智能辅助。会议界面默认提供 AI 会议助手入口按钮,用户可通过该按钮使用以下核心功能:
|
|
2
|
+
- **AI 实时字幕:**在会议进行中,实时将语音讨论内容转化为文字字幕并显示在屏幕上,辅助沟通与理解。
|
|
3
|
+
|
|
4
|
+
- **AI 实时翻译:**开启 AI 实时字幕后,默认同步开启实时翻译功能。房主可设置翻译语言,具体支持的语言。
|
|
5
|
+
|
|
6
|
+
- **AI 实时会议记录:**在会议进行中,持续将语音讨论内容转录为文本记录,便于会后整理与回顾。
|
|
7
|
+
|
|
8
|
+
## 前提条件
|
|
9
|
+
|
|
10
|
+
### 1. 开通智能语音服务
|
|
11
|
+
|
|
12
|
+
使用 AI 功能,会产生费用消耗,计费规则参考 AI 智能语音。
|
|
13
|
+
|
|
14
|
+
### 2. 基础环境集成
|
|
15
|
+
|
|
16
|
+
请参考 [快速接入](https://cloud.tencent.com/document/product/647/81962) 将 `@tencentcloud/roomkit-web-vue3` 集成到项目中,确保版本 `≥ 5.1.2`。
|
|
17
|
+
|
|
18
|
+
## 显示或隐藏 AI 会议助手
|
|
19
|
+
|
|
20
|
+
AI 会议助手入口按钮默认显示在会议界面,无需额外配置即可使用。如需隐藏或重新显示该按钮,可调用 `conference.setWidgetVisible` 接口控制 `AIToolsWidget` 组件的可见性。
|
|
21
|
+
|
|
22
|
+
> **说明:**
|
|
23
|
+
> 入口按钮显示后不会自动开启转录任务,需由房主主动点击「AI 实时字幕」或「AI 实时会议记录」后,组件内部才会开启 AI 转录任务。
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
``` typescript
|
|
27
|
+
<template>
|
|
28
|
+
<ConferenceMainView />
|
|
29
|
+
</template>
|
|
30
|
+
|
|
31
|
+
<script setup lang="ts">
|
|
32
|
+
import { conference, BuiltinWidget } from '@tencentcloud/roomkit-web-vue3';
|
|
33
|
+
|
|
34
|
+
// AI 会议助手入口按钮默认显示;如需隐藏,可将其可见性设为 false
|
|
35
|
+
conference.setWidgetVisible({ [BuiltinWidget.AIToolsWidget]: false });
|
|
36
|
+
</script>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 关闭 AI 会议助手
|
|
40
|
+
|
|
41
|
+
使用 **AI 会议助手**组件时,开发者无需手动关闭 AI 转录任务。组件内部已实现自动清理机制:
|
|
42
|
+
- **退出房间时**:自动停止 AI 转录任务。
|
|
43
|
+
|
|
44
|
+
- **资源释放**:自动清理相关内存资源。
|
|
45
|
+
|
|
46
|
+
## 开发注意事项
|
|
47
|
+
- **版本依赖**:AI 会议助手功能需要 `@tencentcloud/roomkit-web-vue3` 版本 ≥ 5.1.2,请确保已安装符合要求的版本。
|
|
48
|
+
|
|
49
|
+
- **调用时机:**入口按钮默认显示,无需额外配置。如需通过 `conference.setWidgetVisible` 调整按钮的显示状态,请确保该代码在 `ConferenceMainView` 加载前执行。
|
|
50
|
+
|
|
51
|
+
- **计费逻辑:**AI 转录任务由房主主动开启,同一个房间只计费一次,普通成员使用不会重复计费。
|
|
52
|
+
|
|
53
|
+
- **网络要求:**AI 识别依赖稳定的上行网络,网络抖动可能导致字幕出现延迟或丢失。
|
|
54
|
+
|
|
55
|
+
## 常见问题
|
|
56
|
+
|
|
57
|
+
### 会议界面未出现“AI 会议助手”按钮?
|
|
58
|
+
|
|
59
|
+
**问题描述:**已集成 TUIRoomKit,但会议界面未出现“AI 会议助手”按钮。
|
|
60
|
+
|
|
61
|
+
**解决方案:**AI 会议助手入口按钮默认显示,若未出现请依次排查:1. 是否调用了 `conference.setWidgetVisible` 将 `AIToolsWidget` 设为了 `false`;2. 当前是否为直播(Webinar)房间,该场景暂不展示该按钮;3. `@tencentcloud/roomkit-web-vue3` 版本是否符合要求。
|
|
62
|
+
|
|
63
|
+
### 房间内所有成员都能使用 AI 功能吗?
|
|
64
|
+
|
|
65
|
+
**功能说明**:转录任务仅房主可开启。房主点击开启 AI 转录任务后,房间内所有成员均可使用 AI 实时字幕与会议记录功能。
|
|
66
|
+
|
|
67
|
+
### AI 功能是否会产生重复计费?
|
|
68
|
+
|
|
69
|
+
**计费说明**:不会重复计费。转录任务仅由房主开启一次,因此每个会议房间只会产生一次计费。若房主未开启转录任务,则不会开启转录,也不会产生相关费用。
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
AI 降噪源自腾讯天籁实验室的 AI 算法,能够智能检测和去除混合在传播信号中的噪声干扰,从而显著提高语音的质量,提升声音的清晰度,改善用户听感。AI 降噪特性在 TUIRoomKit 中的应用,可以让用户在办公室、网吧、商场、户外等各种环境下都能够获得清晰、稳定的声音体验。
|
|
2
|
+
|
|
3
|
+
## 在线体验
|
|
4
|
+
|
|
5
|
+
您也可以进入我们的 [实时音视频体验馆](https://rtcube.cloud.tencent.com/component/experience-center/index.html#/detail),在线体验 AI 降噪能力带来的优秀声音效果。
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
## 开通 AI 降噪
|
|
10
|
+
|
|
11
|
+
TUIRoomKit 提供了非常便捷的开通流程,您只需要两个步骤即可体验:
|
|
12
|
+
1. 进入 实时音视频控制台 ,选择您需要开通的应用。
|
|
13
|
+
|
|
14
|
+
2. 进入增值功能,打开 AI 降噪开关即可。
|
|
15
|
+
|
|
16
|
+
然后您就可以在您的应用上愉快的体验 TUIRoomKit 更好的降噪效果了!
|
|
17
|
+
|
|
18
|
+
## Web 端资源配置
|
|
19
|
+
|
|
20
|
+
TUIRoomKit 在用户进房后会自动开启 AI 降噪,前提是您已完成以下 assets 资源配置:
|
|
21
|
+
1. 将 `node_modules/trtc-sdk-v5/plugins/ai-denoiser` 目录下的 `denoiser-wasm.js` 文件发布至 CDN 或静态资源服务器中,并确保文件处于同一个公共路径下。详细说明请参见 [AI 降噪插件文档](https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-35-advanced-ai-denoiser.html)。
|
|
22
|
+
|
|
23
|
+
2. 在进房前,调用以下接口将上述公共路径传入 TUIRoomKit:
|
|
24
|
+
|
|
25
|
+
【含 UI 集成】
|
|
26
|
+
|
|
27
|
+
【Vue3】
|
|
28
|
+
``` typescript
|
|
29
|
+
import { conference } from '@tencentcloud/roomkit-web-vue3';
|
|
30
|
+
|
|
31
|
+
conference.callExperimentalAPI({
|
|
32
|
+
api: 'setRtcAssetsPath',
|
|
33
|
+
params: { assetsPath: 'XXXXX/assets/' }, // denoiser-wasm.js 文件所在目录路径
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
【React】
|
|
38
|
+
``` typescript
|
|
39
|
+
import { conference } from '@tencentcloud/roomkit-web-react';
|
|
40
|
+
|
|
41
|
+
conference.callExperimentalAPI({
|
|
42
|
+
api: 'setRtcAssetsPath',
|
|
43
|
+
params: { assetsPath: 'XXXXX/assets/' }, // denoiser-wasm.js 文件所在目录路径
|
|
44
|
+
});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
【无 UI 集成】
|
|
48
|
+
|
|
49
|
+
【Vue3】
|
|
50
|
+
``` typescript
|
|
51
|
+
import { callExperimentalAPI } from 'tuikit-atomicx-vue3';
|
|
52
|
+
|
|
53
|
+
callExperimentalAPI({
|
|
54
|
+
api: 'setRtcAssetsPath',
|
|
55
|
+
params: { assetsPath: 'XXXXX/assets/' }, // denoiser-wasm.js 文件所在目录路径
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
【React】
|
|
60
|
+
``` typescript
|
|
61
|
+
import { callExperimentalAPI } from 'tuikit-atomicx-react';
|
|
62
|
+
|
|
63
|
+
callExperimentalAPI({
|
|
64
|
+
api: 'setRtcAssetsPath',
|
|
65
|
+
params: { assetsPath: 'XXXXX/assets/' }, // denoiser-wasm.js 文件所在目录路径
|
|
66
|
+
});
|
|
67
|
+
```
|