@tencentcloud/sdk-mcp 1.3.4 → 1.3.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 (105) hide show
  1. package/package.json +1 -1
  2. package/resource/doc/chatuikit/android/features/theme.md +363 -0
  3. package/resource/doc/chatuikit/android/workflow.md +0 -0
  4. package/resource/doc/chatuikit/{android/client_api_android.md → faq/android_sdk/client-api.md} +0 -1
  5. package/resource/doc/chatuikit/faq/{native_sdk/faq.md → common/product.md} +8 -0
  6. package/resource/doc/chatuikit/faq/flutter_sdk/faq.md +54 -0
  7. package/resource/doc/chatuikit/faq/web_sdk/faq.md +1 -1
  8. package/resource/doc/chatuikit/flutter/features/theme.md +379 -0
  9. package/resource/doc/chatuikit/flutter/workflow.md +816 -0
  10. package/resource/doc/chatuikit/iOS/features/theme.md +416 -0
  11. package/resource/doc/chatuikit/iOS/workflow.md +0 -0
  12. package/resource/doc/chatuikit/react/components/chat-setting.md +124 -0
  13. package/resource/doc/chatuikit/react/components/contact-list.md +1331 -0
  14. package/resource/doc/chatuikit/react/components/search.md +885 -0
  15. package/resource/doc/chatuikit/vue/components/chat-setting.md +88 -0
  16. package/resource/doc/chatuikit/vue/components/contact-list.md +679 -0
  17. package/resource/doc/chatuikit/vue/components/search.md +1384 -0
  18. package/resource/doc/livekit/live/android/workflow.md +137 -4
  19. package/resource/doc/livekit/live/flutter/live-audience-list.md +337 -0
  20. package/resource/doc/livekit/live/flutter/live-audio-effect.md +739 -0
  21. package/resource/doc/livekit/live/flutter/live-barrage.md +578 -0
  22. package/resource/doc/livekit/live/flutter/live-base-beauty.md +484 -0
  23. package/resource/doc/livekit/live/flutter/live-co-guest-interaction.md +606 -0
  24. package/resource/doc/livekit/live/flutter/live-gift.md +812 -0
  25. package/resource/doc/livekit/live/flutter/live-host-interaction.md +1113 -0
  26. package/resource/doc/livekit/live/flutter/live-integration.md +1029 -0
  27. package/resource/doc/livekit/live/flutter/live-live-list.md +861 -0
  28. package/resource/doc/livekit/live/ios/live-audience-list.md +335 -0
  29. package/resource/doc/livekit/live/ios/live-audio-effect.md +373 -0
  30. package/resource/doc/livekit/live/ios/live-barrage.md +529 -0
  31. package/resource/doc/livekit/live/ios/live-base-beauty.md +237 -0
  32. package/resource/doc/livekit/live/ios/live-co-guest-interaction.md +483 -0
  33. package/resource/doc/livekit/live/ios/live-gift.md +785 -0
  34. package/resource/doc/livekit/live/ios/live-host-interaction.md +743 -0
  35. package/resource/doc/livekit/live/ios/live-integration.md +822 -0
  36. package/resource/doc/livekit/live/ios/live-live-list.md +535 -0
  37. package/resource/doc/livekit/live/ios/workflow.md +352 -0
  38. package/resource/doc/rtcengine/faq/web/web.md +2 -2
  39. package/resource/doc/rtcengine/web/how_to_integrated_web_sdk.md +2 -2
  40. package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +84 -0
  41. package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +86 -0
  42. package/resource/doc/rtcengine/web/plugin/22-advanced-audio-mixer.md +220 -0
  43. package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +217 -0
  44. package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +137 -0
  45. package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +97 -0
  46. package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +453 -0
  47. package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +180 -0
  48. package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +349 -0
  49. package/resource/doc/rtcengine/web/plugin/29-advanced-water-mark.md +149 -0
  50. package/resource/doc/rtcengine/web/plugin/30-advanced-cross-room-link.md +96 -0
  51. package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +405 -0
  52. package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +244 -0
  53. package/resource/doc/rtcengine/web/plugin/35-advanced-ai-denoiser.md +84 -0
  54. package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +202 -0
  55. package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +98 -0
  56. package/resource/doc/rtcengine/web/plugin/38-advanced-basic-beauty.md +95 -0
  57. package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +33 -0
  58. package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +380 -0
  59. package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +91 -0
  60. package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +314 -0
  61. package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +180 -0
  62. package/tools/chat/get-native-chat-feature-detail.js +30 -0
  63. package/tools/chat/get-native-chat-feature-detail.js.map +1 -0
  64. package/tools/chat/get-native-chat-integration.js +30 -12
  65. package/tools/chat/get-native-chat-integration.js.map +1 -1
  66. package/tools/common/get-faq.js +2 -4
  67. package/tools/common/get-faq.js.map +1 -1
  68. package/tools/definitions/get_native_chat_feature_detail_def.js +32 -0
  69. package/tools/definitions/get_native_chat_feature_detail_def.js.map +1 -0
  70. package/tools/definitions/get_native_chat_uikit_integration_def.js +18 -6
  71. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  72. package/tools/definitions/{get_native_live_extra_features_def.js → get_native_live_uikit_extra_features_def.js} +3 -3
  73. package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +1 -0
  74. package/tools/definitions/{get_native_live_interaction_def.js → get_native_live_uikit_interaction_def.js} +3 -3
  75. package/tools/definitions/get_native_live_uikit_interaction_def.js.map +1 -0
  76. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +46 -7
  77. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
  78. package/tools/index.js +6 -4
  79. package/tools/index.js.map +1 -1
  80. package/tools/live/{get_native_live_extra_features.js → get_native_live_uikit_extra_features.js} +4 -4
  81. package/tools/live/get_native_live_uikit_extra_features.js.map +1 -0
  82. package/tools/live/{get_native_live_interaction.js → get_native_live_uikit_interaction.js} +4 -4
  83. package/tools/live/get_native_live_uikit_interaction.js.map +1 -0
  84. package/tools/rtcengine/get-trtc-web-sdk-faq.js +1 -1
  85. package/tools/rtcengine/get-trtc-web-sdk-plugin.js +45 -0
  86. package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +1 -0
  87. package/utils/handle-component-name.js +0 -16
  88. package/utils/handle-component-name.js.map +1 -1
  89. package/utils/report-cls-client.js +1 -1
  90. package/utils/report-es-client.js +1 -1
  91. package/resource/doc/chatuikit/android/integrate_tuichat_only_android.md +0 -382
  92. package/resource/doc/chatuikit/android/ui_api_android.md +0 -418
  93. package/resource/doc/chatuikit/iOS/integrate_tuichat_only_iOS.md +0 -993
  94. package/resource/doc/chatuikit/iOS/ui_api_iOS.md +0 -526
  95. package/tools/definitions/get_native_live_extra_features_def.js.map +0 -1
  96. package/tools/definitions/get_native_live_interaction_def.js.map +0 -1
  97. package/tools/live/get_native_live_extra_features.js.map +0 -1
  98. package/tools/live/get_native_live_interaction.js.map +0 -1
  99. /package/resource/doc/chatuikit/android/{integrate_tuikit_android.md → integration.md} +0 -0
  100. /package/resource/doc/chatuikit/{flutter/client_api_Flutter.md → faq/flutter_sdk/client-api.md} +0 -0
  101. /package/resource/doc/chatuikit/{iOS/client_api_iOS.md → faq/ios_sdk/client-api.md} +0 -0
  102. /package/resource/doc/chatuikit/flutter/{integrate_tuikit_Flutter.md → integration.md} +0 -0
  103. /package/resource/doc/chatuikit/iOS/{integrate_tuikit_iOS.md → integration.md} +0 -0
  104. /package/resource/doc/chatuikit/react/components/{chatheader.md → chat-header.md} +0 -0
  105. /package/resource/doc/chatuikit/vue/components/{chatheader.md → chat-header.md} +0 -0
@@ -0,0 +1,349 @@
1
+ ## 功能描述
2
+
3
+ 本文主要描述如何使用美颜插件。
4
+
5
+ ## 前提条件
6
+
7
+ - 需要使用美颜功能的 sdkAppId 已开通专业版包月套餐。请参见文档 [包月套餐计费说明](https://www.tencentcloud.com/zh/document/product/647/56025)
8
+ - [TRTC SDK](https://www.npmjs.com/package/trtc-sdk-v5) 版本需要 >= 5.5.0
9
+ - 各平台系统及配置要求如下表:
10
+
11
+
12
+ <table>
13
+ <tr>
14
+ <td rowspan="1" colSpan="1" >平台</td>
15
+
16
+ <td rowspan="1" colSpan="1" >操作系统</td>
17
+
18
+ <td rowspan="1" colSpan="1" >浏览器版本</td>
19
+
20
+ <td rowspan="1" colSpan="1" >fps</td>
21
+
22
+ <td rowspan="1" colSpan="1" >推荐配置</td>
23
+
24
+ <td rowspan="1" colSpan="1" >备注</td>
25
+ </tr>
26
+
27
+ <tr>
28
+ <td rowspan="8" colSpan="1" >Web</td>
29
+
30
+ <td rowspan="2" colSpan="1" >Windows</td>
31
+
32
+ <td rowspan="2" colSpan="1" >Chrome 90+<br>Firefox 90+<br>Edge 97+</td>
33
+
34
+ <td rowspan="1" colSpan="1" >30</td>
35
+
36
+ <td rowspan="1" colSpan="1" >内存:16GB<br>CPU:i5-10500<br>GPU:独显 2GB</td>
37
+
38
+ <td rowspan="3" colSpan="1" >建议使用最新版 Chrome 浏览器<br> <b> (开启浏览器硬件加速)</b></td>
39
+ </tr>
40
+
41
+ <tr>
42
+ <td rowspan="1" colSpan="1" >15</td>
43
+
44
+ <td rowspan="1" colSpan="1" >内存:8GB<br>CPU:i3-8300<br>GPU:intel 核显 1GB</td>
45
+ </tr>
46
+
47
+ <tr>
48
+ <td rowspan="1" colSpan="1" >Mac</td>
49
+
50
+ <td rowspan="1" colSpan="1" >Chrome 98+<br>Firefox 96+<br>Safari 14+</td>
51
+
52
+ <td rowspan="1" colSpan="1" >30</td>
53
+
54
+ <td rowspan="1" colSpan="1" >2019年 MacBook<br>内存:16GB(2667MHz)<br>CPU:i7(6核 2.60GHz)<br>GPU:AMD Radeon 5300M</td>
55
+ </tr>
56
+
57
+ <tr>
58
+ <td rowspan="3" colSpan="1" >Android</td>
59
+
60
+ <td rowspan="3" colSpan="1" >微信内嵌浏览器<br>Chrome<br>火狐浏览器<br>小米浏览器<br>华为浏览器</td>
61
+
62
+ <td rowspan="1" colSpan="1" >30</td>
63
+
64
+ <td rowspan="1" colSpan="1" >高端机(高通骁龙 8 Gen1 等)</td>
65
+
66
+ <td rowspan="3" colSpan="1" >建议使用微信内嵌、Chrome 或火狐浏览器等主流浏览器<br>
67
+ </tr>
68
+
69
+ <tr>
70
+ <td rowspan="1" colSpan="1" >20</td>
71
+
72
+ <td rowspan="1" colSpan="1" >中端机(天玑 8000-MAX 等)</td>
73
+ </tr>
74
+
75
+ <tr>
76
+ <td rowspan="1" colSpan="1" >10</td>
77
+
78
+ <td rowspan="1" colSpan="1" >低端机(高通骁龙 660 等)</td>
79
+ </tr>
80
+
81
+ <tr>
82
+ <td rowspan="2" colSpan="1" >iOS</td>
83
+
84
+ <td rowspan="2" colSpan="1" >微信内嵌浏览器<br>Chrome<br>Safari<br>Firefox</td>
85
+
86
+ <td rowspan="1" colSpan="1" >30</td>
87
+
88
+ <td rowspan="1" colSpan="1" >iPhone 13</td>
89
+
90
+ <td rowspan="2" colSpan="1" >- 要求 iOS 14.4 以上系统<br>- 建议使用 Chrome 或 Safari 浏览器<br>- <b> 不支持 QQ 浏览器</b></td>
91
+ </tr>
92
+
93
+ <tr>
94
+ <td rowspan="1" colSpan="1" >20</td>
95
+
96
+ <td rowspan="1" colSpan="1" >iPhone xr</td>
97
+ </tr>
98
+
99
+ </tr>
100
+ </table>
101
+
102
+ ## 使用步骤
103
+
104
+ ### 一、注册插件
105
+
106
+ 在使用之前,首先需要注册插件。以下是注册插件的示例代码:
107
+
108
+ ```js
109
+ import TRTC from 'trtc-sdk-v5';
110
+ import { Beauty } from 'trtc-sdk-v5/plugins/video-effect/beauty';
111
+
112
+ const trtc = TRTC.create({ plugins: [Beauty] });
113
+ ```
114
+
115
+ ### 二、开启本地摄像头
116
+
117
+ ```js
118
+ await trtc.startLocalVideo({
119
+ view: 'local-video' // 填入自己业务需要的 div id
120
+ });
121
+ ```
122
+
123
+ ### 三、使用美颜和内置 2D 特效
124
+
125
+ #### 美颜效果
126
+
127
+ 美颜功能的开启、更新和停止通过三个接口来控制
128
+
129
+ - `trtc.startPlugin('Beauty', options)` 开启美颜
130
+ - `trtc.updatePlugin('Beauty', options)` 更新美颜参数
131
+ - `trtc.stopPlugin('Beauty')` 停止美颜
132
+
133
+ 其中 `options` 参数支持 6 种美颜参数:
134
+
135
+ ```ts
136
+ type BeautifyOptions = {
137
+ whiten?: number; // 美白 0-1
138
+ dermabrasion?: number; // 磨皮 0-1
139
+ lift?: number; // 窄脸 0-1
140
+ shave?: number; // 削脸 0-1
141
+ eye?: number; // 大眼 0-1
142
+ chin?: number; // 下巴 0-1
143
+ }
144
+ ```
145
+
146
+ #### 内置 2D 特效贴纸
147
+
148
+ 本插件提供内置的 2D 特效贴纸,下面是列表
149
+
150
+ | 特效 ID | 名称 |
151
+ |---------------------|--------------------|
152
+ | EDE5D18065451445 | 奶瓶面膜 |
153
+ | 7A62218064EF7959 | 毛毡发箍 |
154
+ | B4D63180653948C3 | 刘海发带 |
155
+ | D7C6418064B90F4C | 可爱喵 |
156
+ | 1D6EB18069D76A62 | 波点女孩 |
157
+ | CBE7618065D9D76F | 爱心烟花 |
158
+ | 9B86618065596018 | 可爱猪猪 |
159
+ | 428C518065369ACF | 双麻花 |
160
+ | B30E218064F7B397 | 元气贴纸 |
161
+ | AE3C81806521B49B | 兔兔酱 |
162
+
163
+ 可以在参数中传入 `EffectListOptions` 类型的数组,将 `EffectId` 填入 `id` 字段,`intensity` 用于控制透明度。传入的 `EffectId` 对应的贴纸将会生效。更多信息请参考示例代码。
164
+
165
+ ```ts
166
+ type EffectListOptions = {
167
+ id: string;
168
+ intensity?: number; // specify the strength of the effect
169
+ }
170
+ ```
171
+
172
+ ## 示例代码
173
+
174
+ 以下是代码示例:
175
+
176
+ 开启插件时,`options` 还需要额外携带当前用户的登录信息(sdkAppId、userId、userSig)用作校验。
177
+
178
+ ```javascript
179
+ // 开启插件
180
+ const options = {
181
+ sdkAppId: 0,
182
+ userId: '',
183
+ userSig: '',
184
+
185
+ whiten: 0.5; // 美白 0-1
186
+ dermabrasion: 0.5; // 磨皮 0-1
187
+ lift: 0.5; // 窄脸 0-1
188
+ shave: 0.5; // 削脸 0-1
189
+ eye: 0.5; // 大眼 0-1
190
+ chin: 0.5; // 下巴 0-1
191
+
192
+ // 特效数组
193
+ effect: [{
194
+ id: '7A62218064EF7959', // 特效 ID
195
+ intensity: 0.7 // 生效强度
196
+ }]
197
+ }
198
+ try {
199
+ await trtc.startPlugin('Beauty', options);
200
+ } catch (error) {
201
+ console.error('Beauty start failed', error);
202
+ }
203
+ ```
204
+
205
+ ```javascript
206
+ // 更新美颜参数
207
+ const options = {
208
+ whiten: 0.5; // 美白 0-1
209
+ dermabrasion: 0.5; // 磨皮 0-1
210
+ lift: 0.5; // 窄脸 0-1
211
+ shave: 0.5; // 削脸 0-1
212
+ eye: 0.5; // 大眼 0-1
213
+ chin: 0.5; // 下巴 0-1
214
+
215
+ effect: [{
216
+ id: '7A62218064EF7959',
217
+ intensity: 0.7,
218
+ },{
219
+ id: 'D7C6418064B90F4C',
220
+ intensity: 0.7
221
+ }]
222
+ }
223
+ try {
224
+ await trtc.updatePlugin('Beauty', options);
225
+ } catch (error) {
226
+ console.error('Beauty update failed', error);
227
+ }
228
+ ```
229
+
230
+ ```javascript
231
+ // 停止美颜
232
+ try {
233
+ await trtc.stopPlugin('Beauty');
234
+ } catch (error) {
235
+ console.error('Beauty stop failed', error);
236
+ }
237
+ ```
238
+
239
+ ## API 说明
240
+
241
+ ### trtc.startPlugin('Beauty', options)
242
+
243
+ 用于开启美颜
244
+
245
+ #### options
246
+
247
+ | Name | Type | Attributes | Description |
248
+ |--------|-----------|--------------|-------------------------------------|
249
+ | sdkAppId | `number` | 必填 | 当前应用 ID |
250
+ | userId | `string` | 必填 | 当前用户 ID |
251
+ | userSig | `string` | 必填 | 用户 ID 对应的 UserSig |
252
+ | whiten | `number` | 选填 | 美白 ,取值范围 [0,1] |
253
+ | dermabrasion | `number` | 选填 | 磨皮 ,取值范围 [0,1] |
254
+ | lift | `number` | 选填 | 窄脸 ,取值范围 [0,1] |
255
+ | shave | `number` | 选填 | 削脸 ,取值范围 [0,1] |
256
+ | eye | `number` | 选填 | 大眼 ,取值范围 [0,1] |
257
+ | chin | `number` | 选填 | 下巴,取值范围 [0,1] |
258
+ | effect | `Array<EffectListOptions>` | 选填 | 特效列表 |
259
+ | onError | `(error) => {}` | 选填 | 运行过程中发生错误的回调 <br> - error.code=10000003 渲染耗时长 <br> - error.code=10000006 浏览器特性支持不足,可能会出现卡顿情况 <br> 推荐处理方法可参考文末常见问题 |
260
+
261
+ EffectListOptions:
262
+
263
+ | Name | Type | Attributes | Description |
264
+ |------------|----------|------------|-----------------------------------|
265
+ | id | `number` | 必填 | 特效 ID |
266
+ | intensity | `string` | 选填 | 生效强度 |
267
+
268
+ | 特效 ID | 名称 |
269
+ |---------------------|--------------------|
270
+ | EDE5D18065451445 | 奶瓶面膜 |
271
+ | 7A62218064EF7959 | 毛毡发箍 |
272
+ | B4D63180653948C3 | 刘海发带 |
273
+ | D7C6418064B90F4C | 可爱喵 |
274
+ | 1D6EB18069D76A62 | 波点女孩 |
275
+ | CBE7618065D9D76F | 爱心烟花 |
276
+ | 9B86618065596018 | 可爱猪猪 |
277
+ | 428C518065369ACF | 双麻花 |
278
+ | B30E218064F7B397 | 元气贴纸 |
279
+ | AE3C81806521B49B | 兔兔酱 |
280
+
281
+ ### trtc.updatePlugin('Beauty', options)
282
+
283
+ 可修改美颜参数
284
+
285
+ #### options
286
+
287
+ | Name | Type | Attributes | Description |
288
+ |--------|-----------|--------------|-------------------------------------|
289
+ | whiten | `number` | 选填 | 美白 ,取值范围 [0,1] |
290
+ | dermabrasion | `number` | 选填 | 磨皮 ,取值范围 [0,1] |
291
+ | lift | `number` | 选填 | 窄脸 ,取值范围 [0,1] |
292
+ | shave | `number` | 选填 | 削脸 ,取值范围 [0,1] |
293
+ | eye | `number` | 选填 | 大眼 ,取值范围 [0,1] |
294
+ | chin | `number` | 选填 | 下巴,取值范围 [0,1] |
295
+ | effect | `Array<EffectListOptions>` | 选填 | 特效列表 |
296
+
297
+ EffectListOptions:
298
+
299
+ | Name | Type | Attributes | Description |
300
+ |------------|----------|------------|-----------------------------------|
301
+ | id | `number` | 必填 | 特效 ID |
302
+ | intensity | `string` | 选填 | 生效强度 |
303
+
304
+ | 特效 ID | 名称 |
305
+ |---------------------|--------------------|
306
+ | EDE5D18065451445 | 奶瓶面膜 |
307
+ | 7A62218064EF7959 | 毛毡发箍 |
308
+ | B4D63180653948C3 | 刘海发带 |
309
+ | D7C6418064B90F4C | 可爱喵 |
310
+ | 1D6EB18069D76A62 | 波点女孩 |
311
+ | CBE7618065D9D76F | 爱心烟花 |
312
+ | 9B86618065596018 | 可爱猪猪 |
313
+ | 428C518065369ACF | 双麻花 |
314
+ | B30E218064F7B397 | 元气贴纸 |
315
+ | AE3C81806521B49B | 兔兔酱 |
316
+
317
+ ### trtc.stopPlugin('Beauty')
318
+
319
+ 关闭美颜
320
+
321
+ ## 常见问题
322
+
323
+ **1. 在 Chrome 中运行 Demo 发现画面颠倒且卡顿**
324
+
325
+ 本插件使用 GPU 进行加速,您需要在浏览器设置中找到使用硬件加速模式并启用。可以将 `chrome://settings/system` 复制到浏览器地址栏,并且打开硬件加速模式。
326
+
327
+ **2. 当设备性能不足造成延迟高,提示渲染耗时长**
328
+
329
+ 可通过监听事件,降低视频分辨率或者帧率。
330
+
331
+ ```javascript
332
+ async function onError(error) {
333
+ const { code } = error;
334
+ if (code === 10000003 || code === 10000006) {
335
+ // 降低分辨率帧率
336
+ await trtc.updateLocalVideo({
337
+ option: {
338
+ profile: '480p_2'
339
+ },
340
+ });
341
+ // await trtc.stopPlugin('Beauty'); // 或者关闭插件
342
+ }
343
+ }
344
+
345
+ await trtc.startPlugin('Beauty', {
346
+ ...// 其他参数
347
+ onError,
348
+ });
349
+ ```
@@ -0,0 +1,149 @@
1
+ ## 功能描述
2
+
3
+ 本文主要介绍如何使用水印插件在视频流上添加图片水印。
4
+
5
+ ## 前提条件
6
+
7
+ - TRTC Web SDK 版本 >= 5.3.2。
8
+
9
+ ## 实现流程
10
+
11
+ ### 引入并注册插件
12
+
13
+ ```javascript
14
+ import { Watermark } from 'trtc-sdk-v5/plugins/video-effect/watermark';
15
+
16
+ let trtc = TRTC.create({ plugins: [Watermark] });
17
+ ```
18
+
19
+ ### 开启本地摄像头
20
+
21
+ ```javascript
22
+ await trtc.startLocalVideo({
23
+ view: 'local-video'
24
+ option: {
25
+ mirror: false
26
+ }
27
+ });
28
+ ```
29
+
30
+ ### 开启水印插件
31
+
32
+ ```javascript
33
+ await trtc.startPlugin('Watermark', {
34
+ imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/trtc-watermark-test.png'
35
+ });
36
+ ```
37
+
38
+ 跑通后可将测试图片 url 换为您自己的水印图片,推荐为可透明的 png 格式。
39
+
40
+ ### 关闭水印
41
+
42
+ ```javascript
43
+ await trtc.stopPlugin('Watermark');
44
+ ```
45
+
46
+ ## API 说明
47
+
48
+ ### trtc.startPlugin('Watermark', options)
49
+
50
+ 用于开启水印
51
+
52
+ #### options
53
+
54
+ | Name | Type | Attributes | Description |
55
+ |--------|-----------|--------------|-------------------------------------|
56
+ | imageUrl | `string` | 必填 | 图片水印地址 |
57
+ | x | `string` | 选填 | 水印左边距 |
58
+ | y | `string` | 选填 | 水印上边距 |
59
+ | size | `string \| number \| object` | 选填 | 传入字符串时:<br> - `"cover"` 缩放背景图片以完全覆盖背景区,可能背景图片部分看不见。 <br> - `"contain"` 缩放背景图片以完全装入背景区,可能背景区部分空白。 <br> 传入数字时: <br> - `x` 表示缩放背景图片 x 倍。如 0.5,取值范围为 `(0,1]` <br> 传入对象时:<br> - 可以传入 `{width: 200, height: 300}` 来手动指定 <br> 默认为 `cover`|
60
+
61
+ **Example:**
62
+
63
+ ```javascript
64
+ await trtc.startPlugin('Watermark', {
65
+ imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
66
+ size: 'contain'
67
+ });
68
+ ```
69
+
70
+ ```javascript
71
+ await trtc.startPlugin('Watermark', {
72
+ imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
73
+ size: 'cover'
74
+ });
75
+ ```
76
+
77
+ ```javascript
78
+ await trtc.startPlugin('Watermark', {
79
+ imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
80
+ x: 0,
81
+ y: 0,
82
+ size: 0.5
83
+ });
84
+ ```
85
+
86
+ ```javascript
87
+ await trtc.startPlugin('Watermark', {
88
+ imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
89
+ x: 0,
90
+ y: 0,
91
+ size: {
92
+ width: 100,
93
+ height: 200
94
+ }
95
+ });
96
+ ```
97
+
98
+ ### trtc.updatePlugin('Watermark')
99
+
100
+ 更新水印的图片、位置、大小。
101
+
102
+ #### options
103
+
104
+ | Name | Type | Attributes | Description |
105
+ |--------|-----------|--------------|-------------------------------------|
106
+ | imageUrl | `string` | 必填 | 图片水印地址 |
107
+ | x | `string` | 选填 | 水印左边距 |
108
+ | y | `string` | 选填 | 水印上边距 |
109
+ | size | `string \| number \| object` | 选填 | 传入字符串时:<br> - `"cover"` 缩放背景图片以完全覆盖背景区,可能背景图片部分看不见。 <br> - `"contain"` 缩放背景图片以完全装入背景区,可能背景区部分空白。 <br> 传入数字时: <br> - `x` 表示缩放背景图片 x 倍。如 0.5,取值范围为 `(0,1]` <br> 传入对象时:<br> - 可以传入 `{width: 200, height: 300}` 来手动指定 <br> 默认为 `cover`|
110
+
111
+ ```javascript
112
+ await trtc.updatePlugin('Watermark', {
113
+ imageUrl: 'https://web.sdk.qcloud.com/trtc/webrtc/test/qer-test/watermark/tv2.png',
114
+ x: 100,
115
+ y: 200,
116
+ size: {
117
+ width: 50,
118
+ height: 50
119
+ }
120
+ });
121
+ ```
122
+
123
+ ### trtc.stopPlugin('Watermark')
124
+
125
+ 关闭水印
126
+
127
+ **Example:**
128
+
129
+ ```javascript
130
+ await trtc.stopPlugin('Watermark');
131
+ ```
132
+
133
+ ## 常见问题
134
+
135
+ **1. 水印是镜像的?**
136
+
137
+ 本地预览的镜像是默认开启的,因此水印也会被镜像,可以将本地预览镜像关闭。
138
+
139
+ ```javascript
140
+ await trtc.updateLocalVideo({
141
+ option: {
142
+ mirror: false
143
+ }
144
+ });
145
+ ```
146
+
147
+ **2. 更新水印画面会黑一下?**
148
+
149
+ 更新 SDK 到 v5.8.6 以上。
@@ -0,0 +1,96 @@
1
+ ## 功能描述
2
+
3
+ 默认情况下,不同房间的音视频流是相互隔离的,只有同一房间内的用户可以进行音视频通话。跨房连麦功能允许不同房间的用户进行音视频通话。
4
+
5
+ 在直播场景中,该功能支持主播之间的通话,并让双方观众观看对方主播。本文介绍如何使用 CrossRoom 插件实现跨房连麦。
6
+
7
+ 跨房连麦支持两种模式:
8
+ - **房间级连麦**:与目标房间的所有主播连麦。
9
+ - **用户级连麦**:与目标房间的某个主播连麦。
10
+
11
+ ## 工作原理
12
+
13
+ - **房间级连麦**:将当前房间所有主播的音视频流额外推送到目标房间,同时将目标房间所有主播的音视频流额外推送到当前房间。
14
+ - **用户级连麦**:将当前房间自己的音视频流额外推送到目标房间,同时将目标房间指定主播的音视频流额外推送到当前房间。
15
+
16
+ ## 使用步骤
17
+
18
+ > **注意**:确保您的 SDK 版本 >= v5.8.0
19
+
20
+ ### 1. 开始跨房连麦
21
+
22
+ ```js
23
+ import { CrossRoom } from 'trtc-sdk-v5/plugins/cross-room';
24
+
25
+ const trtc = TRTC.create({ plugins: [CrossRoom] });
26
+
27
+ await trtc.enterRoom({ sdkAppId, userId: 'user1', userSig, roomId: 7777 });
28
+
29
+ // 将当前房间 7777 的 user1 和目标房间 8888 的 user2 连接。user2 的流会推送到 7777 房间,user1 的流会推送到 8888 房间。
30
+ await trtc.startPlugin('CrossRoom', {
31
+ roomId: 8888,
32
+ // 与 roomId 二选一
33
+ // strRoomId: '8888'
34
+ userId: 'user2' // 不传则表示房间级跨房连麦
35
+ });
36
+ ```
37
+
38
+ #### 参数说明
39
+
40
+ | 参数名 | 类型 | 必填 | 说明 |
41
+ |-------------|----------|------|----------------------------------------|
42
+ | roomId | Number | 否 | 目标房间 ID。 |
43
+ | strRoomId | String | 否 | 目标房间 string 类型 ID,与 roomId 二选一。 |
44
+ | userId | String | 否 | 目标房间的主播 ID,不传表示房间级连麦。|
45
+
46
+ ---
47
+
48
+ ### 2. 更新跨房连麦对端主播的 mute 状态
49
+
50
+ 开启跨房连麦后,对端房间主播的流会推送到当前房间,当前房间内的所有用户都能接收到该主播的音视频流。
51
+
52
+ 通过以下接口,您可以限制跨房主播在当前房间的上行能力(音频/主路视频/辅路视频),影响房间内所有用户。
53
+
54
+ 禁用某种上行能力后,当前房间内的用户将无法接收对应的音视频流,也无法订阅。
55
+
56
+ ```js
57
+ await trtc.updatePlugin('CrossRoom', {
58
+ updateList: [{
59
+ roomId: 8888,
60
+ // strRoomId: '8888'
61
+ userId: 'user2', // 不传则表示房间级跨房连麦
62
+ muteAudio: true,
63
+ muteVideo: false,
64
+ muteSubStream: false,
65
+ }]
66
+ });
67
+ ```
68
+
69
+ #### 参数说明
70
+
71
+ | 参数名 | 类型 | 必填 | 说明 |
72
+ |----------------|----------|------|----------------------------------------|
73
+ | updateList | Array | 是 | 包含需要更新的跨房主播 mute 状态的列表 |
74
+ | updateList[0].roomId | Number | 否 | 目标房间 ID。 |
75
+ | updateList[0].strRoomId | Number | 否 | 目标房间 string 类型 ID,与 roomId 二选一。 |
76
+ | updateList[0].userId | String | 否 | 目标房间的主播 ID,不传表示房间级连麦。|
77
+ | updateList[0].muteAudio | Boolean | 否 | 是否停止跨房主播的音频流。 |
78
+ | updateList[0].muteVideo | Boolean | 否 | 是否停止跨房主播的主路视频流。 |
79
+ | updateList[0].muteSubStream | Boolean | 否 | 是否停止跨房主播的辅路视频流。 |
80
+
81
+ ---
82
+
83
+ ### 3. 停止跨房连麦
84
+
85
+ ```js
86
+ await trtc.stopPlugin('CrossRoom', { roomId: 8888 }); // 停止指定房间的跨房连麦
87
+
88
+ await trtc.stopPlugin('CrossRoom'); // 停止当前用户发起的所有跨房连麦
89
+ ```
90
+
91
+ #### 参数说明
92
+
93
+ | 参数名 | 类型 | 必填 | 说明 |
94
+ |-------------|----------|------|----------------------------------------|
95
+ | roomId | Number | 否 | 目标房间 ID。 |
96
+ | strRoomId | String | 否 | 目标房间 string 类型 ID,与 roomId 二选一 |