@tencent-rtc/mcp 1.2.9 → 1.3.0

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 (54) hide show
  1. package/package.json +1 -1
  2. package/resource/doc/chatuikit/faq/common/server.md +44 -0
  3. package/resource/doc/chatuikit/faq/web_sdk/faq.md +57 -0
  4. package/resource/doc/livekit/vue/components/co-guest-panel.md +3 -3
  5. package/resource/doc/livekit/vue/components/live-view.md +4 -4
  6. package/resource/doc/livekit/vue/{components/live-list.md → live-list-integration.md} +7 -7
  7. package/resource/doc/livekit/vue/{components/live-player.md → live-player-desk-integration.md} +8 -8
  8. package/resource/doc/livekit/vue/live-player-h5-integration.md +269 -0
  9. package/resource/doc/livekit/vue/workflow.md +218 -0
  10. package/resource/doc/trtc/C++/ITRTCCloud.md +4119 -0
  11. package/resource/doc/trtc/C++/ITRTCStatistics.md +325 -0
  12. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +1289 -0
  13. package/resource/doc/trtc/C++/ITXDeviceManager.md +1028 -0
  14. package/resource/doc/trtc/C++/TRTCCloudCallback.md +2650 -0
  15. package/resource/doc/trtc/C++/TRTCTypeDef.md +3600 -0
  16. package/resource/doc/trtc/C++/TXLiteAVCode.md +921 -0
  17. package/resource/doc/trtc/android/TRTCCloud.md +3782 -0
  18. package/resource/doc/trtc/android/TRTCCloudDef.md +3880 -0
  19. package/resource/doc/trtc/android/TRTCCloudListener.md +2431 -0
  20. package/resource/doc/trtc/android/TRTCStatistics.md +295 -0
  21. package/resource/doc/trtc/android/TXAudioEffectManager.md +1289 -0
  22. package/resource/doc/trtc/android/TXBeautyManager.md +979 -0
  23. package/resource/doc/trtc/android/TXDeviceManager.md +440 -0
  24. package/resource/doc/trtc/android/TXLiteAVCode.md +905 -0
  25. package/resource/doc/trtc/iOS/TRTCCloud.md +4238 -0
  26. package/resource/doc/trtc/iOS/TRTCCloudDef.md +3730 -0
  27. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +2531 -0
  28. package/resource/doc/trtc/iOS/TRTCStatistics.md +295 -0
  29. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +1100 -0
  30. package/resource/doc/trtc/iOS/TXBeautyManager.md +985 -0
  31. package/resource/doc/trtc/iOS/TXDeviceManager.md +1024 -0
  32. package/resource/doc/trtc/iOS/TXLiteAVCode.md +928 -0
  33. package/tools/definitions/get_faq_def.js +4 -0
  34. package/tools/definitions/get_faq_def.js.map +1 -1
  35. package/tools/definitions/get_native_live_api_def.js +1 -1
  36. package/tools/definitions/get_trtc_native_api_def.js +16 -0
  37. package/tools/definitions/get_trtc_native_api_def.js.map +1 -0
  38. package/tools/definitions/get_web_live_uikit_component_detail_def.js +13 -8
  39. package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +1 -1
  40. package/tools/definitions/get_web_live_uikit_integration_def.js +32 -0
  41. package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -0
  42. package/tools/index.js +6 -2
  43. package/tools/index.js.map +1 -1
  44. package/tools/live/get-web-live-uikit-integration.js +52 -0
  45. package/tools/live/get-web-live-uikit-integration.js.map +1 -0
  46. package/tools/trtc/get-trtc-native-api.js +31 -0
  47. package/tools/trtc/get-trtc-native-api.js.map +1 -0
  48. package/utils/generate-structured-result.js +34 -0
  49. package/utils/generate-structured-result.js.map +1 -0
  50. package/utils/handle-component-name.js +0 -8
  51. package/utils/handle-component-name.js.map +1 -1
  52. package/utils/report-cls-client.js +1 -1
  53. package/utils/report-es-client.js +1 -1
  54. /package/resource/doc/livekit/vue/{components/broadcast.md → live-pusher-integration.md} +0 -0
@@ -0,0 +1,3600 @@
1
+ # TRTC Real-Time Communication (TRTC SDK) Documentation
2
+ ## Overview
3
+ `TRTCTypeDef.h` provides type definitions for TRTC Real-Time Communication (TRTC SDK) on C++.
4
+
5
+
6
+ ## Struct Type
7
+ <table>
8
+ <tr>
9
+ <td rowspan="1" colSpan="1" >Function List</td>
10
+
11
+ <td rowspan="1" colSpan="1" >Description</td>
12
+ </tr>
13
+
14
+ <tr>
15
+ <td rowspan="1" colSpan="1" >[TRTCParams](https://write.woa.com/document/87030132707430400)</td>
16
+
17
+ <td rowspan="1" colSpan="1" >Room entry parameters</td>
18
+ </tr>
19
+
20
+ <tr>
21
+ <td rowspan="1" colSpan="1" >[TRTCVideoEncParam](https://write.woa.com/document/87030132707430400)</td>
22
+
23
+ <td rowspan="1" colSpan="1" >Video encoding parameters</td>
24
+ </tr>
25
+
26
+ <tr>
27
+ <td rowspan="1" colSpan="1" >[TRTCNetworkQosParam](https://write.woa.com/document/87030132707430400)</td>
28
+
29
+ <td rowspan="1" colSpan="1" >Network flow control (Qos) parameter set</td>
30
+ </tr>
31
+
32
+ <tr>
33
+ <td rowspan="1" colSpan="1" >[TRTCRenderParams](https://write.woa.com/document/87030132707430400)</td>
34
+
35
+ <td rowspan="1" colSpan="1" >Rendering parameters for video footage</td>
36
+ </tr>
37
+
38
+ <tr>
39
+ <td rowspan="1" colSpan="1" >[TRTCQualityInfo](https://write.woa.com/document/87030132707430400)</td>
40
+
41
+ <td rowspan="1" colSpan="1" >Network quality</td>
42
+ </tr>
43
+
44
+ <tr>
45
+ <td rowspan="1" colSpan="1" >[TRTCVolumeInfo](https://write.woa.com/document/87030132707430400)</td>
46
+
47
+ <td rowspan="1" colSpan="1" >Volume level</td>
48
+ </tr>
49
+
50
+ <tr>
51
+ <td rowspan="1" colSpan="1" >[TRTCSpeedTestParams](https://write.woa.com/document/87030132707430400)</td>
52
+
53
+ <td rowspan="1" colSpan="1" >Speed test parameters</td>
54
+ </tr>
55
+
56
+ <tr>
57
+ <td rowspan="1" colSpan="1" >[TRTCSpeedTestResult](https://write.woa.com/document/87030132707430400)</td>
58
+
59
+ <td rowspan="1" colSpan="1" >Network speed test results</td>
60
+ </tr>
61
+
62
+ <tr>
63
+ <td rowspan="1" colSpan="1" >[TRTCTexture](https://write.woa.com/document/87030132707430400)</td>
64
+
65
+ <td rowspan="1" colSpan="1" >Video texture data</td>
66
+ </tr>
67
+
68
+ <tr>
69
+ <td rowspan="1" colSpan="1" >[TRTCVideoFrame](https://write.woa.com/document/87030132707430400)</td>
70
+
71
+ <td rowspan="1" colSpan="1" >Video frame information</td>
72
+ </tr>
73
+
74
+ <tr>
75
+ <td rowspan="1" colSpan="1" >[TRTCAudioFrame](https://write.woa.com/document/87030132707430400)</td>
76
+
77
+ <td rowspan="1" colSpan="1" >Audio frame data</td>
78
+ </tr>
79
+
80
+ <tr>
81
+ <td rowspan="1" colSpan="1" >[TRTCMixUser](https://write.woa.com/document/87030132707430400)</td>
82
+
83
+ <td rowspan="1" colSpan="1" >Description information of each screen in Cloud Mixed Streaming</td>
84
+ </tr>
85
+
86
+ <tr>
87
+ <td rowspan="1" colSpan="1" >[TRTCTranscodingConfig](https://write.woa.com/document/87030132707430400)</td>
88
+
89
+ <td rowspan="1" colSpan="1" >Layout and Transcoding Parameters of Cloud Mixed Streaming</td>
90
+ </tr>
91
+
92
+ <tr>
93
+ <td rowspan="1" colSpan="1" >[TRTCPublishCDNParam](https://write.woa.com/document/87030132707430400)</td>
94
+
95
+ <td rowspan="1" colSpan="1" >The relay parameters to be set when publishing audio and video streams to non-Tencent Cloud CDN</td>
96
+ </tr>
97
+
98
+ <tr>
99
+ <td rowspan="1" colSpan="1" >[TRTCAudioRecordingParams](https://write.woa.com/document/87030132707430400)</td>
100
+
101
+ <td rowspan="1" colSpan="1" >Local audio file recording parameters</td>
102
+ </tr>
103
+
104
+ <tr>
105
+ <td rowspan="1" colSpan="1" >[TRTCLocalRecordingParams](https://write.woa.com/document/87030132707430400)</td>
106
+
107
+ <td rowspan="1" colSpan="1" >Local media file recording parameters</td>
108
+ </tr>
109
+
110
+ <tr>
111
+ <td rowspan="1" colSpan="1" >[TRTCAudioEffectParam](https://write.woa.com/document/87030132707430400)</td>
112
+
113
+ <td rowspan="1" colSpan="1" >Audio Effect Parameters (Deprecated)</td>
114
+ </tr>
115
+
116
+ <tr>
117
+ <td rowspan="1" colSpan="1" >[TRTCSwitchRoomConfig](https://write.woa.com/document/87030132707430400)</td>
118
+
119
+ <td rowspan="1" colSpan="1" >Room switching parameters</td>
120
+ </tr>
121
+
122
+ <tr>
123
+ <td rowspan="1" colSpan="1" >[TRTCAudioFrameCallbackFormat](https://write.woa.com/document/87030132707430400)</td>
124
+
125
+ <td rowspan="1" colSpan="1" >Audio self Definition callback format parameters</td>
126
+ </tr>
127
+
128
+ <tr>
129
+ <td rowspan="1" colSpan="1" >[TRTCImageBuffer](https://write.woa.com/document/87030132707430400)</td>
130
+
131
+ <td rowspan="1" colSpan="1" >TRTC screen sharing icon information and mute image spacer</td>
132
+ </tr>
133
+
134
+ <tr>
135
+ <td rowspan="1" colSpan="1" >[TRTCScreenCaptureSourceInfo](https://write.woa.com/document/87030132707430400)</td>
136
+
137
+ <td rowspan="1" colSpan="1" >Target information for screen sharing (only applicable to desktop systems)</td>
138
+ </tr>
139
+
140
+ <tr>
141
+ <td rowspan="1" colSpan="1" >[TRTCScreenCaptureProperty](https://write.woa.com/document/87030132707430400)</td>
142
+
143
+ <td rowspan="1" colSpan="1" >Advanced control parameters for screen sharing</td>
144
+ </tr>
145
+
146
+ <tr>
147
+ <td rowspan="1" colSpan="1" >[TRTCAudioParallelParams](https://write.woa.com/document/87030132707430400)</td>
148
+
149
+ <td rowspan="1" colSpan="1" >Parameters of the intelligent concurrent playback strategy for remote audio streams</td>
150
+ </tr>
151
+
152
+ <tr>
153
+ <td rowspan="1" colSpan="1" >[TRTCUser](https://write.woa.com/document/87030132707430400)</td>
154
+
155
+ <td rowspan="1" colSpan="1" >User information related to media stream publishing settings</td>
156
+ </tr>
157
+
158
+ <tr>
159
+ <td rowspan="1" colSpan="1" >[TRTCPublishCdnUrl](https://write.woa.com/document/87030132707430400)</td>
160
+
161
+ <td rowspan="1" colSpan="1" >URL configuration required when publishing audio and video streams to Tencent or third-party CDNs</td>
162
+ </tr>
163
+
164
+ <tr>
165
+ <td rowspan="1" colSpan="1" >[TRTCPublishTarget](https://write.woa.com/document/87030132707430400)</td>
166
+
167
+ <td rowspan="1" colSpan="1" >Target Streaming Configuration</td>
168
+ </tr>
169
+
170
+ <tr>
171
+ <td rowspan="1" colSpan="1" >[TRTCVideoLayout](https://write.woa.com/document/87030132707430400)</td>
172
+
173
+ <td rowspan="1" colSpan="1" >Transcoding Video Layout</td>
174
+ </tr>
175
+
176
+ <tr>
177
+ <td rowspan="1" colSpan="1" >[TRTCWatermark](https://write.woa.com/document/87030132707430400)</td>
178
+
179
+ <td rowspan="1" colSpan="1" >Watermark Layout</td>
180
+ </tr>
181
+
182
+ <tr>
183
+ <td rowspan="1" colSpan="1" >[TRTCStreamEncoderParam](https://write.woa.com/document/87030132707430400)</td>
184
+
185
+ <td rowspan="1" colSpan="1" >Media Stream Encoding Output Parameters</td>
186
+ </tr>
187
+
188
+ <tr>
189
+ <td rowspan="1" colSpan="1" >[TRTCStreamMixingConfig](https://write.woa.com/document/87030132707430400)</td>
190
+
191
+ <td rowspan="1" colSpan="1" >Media Stream Transcoding Configuration Parameters</td>
192
+ </tr>
193
+
194
+ <tr>
195
+ <td rowspan="1" colSpan="1" >[TRTCPayloadPrivateEncryptionConfig](https://write.woa.com/document/87030132707430400)</td>
196
+
197
+ <td rowspan="1" colSpan="1" >Private media stream encryption configuration</td>
198
+ </tr>
199
+
200
+ <tr>
201
+ <td rowspan="1" colSpan="1" >[TRTCAudioVolumeEvaluateParams](https://write.woa.com/document/87030132707430400)</td>
202
+
203
+ <td rowspan="1" colSpan="1" >Volume assessment and related parameter settings</td>
204
+ </tr>
205
+ </table>
206
+
207
+
208
+ ## Enumeration Types
209
+ <table>
210
+ <tr>
211
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
212
+
213
+ <td rowspan="1" colSpan="1" >Description</td>
214
+ </tr>
215
+
216
+ <tr>
217
+ <td rowspan="1" colSpan="1" >[TRTCVideoResolution](https://write.woa.com/document/87030132707430400)</td>
218
+
219
+ <td rowspan="1" colSpan="1" >Video Resolution</td>
220
+ </tr>
221
+
222
+ <tr>
223
+ <td rowspan="1" colSpan="1" >[TRTCVideoResolutionMode](https://write.woa.com/document/87030132707430400)</td>
224
+
225
+ <td rowspan="1" colSpan="1" >Video aspect ratio mode</td>
226
+ </tr>
227
+
228
+ <tr>
229
+ <td rowspan="1" colSpan="1" >[TRTCVideoStreamType](https://write.woa.com/document/87030132707430400)</td>
230
+
231
+ <td rowspan="1" colSpan="1" >Video stream type</td>
232
+ </tr>
233
+
234
+ <tr>
235
+ <td rowspan="1" colSpan="1" >[TRTCVideoFillMode](https://write.woa.com/document/87030132707430400)</td>
236
+
237
+ <td rowspan="1" colSpan="1" >Video fill mode</td>
238
+ </tr>
239
+
240
+ <tr>
241
+ <td rowspan="1" colSpan="1" >[TRTCVideoRotation](https://write.woa.com/document/87030132707430400)</td>
242
+
243
+ <td rowspan="1" colSpan="1" >Video rotation direction</td>
244
+ </tr>
245
+
246
+ <tr>
247
+ <td rowspan="1" colSpan="1" >[TRTCBeautyStyle](https://write.woa.com/document/87030132707430400)</td>
248
+
249
+ <td rowspan="1" colSpan="1" >Beauty Filter (Skin Smoothing) algorithm</td>
250
+ </tr>
251
+
252
+ <tr>
253
+ <td rowspan="1" colSpan="1" >[TRTCVideoPixelFormat](https://write.woa.com/document/87030132707430400)</td>
254
+
255
+ <td rowspan="1" colSpan="1" >Video pixel format</td>
256
+ </tr>
257
+
258
+ <tr>
259
+ <td rowspan="1" colSpan="1" >[TRTCVideoBufferType](https://write.woa.com/document/87030132707430400)</td>
260
+
261
+ <td rowspan="1" colSpan="1" >Video data transfer method</td>
262
+ </tr>
263
+
264
+ <tr>
265
+ <td rowspan="1" colSpan="1" >[TRTCVideoMirrorType](https://write.woa.com/document/87030132707430400)</td>
266
+
267
+ <td rowspan="1" colSpan="1" >Video mirroring type</td>
268
+ </tr>
269
+
270
+ <tr>
271
+ <td rowspan="1" colSpan="1" >[TRTCSnapshotSourceType](https://write.woa.com/document/87030132707430400)</td>
272
+
273
+ <td rowspan="1" colSpan="1" >Data source for local video screenshot</td>
274
+ </tr>
275
+
276
+ <tr>
277
+ <td rowspan="1" colSpan="1" >[TRTCAppScene](https://write.woa.com/document/87030132707430400)</td>
278
+
279
+ <td rowspan="1" colSpan="1" >Use Cases</td>
280
+ </tr>
281
+
282
+ <tr>
283
+ <td rowspan="1" colSpan="1" >[TRTCRoleType](https://write.woa.com/document/87030132707430400)</td>
284
+
285
+ <td rowspan="1" colSpan="1" >Roles</td>
286
+ </tr>
287
+
288
+ <tr>
289
+ <td rowspan="1" colSpan="1" >[TRTCQosControlMode](https://write.woa.com/document/87030132707430400)</td>
290
+
291
+ <td rowspan="1" colSpan="1" >Traffic control mode (deprecated)</td>
292
+ </tr>
293
+
294
+ <tr>
295
+ <td rowspan="1" colSpan="1" >[TRTCVideoQosPreference](https://write.woa.com/document/87030132707430400)</td>
296
+
297
+ <td rowspan="1" colSpan="1" >Image quality preference</td>
298
+ </tr>
299
+
300
+ <tr>
301
+ <td rowspan="1" colSpan="1" >[TRTCQuality](https://write.woa.com/document/87030132707430400)</td>
302
+
303
+ <td rowspan="1" colSpan="1" >Network quality</td>
304
+ </tr>
305
+
306
+ <tr>
307
+ <td rowspan="1" colSpan="1" >[TRTCAVStatusType](https://write.woa.com/document/87030132707430400)</td>
308
+
309
+ <td rowspan="1" colSpan="1" >Audio/Video status type</td>
310
+ </tr>
311
+
312
+ <tr>
313
+ <td rowspan="1" colSpan="1" >[TRTCAVStatusChangeReason](https://write.woa.com/document/87030132707430400)</td>
314
+
315
+ <td rowspan="1" colSpan="1" >Audio/Video status change reason type</td>
316
+ </tr>
317
+
318
+ <tr>
319
+ <td rowspan="1" colSpan="1" >[TRTCAudioQuality](https://write.woa.com/document/87030132707430400)</td>
320
+
321
+ <td rowspan="1" colSpan="1" >Sound quality</td>
322
+ </tr>
323
+
324
+ <tr>
325
+ <td rowspan="1" colSpan="1" >[TRTCAudioFrameFormat](https://write.woa.com/document/87030132707430400)</td>
326
+
327
+ <td rowspan="1" colSpan="1" >Content format of audio frame</td>
328
+ </tr>
329
+
330
+ <tr>
331
+ <td rowspan="1" colSpan="1" >[TRTCAudioFrameOperationMode](https://write.woa.com/document/87030132707430400)</td>
332
+
333
+ <td rowspan="1" colSpan="1" >Audio Callback Data Read/Write Mode</td>
334
+ </tr>
335
+
336
+ <tr>
337
+ <td rowspan="1" colSpan="1" >[TRTCLogLevel](https://write.woa.com/document/87030132707430400)</td>
338
+
339
+ <td rowspan="1" colSpan="1" >Log Level</td>
340
+ </tr>
341
+
342
+ <tr>
343
+ <td rowspan="1" colSpan="1" >[TRTCScreenCaptureSourceType](https://write.woa.com/document/87030132707430400)</td>
344
+
345
+ <td rowspan="1" colSpan="1" >Target Type for Screen Sharing (Only applicable to desktop devices)</td>
346
+ </tr>
347
+
348
+ <tr>
349
+ <td rowspan="1" colSpan="1" >[TRTCTranscodingConfigMode](https://write.woa.com/document/87030132707430400)</td>
350
+
351
+ <td rowspan="1" colSpan="1" >Layout Mode for Cloud Mixed Streaming</td>
352
+ </tr>
353
+
354
+ <tr>
355
+ <td rowspan="1" colSpan="1" >[TRTCLocalRecordType](https://write.woa.com/document/87030132707430400)</td>
356
+
357
+ <td rowspan="1" colSpan="1" >Media Recording Type</td>
358
+ </tr>
359
+
360
+ <tr>
361
+ <td rowspan="1" colSpan="1" >[TRTCMixInputType](https://write.woa.com/document/87030132707430400)</td>
362
+
363
+ <td rowspan="1" colSpan="1" >Mixed Streaming Input Type</td>
364
+ </tr>
365
+
366
+ <tr>
367
+ <td rowspan="1" colSpan="1" >[TRTCWaterMarkSrcType](https://write.woa.com/document/87030132707430400)</td>
368
+
369
+ <td rowspan="1" colSpan="1" >Watermark image source type</td>
370
+ </tr>
371
+
372
+ <tr>
373
+ <td rowspan="1" colSpan="1" >[TRTCAudioRecordingContent](https://write.woa.com/document/87030132707430400)</td>
374
+
375
+ <td rowspan="1" colSpan="1" >Audio Recording Content Type</td>
376
+ </tr>
377
+
378
+ <tr>
379
+ <td rowspan="1" colSpan="1" >[TRTCPublishMode](https://write.woa.com/document/87030132707430400)</td>
380
+
381
+ <td rowspan="1" colSpan="1" >Media Stream Publication Mode</td>
382
+ </tr>
383
+
384
+ <tr>
385
+ <td rowspan="1" colSpan="1" >[TRTCEncryptionAlgorithm](https://write.woa.com/document/87030132707430400)</td>
386
+
387
+ <td rowspan="1" colSpan="1" >Encryption Algorithm</td>
388
+ </tr>
389
+
390
+ <tr>
391
+ <td rowspan="1" colSpan="1" >[TRTCSpeedTestScene](https://write.woa.com/document/87030132707430400)</td>
392
+
393
+ <td rowspan="1" colSpan="1" >Speed Test Scenario</td>
394
+ </tr>
395
+
396
+ <tr>
397
+ <td rowspan="1" colSpan="1" >[TRTCGravitySensorAdaptiveMode](https://write.woa.com/document/87030132707430400)</td>
398
+
399
+ <td rowspan="1" colSpan="1" >Set Adaptation Mode for Gravity Sensor (Only applicable to mobile devices)</td>
400
+ </tr>
401
+ </table>
402
+
403
+
404
+ ## TRTCVideoResolution
405
+
406
+
407
+
408
+ #### Video Resolution
409
+
410
+ Only Definition is in landscape resolution (e.g., 640 × 360). To use portrait resolution (e.g., 360 × 640), you also need to set TRTCVideoResolutionMode to Portrait.
411
+ <table>
412
+ <tr>
413
+ <td rowspan="1" colSpan="1" >Enumeration</td>
414
+
415
+ <td rowspan="1" colSpan="1" >Value</td>
416
+
417
+ <td rowspan="1" colSpan="1" >Description</td>
418
+ </tr>
419
+
420
+ <tr>
421
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_120_120</td>
422
+
423
+ <td rowspan="1" colSpan="1" >1</td>
424
+
425
+ <td rowspan="1" colSpan="1" >Aspect Ratio 1:1; Resolution 120x120; Suggested Bitrate (VideoCall) 80kbps; Suggested Bitrate (LIVE) 120kbps.</td>
426
+ </tr>
427
+
428
+ <tr>
429
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_160_160</td>
430
+
431
+ <td rowspan="1" colSpan="1" >3</td>
432
+
433
+ <td rowspan="1" colSpan="1" >Aspect Ratio 1:1; Resolution 160x160; Suggested Bitrate (VideoCall) 100kbps; Suggested Bitrate (LIVE) 150kbps.</td>
434
+ </tr>
435
+
436
+ <tr>
437
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_270_270</td>
438
+
439
+ <td rowspan="1" colSpan="1" >5</td>
440
+
441
+ <td rowspan="1" colSpan="1" >Aspect Ratio 1:1; Resolution 270x270; Suggested Bitrate (VideoCall) 200kbps; Suggested Bitrate (LIVE) 300kbps.</td>
442
+ </tr>
443
+
444
+ <tr>
445
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_480_480</td>
446
+
447
+ <td rowspan="1" colSpan="1" >7</td>
448
+
449
+ <td rowspan="1" colSpan="1" >Aspect Ratio 1:1; Resolution 480x480; Suggested Bitrate (VideoCall) 350kbps; Suggested Bitrate (LIVE) 500kbps.</td>
450
+ </tr>
451
+
452
+ <tr>
453
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_160_120</td>
454
+
455
+ <td rowspan="1" colSpan="1" >50</td>
456
+
457
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 160x120; Suggested Bitrate (VideoCall) 100kbps; Suggested Bitrate (LIVE) 150kbps.</td>
458
+ </tr>
459
+
460
+ <tr>
461
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_240_180</td>
462
+
463
+ <td rowspan="1" colSpan="1" >52</td>
464
+
465
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 240x180; Suggested Bitrate (VideoCall) 150kbps; Suggested Bitrate (LIVE) 250kbps.</td>
466
+ </tr>
467
+
468
+ <tr>
469
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_280_210</td>
470
+
471
+ <td rowspan="1" colSpan="1" >54</td>
472
+
473
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 280x210; Suggested Bitrate (VideoCall) 200kbps; Suggested Bitrate (LIVE) 300kbps.</td>
474
+ </tr>
475
+
476
+ <tr>
477
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_320_240</td>
478
+
479
+ <td rowspan="1" colSpan="1" >56</td>
480
+
481
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 320x240; Suggested Bitrate (VideoCall) 250kbps; Suggested Bitrate (LIVE) 375kbps.</td>
482
+ </tr>
483
+
484
+ <tr>
485
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_400_300</td>
486
+
487
+ <td rowspan="1" colSpan="1" >58</td>
488
+
489
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 400x300; Suggested Bitrate (VideoCall) 300kbps; Suggested Bitrate (LIVE) 450kbps.</td>
490
+ </tr>
491
+
492
+ <tr>
493
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_480_360</td>
494
+
495
+ <td rowspan="1" colSpan="1" >60</td>
496
+
497
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 480x360; Suggested Bitrate (VideoCall) 400kbps; Suggested Bitrate (LIVE) 600kbps.</td>
498
+ </tr>
499
+
500
+ <tr>
501
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_640_480</td>
502
+
503
+ <td rowspan="1" colSpan="1" >62</td>
504
+
505
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 640x480; Suggested Bitrate (VideoCall) 600kbps; Suggested Bitrate (LIVE) 900kbps.</td>
506
+ </tr>
507
+
508
+ <tr>
509
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_960_720</td>
510
+
511
+ <td rowspan="1" colSpan="1" >64</td>
512
+
513
+ <td rowspan="1" colSpan="1" >Aspect Ratio 4:3; Resolution 960x720; Suggested Bitrate (VideoCall) 1000kbps; Suggested Bitrate (LIVE) 1500kbps.</td>
514
+ </tr>
515
+
516
+ <tr>
517
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_160_90</td>
518
+
519
+ <td rowspan="1" colSpan="1" >100</td>
520
+
521
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 160x90; Suggested Bitrate (VideoCall) 150kbps; Suggested Bitrate (LIVE) 250kbps.</td>
522
+ </tr>
523
+
524
+ <tr>
525
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_256_144</td>
526
+
527
+ <td rowspan="1" colSpan="1" >102</td>
528
+
529
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 256x144; Suggested Bitrate (VideoCall) 200kbps; Suggested Bitrate (LIVE) 300kbps.</td>
530
+ </tr>
531
+
532
+ <tr>
533
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_320_180</td>
534
+
535
+ <td rowspan="1" colSpan="1" >104</td>
536
+
537
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 320x180; Suggested Bitrate (VideoCall) 250kbps; Suggested Bitrate (LIVE) 400kbps.</td>
538
+ </tr>
539
+
540
+ <tr>
541
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_480_270</td>
542
+
543
+ <td rowspan="1" colSpan="1" >106</td>
544
+
545
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 480x270; Suggested Bitrate (VideoCall) 350kbps; Suggested Bitrate (LIVE) 550kbps.</td>
546
+ </tr>
547
+
548
+ <tr>
549
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_640_360</td>
550
+
551
+ <td rowspan="1" colSpan="1" >108</td>
552
+
553
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 640x360; Suggested Bitrate (VideoCall) 500kbps; Suggested Bitrate (LIVE) 900kbps.</td>
554
+ </tr>
555
+
556
+ <tr>
557
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_960_540</td>
558
+
559
+ <td rowspan="1" colSpan="1" >110</td>
560
+
561
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 960x540; Suggested Bitrate (VideoCall) 850kbps; Suggested Bitrate (LIVE) 1300kbps.</td>
562
+ </tr>
563
+
564
+ <tr>
565
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_1280_720</td>
566
+
567
+ <td rowspan="1" colSpan="1" >112</td>
568
+
569
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 1280x720; Suggested Bitrate (VideoCall) 1200kbps; Suggested Bitrate (LIVE) 1800kbps.</td>
570
+ </tr>
571
+
572
+ <tr>
573
+ <td rowspan="1" colSpan="1" >TRTCVideoResolution_1920_1080</td>
574
+
575
+ <td rowspan="1" colSpan="1" >114</td>
576
+
577
+ <td rowspan="1" colSpan="1" >Aspect Ratio 16:9; Resolution 1920x1080; Suggested Bitrate (VideoCall) 2000kbps; Suggested Bitrate (LIVE) 3000kbps.</td>
578
+ </tr>
579
+ </table>
580
+
581
+
582
+ ## TRTCVideoResolutionMode
583
+
584
+
585
+
586
+ #### Video aspect ratio mode
587
+
588
+ In TRTCVideoResolution, only landscape resolution (e.g., 640 × 360) is defined. To use portrait resolution (e.g., 360 × 640), you also need to set TRTCVideoResolutionMode to Portrait.
589
+ <table>
590
+ <tr>
591
+ <td rowspan="1" colSpan="1" >Enumeration</td>
592
+
593
+ <td rowspan="1" colSpan="1" >Value</td>
594
+
595
+ <td rowspan="1" colSpan="1" >Description</td>
596
+ </tr>
597
+
598
+ <tr>
599
+ <td rowspan="1" colSpan="1" >TRTCVideoResolutionModeLandscape</td>
600
+
601
+ <td rowspan="1" colSpan="1" >0</td>
602
+
603
+ <td rowspan="1" colSpan="1" >Landscape resolution, e.g., TRTCVideoResolution_640_360 + TRTCVideoResolutionModeLandscape = 640 × 360.</td>
604
+ </tr>
605
+
606
+ <tr>
607
+ <td rowspan="1" colSpan="1" >TRTCVideoResolutionModePortrait</td>
608
+
609
+ <td rowspan="1" colSpan="1" >1</td>
610
+
611
+ <td rowspan="1" colSpan="1" >Portrait resolution, e.g., TRTCVideoResolution_640_360 + TRTCVideoResolutionModePortrait = 360 × 640.</td>
612
+ </tr>
613
+ </table>
614
+
615
+
616
+ ## TRTCVideoStreamType
617
+
618
+
619
+
620
+ #### Video stream type
621
+
622
+ There are three different video streams in TRTC:
623
+ - HD large screen: Generally used for transmitting video data from the camera.
624
+
625
+ - Low-definition small picture: The content of the small picture is the same as the large picture, but the resolution and bitrate are lower than those of the large picture, resulting in lower clarity.
626
+
627
+ - Auxiliary stream picture: Generally used for screen sharing. Only one user can publish auxiliary stream video in the same room at the same time. Other users must wait until the current user stops before they can publish their own auxiliary stream.
628
+
629
+
630
+ > **Note**
631
+ >
632
+
633
+ > Low-definition small picture cannot be enabled independently. The small picture must rely on the large picture, and the SDK will automatically set the resolution and bitrate of the low-definition small picture.
634
+ >
635
+
636
+ <table>
637
+ <tr>
638
+ <td rowspan="1" colSpan="1" >Enumeration</td>
639
+
640
+ <td rowspan="1" colSpan="1" >Value</td>
641
+
642
+ <td rowspan="1" colSpan="1" >Description</td>
643
+ </tr>
644
+
645
+ <tr>
646
+ <td rowspan="1" colSpan="1" >TRTCVideoStreamTypeBig</td>
647
+
648
+ <td rowspan="1" colSpan="1" >0</td>
649
+
650
+ <td rowspan="1" colSpan="1" >HD large screen: Generally used for transmitting video data from the camera.</td>
651
+ </tr>
652
+
653
+ <tr>
654
+ <td rowspan="1" colSpan="1" >TRTCVideoStreamTypeSmall</td>
655
+
656
+ <td rowspan="1" colSpan="1" >1</td>
657
+
658
+ <td rowspan="1" colSpan="1" >Low-definition small picture: The content of the small picture is the same as the large picture, but the resolution and bitrate are lower than those of the large picture, resulting in lower clarity.</td>
659
+ </tr>
660
+
661
+ <tr>
662
+ <td rowspan="1" colSpan="1" >TRTCVideoStreamTypeSub</td>
663
+
664
+ <td rowspan="1" colSpan="1" >2</td>
665
+
666
+ <td rowspan="1" colSpan="1" >Auxiliary stream picture: Generally used for screen sharing. Only one user can publish auxiliary stream video in the same room at the same time. Other users must wait until the current user stops before they can publish their own auxiliary stream.</td>
667
+ </tr>
668
+ </table>
669
+
670
+
671
+ ## TRTCVideoFillMode
672
+
673
+
674
+
675
+ #### Video fill mode
676
+
677
+ When the aspect ratio of the video display area is not equal to the aspect ratio of the video content, you need to specify the fill mode.
678
+ <table>
679
+ <tr>
680
+ <td rowspan="1" colSpan="1" >Enumeration</td>
681
+
682
+ <td rowspan="1" colSpan="1" >Value</td>
683
+
684
+ <td rowspan="1" colSpan="1" >Description</td>
685
+ </tr>
686
+
687
+ <tr>
688
+ <td rowspan="1" colSpan="1" >TRTCVideoFillMode_Fill</td>
689
+
690
+ <td rowspan="1" colSpan="1" >0</td>
691
+
692
+ <td rowspan="1" colSpan="1" >Fill mode: The content is scaled to fill the entire display area while maintaining the aspect ratio. The parts that exceed the display area will be cropped, so the image may be incomplete.</td>
693
+ </tr>
694
+
695
+ <tr>
696
+ <td rowspan="1" colSpan="1" >TRTCVideoFillMode_Fit</td>
697
+
698
+ <td rowspan="1" colSpan="1" >1</td>
699
+
700
+ <td rowspan="1" colSpan="1" >Adaptive mode: The image is scaled according to the long side to fit the display area. The short sides will be filled with black bars, so the image will be complete but may have black bars.</td>
701
+ </tr>
702
+ </table>
703
+
704
+
705
+ ## TRTCVideoRotation
706
+
707
+
708
+
709
+ #### Video rotation direction
710
+
711
+ TRTC provides APIs for setting the rotation angle of local and remote video. The angles listed below are in a clockwise direction.
712
+ <table>
713
+ <tr>
714
+ <td rowspan="1" colSpan="1" >Enumeration</td>
715
+
716
+ <td rowspan="1" colSpan="1" >Value</td>
717
+
718
+ <td rowspan="1" colSpan="1" >Description</td>
719
+ </tr>
720
+
721
+ <tr>
722
+ <td rowspan="1" colSpan="1" >TRTCVideoRotation0</td>
723
+
724
+ <td rowspan="1" colSpan="1" >0</td>
725
+
726
+ <td rowspan="1" colSpan="1" >No rotation.</td>
727
+ </tr>
728
+
729
+ <tr>
730
+ <td rowspan="1" colSpan="1" >TRTCVideoRotation90</td>
731
+
732
+ <td rowspan="1" colSpan="1" >1</td>
733
+
734
+ <td rowspan="1" colSpan="1" >Rotate clockwise by 90 degrees.</td>
735
+ </tr>
736
+
737
+ <tr>
738
+ <td rowspan="1" colSpan="1" >TRTCVideoRotation180</td>
739
+
740
+ <td rowspan="1" colSpan="1" >2</td>
741
+
742
+ <td rowspan="1" colSpan="1" >Rotate clockwise by 180 degrees.</td>
743
+ </tr>
744
+
745
+ <tr>
746
+ <td rowspan="1" colSpan="1" >TRTCVideoRotation270</td>
747
+
748
+ <td rowspan="1" colSpan="1" >3</td>
749
+
750
+ <td rowspan="1" colSpan="1" >Rotate clockwise by 270 degrees.</td>
751
+ </tr>
752
+ </table>
753
+
754
+
755
+ ## TRTCBeautyStyle
756
+
757
+
758
+
759
+ #### Beauty Filter (Skin Smoothing) algorithm
760
+
761
+ TRTC offers various skin smoothing algorithms. You can choose the one that best fits your product positioning.
762
+ <table>
763
+ <tr>
764
+ <td rowspan="1" colSpan="1" >Enumeration</td>
765
+
766
+ <td rowspan="1" colSpan="1" >Value</td>
767
+
768
+ <td rowspan="1" colSpan="1" >Description</td>
769
+ </tr>
770
+
771
+ <tr>
772
+ <td rowspan="1" colSpan="1" >TRTCBeautyStyleSmooth</td>
773
+
774
+ <td rowspan="1" colSpan="1" >0</td>
775
+
776
+ <td rowspan="1" colSpan="1" >Smooth: This aggressive algorithm results in a more pronounced skin smoothing effect, suitable for show live streaming.</td>
777
+ </tr>
778
+
779
+ <tr>
780
+ <td rowspan="1" colSpan="1" >TRTCBeautyStyleNature</td>
781
+
782
+ <td rowspan="1" colSpan="1" >1</td>
783
+
784
+ <td rowspan="1" colSpan="1" >Natural: This algorithm retains more facial details, resulting in a more natural smoothing effect, suitable for most live streaming scenarios.</td>
785
+ </tr>
786
+ </table>
787
+
788
+
789
+ ## TRTCVideoPixelFormat
790
+
791
+
792
+
793
+ #### Video pixel format
794
+
795
+ TRTC provides custom data collection and custom rendering features for video:
796
+ - In the custom data collection feature, you can use the following enumeration values to describe the pixel format of your captured video.
797
+
798
+ - In the custom rendering feature, you can specify the pixel format you expect the SDK to call back.
799
+
800
+ <table>
801
+ <tr>
802
+ <td rowspan="1" colSpan="1" >Enumeration</td>
803
+
804
+ <td rowspan="1" colSpan="1" >Value</td>
805
+
806
+ <td rowspan="1" colSpan="1" >Description</td>
807
+ </tr>
808
+
809
+ <tr>
810
+ <td rowspan="1" colSpan="1" >TRTCVideoPixelFormat_Unknown</td>
811
+
812
+ <td rowspan="1" colSpan="1" >0</td>
813
+
814
+ <td rowspan="1" colSpan="1" >Undefined format.</td>
815
+ </tr>
816
+
817
+ <tr>
818
+ <td rowspan="1" colSpan="1" >TRTCVideoPixelFormat_I420</td>
819
+
820
+ <td rowspan="1" colSpan="1" >1</td>
821
+
822
+ <td rowspan="1" colSpan="1" >YUV420P (I420) format.</td>
823
+ </tr>
824
+
825
+ <tr>
826
+ <td rowspan="1" colSpan="1" >TRTCVideoPixelFormat_Texture_2D</td>
827
+
828
+ <td rowspan="1" colSpan="1" >2</td>
829
+
830
+ <td rowspan="1" colSpan="1" >OpenGL 2D texture format.</td>
831
+ </tr>
832
+
833
+ <tr>
834
+ <td rowspan="1" colSpan="1" >TRTCVideoPixelFormat_BGRA32</td>
835
+
836
+ <td rowspan="1" colSpan="1" >3</td>
837
+
838
+ <td rowspan="1" colSpan="1" >BGRA format</td>
839
+ </tr>
840
+
841
+ <tr>
842
+ <td rowspan="1" colSpan="1" >TRTCVideoPixelFormat_NV21</td>
843
+
844
+ <td rowspan="1" colSpan="1" >4</td>
845
+
846
+ <td rowspan="1" colSpan="1" >NV21 format.</td>
847
+ </tr>
848
+
849
+ <tr>
850
+ <td rowspan="1" colSpan="1" >TRTCVideoPixelFormat_RGBA32</td>
851
+
852
+ <td rowspan="1" colSpan="1" >5</td>
853
+
854
+ <td rowspan="1" colSpan="1" >RGBA format.</td>
855
+ </tr>
856
+ </table>
857
+
858
+
859
+ ## TRTCVideoBufferType
860
+
861
+
862
+
863
+ #### Video data transfer method
864
+
865
+ In custom data collection and custom rendering features, you need to use the following enumerated values to specify how you want to transmit video data:
866
+ - Option 1: Transmit video data using Memory Buffer. This method is efficient on iOS, but less efficient on Android, and Windows currently only supports Memory Buffer transmission.
867
+
868
+ - Option 2: Transmit video data using Texture. This method is highly efficient on both iOS and Android, but not supported on Windows. A certain level of OpenGL programming knowledge is required.
869
+
870
+ <table>
871
+ <tr>
872
+ <td rowspan="1" colSpan="1" >Enumeration</td>
873
+
874
+ <td rowspan="1" colSpan="1" >Value</td>
875
+
876
+ <td rowspan="1" colSpan="1" >Description</td>
877
+ </tr>
878
+
879
+ <tr>
880
+ <td rowspan="1" colSpan="1" >TRTCVideoBufferType_Unknown</td>
881
+
882
+ <td rowspan="1" colSpan="1" >0</td>
883
+
884
+ <td rowspan="1" colSpan="1" >Undefined transmission method.</td>
885
+ </tr>
886
+
887
+ <tr>
888
+ <td rowspan="1" colSpan="1" >TRTCVideoBufferType_Buffer</td>
889
+
890
+ <td rowspan="1" colSpan="1" >1</td>
891
+
892
+ <td rowspan="1" colSpan="1" >Transmit video data using Memory Buffer, iOS: PixelBuffer; Android: Direct Buffer for JNI layer; Win: Memory Data Block.</td>
893
+ </tr>
894
+
895
+ <tr>
896
+ <td rowspan="1" colSpan="1" >TRTCVideoBufferType_Texture</td>
897
+
898
+ <td rowspan="1" colSpan="1" >3</td>
899
+
900
+ <td rowspan="1" colSpan="1" >Transmit video data using OpenGL texture.</td>
901
+ </tr>
902
+
903
+ <tr>
904
+ <td rowspan="1" colSpan="1" >TRTCVideoBufferType_TextureD3D11</td>
905
+
906
+ <td rowspan="1" colSpan="1" >4</td>
907
+
908
+ <td rowspan="1" colSpan="1" >Transmit video data using D3D11 texture.</td>
909
+ </tr>
910
+ </table>
911
+
912
+
913
+ ## TRTCVideoMirrorType
914
+
915
+
916
+
917
+ #### Video mirroring type
918
+
919
+ Video mirroring refers to flipping the video content horizontally, especially for the local camera preview video. Enabling mirroring can provide the host with a familiar "mirror" experience.
920
+ <table>
921
+ <tr>
922
+ <td rowspan="1" colSpan="1" >Enumeration</td>
923
+
924
+ <td rowspan="1" colSpan="1" >Value</td>
925
+
926
+ <td rowspan="1" colSpan="1" >Description</td>
927
+ </tr>
928
+
929
+ <tr>
930
+ <td rowspan="1" colSpan="1" >TRTCVideoMirrorType_Auto</td>
931
+
932
+ <td rowspan="1" colSpan="1" >0</td>
933
+
934
+ <td rowspan="1" colSpan="1" >Automatic Mode: If using the front-facing camera, enable mirroring; if using the rear-facing camera, disable mirroring (only applicable to mobile devices).</td>
935
+ </tr>
936
+
937
+ <tr>
938
+ <td rowspan="1" colSpan="1" >TRTCVideoMirrorType_Enable</td>
939
+
940
+ <td rowspan="1" colSpan="1" >1</td>
941
+
942
+ <td rowspan="1" colSpan="1" >Force On mirroring, regardless of whether the current camera is front-facing or rear-facing.</td>
943
+ </tr>
944
+
945
+ <tr>
946
+ <td rowspan="1" colSpan="1" >TRTCVideoMirrorType_Disable</td>
947
+
948
+ <td rowspan="1" colSpan="1" >2</td>
949
+
950
+ <td rowspan="1" colSpan="1" >Force Off mirroring, regardless of whether the current camera is front-facing or rear-facing.</td>
951
+ </tr>
952
+ </table>
953
+
954
+
955
+ ## TRTCSnapshotSourceType
956
+
957
+
958
+
959
+ #### Data source for local video screenshot
960
+
961
+ The SDK supports capturing images from the following two data sources and saving them as local files:
962
+ - Video Stream: Capture native video content from the video stream. The captured content is not controlled by the rendering controls.
963
+
964
+ - Rendering Layer: Capture the displayed video content from the rendering controls, achieving a What You See Is What You Get (WYSIWYG) effect. However, if the display area is too small, the captured image will also be small.
965
+
966
+ - Capture Layer: Capture the video content collected by the capture controls, allowing for the extraction of high-definition screenshots.
967
+
968
+ <table>
969
+ <tr>
970
+ <td rowspan="1" colSpan="1" >Enumeration</td>
971
+
972
+ <td rowspan="1" colSpan="1" >Value</td>
973
+
974
+ <td rowspan="1" colSpan="1" >Description</td>
975
+ </tr>
976
+
977
+ <tr>
978
+ <td rowspan="1" colSpan="1" >TRTCSnapshotSourceTypeStream</td>
979
+
980
+ <td rowspan="1" colSpan="1" >0</td>
981
+
982
+ <td rowspan="1" colSpan="1" >Capture native video content from the video stream. The captured content is not controlled by the rendering controls.</td>
983
+ </tr>
984
+
985
+ <tr>
986
+ <td rowspan="1" colSpan="1" >TRTCSnapshotSourceTypeView</td>
987
+
988
+ <td rowspan="1" colSpan="1" >1</td>
989
+
990
+ <td rowspan="1" colSpan="1" >Capture the displayed video content from the rendering controls, achieving a What You See Is What You Get (WYSIWYG) effect. However, if the display area is too small, the captured image will also be small.</td>
991
+ </tr>
992
+
993
+ <tr>
994
+ <td rowspan="1" colSpan="1" >TRTCSnapshotSourceTypeCapture</td>
995
+
996
+ <td rowspan="1" colSpan="1" >2</td>
997
+
998
+ <td rowspan="1" colSpan="1" >Capture the video content collected by the capture controls, allowing for the extraction of high-definition screenshots.</td>
999
+ </tr>
1000
+ </table>
1001
+
1002
+
1003
+ ## TRTCAppScene
1004
+
1005
+
1006
+
1007
+ #### Use Cases
1008
+
1009
+ TRTC has optimized for common audio and video application scenarios to meet the differentiated requirements of various vertical scenarios. The main scenarios can be categorized into two types:
1010
+ - Live Streaming (LIVE) Scenario: Includes LIVE and VoiceChatRoom. The former is audio + video, while the latter is audio only.
1011
+
1012
+
1013
+ In the live streaming scenario, users are divided into two roles: "Anchors" and "Audience." A single room can support up to 100,000 people online simultaneously, making it suitable for live streaming scenarios with a large audience.
1014
+ - Real-Time (RTC) Scenario: Includes VideoCall and AudioCall. The former is audio + video, while the latter is audio only.
1015
+
1016
+
1017
+ In the real-time scenario, there is no role differentiation among users, but a single room can support up to 300 people online simultaneously, making it suitable for small-scale real-time communication.
1018
+ <table>
1019
+ <tr>
1020
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1021
+
1022
+ <td rowspan="1" colSpan="1" >Value</td>
1023
+
1024
+ <td rowspan="1" colSpan="1" >Description</td>
1025
+ </tr>
1026
+
1027
+ <tr>
1028
+ <td rowspan="1" colSpan="1" >TRTCAppSceneVideoCall</td>
1029
+
1030
+ <td rowspan="1" colSpan="1" >0</td>
1031
+
1032
+ <td rowspan="1" colSpan="1" >Video call scenario, supports 720p and 1080p HD quality, each room can have up to 300 concurrent users, with a maximum of 50 users speaking simultaneously.<br>Applicable to [One-to-one video call], [300-person video conference], [Online consultation], [Educational small class], [Remote interview], and other business scenarios.</td>
1033
+ </tr>
1034
+
1035
+ <tr>
1036
+ <td rowspan="1" colSpan="1" >TRTCAppSceneLIVE</td>
1037
+
1038
+ <td rowspan="1" colSpan="1" >1</td>
1039
+
1040
+ <td rowspan="1" colSpan="1" >Video interactive live streaming, supports smooth mic switching without waiting, anchor delay less than 300 ms; supports up to 100,000 concurrent viewers, with playback latency as low as 1,000 ms.<br>Applicable to [Low-latency interactive live streaming], [Large class], [Host PK], [Video blind dating], [Online interactive classroom], [Remote training], [Large-scale conferences], and other business scenarios.<br>**Note**<br>In this scenario, you must specify the current user's role through the role field in TRTCParams.<br></td>
1041
+ </tr>
1042
+
1043
+ <tr>
1044
+ <td rowspan="1" colSpan="1" >TRTCAppSceneAudioCall</td>
1045
+
1046
+ <td rowspan="1" colSpan="1" >2</td>
1047
+
1048
+ <td rowspan="1" colSpan="1" >Voice call scenario, default uses SPEECH quality, each room can have up to 300 concurrent users, with a maximum of 50 users speaking simultaneously.<br>Applicable to [One-to-one voice call], [300-person voice conference], [Voice chat], [Voice conference], [Online Werewolf Game], and other business scenarios.</td>
1049
+ </tr>
1050
+
1051
+ <tr>
1052
+ <td rowspan="1" colSpan="1" >TRTCAppSceneVoiceChatRoom</td>
1053
+
1054
+ <td rowspan="1" colSpan="1" >3</td>
1055
+
1056
+ <td rowspan="1" colSpan="1" >Voice interactive live streaming, supports smooth mic switching without waiting, anchor delay less than 300 ms; supports up to 100,000 concurrent viewers, with playback latency as low as 1,000 ms.<br>Applicable to [Voice club], [Online KTV room], [Music live broadcast room], [FM radio station], and other business scenarios.<br>**Note**<br>In this scenario, you must specify the current user's role through the role field in TRTCParams.<br></td>
1057
+ </tr>
1058
+ </table>
1059
+
1060
+
1061
+ ## TRTCRoleType
1062
+
1063
+
1064
+
1065
+ #### Roles
1066
+
1067
+ Only applicable to live streaming scenarios (i.e., TRTCAppSceneLIVE and TRTCAppSceneVoiceChatRoom), distinguishing users into two different identities:
1068
+ - Anchors: Can publish their own audio and video streams at any time, but the number of anchors is limited. A maximum of 50 anchors can publish their audio and video streams simultaneously in the same room.
1069
+
1070
+ - Audience: Can only watch other users' audio and video streams. To publish audio and video streams, they need to switch their role to anchor using [switchRole](https://write.woa.com/document/87030026264555520). A single room can accommodate up to 100,000 audience members.
1071
+
1072
+ <table>
1073
+ <tr>
1074
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1075
+
1076
+ <td rowspan="1" colSpan="1" >Value</td>
1077
+
1078
+ <td rowspan="1" colSpan="1" >Description</td>
1079
+ </tr>
1080
+
1081
+ <tr>
1082
+ <td rowspan="1" colSpan="1" >TRTCRoleAnchor</td>
1083
+
1084
+ <td rowspan="1" colSpan="1" >20</td>
1085
+
1086
+ <td rowspan="1" colSpan="1" >Anchors: Can publish their own audio and video streams at any time, but the number of anchors is limited. A maximum of 50 anchors can publish their audio and video streams simultaneously in the same room.</td>
1087
+ </tr>
1088
+
1089
+ <tr>
1090
+ <td rowspan="1" colSpan="1" >TRTCRoleAudience</td>
1091
+
1092
+ <td rowspan="1" colSpan="1" >21</td>
1093
+
1094
+ <td rowspan="1" colSpan="1" >Audience: Can only watch other users' audio and video streams. To publish audio and video streams, they need to switch their role to anchor using [switchRole](https://write.woa.com/document/87030026264555520). A single room can accommodate up to 100,000 audience members.</td>
1095
+ </tr>
1096
+ </table>
1097
+
1098
+
1099
+ ## TRTCQosControlMode(Deprecated)
1100
+
1101
+
1102
+
1103
+ #### Traffic control mode (deprecated)
1104
+ <table>
1105
+ <tr>
1106
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1107
+
1108
+ <td rowspan="1" colSpan="1" >Value</td>
1109
+
1110
+ <td rowspan="1" colSpan="1" >Description</td>
1111
+ </tr>
1112
+
1113
+ <tr>
1114
+ <td rowspan="1" colSpan="1" >TRTCQosControlModeClient</td>
1115
+
1116
+ <td rowspan="1" colSpan="1" >0</td>
1117
+
1118
+ <td rowspan="1" colSpan="1" >Local Control, used for SDK development internal debugging, please do not use for customers.</td>
1119
+ </tr>
1120
+
1121
+ <tr>
1122
+ <td rowspan="1" colSpan="1" >TRTCQosControlModeServer</td>
1123
+
1124
+ <td rowspan="1" colSpan="1" >1</td>
1125
+
1126
+ <td rowspan="1" colSpan="1" >Cloud Control, the default mode, is recommended.</td>
1127
+ </tr>
1128
+ </table>
1129
+
1130
+
1131
+ ## TRTCVideoQosPreference
1132
+
1133
+
1134
+
1135
+ #### Image quality preference
1136
+
1137
+ TRTC offers two adjustment modes under a weak network environment: "Prioritize Clear Picture" or "Prioritize Smooth Picture". Both modes will primarily ensure audio data transmission.
1138
+ <table>
1139
+ <tr>
1140
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1141
+
1142
+ <td rowspan="1" colSpan="1" >Value</td>
1143
+
1144
+ <td rowspan="1" colSpan="1" >Description</td>
1145
+ </tr>
1146
+
1147
+ <tr>
1148
+ <td rowspan="1" colSpan="1" >TRTCVideoQosPreferenceSmooth</td>
1149
+
1150
+ <td rowspan="1" colSpan="1" >1</td>
1151
+
1152
+ <td rowspan="1" colSpan="1" >Smooth Priority: When the current network is insufficient to transmit both clear and smooth images, it prioritizes the smoothness of the picture, which results in a blurrier image with more mosaics.</td>
1153
+ </tr>
1154
+
1155
+ <tr>
1156
+ <td rowspan="1" colSpan="1" >TRTCVideoQosPreferenceClear</td>
1157
+
1158
+ <td rowspan="1" colSpan="1" >2</td>
1159
+
1160
+ <td rowspan="1" colSpan="1" >Clarity Priority (default): When the current network is insufficient to transmit both clear and smooth images, it prioritizes the clarity of the picture, which results in more stuttering.</td>
1161
+ </tr>
1162
+ </table>
1163
+
1164
+
1165
+ ## TRTCQuality
1166
+
1167
+
1168
+
1169
+ #### Network quality
1170
+
1171
+ TRTC evaluates the current network quality every two seconds, with six evaluation levels: Excellent indicating the best, and Down indicating the worst.
1172
+ <table>
1173
+ <tr>
1174
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1175
+
1176
+ <td rowspan="1" colSpan="1" >Value</td>
1177
+
1178
+ <td rowspan="1" colSpan="1" >Description</td>
1179
+ </tr>
1180
+
1181
+ <tr>
1182
+ <td rowspan="1" colSpan="1" >TRTCQuality_Unknown</td>
1183
+
1184
+ <td rowspan="1" colSpan="1" >0</td>
1185
+
1186
+ <td rowspan="1" colSpan="1" >Undefined.</td>
1187
+ </tr>
1188
+
1189
+ <tr>
1190
+ <td rowspan="1" colSpan="1" >TRTCQuality_Excellent</td>
1191
+
1192
+ <td rowspan="1" colSpan="1" >1</td>
1193
+
1194
+ <td rowspan="1" colSpan="1" >The current network is excellent.</td>
1195
+ </tr>
1196
+
1197
+ <tr>
1198
+ <td rowspan="1" colSpan="1" >TRTCQuality_Good</td>
1199
+
1200
+ <td rowspan="1" colSpan="1" >2</td>
1201
+
1202
+ <td rowspan="1" colSpan="1" >The current network is good.</td>
1203
+ </tr>
1204
+
1205
+ <tr>
1206
+ <td rowspan="1" colSpan="1" >TRTCQuality_Poor</td>
1207
+
1208
+ <td rowspan="1" colSpan="1" >3</td>
1209
+
1210
+ <td rowspan="1" colSpan="1" >The current network is average.</td>
1211
+ </tr>
1212
+
1213
+ <tr>
1214
+ <td rowspan="1" colSpan="1" >TRTCQuality_Bad</td>
1215
+
1216
+ <td rowspan="1" colSpan="1" >4</td>
1217
+
1218
+ <td rowspan="1" colSpan="1" >The current network is poor.</td>
1219
+ </tr>
1220
+
1221
+ <tr>
1222
+ <td rowspan="1" colSpan="1" >TRTCQuality_Vbad</td>
1223
+
1224
+ <td rowspan="1" colSpan="1" >5</td>
1225
+
1226
+ <td rowspan="1" colSpan="1" >The current network is very poor.</td>
1227
+ </tr>
1228
+
1229
+ <tr>
1230
+ <td rowspan="1" colSpan="1" >TRTCQuality_Down</td>
1231
+
1232
+ <td rowspan="1" colSpan="1" >6</td>
1233
+
1234
+ <td rowspan="1" colSpan="1" >The current network does not meet the minimum requirements of TRTC.</td>
1235
+ </tr>
1236
+ </table>
1237
+
1238
+
1239
+ ## TRTCAVStatusType
1240
+
1241
+
1242
+
1243
+ #### Audio/Video status type
1244
+
1245
+ This enumeration type is used for audio status change callback interfaces ([onRemoteAudioStatusUpdated](https://write.woa.com/document/87030021158866944)) and video status change callback interfaces ([onRemoteVideoStatusUpdated](https://write.woa.com/document/87030021158866944)) to specify the current audio or video status.
1246
+ <table>
1247
+ <tr>
1248
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1249
+
1250
+ <td rowspan="1" colSpan="1" >Value</td>
1251
+
1252
+ <td rowspan="1" colSpan="1" >Description</td>
1253
+ </tr>
1254
+
1255
+ <tr>
1256
+ <td rowspan="1" colSpan="1" >TRTCAVStatusStopped</td>
1257
+
1258
+ <td rowspan="1" colSpan="1" >0</td>
1259
+
1260
+ <td rowspan="1" colSpan="1" >Stops playback.</td>
1261
+ </tr>
1262
+
1263
+ <tr>
1264
+ <td rowspan="1" colSpan="1" >TRTCAVStatusPlaying</td>
1265
+
1266
+ <td rowspan="1" colSpan="1" >1</td>
1267
+
1268
+ <td rowspan="1" colSpan="1" >Playing.</td>
1269
+ </tr>
1270
+
1271
+ <tr>
1272
+ <td rowspan="1" colSpan="1" >TRTCAVStatusLoading</td>
1273
+
1274
+ <td rowspan="1" colSpan="1" >2</td>
1275
+
1276
+ <td rowspan="1" colSpan="1" >Loading.</td>
1277
+ </tr>
1278
+ </table>
1279
+
1280
+
1281
+ ## TRTCAVStatusChangeReason
1282
+
1283
+
1284
+
1285
+ #### Audio/Video status change reason type
1286
+
1287
+ This enumeration type is used for audio status change callback interfaces ([onRemoteAudioStatusUpdated](https://write.woa.com/document/87030021158866944)) and video status change callback interfaces ([onRemoteVideoStatusUpdated](https://write.woa.com/document/87030021158866944)) to specify the reason for the current audio or video status change.
1288
+ <table>
1289
+ <tr>
1290
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1291
+
1292
+ <td rowspan="1" colSpan="1" >Value</td>
1293
+
1294
+ <td rowspan="1" colSpan="1" >Description</td>
1295
+ </tr>
1296
+
1297
+ <tr>
1298
+ <td rowspan="1" colSpan="1" >TRTCAVStatusChangeReasonInternal</td>
1299
+
1300
+ <td rowspan="1" colSpan="1" >0</td>
1301
+
1302
+ <td rowspan="1" colSpan="1" >Default value.</td>
1303
+ </tr>
1304
+
1305
+ <tr>
1306
+ <td rowspan="1" colSpan="1" >TRTCAVStatusChangeReasonBufferingBegin</td>
1307
+
1308
+ <td rowspan="1" colSpan="1" >1</td>
1309
+
1310
+ <td rowspan="1" colSpan="1" >Network buffering.</td>
1311
+ </tr>
1312
+
1313
+ <tr>
1314
+ <td rowspan="1" colSpan="1" >TRTCAVStatusChangeReasonBufferingEnd</td>
1315
+
1316
+ <td rowspan="1" colSpan="1" >2</td>
1317
+
1318
+ <td rowspan="1" colSpan="1" >End buffering.</td>
1319
+ </tr>
1320
+
1321
+ <tr>
1322
+ <td rowspan="1" colSpan="1" >TRTCAVStatusChangeReasonLocalStarted</td>
1323
+
1324
+ <td rowspan="1" colSpan="1" >3</td>
1325
+
1326
+ <td rowspan="1" colSpan="1" >Locally starts playing the audio or video stream.</td>
1327
+ </tr>
1328
+
1329
+ <tr>
1330
+ <td rowspan="1" colSpan="1" >TRTCAVStatusChangeReasonLocalStopped</td>
1331
+
1332
+ <td rowspan="1" colSpan="1" >4</td>
1333
+
1334
+ <td rowspan="1" colSpan="1" >Locally stops playing the audio or video stream.</td>
1335
+ </tr>
1336
+
1337
+ <tr>
1338
+ <td rowspan="1" colSpan="1" >TRTCAVStatusChangeReasonRemoteStarted</td>
1339
+
1340
+ <td rowspan="1" colSpan="1" >5</td>
1341
+
1342
+ <td rowspan="1" colSpan="1" >Starts (or resumes) the remote audio or video stream.</td>
1343
+ </tr>
1344
+
1345
+ <tr>
1346
+ <td rowspan="1" colSpan="1" >TRTCAVStatusChangeReasonRemoteStopped</td>
1347
+
1348
+ <td rowspan="1" colSpan="1" >6</td>
1349
+
1350
+ <td rowspan="1" colSpan="1" >Stops (or interrupts) the remote audio or video stream.</td>
1351
+ </tr>
1352
+ </table>
1353
+
1354
+
1355
+ ## TRTCAudioQuality
1356
+
1357
+
1358
+
1359
+ #### Sound quality
1360
+
1361
+ TRTC provides three carefully calibrated modes to meet the diverse pursuit of audio quality in various vertical scenarios:
1362
+ - Vocal Mode (Speech): Suitable for applications focused on voice communication. This mode offers strong audio transmission resistance, ensuring optimal smoothness in weak network environments through various voice processing techniques.
1363
+
1364
+ - Music Mode (Music): Suitable for scenarios with high vocal demands. This mode transmits a large amount of audio data, ensuring high-fidelity detail reproduction of music signals across all frequency bands through various technologies.
1365
+
1366
+ - Default Mode (Default): Positioned between Speech and Music, this mode offers better music reproduction than the Vocal Mode but transmits much less data than the Music Mode. It is well-suited for various scenarios.
1367
+
1368
+ <table>
1369
+ <tr>
1370
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1371
+
1372
+ <td rowspan="1" colSpan="1" >Value</td>
1373
+
1374
+ <td rowspan="1" colSpan="1" >Description</td>
1375
+ </tr>
1376
+
1377
+ <tr>
1378
+ <td rowspan="1" colSpan="1" >TRTCAudioQualitySpeech</td>
1379
+
1380
+ <td rowspan="1" colSpan="1" >1</td>
1381
+
1382
+ <td rowspan="1" colSpan="1" >Vocal Mode: Sampling Rate: 16k; Mono; Encoding Bitrate: 16kbps; Offers the strongest network resistance among the modes, suitable for voice-focused scenarios such as online meetings and voice calls.</td>
1383
+ </tr>
1384
+
1385
+ <tr>
1386
+ <td rowspan="1" colSpan="1" >TRTCAudioQualityDefault</td>
1387
+
1388
+ <td rowspan="1" colSpan="1" >2</td>
1389
+
1390
+ <td rowspan="1" colSpan="1" >Default Mode: Sampling Rate: 48k; Mono; Encoding Bitrate: 50kbps; A tier between Speech and Music, the default level of the SDK, recommended.</td>
1391
+ </tr>
1392
+
1393
+ <tr>
1394
+ <td rowspan="1" colSpan="1" >TRTCAudioQualityMusic</td>
1395
+
1396
+ <td rowspan="1" colSpan="1" >3</td>
1397
+
1398
+ <td rowspan="1" colSpan="1" >Music Mode: Sampling Rate: 48k; Full-band Stereo; Encoding Bitrate: 128kbps; Suitable for scenarios requiring high-fidelity music transmission, such as online karaoke and music live streaming.</td>
1399
+ </tr>
1400
+ </table>
1401
+
1402
+
1403
+ ## TRTCAudioFrameFormat
1404
+
1405
+
1406
+
1407
+ #### Content format of audio frame
1408
+ <table>
1409
+ <tr>
1410
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1411
+
1412
+ <td rowspan="1" colSpan="1" >Value</td>
1413
+
1414
+ <td rowspan="1" colSpan="1" >Description</td>
1415
+ </tr>
1416
+
1417
+ <tr>
1418
+ <td rowspan="1" colSpan="1" >TRTCAudioFrameFormatNone</td>
1419
+
1420
+ <td rowspan="1" colSpan="1" >0</td>
1421
+
1422
+ <td rowspan="1" colSpan="1" >None</td>
1423
+ </tr>
1424
+
1425
+ <tr>
1426
+ <td rowspan="1" colSpan="1" >TRTCAudioFrameFormatPCM</td>
1427
+
1428
+ <td rowspan="1" colSpan="1" >Not Defined</td>
1429
+
1430
+ <td rowspan="1" colSpan="1" >Audio data in PCM format.</td>
1431
+ </tr>
1432
+ </table>
1433
+
1434
+
1435
+ ## TRTCAudioFrameOperationMode
1436
+
1437
+
1438
+
1439
+ #### Audio Callback Data Read/Write Mode
1440
+
1441
+ TRTC provides two operation modes for audio callback data.
1442
+ - Read-Write Mode: You can retrieve and modify the callback audio data. This is the default mode.
1443
+
1444
+ - Read-Only Mode: You can only retrieve the audio data from the callback.
1445
+
1446
+ <table>
1447
+ <tr>
1448
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1449
+
1450
+ <td rowspan="1" colSpan="1" >Value</td>
1451
+
1452
+ <td rowspan="1" colSpan="1" >Description</td>
1453
+ </tr>
1454
+
1455
+ <tr>
1456
+ <td rowspan="1" colSpan="1" >TRTCAudioFrameOperationModeReadWrite</td>
1457
+
1458
+ <td rowspan="1" colSpan="1" >0</td>
1459
+
1460
+ <td rowspan="1" colSpan="1" >Read-Write Mode: You can retrieve and modify the callback audio data.</td>
1461
+ </tr>
1462
+
1463
+ <tr>
1464
+ <td rowspan="1" colSpan="1" >TRTCAudioFrameOperationModeReadOnly</td>
1465
+
1466
+ <td rowspan="1" colSpan="1" >1</td>
1467
+
1468
+ <td rowspan="1" colSpan="1" >Read-Only Mode: You can only retrieve the audio data from the callback.</td>
1469
+ </tr>
1470
+ </table>
1471
+
1472
+
1473
+ ## TRTCLogLevel
1474
+
1475
+
1476
+
1477
+ #### Log Level
1478
+
1479
+ Different log levels define different levels of detail and log quantities. It is recommended to set the log level to TRTCLogLevelInfo under normal circumstances.
1480
+ <table>
1481
+ <tr>
1482
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1483
+
1484
+ <td rowspan="1" colSpan="1" >Value</td>
1485
+
1486
+ <td rowspan="1" colSpan="1" >Description</td>
1487
+ </tr>
1488
+
1489
+ <tr>
1490
+ <td rowspan="1" colSpan="1" >TRTCLogLevelVerbose</td>
1491
+
1492
+ <td rowspan="1" colSpan="1" >0</td>
1493
+
1494
+ <td rowspan="1" colSpan="1" >Output all levels of logs.</td>
1495
+ </tr>
1496
+
1497
+ <tr>
1498
+ <td rowspan="1" colSpan="1" >TRTCLogLevelDebug</td>
1499
+
1500
+ <td rowspan="1" colSpan="1" >1</td>
1501
+
1502
+ <td rowspan="1" colSpan="1" >Output DEBUG, INFO, WARNING, ERROR, and FATAL levels of logs.</td>
1503
+ </tr>
1504
+
1505
+ <tr>
1506
+ <td rowspan="1" colSpan="1" >TRTCLogLevelInfo</td>
1507
+
1508
+ <td rowspan="1" colSpan="1" >2</td>
1509
+
1510
+ <td rowspan="1" colSpan="1" >Output INFO, WARNING, ERROR, and FATAL levels of logs.</td>
1511
+ </tr>
1512
+
1513
+ <tr>
1514
+ <td rowspan="1" colSpan="1" >TRTCLogLevelWarn</td>
1515
+
1516
+ <td rowspan="1" colSpan="1" >3</td>
1517
+
1518
+ <td rowspan="1" colSpan="1" >Output WARNING, ERROR, and FATAL levels of logs.</td>
1519
+ </tr>
1520
+
1521
+ <tr>
1522
+ <td rowspan="1" colSpan="1" >TRTCLogLevelError</td>
1523
+
1524
+ <td rowspan="1" colSpan="1" >4</td>
1525
+
1526
+ <td rowspan="1" colSpan="1" >Output ERROR and FATAL levels of logs.</td>
1527
+ </tr>
1528
+
1529
+ <tr>
1530
+ <td rowspan="1" colSpan="1" >TRTCLogLevelFatal</td>
1531
+
1532
+ <td rowspan="1" colSpan="1" >5</td>
1533
+
1534
+ <td rowspan="1" colSpan="1" >Output only FATAL level logs.</td>
1535
+ </tr>
1536
+
1537
+ <tr>
1538
+ <td rowspan="1" colSpan="1" >TRTCLogLevelNone</td>
1539
+
1540
+ <td rowspan="1" colSpan="1" >6</td>
1541
+
1542
+ <td rowspan="1" colSpan="1" >Do not output any SDK logs.</td>
1543
+ </tr>
1544
+ </table>
1545
+
1546
+
1547
+ ## TRTCScreenCaptureSourceType
1548
+
1549
+
1550
+
1551
+ #### Target Type for Screen Sharing (Only applicable to desktop devices)
1552
+ <table>
1553
+ <tr>
1554
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1555
+
1556
+ <td rowspan="1" colSpan="1" >Value</td>
1557
+
1558
+ <td rowspan="1" colSpan="1" >Description</td>
1559
+ </tr>
1560
+
1561
+ <tr>
1562
+ <td rowspan="1" colSpan="1" >TRTCScreenCaptureSourceTypeUnknown</td>
1563
+
1564
+ <td rowspan="1" colSpan="1" >-1</td>
1565
+
1566
+ <td rowspan="1" colSpan="1" >Undefined.</td>
1567
+ </tr>
1568
+
1569
+ <tr>
1570
+ <td rowspan="1" colSpan="1" >TRTCScreenCaptureSourceTypeWindow</td>
1571
+
1572
+ <td rowspan="1" colSpan="1" >0</td>
1573
+
1574
+ <td rowspan="1" colSpan="1" >The share target is a window of an application.</td>
1575
+ </tr>
1576
+
1577
+ <tr>
1578
+ <td rowspan="1" colSpan="1" >TRTCScreenCaptureSourceTypeScreen</td>
1579
+
1580
+ <td rowspan="1" colSpan="1" >1</td>
1581
+
1582
+ <td rowspan="1" colSpan="1" >The share target is the screen of a monitor.</td>
1583
+ </tr>
1584
+
1585
+ <tr>
1586
+ <td rowspan="1" colSpan="1" >TRTCScreenCaptureSourceTypeCustom</td>
1587
+
1588
+ <td rowspan="1" colSpan="1" >2</td>
1589
+
1590
+ <td rowspan="1" colSpan="1" >This sharing target is a user-defined data source.</td>
1591
+ </tr>
1592
+ </table>
1593
+
1594
+
1595
+ ## TRTCTranscodingConfigMode
1596
+
1597
+
1598
+
1599
+ #### Layout Mode for Cloud Mixed Streaming
1600
+
1601
+ TRTC's cloud mixed streaming service can combine multiple audio and video streams in a room into one stream. Therefore, you need to specify a layout plan for the screen. We offer the following layout modes.
1602
+ <table>
1603
+ <tr>
1604
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1605
+
1606
+ <td rowspan="1" colSpan="1" >Value</td>
1607
+
1608
+ <td rowspan="1" colSpan="1" >Description</td>
1609
+ </tr>
1610
+
1611
+ <tr>
1612
+ <td rowspan="1" colSpan="1" >TRTCTranscodingConfigMode_Unknown</td>
1613
+
1614
+ <td rowspan="1" colSpan="1" >0</td>
1615
+
1616
+ <td rowspan="1" colSpan="1" >Undefined.</td>
1617
+ </tr>
1618
+
1619
+ <tr>
1620
+ <td rowspan="1" colSpan="1" >TRTCTranscodingConfigMode_Manual</td>
1621
+
1622
+ <td rowspan="1" colSpan="1" >1</td>
1623
+
1624
+ <td rowspan="1" colSpan="1" >Fully Manual Layout Mode.<br>In this mode, you need to specify the exact layout position for each screen. This mode offers the highest degree of freedom but is the least user-friendly:<br>- You need to fill in all parameters in TRTCTranscodingConfig, including the position coordinates for each screen (TRTCMixUser).<br>- You need to monitor the onUserVideoAvailable() and onUserAudioAvailable() event callbacks in ITRTCCloudCallback, and continuously adjust the mixUsers parameters based on the audio and video status of users on each mic in the current room.</td>
1625
+ </tr>
1626
+
1627
+ <tr>
1628
+ <td rowspan="1" colSpan="1" >TRTCTranscodingConfigMode_Template_PureAudio</td>
1629
+
1630
+ <td rowspan="1" colSpan="1" >2</td>
1631
+
1632
+ <td rowspan="1" colSpan="1" >Pure Audio Mode.<br>This mode is suitable for voice call (AudioCall) and voice chat room (VoiceChatRoom) audio-only applications.<br>- After entering the room, you only need to set up the mixing configuration once through the setMixTranscodingConfig interface. The SDK will then automatically mix the audio of all on-mic users in the room into the current user's live stream.<br>- You don't need to set the mixUsers parameters in TRTCTranscodingConfig. Just set the audioSampleRate, audioBitrate, and audioChannels parameters.</td>
1633
+ </tr>
1634
+
1635
+ <tr>
1636
+ <td rowspan="1" colSpan="1" >TRTCTranscodingConfigMode_Template_PresetLayout</td>
1637
+
1638
+ <td rowspan="1" colSpan="1" >3</td>
1639
+
1640
+ <td rowspan="1" colSpan="1" >Pre-layout Mode.<br>The most popular layout mode because it supports pre-setting the positions of each screen using placeholders, and then the SDK will automatically adapt and adjust based on the number of screens in the room.<br>In this mode, you still need to set the mixUsers parameters, but you can set the userId to "Placeholder". The available placeholders are:<br>- "$PLACE_HOLDER_REMOTE$" : Represents the remote user's screen. Multiple instances can be set.<br>- "$PLACE_HOLDER_LOCAL_MAIN$" : Represents the local camera screen. Only one instance is allowed.<br>- "$PLACE_HOLDER_LOCAL_SUB$" : Represents the local screen sharing. Only one instance is allowed.<br>In this mode, you do not need to monitor the onUserVideoAvailable and onUserAudioAvailable callbacks in ITRTCCloudCallback for real-time adjustment. You just need to call setMixTranscodingConfig once after successfully entering the room; thereafter, the SDK will automatically fill the real userId into the placeholders you set.</td>
1641
+ </tr>
1642
+
1643
+ <tr>
1644
+ <td rowspan="1" colSpan="1" >TRTCTranscodingConfigMode_Template_ScreenSharing</td>
1645
+
1646
+ <td rowspan="1" colSpan="1" >4</td>
1647
+
1648
+ <td rowspan="1" colSpan="1" >Screen Sharing Mode.<br>Suitable for online education scenarios and other screen sharing-centric applications, this mode is only supported on Windows and Mac SDKs.<br>In this mode, the SDK will first build a canvas based on the target resolution you set via the videoWidth and videoHeight parameters,<br>- If the teacher does not activate the screen sharing, the SDK will proportionally stretch and draw the teacher's camera feed onto the canvas;<br>- When the teacher activates screen sharing, the SDK will draw the screen sharing feed onto the same canvas.<br>The purpose of this layout is to ensure that the output resolution of the stream mixing module is consistent, avoiding screen tearing issues during course playback and web viewing (web players do not support variable resolutions).<br>Additionally, the students' audio will be mixed into the teacher's audio and video stream by default.<br>Since video content in teaching mode is primarily screen sharing, simultaneously transmitting the camera feed and the screen sharing feed is very bandwidth-intensive.<br>The recommended approach is to directly render the camera feed onto the current screen via the setLocalVideoRenderCallback interface.<br>In this mode, you don't need to set the mixUsers parameters in TRTCTranscodingConfig. The SDK will not mix the students' screens to prevent interference with the screen sharing effect.<br>You can set the width x height in TRTCTranscodingConfig to 0px × 0px. The SDK will automatically calculate a suitable resolution based on the user's current screen aspect ratio<br>- If the teacher's current screen width is <= 1920px, the SDK will use the actual resolution of the teacher's current screen.<br>- If the teacher's current screen width is > 1920px, the SDK will choose one of the three resolutions based on the current screen aspect ratio: 1920x1080 (16:9), 1920x1200 (16:10), or 1920x1440 (4:3).</td>
1649
+ </tr>
1650
+ </table>
1651
+
1652
+
1653
+ ## TRTCRecordType
1654
+
1655
+
1656
+
1657
+ #### Media Recording Type
1658
+
1659
+ This enumeration type is used for the local media recording interface [startLocalRecording](https://write.woa.com/document/87030026264555520) to specify whether to record audio and video files or pure audio files.
1660
+ <table>
1661
+ <tr>
1662
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1663
+
1664
+ <td rowspan="1" colSpan="1" >Value</td>
1665
+
1666
+ <td rowspan="1" colSpan="1" >Description</td>
1667
+ </tr>
1668
+
1669
+ <tr>
1670
+ <td rowspan="1" colSpan="1" >TRTCLocalRecordType_Audio</td>
1671
+
1672
+ <td rowspan="1" colSpan="1" >0</td>
1673
+
1674
+ <td rowspan="1" colSpan="1" >Audio recording only.</td>
1675
+ </tr>
1676
+
1677
+ <tr>
1678
+ <td rowspan="1" colSpan="1" >TRTCLocalRecordType_Video</td>
1679
+
1680
+ <td rowspan="1" colSpan="1" >1</td>
1681
+
1682
+ <td rowspan="1" colSpan="1" >Video recording only.</td>
1683
+ </tr>
1684
+
1685
+ <tr>
1686
+ <td rowspan="1" colSpan="1" >TRTCLocalRecordType_Both</td>
1687
+
1688
+ <td rowspan="1" colSpan="1" >2</td>
1689
+
1690
+ <td rowspan="1" colSpan="1" >Record both audio and video.</td>
1691
+ </tr>
1692
+ </table>
1693
+
1694
+
1695
+ ## TRTCMixInputType
1696
+
1697
+
1698
+
1699
+ #### Mixed Streaming Input Type
1700
+ <table>
1701
+ <tr>
1702
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1703
+
1704
+ <td rowspan="1" colSpan="1" >Value</td>
1705
+
1706
+ <td rowspan="1" colSpan="1" >Description</td>
1707
+ </tr>
1708
+
1709
+ <tr>
1710
+ <td rowspan="1" colSpan="1" >TRTCMixInputTypeUndefined</td>
1711
+
1712
+ <td rowspan="1" colSpan="1" >0</td>
1713
+
1714
+ <td rowspan="1" colSpan="1" >Default value. Considering compatibility with older versions, if you specify the inputType as Undefined, the SDK will determine the mixed input type based on the value of another parameter, pureAudio.</td>
1715
+ </tr>
1716
+
1717
+ <tr>
1718
+ <td rowspan="1" colSpan="1" >TRTCMixInputTypeAudioVideo</td>
1719
+
1720
+ <td rowspan="1" colSpan="1" >1</td>
1721
+
1722
+ <td rowspan="1" colSpan="1" >Mix both audio and video.</td>
1723
+ </tr>
1724
+
1725
+ <tr>
1726
+ <td rowspan="1" colSpan="1" >TRTCMixInputTypePureVideo</td>
1727
+
1728
+ <td rowspan="1" colSpan="1" >2</td>
1729
+
1730
+ <td rowspan="1" colSpan="1" >Mix video only.</td>
1731
+ </tr>
1732
+
1733
+ <tr>
1734
+ <td rowspan="1" colSpan="1" >TRTCMixInputTypePureAudio</td>
1735
+
1736
+ <td rowspan="1" colSpan="1" >3</td>
1737
+
1738
+ <td rowspan="1" colSpan="1" >Mix audio only.</td>
1739
+ </tr>
1740
+
1741
+ <tr>
1742
+ <td rowspan="1" colSpan="1" >TRTCMixInputTypeWatermark</td>
1743
+
1744
+ <td rowspan="1" colSpan="1" >4</td>
1745
+
1746
+ <td rowspan="1" colSpan="1" >Mix watermarks. In this case, you do not need to specify the userId field but need to specify the image field. Using png format images is recommended.</td>
1747
+ </tr>
1748
+ </table>
1749
+
1750
+
1751
+ ## TRTCWaterMarkSrcType
1752
+
1753
+
1754
+
1755
+ #### Watermark image source type
1756
+ <table>
1757
+ <tr>
1758
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1759
+
1760
+ <td rowspan="1" colSpan="1" >Value</td>
1761
+
1762
+ <td rowspan="1" colSpan="1" >Description</td>
1763
+ </tr>
1764
+
1765
+ <tr>
1766
+ <td rowspan="1" colSpan="1" >TRTCWaterMarkSrcTypeFile</td>
1767
+
1768
+ <td rowspan="1" colSpan="1" >0</td>
1769
+
1770
+ <td rowspan="1" colSpan="1" >Image file path, supports BMP, GIF, JPEG, PNG, TIFF, Exif, WMF, and EMF file formats.</td>
1771
+ </tr>
1772
+
1773
+ <tr>
1774
+ <td rowspan="1" colSpan="1" >TRTCWaterMarkSrcTypeBGRA32</td>
1775
+
1776
+ <td rowspan="1" colSpan="1" >1</td>
1777
+
1778
+ <td rowspan="1" colSpan="1" >BGRA32 format memory block</td>
1779
+ </tr>
1780
+
1781
+ <tr>
1782
+ <td rowspan="1" colSpan="1" >TRTCWaterMarkSrcTypeRGBA32</td>
1783
+
1784
+ <td rowspan="1" colSpan="1" >2</td>
1785
+
1786
+ <td rowspan="1" colSpan="1" >RGBA32 format memory block.</td>
1787
+ </tr>
1788
+ </table>
1789
+
1790
+
1791
+ ## TRTCAudioRecordingContent
1792
+
1793
+
1794
+
1795
+ #### Audio Recording Content Type
1796
+
1797
+ This enumeration type is used for the audio recording interface [startAudioRecording](https://write.woa.com/document/87030026264555520) to specify the content of the audio to be recorded.
1798
+ <table>
1799
+ <tr>
1800
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1801
+
1802
+ <td rowspan="1" colSpan="1" >Value</td>
1803
+
1804
+ <td rowspan="1" colSpan="1" >Description</td>
1805
+ </tr>
1806
+
1807
+ <tr>
1808
+ <td rowspan="1" colSpan="1" >TRTCAudioRecordingContentAll</td>
1809
+
1810
+ <td rowspan="1" colSpan="1" >0</td>
1811
+
1812
+ <td rowspan="1" colSpan="1" >Record all local and remote audio.</td>
1813
+ </tr>
1814
+
1815
+ <tr>
1816
+ <td rowspan="1" colSpan="1" >TRTCAudioRecordingContentLocal</td>
1817
+
1818
+ <td rowspan="1" colSpan="1" >1</td>
1819
+
1820
+ <td rowspan="1" colSpan="1" >Record local audio only.</td>
1821
+ </tr>
1822
+
1823
+ <tr>
1824
+ <td rowspan="1" colSpan="1" >TRTCAudioRecordingContentRemote</td>
1825
+
1826
+ <td rowspan="1" colSpan="1" >2</td>
1827
+
1828
+ <td rowspan="1" colSpan="1" >Record remote audio only.</td>
1829
+ </tr>
1830
+ </table>
1831
+
1832
+
1833
+ ## TRTCPublishMode
1834
+
1835
+
1836
+
1837
+ #### Media Stream Publication Mode
1838
+
1839
+ This enumeration type is used for the media stream publishing interface [startPublishMediaStream](https://write.woa.com/document/87030026264555520). TRTC's media stream publishing service can mix multiple audio and video streams in the room into one stream and publish it to a CDN or push it back to the room. You can also publish your current audio and video stream to Tencent or a third-party CDN. Therefore, you need to specify the publishing mode of the corresponding media stream. We provide the following modes.
1840
+ <table>
1841
+ <tr>
1842
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1843
+
1844
+ <td rowspan="1" colSpan="1" >Value</td>
1845
+
1846
+ <td rowspan="1" colSpan="1" >Description</td>
1847
+ </tr>
1848
+
1849
+ <tr>
1850
+ <td rowspan="1" colSpan="1" >TRTCPublishModeUnknown</td>
1851
+
1852
+ <td rowspan="1" colSpan="1" >0</td>
1853
+
1854
+ <td rowspan="1" colSpan="1" >Undefined.</td>
1855
+ </tr>
1856
+
1857
+ <tr>
1858
+ <td rowspan="1" colSpan="1" >TRTCPublishBigStreamToCdn</td>
1859
+
1860
+ <td rowspan="1" colSpan="1" >1</td>
1861
+
1862
+ <td rowspan="1" colSpan="1" >You can set this parameter to publish the main stream ([TRTCVideoStreamTypeBig](https://write.woa.com/document/87030132707430400)) in your room to Tencent or third-party live streaming CDN services (only supports standard RTMP protocol).</td>
1863
+ </tr>
1864
+
1865
+ <tr>
1866
+ <td rowspan="1" colSpan="1" >TRTCPublishSubStreamToCdn</td>
1867
+
1868
+ <td rowspan="1" colSpan="1" >2</td>
1869
+
1870
+ <td rowspan="1" colSpan="1" >You can set this parameter to publish the substream ([TRTCVideoStreamTypeSub](https://write.woa.com/document/87030132707430400)) in your room to Tencent or third-party live streaming CDN services (only supports standard RTMP protocol).</td>
1871
+ </tr>
1872
+
1873
+ <tr>
1874
+ <td rowspan="1" colSpan="1" >TRTCPublishMixStreamToCdn</td>
1875
+
1876
+ <td rowspan="1" colSpan="1" >3</td>
1877
+
1878
+ <td rowspan="1" colSpan="1" >You can set this parameter, together with encoding output parameters ([TRTCStreamEncoderParam](https://write.woa.com/document/87030132707430400)) and mix stream transcoding parameters ([TRTCStreamMixingConfig](https://write.woa.com/document/87030132707430400)), to transcode and publish your specified multiple audio and video streams to Tencent or third-party live streaming CDN services (only supports standard RTMP protocol).</td>
1879
+ </tr>
1880
+
1881
+ <tr>
1882
+ <td rowspan="1" colSpan="1" >TRTCPublishMixStreamToRoom</td>
1883
+
1884
+ <td rowspan="1" colSpan="1" >4</td>
1885
+
1886
+ <td rowspan="1" colSpan="1" >You can set this parameter, together with media stream encoding output parameters ([TRTCStreamEncoderParam](https://write.woa.com/document/87030132707430400)) and mix stream transcoding parameters ([TRTCStreamMixingConfig](https://write.woa.com/document/87030132707430400)), to transcode and publish your specified multiple audio and video streams into your specified room.<br>- Specify the robot information for the pushback room through [TRTCPublishTarget](https://write.woa.com/document/87030132707430400) TRTCUser.</td>
1887
+ </tr>
1888
+ </table>
1889
+
1890
+
1891
+ ## TRTCEncryptionAlgorithm
1892
+
1893
+
1894
+
1895
+ #### Encryption Algorithm
1896
+
1897
+ This enumeration type is used for the selection of the private encryption algorithm for media streams.
1898
+ <table>
1899
+ <tr>
1900
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1901
+
1902
+ <td rowspan="1" colSpan="1" >Value</td>
1903
+
1904
+ <td rowspan="1" colSpan="1" >Description</td>
1905
+ </tr>
1906
+
1907
+ <tr>
1908
+ <td rowspan="1" colSpan="1" >TRTCEncryptionAlgorithmAes128Gcm</td>
1909
+
1910
+ <td rowspan="1" colSpan="1" >0</td>
1911
+
1912
+ <td rowspan="1" colSpan="1" >AES GCM 128.</td>
1913
+ </tr>
1914
+
1915
+ <tr>
1916
+ <td rowspan="1" colSpan="1" >TRTCEncryptionAlgorithmAes256Gcm</td>
1917
+
1918
+ <td rowspan="1" colSpan="1" >1</td>
1919
+
1920
+ <td rowspan="1" colSpan="1" >AES GCM 256.</td>
1921
+ </tr>
1922
+ </table>
1923
+
1924
+
1925
+ ## TRTCSpeedTestScene
1926
+
1927
+
1928
+
1929
+ #### Speed Test Scenario
1930
+
1931
+ This enumeration type is used for selecting the speed test scenario.
1932
+ <table>
1933
+ <tr>
1934
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1935
+
1936
+ <td rowspan="1" colSpan="1" >Value</td>
1937
+
1938
+ <td rowspan="1" colSpan="1" >Description</td>
1939
+ </tr>
1940
+
1941
+ <tr>
1942
+ <td rowspan="1" colSpan="1" >TRTCSpeedTestScene_DelayTesting</td>
1943
+
1944
+ <td rowspan="1" colSpan="1" >1</td>
1945
+
1946
+ <td rowspan="1" colSpan="1" >Latency test.</td>
1947
+ </tr>
1948
+
1949
+ <tr>
1950
+ <td rowspan="1" colSpan="1" >TRTCSpeedTestScene_DelayAndBandwidthTesting</td>
1951
+
1952
+ <td rowspan="1" colSpan="1" >2</td>
1953
+
1954
+ <td rowspan="1" colSpan="1" >Latency and bandwidth test.</td>
1955
+ </tr>
1956
+
1957
+ <tr>
1958
+ <td rowspan="1" colSpan="1" >TRTCSpeedTestScene_OnlineChorusTesting</td>
1959
+
1960
+ <td rowspan="1" colSpan="1" >3</td>
1961
+
1962
+ <td rowspan="1" colSpan="1" >Online chorus test.</td>
1963
+ </tr>
1964
+ </table>
1965
+
1966
+
1967
+ ## TRTCGravitySensorAdaptiveMode
1968
+
1969
+
1970
+
1971
+ #### Set Adaptation Mode for Gravity Sensor (Only applicable to mobile devices)
1972
+ <table>
1973
+ <tr>
1974
+ <td rowspan="1" colSpan="1" >Enumeration</td>
1975
+
1976
+ <td rowspan="1" colSpan="1" >Value</td>
1977
+
1978
+ <td rowspan="1" colSpan="1" >Description</td>
1979
+ </tr>
1980
+
1981
+ <tr>
1982
+ <td rowspan="1" colSpan="1" >TRTCGravitySensorAdaptiveMode_Disable</td>
1983
+
1984
+ <td rowspan="1" colSpan="1" >0</td>
1985
+
1986
+ <td rowspan="1" colSpan="1" >Turn off gravity sensing. Based on the current captured resolution and the set encoding resolution, if they are inconsistent, rotate by 90 degrees to ensure the maximum frame size.</td>
1987
+ </tr>
1988
+
1989
+ <tr>
1990
+ <td rowspan="1" colSpan="1" >TRTCGravitySensorAdaptiveMode_FillByCenterCrop</td>
1991
+
1992
+ <td rowspan="1" colSpan="1" >1</td>
1993
+
1994
+ <td rowspan="1" colSpan="1" >Enable gravity sensing. Always ensure the remote screen image is correct. When there is a resolution inconsistency, use the centered cropping mode.</td>
1995
+ </tr>
1996
+
1997
+ <tr>
1998
+ <td rowspan="1" colSpan="1" >TRTCGravitySensorAdaptiveMode_FitWithBlackBorder</td>
1999
+
2000
+ <td rowspan="1" colSpan="1" >2</td>
2001
+
2002
+ <td rowspan="1" colSpan="1" >Enable gravity sensing. Always ensure the remote screen image is correct. When there is a resolution inconsistency, use the black border overlay mode.</td>
2003
+ </tr>
2004
+ </table>
2005
+
2006
+
2007
+ ## TRTCParams
2008
+
2009
+
2010
+
2011
+ #### Room entry parameters
2012
+
2013
+ As an entry parameter for the TRTC SDK, only if this parameter is filled in correctly can you successfully enter the audio and video room specified by roomId or strRoomId.
2014
+
2015
+ Due to historical reasons, TRTC supports two types of room numbers, numeric and string, which are roomId and strRoomId respectively.
2016
+
2017
+ Please note: Do not mix roomId and strRoomId, as they are not interchangeable. For example, the number 123 and the string "123" are considered two completely different rooms in TRTC.
2018
+ <table>
2019
+ <tr>
2020
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2021
+
2022
+ <td rowspan="1" colSpan="1" >Description</td>
2023
+ </tr>
2024
+
2025
+ <tr>
2026
+ <td rowspan="1" colSpan="1" >businessInfo</td>
2027
+
2028
+ <td rowspan="1" colSpan="1" >[Field Meaning] Business data field (optional). This field is required for some advanced features.<br>[Recommended Value] Please do not set this field yourself.</td>
2029
+ </tr>
2030
+
2031
+ <tr>
2032
+ <td rowspan="1" colSpan="1" >privateMapKey</td>
2033
+
2034
+ <td rowspan="1" colSpan="1" >[Field Meaning] Permission ticket used for permission control (optional). If you want only specific userIds to enter a room, you need to use privateMapKey for permission protection.<br>[Recommended Value] Only recommended for customers with high-level security requirements. For more details, please refer to [Room Entry Permission Protection](https://cloud.tencent.com/document/product/647/32240).</td>
2035
+ </tr>
2036
+
2037
+ <tr>
2038
+ <td rowspan="1" colSpan="1" >role</td>
2039
+
2040
+ <td rowspan="1" colSpan="1" >[Field Meaning] Role in live streaming scenarios, only applicable to live streaming scenarios ([TRTCAppSceneLIVE](https://write.woa.com/document/87030132707430400) and [TRTCAppSceneVoiceChatRoom](https://write.woa.com/document/87030132707430400)). Specifying this parameter in a calling scenario is ineffective.<br>[Recommended Value] Default value: Anchor ([TRTCRoleAnchor](https://write.woa.com/document/87030132707430400)).</td>
2041
+ </tr>
2042
+
2043
+ <tr>
2044
+ <td rowspan="1" colSpan="1" >roomId</td>
2045
+
2046
+ <td rowspan="1" colSpan="1" >[Field Meaning] Numeric room number, where users (userId) in the same room can see each other and make audio and video calls.<br>[Recommended Value] Value range: 1 - 4294967294.<br>[Special Explanation] roomId and strRoomId are mutually exclusive. If you choose strRoomId, roomId must be set to 0. If both are filled, the SDK will prioritize roomId.<br>[Please note] Do not mix roomId and strRoomId as they are not interchangeable. For example, the number 123 and the string `123` are considered two entirely different rooms in TRTC.</td>
2047
+ </tr>
2048
+
2049
+ <tr>
2050
+ <td rowspan="1" colSpan="1" >sdkAppId</td>
2051
+
2052
+ <td rowspan="1" colSpan="1" >[Field Meaning] Application Identifier (Required). Tencent Cloud uses sdkAppId for billing statistics.<br>[Recommended Value] This ID can be obtained from the account information page after creating an application in the [TRTC Console](https://console.cloud.tencent.com/rav/).</td>
2053
+ </tr>
2054
+
2055
+ <tr>
2056
+ <td rowspan="1" colSpan="1" >strRoomId</td>
2057
+
2058
+ <td rowspan="1" colSpan="1" >[Field Meaning] String room number, where users (userId) in the same room can see each other and make audio and video calls.<br>[Special Explanation] roomId and strRoomId are mutually exclusive. If you choose strRoomId, roomId must be set to 0. If both are filled, the SDK will prioritize roomId.<br>[Please note] Do not mix roomId and strRoomId as they are not interchangeable. For example, the number 123 and the string `123` are considered two entirely different rooms in TRTC.<br>[Recommended Value] Length limit is 64 bytes. The following character set range is supported (a total of 89 characters):<br>- Upper and lowercase English letters (a-zA-Z);<br>- Numbers (0-9);<br>- Space,` ! `,` # `,` $ `,` % `,` & `,` ( `,` ) `,` + `,` - `,` : `,` ; `,` < `,` = `,` . `,` > `,` ? `,` @ `,` [ `,` ] `,` ^ `,` _ `,` { `,` } `,` \| `,` ~ `,` , `.</td>
2059
+ </tr>
2060
+
2061
+ <tr>
2062
+ <td rowspan="1" colSpan="1" >streamId</td>
2063
+
2064
+ <td rowspan="1" colSpan="1" >[Field Meaning] Used to specify the streamId on the Tencent CSS platform (optional). Once set, you can play the user's audio and video streams on the Tencent CSS CDN through the standard pull streaming scheme (FLV or HLS).<br>[Recommended Value] Length limit is 64 bytes and can be left blank. A recommended scheme is to use ` sdkappid_roomid_userid_main ` as the streamId. This naming convention is easy to identify and will not conflict with your multiple applications.<br>[Special Note] To use Tencent CSS CDN, you need to first enable the "Automatic Bypass Live Streaming" switch on the feature configuration page in the [console](https://console.cloud.tencent.com/trtc/).<br>[Reference Document][CDN Bypass Live Streaming](https://cloud.tencent.com/document/product/647/16826).</td>
2065
+ </tr>
2066
+
2067
+ <tr>
2068
+ <td rowspan="1" colSpan="1" >userDefineRecordId</td>
2069
+
2070
+ <td rowspan="1" colSpan="1" >[Field Meaning] Cloud recording switch (optional). Used to specify whether to record this user's audio and video streams in the cloud.<br>[Reference Document][Cloud Recording](https://cloud.tencent.com/document/product/647/16823).<br>[Recommended Value] Length limit is 64 bytes. Only uppercase and lowercase English letters (a-zA-Z), numbers (0-9), underscores, and hyphens are allowed.<br>Scheme 1: Manual Recording Scheme:<br>1. Enable Cloud Recording in the [Console](https://console.cloud.tencent.com/trtc)>Application Management>Cloud Recording Configuration.<br>2. Set the ` recording mode ` to ` manual recording `.<br>3. After setting manual recording, only users who set the userDefineRecordId parameter in a TRTC room will have recorded video files on the cloud. Users who do not specify this parameter will not be recorded.<br>4. The cloud will name the recorded files in the format "userDefineRecordId_start time_end time".<br>Scheme 2: Automatic Recording Scheme:<br>1. Enable Cloud Recording in the [Console](https://console.cloud.tencent.com/trtc)>Application Management>Cloud Recording Configuration.<br>2. Set the ` recording mode ` to ` automatic recording `.<br>3. After setting automatic recording, any user with audio/video uplink in a TRTC room will have recorded video files on the cloud.<br>4. The files will be named in the format ` userDefineRecordId_start time_end time `. If userDefineRecordId is not specified, the files will be named in the format ` streamId_start time_end time `.</td>
2071
+ </tr>
2072
+
2073
+ <tr>
2074
+ <td rowspan="1" colSpan="1" >userId</td>
2075
+
2076
+ <td rowspan="1" colSpan="1" >[Field Meaning] User Identification (Required). The current user's userId, equivalent to username, using UTF-8 encoding.<br>[Recommended Value] If a user's ID in your account system is "mike", then userId can be set to "mike".</td>
2077
+ </tr>
2078
+
2079
+ <tr>
2080
+ <td rowspan="1" colSpan="1" >userSig</td>
2081
+
2082
+ <td rowspan="1" colSpan="1" >[Field Meaning] User Signature (Required). The verification signature corresponding to the current userId, equivalent to using the cloud service's login password.<br>[Recommended Value] For the specific calculation method, please see [How to Calculate UserSig](https://cloud.tencent.com/document/product/647/17275).</td>
2083
+ </tr>
2084
+ </table>
2085
+
2086
+
2087
+ ## TRTCVideoEncParam
2088
+
2089
+
2090
+
2091
+ #### Video encoding parameters
2092
+
2093
+ This setting determines the picture quality seen by remote users and also the picture quality of the video files recorded on the cloud.
2094
+ <table>
2095
+ <tr>
2096
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2097
+
2098
+ <td rowspan="1" colSpan="1" >Description</td>
2099
+ </tr>
2100
+
2101
+ <tr>
2102
+ <td rowspan="1" colSpan="1" >enableAdjustRes</td>
2103
+
2104
+ <td rowspan="1" colSpan="1" >[Field Meaning] Whether to allow dynamic resolution adjustment (enabling this will impact cloud recording).<br>[Recommended Value] This feature is suitable for scenarios where cloud recording is not needed. When enabled, the SDK will intelligently select an appropriate resolution based on the current network conditions to avoid inefficient encoding modes like "high resolution + low bitrate".<br>[Special Note] Default value: Disabled. If you need cloud recording, do not enable this feature because if the video resolution changes, the recorded MP4 on the cloud cannot be played properly on regular players.</td>
2105
+ </tr>
2106
+
2107
+ <tr>
2108
+ <td rowspan="1" colSpan="1" >minVideoBitrate</td>
2109
+
2110
+ <td rowspan="1" colSpan="1" >[Field Meaning] Minimum video bitrate. The SDK will actively lower the video bitrate when the network is poor to maintain smoothness, with the minimum lowered to the value set by minVideoBitrate.<br>[Special Note] Default value: 0, in which case the minimum bitrate will be automatically calculated by the SDK based on the resolution you specified.<br>[Recommended Value] You can set both videoBitrate and minVideoBitrate parameters simultaneously to constrain the SDK's video bitrate adjustment range:<br>- If you pursue ` allowing stuttering under weak networks but maintaining clarity `, you can set minVideoBitrate to 60% of videoBitrate.<br>- If you pursue ` allowing blurriness under weak networks but maintaining smoothness `, you can set minVideoBitrate to a lower value (e.g., 100kbps).<br>- If you set videoBitrate and minVideoBitrate to the same value, it is equivalent to disabling the SDK's adaptive video bitrate adjustment capability.</td>
2111
+ </tr>
2112
+
2113
+ <tr>
2114
+ <td rowspan="1" colSpan="1" >resMode</td>
2115
+
2116
+ <td rowspan="1" colSpan="1" >[Field Meaning] Resolution Mode (horizontal resolution or vertical resolution).<br>[Recommended Value] For mobile platforms (iOS, Android), it is recommended to choose Portrait. For desktop platforms (Windows, Mac), it is recommended to choose Landscape.<br>[Special Note] If you need to use vertical resolution, specify resMode as Portrait, e.g., 640 × 360 + Portrait = 360 × 640.</td>
2117
+ </tr>
2118
+
2119
+ <tr>
2120
+ <td rowspan="1" colSpan="1" >videoBitrate</td>
2121
+
2122
+ <td rowspan="1" colSpan="1" >[Field Meaning] Target video bitrate. The SDK will encode according to the target bitrate and will only actively lower the video bitrate in weak network environments.<br>[Recommended Value] Please refer to the optimal bitrate annotations for each level in TRTCVideoResolution, which can also be appropriately increased. For example, TRTCVideoResolution_1280_720 corresponds to a target bitrate of 1200kbps, but you can set it to 1500kbps for better visual clarity.<br>[Special Note] You can set both videoBitrate and minVideoBitrate parameters simultaneously to constrain the SDK's video bitrate adjustment range:<br>- If you prefer "allowing stuttering under weak network conditions but maintaining clarity," you can set minVideoBitrate to 60% of videoBitrate.<br>- If you prefer "allowing blurring under weak network conditions but maintaining smoothness," you can set minVideoBitrate to a lower value (e.g., 100kbps).<br>- If you set videoBitrate and minVideoBitrate to the same value, it is equivalent to disabling the SDK's adaptive video bitrate adjustment capability.</td>
2123
+ </tr>
2124
+
2125
+ <tr>
2126
+ <td rowspan="1" colSpan="1" >videoFps</td>
2127
+
2128
+ <td rowspan="1" colSpan="1" >[Field Meaning] Video capture frame rate.<br>[Recommended Value] 15fps or 20fps. Below 5fps, lag sensation is noticeable. Below 10fps, there will be slight lag. Above 20fps, it will waste bandwidth (the frame rate of movies is 24fps).<br>[Special Note] Some Android phones' front-facing cameras do not support a capture frame rate above 15fps. The capture frame rate of the front-facing camera of some Android phones with a beauty feature may be below 10fps.</td>
2129
+ </tr>
2130
+
2131
+ <tr>
2132
+ <td rowspan="1" colSpan="1" >videoResolution</td>
2133
+
2134
+ <td rowspan="1" colSpan="1" >[Field Meaning] Video resolution.<br>[Special Note] If you need to use vertical resolution, specify resMode as Portrait, e.g., 640 × 360 + Portrait = 360 × 640.<br>[Recommended Values]<br>- Mobile video call: It is recommended to choose 360 × 640 or lower resolution, with resMode set to Portrait (vertical resolution).<br>- Mobile online live streaming: It is recommended to choose 540 × 960, with resMode set to Portrait (vertical resolution).<br>- Desktop platform (Win + Mac): It is recommended to choose 640 × 360 or higher resolution, with resMode set to Landscape (horizontal resolution).</td>
2135
+ </tr>
2136
+ </table>
2137
+
2138
+
2139
+ ## TRTCNetworkQosParam
2140
+
2141
+
2142
+
2143
+ #### Network flow control (Qos) parameter set
2144
+
2145
+ Network traffic control parameters, this setting determines the SDK's adjustment strategy in poor network conditions (for example: "Clarity Priority" or "Smoothness Priority").
2146
+ <table>
2147
+ <tr>
2148
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2149
+
2150
+ <td rowspan="1" colSpan="1" >Description</td>
2151
+ </tr>
2152
+
2153
+ <tr>
2154
+ <td rowspan="1" colSpan="1" >controlMode</td>
2155
+
2156
+ <td rowspan="1" colSpan="1" >[Field Meaning] Flow control mode (deprecated).<br>[Recommended Values] Cloud Control.<br>[Special Note] Please set it to Cloud Control mode (TRTCQosControlModeServer).</td>
2157
+ </tr>
2158
+
2159
+ <tr>
2160
+ <td rowspan="1" colSpan="1" >preference</td>
2161
+
2162
+ <td rowspan="1" colSpan="1" >[Field Meaning] Clarity Priority or Smooth Priority.<br>[Recommended Values] Clarity Priority.<br>[Special Note] This parameter mainly affects TRTC's audio and video performance in poor network environments:<br>- Smooth Priority: When the current network is insufficient to transmit both clear and smooth images, it prioritizes the smoothness of the picture, which results in a blurrier image with more mosaics. See [TRTCVideoQosPreferenceSmooth](https://write.woa.com/document/87030132707430400)<br>- Clarity Priority (default): When the current network is insufficient to transmit both clear and smooth images, it prioritizes the clarity of the picture, which results in more stuttering. See [TRTCVideoQosPreferenceClear](https://write.woa.com/document/87030132707430400)</td>
2163
+ </tr>
2164
+ </table>
2165
+
2166
+
2167
+ ## TRTCRenderParams
2168
+
2169
+
2170
+
2171
+ #### Rendering parameters for video footage
2172
+
2173
+ You can control the screen's rotation angle, fill mode, and left-right mirror mode by setting this parameter.
2174
+ <table>
2175
+ <tr>
2176
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2177
+
2178
+ <td rowspan="1" colSpan="1" >Description</td>
2179
+ </tr>
2180
+
2181
+ <tr>
2182
+ <td rowspan="1" colSpan="1" >fillMode</td>
2183
+
2184
+ <td rowspan="1" colSpan="1" >[Field Meaning] Screen Fill Mode.<br>[Recommended Values] Fill (the screen may be stretched or cropped) or Fit (the screen may have black edges), Default: [TRTCVideoFillMode_Fill](https://write.woa.com/document/87030132707430400).</td>
2185
+ </tr>
2186
+
2187
+ <tr>
2188
+ <td rowspan="1" colSpan="1" >mirrorType</td>
2189
+
2190
+ <td rowspan="1" colSpan="1" >[Field Meaning] Screen Mirror Mode.<br>[Recommended Value] Default value: [TRTCVideoMirrorType_Auto](https://write.woa.com/document/87030132707430400).</td>
2191
+ </tr>
2192
+
2193
+ <tr>
2194
+ <td rowspan="1" colSpan="1" >rotation</td>
2195
+
2196
+ <td rowspan="1" colSpan="1" >[Field Meaning] Clockwise rotation angle of the image.<br>[Recommended Value] Supports 90, 180, and 270 rotation angles. Default value: [TRTCVideoRotation0](https://write.woa.com/document/87030132707430400).</td>
2197
+ </tr>
2198
+ </table>
2199
+
2200
+
2201
+ ## TRTCQualityInfo
2202
+
2203
+
2204
+
2205
+ #### Network quality
2206
+
2207
+ Represents the quality of the network. This value can be used to display each user's network quality on the user interface.
2208
+ <table>
2209
+ <tr>
2210
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2211
+
2212
+ <td rowspan="1" colSpan="1" >Description</td>
2213
+ </tr>
2214
+
2215
+ <tr>
2216
+ <td rowspan="1" colSpan="1" >quality</td>
2217
+
2218
+ <td rowspan="1" colSpan="1" >Network quality</td>
2219
+ </tr>
2220
+
2221
+ <tr>
2222
+ <td rowspan="1" colSpan="1" >userId</td>
2223
+
2224
+ <td rowspan="1" colSpan="1" >User ID</td>
2225
+ </tr>
2226
+ </table>
2227
+
2228
+
2229
+ ## TRTCVolumeInfo
2230
+
2231
+
2232
+
2233
+ #### Volume level
2234
+
2235
+ Represents the evaluation value of voice volume. This value can be used to display each user's volume on the user interface.
2236
+ <table>
2237
+ <tr>
2238
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2239
+
2240
+ <td rowspan="1" colSpan="1" >Description</td>
2241
+ </tr>
2242
+
2243
+ <tr>
2244
+ <td rowspan="1" colSpan="1" >pitch</td>
2245
+
2246
+ <td rowspan="1" colSpan="1" >The voice frequency of the local user (in Hz), range [0 - 4000]. For remote users, this value is always 0.</td>
2247
+ </tr>
2248
+
2249
+ <tr>
2250
+ <td rowspan="1" colSpan="1" >spectrumData</td>
2251
+
2252
+ <td rowspan="1" colSpan="1" >Audio spectrum data represents the distribution of audio data in the frequency domain, divided into 256 frequency bands. The spectrumData records the energy value of each frequency band, each energy value ranges from [-300, 0], in dBFS.<br>**Note**<br>Local spectrum is calculated using the audio data before encoding, affected by local collection volume and BGM, etc. Remote spectrum is calculated using received audio data, and local adjustments to remote playback volume will not affect it.<br></td>
2253
+ </tr>
2254
+
2255
+ <tr>
2256
+ <td rowspan="1" colSpan="1" >spectrumDataLength</td>
2257
+
2258
+ <td rowspan="1" colSpan="1" >spectrumDataLength records the length of the audio spectrum data, which is 256.</td>
2259
+ </tr>
2260
+
2261
+ <tr>
2262
+ <td rowspan="1" colSpan="1" >userId</td>
2263
+
2264
+ <td rowspan="1" colSpan="1" >The userId of the speaker. If the userId is empty, it represents the current user.</td>
2265
+ </tr>
2266
+
2267
+ <tr>
2268
+ <td rowspan="1" colSpan="1" >vad</td>
2269
+
2270
+ <td rowspan="1" colSpan="1" >Detect vocals or not, 0: Non-vocals, 1: Vocals.</td>
2271
+ </tr>
2272
+
2273
+ <tr>
2274
+ <td rowspan="1" colSpan="1" >volume</td>
2275
+
2276
+ <td rowspan="1" colSpan="1" >The speaker's volume. Value range: [0-100].</td>
2277
+ </tr>
2278
+ </table>
2279
+
2280
+
2281
+ ## TRTCSpeedTestParams
2282
+
2283
+
2284
+
2285
+ #### Speed test parameters
2286
+
2287
+ You can test the network speed before the user enters the room through the [startSpeedTest](https://write.woa.com/document/87030026264555520) interface (Note: Do not call during a call).
2288
+ <table>
2289
+ <tr>
2290
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2291
+
2292
+ <td rowspan="1" colSpan="1" >Description</td>
2293
+ </tr>
2294
+
2295
+ <tr>
2296
+ <td rowspan="1" colSpan="1" >expectedDownBandwidth</td>
2297
+
2298
+ <td rowspan="1" colSpan="1" >Expected downstream bandwidth (kbps, value range: 10–5000, 0 means not to test).<br>**Note**<br>When the parameter scene is set to TRTCSpeedTestScene_OnlineChorusTesting, to obtain more accurate RTT/jitter information, the value range is limited to 10–1000.<br></td>
2299
+ </tr>
2300
+
2301
+ <tr>
2302
+ <td rowspan="1" colSpan="1" >expectedUpBandwidth</td>
2303
+
2304
+ <td rowspan="1" colSpan="1" >Expected upstream bandwidth (kbps, value range: 10–5000, 0 means not to test).<br>**Note**<br>When the parameter scene is set to TRTCSpeedTestScene_OnlineChorusTesting, to obtain more accurate RTT/jitter information, the value range is limited to 10–1000.<br></td>
2305
+ </tr>
2306
+
2307
+ <tr>
2308
+ <td rowspan="1" colSpan="1" >scene</td>
2309
+
2310
+ <td rowspan="1" colSpan="1" >Speed Testing Scenario.</td>
2311
+ </tr>
2312
+
2313
+ <tr>
2314
+ <td rowspan="1" colSpan="1" >sdkAppId</td>
2315
+
2316
+ <td rowspan="1" colSpan="1" >Application identifier, please refer to the relevant instructions in [TRTCParams](https://write.woa.com/document/87030132707430400).</td>
2317
+ </tr>
2318
+
2319
+ <tr>
2320
+ <td rowspan="1" colSpan="1" >userId</td>
2321
+
2322
+ <td rowspan="1" colSpan="1" >User identifier, please refer to the relevant instructions in [TRTCParams](https://write.woa.com/document/87030132707430400).</td>
2323
+ </tr>
2324
+
2325
+ <tr>
2326
+ <td rowspan="1" colSpan="1" >userSig</td>
2327
+
2328
+ <td rowspan="1" colSpan="1" >User signature, please refer to the relevant instructions in [TRTCParams](https://write.woa.com/document/87030132707430400).</td>
2329
+ </tr>
2330
+ </table>
2331
+
2332
+
2333
+ ## TRTCSpeedTestResult
2334
+
2335
+
2336
+
2337
+ #### Network speed test results
2338
+
2339
+ You can test the network speed before the user enters the room through the [startSpeedTest](https://write.woa.com/document/87030026264555520) interface (Note: Do not call during a call).
2340
+ <table>
2341
+ <tr>
2342
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2343
+
2344
+ <td rowspan="1" colSpan="1" >Description</td>
2345
+ </tr>
2346
+
2347
+ <tr>
2348
+ <td rowspan="1" colSpan="1" >availableDownBandwidth</td>
2349
+
2350
+ <td rowspan="1" colSpan="1" >Downstream bandwidth (kbps, -1: invalid value).</td>
2351
+ </tr>
2352
+
2353
+ <tr>
2354
+ <td rowspan="1" colSpan="1" >availableUpBandwidth</td>
2355
+
2356
+ <td rowspan="1" colSpan="1" >Uplink bandwidth (kbps, -1: invalid value).</td>
2357
+ </tr>
2358
+
2359
+ <tr>
2360
+ <td rowspan="1" colSpan="1" >downJitter</td>
2361
+
2362
+ <td rowspan="1" colSpan="1" >Downlink packet jitter (ms), indicating the stability of data communication in the user's current network environment. The smaller the value, the better. The normal value range is 0ms to 100ms. -1 means that the speed test did not obtain a valid value. Generally, WiFi networks have slightly higher jitter than 4G/5G environments.</td>
2363
+ </tr>
2364
+
2365
+ <tr>
2366
+ <td rowspan="1" colSpan="1" >downLostRate</td>
2367
+
2368
+ <td rowspan="1" colSpan="1" >Downlink packet loss rate, the value range is [0 - 1.0]. For example, 0.2 means that out of every 10 packets received from the server, 2 might be lost mid-transmission.</td>
2369
+ </tr>
2370
+
2371
+ <tr>
2372
+ <td rowspan="1" colSpan="1" >errMsg</td>
2373
+
2374
+ <td rowspan="1" colSpan="1" >Bandwidth test error information.</td>
2375
+ </tr>
2376
+
2377
+ <tr>
2378
+ <td rowspan="1" colSpan="1" >ip</td>
2379
+
2380
+ <td rowspan="1" colSpan="1" >Server IP address.</td>
2381
+ </tr>
2382
+
2383
+ <tr>
2384
+ <td rowspan="1" colSpan="1" >quality</td>
2385
+
2386
+ <td rowspan="1" colSpan="1" >Internal evaluation algorithm calculates the network quality. For more information, please refer to [TRTCQuality](https://write.woa.com/document/87030132707430400).</td>
2387
+ </tr>
2388
+
2389
+ <tr>
2390
+ <td rowspan="1" colSpan="1" >rtt</td>
2391
+
2392
+ <td rowspan="1" colSpan="1" >Latency (ms), representing the round-trip network time between the current device and the TRTC server. The smaller the value, the better. The normal value range is 10ms to 100ms.</td>
2393
+ </tr>
2394
+
2395
+ <tr>
2396
+ <td rowspan="1" colSpan="1" >success</td>
2397
+
2398
+ <td rowspan="1" colSpan="1" >Test success or failure.</td>
2399
+ </tr>
2400
+
2401
+ <tr>
2402
+ <td rowspan="1" colSpan="1" >upJitter</td>
2403
+
2404
+ <td rowspan="1" colSpan="1" >Uplink packet jitter (ms), indicating the stability of data communication in the user's current network environment. The smaller the value, the better. The normal value range is 0ms to 100ms. -1 means that the speed test did not obtain a valid value. Generally, WiFi networks have slightly higher jitter than 4G/5G environments.</td>
2405
+ </tr>
2406
+
2407
+ <tr>
2408
+ <td rowspan="1" colSpan="1" >upLostRate</td>
2409
+
2410
+ <td rowspan="1" colSpan="1" >Uplink packet loss rate, the value range is [0 - 1.0]. For example, 0.3 means that out of every 10 packets sent to the server, 3 might be lost mid-transmission.</td>
2411
+ </tr>
2412
+ </table>
2413
+
2414
+
2415
+ ## TRTCTexture
2416
+
2417
+
2418
+
2419
+ #### Video texture data
2420
+ <table>
2421
+ <tr>
2422
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2423
+
2424
+ <td rowspan="1" colSpan="1" >Description</td>
2425
+ </tr>
2426
+
2427
+ <tr>
2428
+ <td rowspan="1" colSpan="1" >glContext</td>
2429
+
2430
+ <td rowspan="1" colSpan="1" >[Field meaning] The OpenGL context environment where the texture resides, valid on Windows and Android platforms</td>
2431
+ </tr>
2432
+
2433
+ <tr>
2434
+ <td rowspan="1" colSpan="1" >glTextureId</td>
2435
+
2436
+ <td rowspan="1" colSpan="1" >[Field meaning] Video texture ID.</td>
2437
+ </tr>
2438
+
2439
+ <tr>
2440
+ <td rowspan="1" colSpan="1" >}</td>
2441
+
2442
+ <td rowspan="1" colSpan="1" >[Field meaning] D3D11 texture, i.e., ID3D11Texture2D pointer, valid only on Windows platform.</td>
2443
+ </tr>
2444
+ </table>
2445
+
2446
+
2447
+ ## TRTCVideoFrame
2448
+
2449
+
2450
+
2451
+ #### Video frame information
2452
+
2453
+ TRTCVideoFrame describes the raw data of a video frame, which is the video frame data before encoding or after decoding.
2454
+ <table>
2455
+ <tr>
2456
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2457
+
2458
+ <td rowspan="1" colSpan="1" >Description</td>
2459
+ </tr>
2460
+
2461
+ <tr>
2462
+ <td rowspan="1" colSpan="1" >bufferType</td>
2463
+
2464
+ <td rowspan="1" colSpan="1" >[Field meaning] Video data structure type.</td>
2465
+ </tr>
2466
+
2467
+ <tr>
2468
+ <td rowspan="1" colSpan="1" >data</td>
2469
+
2470
+ <td rowspan="1" colSpan="1" >[Field meaning] Video data when bufferType is [TRTCVideoBufferType_Buffer](https://write.woa.com/document/87030132707430400), carrying memory blocks for the C++ layer.</td>
2471
+ </tr>
2472
+
2473
+ <tr>
2474
+ <td rowspan="1" colSpan="1" >height</td>
2475
+
2476
+ <td rowspan="1" colSpan="1" >[Field meaning] Video height.</td>
2477
+ </tr>
2478
+
2479
+ <tr>
2480
+ <td rowspan="1" colSpan="1" >length</td>
2481
+
2482
+ <td rowspan="1" colSpan="1" >[Field meaning] Length of video data, unit is bytes. For i420: length = width * height * 3 / 2; For BGRA32: length = width * height * 4.</td>
2483
+ </tr>
2484
+
2485
+ <tr>
2486
+ <td rowspan="1" colSpan="1" >rotation</td>
2487
+
2488
+ <td rowspan="1" colSpan="1" >[Field meaning] Clockwise rotation angle of video pixels.</td>
2489
+ </tr>
2490
+
2491
+ <tr>
2492
+ <td rowspan="1" colSpan="1" >texture</td>
2493
+
2494
+ <td rowspan="1" colSpan="1" >[Field meaning] Video data when bufferType is [TRTCVideoBufferType_Texture](https://write.woa.com/document/87030132707430400), containing texture data for OpenGL rendering.</td>
2495
+ </tr>
2496
+
2497
+ <tr>
2498
+ <td rowspan="1" colSpan="1" >timestamp</td>
2499
+
2500
+ <td rowspan="1" colSpan="1" >[Field meaning] Timestamp of the video frame, in milliseconds.<br>[Recommended values] Can be set to 0 when capturing Definition video. If this parameter is 0, the SDK will automatically populate the timestamp field, but please control the intervals of sendCustomVideoData calls "evenly".</td>
2501
+ </tr>
2502
+
2503
+ <tr>
2504
+ <td rowspan="1" colSpan="1" >videoFormat</td>
2505
+
2506
+ <td rowspan="1" colSpan="1" >[Field meaning] Pixel format of the video.</td>
2507
+ </tr>
2508
+
2509
+ <tr>
2510
+ <td rowspan="1" colSpan="1" >width</td>
2511
+
2512
+ <td rowspan="1" colSpan="1" >[Field meaning] Video width.</td>
2513
+ </tr>
2514
+ </table>
2515
+
2516
+
2517
+ ## TRTCAudioFrame
2518
+
2519
+
2520
+
2521
+ #### Audio frame data
2522
+ <table>
2523
+ <tr>
2524
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2525
+
2526
+ <td rowspan="1" colSpan="1" >Description</td>
2527
+ </tr>
2528
+
2529
+ <tr>
2530
+ <td rowspan="1" colSpan="1" >audioFormat</td>
2531
+
2532
+ <td rowspan="1" colSpan="1" >[Field meaning] Audio frame format.</td>
2533
+ </tr>
2534
+
2535
+ <tr>
2536
+ <td rowspan="1" colSpan="1" >channel</td>
2537
+
2538
+ <td rowspan="1" colSpan="1" >[Field meaning] Number of channels.</td>
2539
+ </tr>
2540
+
2541
+ <tr>
2542
+ <td rowspan="1" colSpan="1" >data</td>
2543
+
2544
+ <td rowspan="1" colSpan="1" >[Field meaning] Audio data.</td>
2545
+ </tr>
2546
+
2547
+ <tr>
2548
+ <td rowspan="1" colSpan="1" >extraData</td>
2549
+
2550
+ <td rowspan="1" colSpan="1" >[Field meaning] Extra audio data. The data written by the remote user through ` onLocalProcessedAudioFrame ` will be callbacked via this field.</td>
2551
+ </tr>
2552
+
2553
+ <tr>
2554
+ <td rowspan="1" colSpan="1" >extraDataLength</td>
2555
+
2556
+ <td rowspan="1" colSpan="1" >[Field meaning] Length of audio message data.</td>
2557
+ </tr>
2558
+
2559
+ <tr>
2560
+ <td rowspan="1" colSpan="1" >length</td>
2561
+
2562
+ <td rowspan="1" colSpan="1" >[Field meaning] Length of audio data.</td>
2563
+ </tr>
2564
+
2565
+ <tr>
2566
+ <td rowspan="1" colSpan="1" >sampleRate</td>
2567
+
2568
+ <td rowspan="1" colSpan="1" >[Field meaning] Sample rate.</td>
2569
+ </tr>
2570
+
2571
+ <tr>
2572
+ <td rowspan="1" colSpan="1" >timestamp</td>
2573
+
2574
+ <td rowspan="1" colSpan="1" >[Field meaning] Timestamp, in milliseconds.</td>
2575
+ </tr>
2576
+ </table>
2577
+
2578
+
2579
+ ## TRTCMixUser
2580
+
2581
+
2582
+
2583
+ #### Description information of each stream in Cloud Mixed Streaming
2584
+
2585
+ TRTCMixUser is used to specify the position, size, layer, stream type, etc., of each video screen in Cloud Mixed Streaming.
2586
+ <table>
2587
+ <tr>
2588
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2589
+
2590
+ <td rowspan="1" colSpan="1" >Description</td>
2591
+ </tr>
2592
+
2593
+ <tr>
2594
+ <td rowspan="1" colSpan="1" >image</td>
2595
+
2596
+ <td rowspan="1" colSpan="1" >[Field meaning] Placeholder Image or Watermark Image<br>- A placeholder image refers to an image displayed in the mixed screen when the corresponding userId's mixed content is pure audio.<br>- A watermark image refers to a semi-transparent image pasted on the mixed screen, always covering the mixed screen.<br>- When you specify inputType as TRTCMixInputTypePureAudio, the image is a placeholder image, and you need to specify the userId.<br>- When you specify inputType as TRTCMixInputTypeWatermark, the image is a watermark image, and you do not need to specify the userId.<br>[Recommended Values] Default: empty, which means no placeholder image or watermark image is set.<br>[Special Note]<br>- You can set the image to an asset ID found in the console. This requires you to click the [Add Image] button to upload it beforehand in "[Console](https://console.cloud.tencent.com/trtc) => Application Management => Feature Configuration => Asset Management".<br>- Upon successful upload, you will receive a corresponding "image ID". Convert the "image ID" into a string and set it to the image field accordingly (e.g., if the "image ID" is 63, you can set image to @"63").<br>- You can also set the image to a URL address, and Tencent Cloud's backend server will mix the image specified by the URL into the final screen.<br>- The URL length is limited to 512 bytes. The size of the image must not exceed 2MB.<br>- Supported image formats include png, jpg, jpeg, and bmp. It is recommended to use semi-transparent png images as watermarks.<br>- The image is only effective when inputType is set to TRTCMixInputTypePureAudio or TRTCMixInputTypeWatermark.</td>
2597
+ </tr>
2598
+
2599
+ <tr>
2600
+ <td rowspan="1" colSpan="1" >inputType</td>
2601
+
2602
+ <td rowspan="1" colSpan="1" >[Field meaning] Specifies the mixed content of the stream (only audio, only video, mixed audio and video, watermarking).<br>[Default Value] Default: TRTCMixInputTypeUndefined.<br>[Special Note]<br>- When inputType is set to TRTCMixInputTypeUndefined and pureAudio is set to YES, it is equivalent to setting inputType to TRTCMixInputTypePureAudio.<br>- When inputType is set to TRTCMixInputTypeUndefined and pureAudio is set to NO, it is equivalent to setting inputType to TRTCMixInputTypeAudioVideo.<br>- When inputType is set to TRTCMixInputTypeWatermark, you do not need to specify the userId field but must specify the image field.</td>
2603
+ </tr>
2604
+
2605
+ <tr>
2606
+ <td rowspan="1" colSpan="1" >pureAudio</td>
2607
+
2608
+ <td rowspan="1" colSpan="1" >[Field meaning] Specifies whether the stream is audio-only.<br>[Recommended Values] Default: false.<br>[Special Note] Deprecated. It is recommended to use the newly introduced field inputType starting from version 8.5.</td>
2609
+ </tr>
2610
+
2611
+ <tr>
2612
+ <td rowspan="1" colSpan="1" >rect</td>
2613
+
2614
+ <td rowspan="1" colSpan="1" >[Field meaning] Specifies the coordinate area of the screen (unit: pixels).</td>
2615
+ </tr>
2616
+
2617
+ <tr>
2618
+ <td rowspan="1" colSpan="1" >renderMode</td>
2619
+
2620
+ <td rowspan="1" colSpan="1" >[Field meaning] The display mode of the screen during output.<br>[Recommended Values] Default: for video streams, 0.0 for cropping, 1 for scaling, and 2 for scaling with a black background.<br>[Special Note] The watermark image and placeholder image currently do not support setting renderMode. Default forced stretching is applied.</td>
2621
+ </tr>
2622
+
2623
+ <tr>
2624
+ <td rowspan="1" colSpan="1" >roomId</td>
2625
+
2626
+ <td rowspan="1" colSpan="1" >[Field meaning] The room number of the audio and video stream (setting it to an empty value represents the room number of the current user).</td>
2627
+ </tr>
2628
+
2629
+ <tr>
2630
+ <td rowspan="1" colSpan="1" >soundLevel</td>
2631
+
2632
+ <td rowspan="1" colSpan="1" >[Field meaning] The volume level of the audio participating in the mix (range: 0 - 100).<br>[Default Value] Default: 100.</td>
2633
+ </tr>
2634
+
2635
+ <tr>
2636
+ <td rowspan="1" colSpan="1" >streamType</td>
2637
+
2638
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies whether this video stream is a main stream ([TRTCVideoStreamTypeBig](https://write.woa.com/document/87030132707430400)) or a sub-stream ([TRTCVideoStreamTypeSub](https://write.woa.com/document/87030132707430400)).</td>
2639
+ </tr>
2640
+
2641
+ <tr>
2642
+ <td rowspan="1" colSpan="1" >userId</td>
2643
+
2644
+ <td rowspan="1" colSpan="1" >[Field Meaning] User ID</td>
2645
+ </tr>
2646
+
2647
+ <tr>
2648
+ <td rowspan="1" colSpan="1" >zOrder</td>
2649
+
2650
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the level of the screen (Range: 1 - 15, unique).</td>
2651
+ </tr>
2652
+ </table>
2653
+
2654
+
2655
+ ## TRTCTranscodingConfig
2656
+
2657
+
2658
+
2659
+ #### Layout and transcoding parameters for Cloud Mixed Streaming
2660
+
2661
+ For specifying the layout position and encoding parameters of each screen during mix streaming and on-cloud transcoding.
2662
+ <table>
2663
+ <tr>
2664
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2665
+
2666
+ <td rowspan="1" colSpan="1" >Description</td>
2667
+ </tr>
2668
+
2669
+ <tr>
2670
+ <td rowspan="1" colSpan="1" >appId</td>
2671
+
2672
+ <td rowspan="1" colSpan="1" >[Field Meaning] AppID of Tencent CSS service.<br>[Recommended Value] Please click in sequence in the [TRTC console](https://console.cloud.tencent.com/trtc) [Application Management]=>[Application Information], and obtain the appid from [CDN Live Streaming Info].</td>
2673
+ </tr>
2674
+
2675
+ <tr>
2676
+ <td rowspan="1" colSpan="1" >audioBitrate</td>
2677
+
2678
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target audio bitrate for cloud transcoding.<br>[Recommended Value] Default: 64kbps, range: [32,192].</td>
2679
+ </tr>
2680
+
2681
+ <tr>
2682
+ <td rowspan="1" colSpan="1" >audioChannels</td>
2683
+
2684
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the number of audio channels for cloud transcoding.<br>[Recommended Value] Default: 1, representing mono. The allowable values are: 1 - mono, 2 - stereo.</td>
2685
+ </tr>
2686
+
2687
+ <tr>
2688
+ <td rowspan="1" colSpan="1" >audioCodec</td>
2689
+
2690
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the output stream audio encoding type for cloud transcoding.<br>[Recommended Value] Default: 0, representing LC-AAC. The allowable values are: 0 - LC-AAC, 1 - HE-AAC, 2 - HE-AACv2.<br>[Special Explanation] HE-AAC and HE-AACv2 support output stream audio sample rates of [48000, 44100, 32000, 24000, 16000].<br>[Special Explanation] When audio encoding is set to HE-AACv2, only stereo output is supported.<br>[Special Note] HE-AAC and HE-AACv2 values only take effect when the output stream is the additional streamId you set.</td>
2691
+ </tr>
2692
+
2693
+ <tr>
2694
+ <td rowspan="1" colSpan="1" >audioSampleRate</td>
2695
+
2696
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target audio sampling rate for cloud transcoding.<br>[Recommended Values] Default: 48000Hz. Supports 12000Hz, 16000Hz, 22050Hz, 24000Hz, 32000Hz, 44100Hz, 48000Hz.</td>
2697
+ </tr>
2698
+
2699
+ <tr>
2700
+ <td rowspan="1" colSpan="1" >backgroundColor</td>
2701
+
2702
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the background color of the mixed-screen.<br>[Recommended Values] Default: 0x000000 represents black. The format is a hexadecimal number, e.g., "0x61B9F1" represents RGB values as (97,158,241).</td>
2703
+ </tr>
2704
+
2705
+ <tr>
2706
+ <td rowspan="1" colSpan="1" >backgroundImage</td>
2707
+
2708
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the background image of the mixed-screen.<br>[Recommended Values] Default: empty, meaning no background image is set.<br>[Special Note]<br>- You can set the image to an asset ID found in the console. This requires you to click the [Add Image] button to upload it beforehand in "[Console](https://console.cloud.tencent.com/trtc) => Application Management => Feature Configuration => Asset Management".<br>- Upon successful upload, you will receive a corresponding "image ID". Convert the "image ID" into a string and set it to the image field accordingly (e.g., if the "image ID" is 63, you can set image to @"63").<br>- You can also set the image to a URL address, and Tencent Cloud's backend server will mix the image specified by the URL into the final screen.<br>- The URL length is limited to 512 bytes. The size of the image must not exceed 2MB.<br>- Supported image formats include png, jpg, jpeg, and bmp.</td>
2709
+ </tr>
2710
+
2711
+ <tr>
2712
+ <td rowspan="1" colSpan="1" >bizId</td>
2713
+
2714
+ <td rowspan="1" colSpan="1" >[Field Meaning] bizid of Tencent CSS service.<br>[Recommended Value] Please click in sequence in the [ TRTC Console](https://console.cloud.tencent.com/trtc) [Application Management] => [Application Information], and obtain the bizid from [CDN Live Streaming Info].</td>
2715
+ </tr>
2716
+
2717
+ <tr>
2718
+ <td rowspan="1" colSpan="1" >mixUsersArray</td>
2719
+
2720
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the position, size, layer, and stream type information for each video screen in the cloud mix.<br>[Recommended Values] This field is an array of TRTCMixUser type. Each element in the array represents the information for each screen.</td>
2721
+ </tr>
2722
+
2723
+ <tr>
2724
+ <td rowspan="1" colSpan="1" >mixUsersArraySize</td>
2725
+
2726
+ <td rowspan="1" colSpan="1" >[Field meaning] Number of elements in the mixUsersArray.</td>
2727
+ </tr>
2728
+
2729
+ <tr>
2730
+ <td rowspan="1" colSpan="1" >mode</td>
2731
+
2732
+ <td rowspan="1" colSpan="1" >[Field Meaning] Layout mode.<br>[Recommended Values] Please choose according to your business scenario requirements. Pre-layout mode is a well-suited option.</td>
2733
+ </tr>
2734
+
2735
+ <tr>
2736
+ <td rowspan="1" colSpan="1" >streamId</td>
2737
+
2738
+ <td rowspan="1" colSpan="1" >[Field Meaning] Live stream ID for output to CDN.<br>[Recommended Value] Default: Null Value, meaning that the multiple audio and video streams in the room will ultimately be mixed into the interface caller's audio and video stream.<br>- If this parameter is not set, the SDK will execute the default logic, meaning the multiple audio and video streams in the room will be mixed into the interface caller's audio and video stream, i.e., A + B => A.<br>- If you set this parameter, the SDK will mix the multiple audio and video streams in the room into the live stream you specified, i.e., A + B => C (C represents the streamId you specified).</td>
2739
+ </tr>
2740
+
2741
+ <tr>
2742
+ <td rowspan="1" colSpan="1" >videoBitrate</td>
2743
+
2744
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target video bitrate (kbps) for cloud transcoding.<br>[Recommended Value] If set to 0, TRTC will estimate a reasonable bitrate based on videoWidth and videoHeight. You can also refer to the bitrate value recommended in the video resolution enum Definition (see the comment section).</td>
2745
+ </tr>
2746
+
2747
+ <tr>
2748
+ <td rowspan="1" colSpan="1" >videoFramerate</td>
2749
+
2750
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target video frame rate (FPS) for cloud transcoding.<br>[Recommended Value] Default: 15fps, range: (0,30].</td>
2751
+ </tr>
2752
+
2753
+ <tr>
2754
+ <td rowspan="1" colSpan="1" >videoGOP</td>
2755
+
2756
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target video keyframe interval (GOP) for cloud transcoding.<br>[Recommended Value] Default: 2 seconds, range: [1,8].</td>
2757
+ </tr>
2758
+
2759
+ <tr>
2760
+ <td rowspan="1" colSpan="1" >videoHeight</td>
2761
+
2762
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target resolution (height) for cloud transcoding.<br>[Recommended Value] Unit: Pixel Value. Recommended value: 640. If you are only mixing audio streams, set both width and height to 0, otherwise, the mixed transcoding live stream will have a black background.</td>
2763
+ </tr>
2764
+
2765
+ <tr>
2766
+ <td rowspan="1" colSpan="1" >videoSeiParams</td>
2767
+
2768
+ <td rowspan="1" colSpan="1" >[Field Meaning] Stream Mixing SEI Parameters. Not specified by default.<br>[Special Note] Parameters are passed in as a JSON String. Example:<br>`{`<br>` "payLoadContent":"xxx",`<br>` "payloadType":5,`<br>` "payloadUuid":"1234567890abcdef1234567890abcdef",`<br>` "interval":1000,`<br>` "followIdr":false`<br>`}`<br>Supported fields and their meanings:<br>- payloadContent: Required. The payload content of the transparent SEI; cannot be empty<br>- payloadType: Required. The type of SEI message, with a range of values: 5, or integers within [100, 254] (excluding 244, which is an internal self-definition timestamp SEI);<br>- payloadUuid: Required when payloadType is 5, otherwise this value is ignored. This value must be a 32-character hexadecimal number;<br>- interval: Optional, default is 1000. The sending interval of SEI, in milliseconds;<br>- followIdr: Optional, default is false. When set to true, SEI will be ensured with keyframes, otherwise, it will not be ensured.</td>
2769
+ </tr>
2770
+
2771
+ <tr>
2772
+ <td rowspan="1" colSpan="1" >videoWidth</td>
2773
+
2774
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target resolution (width) for cloud transcoding.<br>[Recommended Value] Unit: Pixel Value. Recommended value: 360. If you are only mixing audio streams, set both width and height to 0, otherwise, the mixed transcoding live stream will have a black background.</td>
2775
+ </tr>
2776
+ </table>
2777
+
2778
+
2779
+ ## TRTCPublishCDNParam
2780
+
2781
+
2782
+
2783
+ #### Retweet parameters when publishing audio and video streams to non-Tencent Cloud CDN
2784
+
2785
+ The TRTC backend service supports publishing audio and video streams to third-party live streaming CDN service providers using the standard RTMP protocol.
2786
+
2787
+ If you are using Tencent CSS CDN Service, you can disregard this parameter and use the [startPublish](https://write.woa.com/document/87030026264555520) interface directly.
2788
+ <table>
2789
+ <tr>
2790
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2791
+
2792
+ <td rowspan="1" colSpan="1" >Description</td>
2793
+ </tr>
2794
+
2795
+ <tr>
2796
+ <td rowspan="1" colSpan="1" >appId</td>
2797
+
2798
+ <td rowspan="1" colSpan="1" >[Field Meaning] AppID of Tencent CSS service.<br>[Recommended Value] Please click in sequence in the [TRTC console](https://console.cloud.tencent.com/trtc) [Application Management]=>[Application Information], and obtain the appid from [CDN Live Streaming Info].</td>
2799
+ </tr>
2800
+
2801
+ <tr>
2802
+ <td rowspan="1" colSpan="1" >bizId</td>
2803
+
2804
+ <td rowspan="1" colSpan="1" >[Field Meaning] bizid of Tencent CSS service.<br>[Recommended Value] Please click in sequence in the [ TRTC Console](https://console.cloud.tencent.com/trtc) [Application Management] => [Application Information], and obtain the bizid from [CDN Live Streaming Info].</td>
2805
+ </tr>
2806
+
2807
+ <tr>
2808
+ <td rowspan="1" colSpan="1" >streamId</td>
2809
+
2810
+ <td rowspan="1" colSpan="1" >[Field Meaning] The streamId that needs to be relayed.<br>[Recommended Value] Default value: empty. If not filled, the default relay is the bidder's bypass stream.</td>
2811
+ </tr>
2812
+
2813
+ <tr>
2814
+ <td rowspan="1" colSpan="1" >url</td>
2815
+
2816
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the streaming address (RTMP format) of the audio and video stream on the third-party live streaming service provider.<br>[Recommended Value] The rules for the streaming address vary greatly between service providers. Please fill in a valid streaming URL according to the requirements of the target service provider. The TRTC backend server will publish the standard format audio and video streams to the third-party provider according to the URL you filled in.<br>[Special Instructions] The streaming URL must be in RTMP format and comply with your target live streaming service provider's specifications, otherwise, the target service provider will reject push-stream requests from the TRTC backend services.</td>
2817
+ </tr>
2818
+ </table>
2819
+
2820
+
2821
+ ## TRTCAudioRecordingParams
2822
+
2823
+
2824
+
2825
+ #### Recording parameters for local audio files
2826
+
2827
+ This parameter is used to specify recording parameters in the audio recording interface [startAudioRecording](https://write.woa.com/document/87030026264555520).
2828
+ <table>
2829
+ <tr>
2830
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2831
+
2832
+ <td rowspan="1" colSpan="1" >Description</td>
2833
+ </tr>
2834
+
2835
+ <tr>
2836
+ <td rowspan="1" colSpan="1" >filePath</td>
2837
+
2838
+ <td rowspan="1" colSpan="1" >[Field meaning] The save path of the recording file (required).<br>[Special Instructions] This path must include the file name and format suffix, as the suffix determines the format of the recording file. The currently supported formats are PCM, WAV, and AAC.<br>For example: If you specify the path as "mypath/record/audio.aac", it means you want the SDK to generate an AAC format audio recording file.<br>Please specify a legal path with read and write permissions, otherwise the recording file cannot be generated.</td>
2839
+ </tr>
2840
+
2841
+ <tr>
2842
+ <td rowspan="1" colSpan="1" >maxDurationPerFile</td>
2843
+
2844
+ <td rowspan="1" colSpan="1" >[Field meaning] maxDurationPerFile recording file split duration, unit: milliseconds, minimum value: 10000. The default value is 0, which means no splitting.</td>
2845
+ </tr>
2846
+
2847
+ <tr>
2848
+ <td rowspan="1" colSpan="1" >recordingContent</td>
2849
+
2850
+ <td rowspan="1" colSpan="1" >[Field meaning] Audio recording content type.<br>[Special Instructions] By default, all local and remote audio is recorded.</td>
2851
+ </tr>
2852
+ </table>
2853
+
2854
+
2855
+ ## TRTCLocalRecordingParams
2856
+
2857
+
2858
+
2859
+ #### Recording parameters for local media files
2860
+
2861
+ This parameter is used to specify recording-related parameters in the local media file recording interface [startLocalRecording](https://write.woa.com/document/87030026264555520).
2862
+
2863
+ The interface startLocalRecording is an enhanced version of the interface startAudioRecording. The former can record video files, while the latter can only record audio files.
2864
+ <table>
2865
+ <tr>
2866
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2867
+
2868
+ <td rowspan="1" colSpan="1" >Description</td>
2869
+ </tr>
2870
+
2871
+ <tr>
2872
+ <td rowspan="1" colSpan="1" >filePath</td>
2873
+
2874
+ <td rowspan="1" colSpan="1" >[Field meaning] The address of the recording file (required). Please ensure the path has read and write permissions and is legal, otherwise the recording file cannot be generated.<br>[Special Instructions] This path must be precise to the file name and format suffix. The suffix determines the format of the recorded file. Currently, the only supported format is MP4.<br>For example: If you specify the path as "mypath/record/test.mp4", it means you want the SDK to generate a local video file in MP4 format.<br>Please specify a legal path with read and write permissions, otherwise the recording file cannot be generated.</td>
2875
+ </tr>
2876
+
2877
+ <tr>
2878
+ <td rowspan="1" colSpan="1" >interval</td>
2879
+
2880
+ <td rowspan="1" colSpan="1" >[Field meaning] interval recording information update frequency, unit: milliseconds, valid range: 1000-10000. Default value is -1, meaning no callback.</td>
2881
+ </tr>
2882
+
2883
+ <tr>
2884
+ <td rowspan="1" colSpan="1" >maxDurationPerFile</td>
2885
+
2886
+ <td rowspan="1" colSpan="1" >[Field meaning] maxDurationPerFile recording file split duration, unit: milliseconds, minimum value: 10000. The default value is 0, which means no splitting.</td>
2887
+ </tr>
2888
+
2889
+ <tr>
2890
+ <td rowspan="1" colSpan="1" >recordType</td>
2891
+
2892
+ <td rowspan="1" colSpan="1" >[Field meaning] Media recording type, default value: TRTCRecordTypeBoth, meaning to record both audio and video simultaneously.</td>
2893
+ </tr>
2894
+ </table>
2895
+
2896
+
2897
+ ## TRTCSwitchRoomConfig
2898
+
2899
+
2900
+
2901
+ #### Room Switching Parameters
2902
+
2903
+ This parameter is used for the room switching interface [switchRoom](https://write.woa.com/document/87030026264555520), allowing users to quickly switch from one room to another.
2904
+ <table>
2905
+ <tr>
2906
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2907
+
2908
+ <td rowspan="1" colSpan="1" >Description</td>
2909
+ </tr>
2910
+
2911
+ <tr>
2912
+ <td rowspan="1" colSpan="1" >privateMapKey</td>
2913
+
2914
+ <td rowspan="1" colSpan="1" >[Field Meaning] Permission ticket used for permission control (optional). If you want only specific userIds to enter a room, you need to use privateMapKey for permission protection.<br>[Recommended Value] Only recommended for customers with high-level security requirements. For more details, please refer to [Room Entry Permission Protection](https://cloud.tencent.com/document/product/647/32240).</td>
2915
+ </tr>
2916
+
2917
+ <tr>
2918
+ <td rowspan="1" colSpan="1" >roomId</td>
2919
+
2920
+ <td rowspan="1" colSpan="1" >[Field meaning] Numeric room number [optional], users in the same room can see each other and have audio and video calls.<br>[Recommended Value] Value range: 1 - 4294967294.<br>[Special Note] roomId and strRoomId must and can only fill one. If both are filled, roomId is preferred.</td>
2921
+ </tr>
2922
+
2923
+ <tr>
2924
+ <td rowspan="1" colSpan="1" >strRoomId</td>
2925
+
2926
+ <td rowspan="1" colSpan="1" >[Field meaning] String room number [optional], users in the same room can see each other and have audio and video calls.<br>[Special Note] roomId and strRoomId must and can only fill one. If both are filled, roomId is preferred.</td>
2927
+ </tr>
2928
+
2929
+ <tr>
2930
+ <td rowspan="1" colSpan="1" >userSig</td>
2931
+
2932
+ <td rowspan="1" colSpan="1" >[Field meaning] User signature [optional], the verification signature corresponding to the current userId, equivalent to a log-in password.<br>If you do not specify a newly calculated userSig when switching rooms, the SDK will continue using the userSig specified when you entered the room (enterRoom).<br>You must ensure the old userSig is within its valid period when switching rooms; otherwise, the room switch will fail.<br>[Recommended Value] For the specific calculation method, please see [How to Calculate UserSig](https://cloud.tencent.com/document/product/647/17275).</td>
2933
+ </tr>
2934
+ </table>
2935
+
2936
+
2937
+ ## TRTCAudioFrameDelegateFormat
2938
+
2939
+
2940
+
2941
+ #### Format parameters for audio custom callback
2942
+
2943
+ This parameter is used in the audio self Definition callback related interfaces to set the format of the audio data retrieved by the SDK callback (including sampling rate, number of channels, etc.).
2944
+ <table>
2945
+ <tr>
2946
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2947
+
2948
+ <td rowspan="1" colSpan="1" >Description</td>
2949
+ </tr>
2950
+
2951
+ <tr>
2952
+ <td rowspan="1" colSpan="1" >channel</td>
2953
+
2954
+ <td rowspan="1" colSpan="1" >[Field meaning] Number of channels.<br>[Recommended Value] Default: 1, representing mono. The allowable values are: 1 - mono, 2 - stereo.</td>
2955
+ </tr>
2956
+
2957
+ <tr>
2958
+ <td rowspan="1" colSpan="1" >mode</td>
2959
+
2960
+ <td rowspan="1" colSpan="1" >[Field meaning] Callback data read/write mode<br>[Recommended Values] TRTCAudioFrameOperationModeReadOnly: only retrieve audio data from the callback. The available modes are TRTCAudioFrameOperationModeReadOnly and TRTCAudioFrameOperationModeReadWrite.</td>
2961
+ </tr>
2962
+
2963
+ <tr>
2964
+ <td rowspan="1" colSpan="1" >sampleRate</td>
2965
+
2966
+ <td rowspan="1" colSpan="1" >[Field meaning] Sample rate.<br>[Recommended Values] Default: 48000Hz. Supports 16000, 32000, 44100, 48000.</td>
2967
+ </tr>
2968
+
2969
+ <tr>
2970
+ <td rowspan="1" colSpan="1" >samplesPerCall</td>
2971
+
2972
+ <td rowspan="1" colSpan="1" >[Field meaning] Number of sampling points.<br>[Recommended Values] The value must be an integer multiple of sampleRate/100.</td>
2973
+ </tr>
2974
+ </table>
2975
+
2976
+
2977
+ ## TRTCImageBuffer
2978
+
2979
+
2980
+
2981
+ #### TRTC screen sharing icon information and mute image spacer
2982
+ <table>
2983
+ <tr>
2984
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
2985
+
2986
+ <td rowspan="1" colSpan="1" >Description</td>
2987
+ </tr>
2988
+
2989
+ <tr>
2990
+ <td rowspan="1" colSpan="1" >buffer</td>
2991
+
2992
+ <td rowspan="1" colSpan="1" >Contents of image storage, generally in BGRA structure.</td>
2993
+ </tr>
2994
+
2995
+ <tr>
2996
+ <td rowspan="1" colSpan="1" >height</td>
2997
+
2998
+ <td rowspan="1" colSpan="1" >Height of the image.</td>
2999
+ </tr>
3000
+
3001
+ <tr>
3002
+ <td rowspan="1" colSpan="1" >length</td>
3003
+
3004
+ <td rowspan="1" colSpan="1" >Size of the image data.</td>
3005
+ </tr>
3006
+
3007
+ <tr>
3008
+ <td rowspan="1" colSpan="1" >width</td>
3009
+
3010
+ <td rowspan="1" colSpan="1" >Width of the image.</td>
3011
+ </tr>
3012
+ </table>
3013
+
3014
+
3015
+ ## TRTCScreenCaptureSourceInfo
3016
+
3017
+
3018
+
3019
+ #### Target information for screen sharing (only applicable to desktop systems)
3020
+
3021
+ When users are sharing a screen, they can choose to capture the entire desktop or just a specific program window.
3022
+
3023
+ TRTCScreenCaptureSourceInfo describes the target information to be shared, including ID, name, thumbnail, etc. The field information in this structure is read-only.
3024
+ <table>
3025
+ <tr>
3026
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3027
+
3028
+ <td rowspan="1" colSpan="1" >Description</td>
3029
+ </tr>
3030
+
3031
+ <tr>
3032
+ <td rowspan="1" colSpan="1" >height</td>
3033
+
3034
+ <td rowspan="1" colSpan="1" >[Field meaning] Screen/Window height, in pixels.</td>
3035
+ </tr>
3036
+
3037
+ <tr>
3038
+ <td rowspan="1" colSpan="1" >iconBGRA</td>
3039
+
3040
+ <td rowspan="1" colSpan="1" >[Field meaning] Icon of the shared window.</td>
3041
+ </tr>
3042
+
3043
+ <tr>
3044
+ <td rowspan="1" colSpan="1" >isMainScreen</td>
3045
+
3046
+ <td rowspan="1" colSpan="1" >[Field meaning] Whether it is the main display screen (applies to the multi-monitor setup).</td>
3047
+ </tr>
3048
+
3049
+ <tr>
3050
+ <td rowspan="1" colSpan="1" >isMinimizeWindow</td>
3051
+
3052
+ <td rowspan="1" colSpan="1" >[Field meaning] Whether the window is minimized.</td>
3053
+ </tr>
3054
+
3055
+ <tr>
3056
+ <td rowspan="1" colSpan="1" >sourceId</td>
3057
+
3058
+ <td rowspan="1" colSpan="1" >[Field meaning] The ID of the capture source: for a window, this field represents the window ID; for a screen, this field represents the monitor ID.</td>
3059
+ </tr>
3060
+
3061
+ <tr>
3062
+ <td rowspan="1" colSpan="1" >sourceName</td>
3063
+
3064
+ <td rowspan="1" colSpan="1" >[Field meaning] Capturing source name (encoded in UTF8).</td>
3065
+ </tr>
3066
+
3067
+ <tr>
3068
+ <td rowspan="1" colSpan="1" >thumbBGRA</td>
3069
+
3070
+ <td rowspan="1" colSpan="1" >[Field meaning] Thumbnail of the shared window.</td>
3071
+ </tr>
3072
+
3073
+ <tr>
3074
+ <td rowspan="1" colSpan="1" >type</td>
3075
+
3076
+ <td rowspan="1" colSpan="1" >[Field meaning] Collection source type (Is it sharing the entire screen or a specific window?).</td>
3077
+ </tr>
3078
+
3079
+ <tr>
3080
+ <td rowspan="1" colSpan="1" >width</td>
3081
+
3082
+ <td rowspan="1" colSpan="1" >[Field meaning] Screen/Window width, in pixels.</td>
3083
+ </tr>
3084
+
3085
+ <tr>
3086
+ <td rowspan="1" colSpan="1" >x</td>
3087
+
3088
+ <td rowspan="1" colSpan="1" >[Field meaning] Screen/Window x coordinate, in pixels.</td>
3089
+ </tr>
3090
+
3091
+ <tr>
3092
+ <td rowspan="1" colSpan="1" >y</td>
3093
+
3094
+ <td rowspan="1" colSpan="1" >[Field meaning] Screen/Window y coordinate, in pixels.</td>
3095
+ </tr>
3096
+ </table>
3097
+
3098
+
3099
+ ## TRTCScreenCaptureProperty
3100
+
3101
+
3102
+
3103
+ #### Advanced control parameters for screen sharing
3104
+
3105
+ This parameter is used for the screen sharing related interface [selectScreenCaptureTarget](https://write.woa.com/document/87030026264555520), for setting a series of advanced control parameters when specifying the sharing target.
3106
+
3107
+ For example: whether to capture the mouse, whether to capture sub-windows, whether to draw a border around the shared target, etc.
3108
+ <table>
3109
+ <tr>
3110
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3111
+
3112
+ <td rowspan="1" colSpan="1" >Description</td>
3113
+ </tr>
3114
+
3115
+ <tr>
3116
+ <td rowspan="1" colSpan="1" >enableCaptureChildWindow</td>
3117
+
3118
+ <td rowspan="1" colSpan="1" >[Field meaning] Whether to capture sub-windows during window capture (the sub-window needs to have the Owner or Popup attribute), default is false.</td>
3119
+ </tr>
3120
+
3121
+ <tr>
3122
+ <td rowspan="1" colSpan="1" >enableCaptureMouse</td>
3123
+
3124
+ <td rowspan="1" colSpan="1" >[Field meaning] Whether to capture the mouse along with the target content, default is true.</td>
3125
+ </tr>
3126
+
3127
+ <tr>
3128
+ <td rowspan="1" colSpan="1" >enableHighLight</td>
3129
+
3130
+ <td rowspan="1" colSpan="1" >[Field Meaning] Whether to highlight the window being shared (draw a border around the shared target), default is true.</td>
3131
+ </tr>
3132
+
3133
+ <tr>
3134
+ <td rowspan="1" colSpan="1" >enableHighPerformance</td>
3135
+
3136
+ <td rowspan="1" colSpan="1" >[Field Meaning] Whether to enable High-Performance Mode (only effective when sharing the screen), default is true.<br>[Special Instruction] Performance is optimal when enabled, but it will lose anti-occlusion capability. If you enable both enableHighLight and enableHighPerformance, the remote user can see the highlighted border.</td>
3137
+ </tr>
3138
+
3139
+ <tr>
3140
+ <td rowspan="1" colSpan="1" >highLightColor</td>
3141
+
3142
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the color of the highlight border in RGB format. If 0 is passed, the default color is used, which is #FFE640.</td>
3143
+ </tr>
3144
+
3145
+ <tr>
3146
+ <td rowspan="1" colSpan="1" >highLightWidth</td>
3147
+
3148
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the width of the highlight border. If 0 is passed, the default stroke width is used. The default width is 5px, and the maximum value you can set is 50.</td>
3149
+ </tr>
3150
+ </table>
3151
+
3152
+
3153
+ ## TRTCAudioParallelParams
3154
+
3155
+
3156
+
3157
+ #### Parameters for Intelligent Concurrent Playback Strategy of Remote Audio Stream
3158
+
3159
+ This parameter is used to set the intelligent concurrent playback strategy for remote audio streams.
3160
+ <table>
3161
+ <tr>
3162
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3163
+
3164
+ <td rowspan="1" colSpan="1" >Description</td>
3165
+ </tr>
3166
+
3167
+ <tr>
3168
+ <td rowspan="1" colSpan="1" >includeUsersCount</td>
3169
+
3170
+ <td rowspan="1" colSpan="1" >[Field meaning] Designated users who will definitely be able to play concurrently.<br>[Special note] List of user IDs for guaranteed concurrent playback. These users are not part of the intelligent selection.<br>The number of includeUsers must be less than maxCount, otherwise, the concurrent playback setting is invalid.<br>includeUsers is only effective when maxCount > 0. When includeUsers is effective, the maximum number of concurrent intelligent selections = maxCount - the number of effective includeUsers.</td>
3171
+ </tr>
3172
+
3173
+ <tr>
3174
+ <td rowspan="1" colSpan="1" >maxCount</td>
3175
+
3176
+ <td rowspan="1" colSpan="1" >[Field meaning] Maximum number of concurrent playbacks. Default value: 0.<br>- If maxCount > 0 and the actual number of users > maxCount, SDK will intelligently select maxCount streams for playback in real-time, significantly reducing performance consumption.<br>- If maxCount = 0, SDK will not limit the number of concurrent playbacks, which might cause performance issues in rooms with a high number of participants.</td>
3177
+ </tr>
3178
+ </table>
3179
+
3180
+
3181
+ ## TRTCUser
3182
+
3183
+
3184
+
3185
+ #### User information on media stream publishing configuration
3186
+
3187
+ You can set this parameter, along with media stream target publishing parameters ([TRTCPublishTarget](https://write.woa.com/document/87030132707430400)) and stream mixing transcoding parameters ([TRTCStreamMixingConfig](https://write.woa.com/document/87030132707430400)), to transcode multiple audio and video streams you specify and publish them to the target publishing address you provide
3188
+ <table>
3189
+ <tr>
3190
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3191
+
3192
+ <td rowspan="1" colSpan="1" >Description</td>
3193
+ </tr>
3194
+
3195
+ <tr>
3196
+ <td rowspan="1" colSpan="1" >intRoomId</td>
3197
+
3198
+ <td rowspan="1" colSpan="1" >[Field meaning] Numeric room number, which needs to match the room number type in your join room parameters ([TRTCParams](https://write.woa.com/document/87030132707430400)).<br>[Recommended Value] Value range: 1 - 4294967294.<br>[Special Note] intRoomId and strRoomId are mutually exclusive. If you choose strRoomId in your room entry parameters, then intRoomId needs to be set to 0. If both are filled, the SDK will prioritize intRoomId.</td>
3199
+ </tr>
3200
+
3201
+ <tr>
3202
+ <td rowspan="1" colSpan="1" >strRoomId</td>
3203
+
3204
+ <td rowspan="1" colSpan="1" >[Field meaning] String room number, which needs to match the room number type in your join room parameters ([TRTCParams](https://write.woa.com/document/87030132707430400)).<br>[Special Note] intRoomId and strRoomId are mutually exclusive. If you choose roomId in your room entry parameters, then strRoomId does not need to be filled. If both are filled, the SDK will prioritize intRoomId.<br>[Recommended Value] Length limit is 64 bytes. The following character set range is supported (a total of 89 characters):<br>- Upper and lowercase English letters (a-zA-Z);<br>- Numbers (0-9);<br>- Space,` ! `,` # `,` $ `,` % `,` & `,` ( `,` ) `,` + `,` - `,` : `,` ; `,` < `,` = `,` . `,` > `,` ? `,` @ `,` [ `,` ] `,` ^ `,` _ `,` { `,` } `,` \| `,` ~ `,` , `.</td>
3205
+ </tr>
3206
+
3207
+ <tr>
3208
+ <td rowspan="1" colSpan="1" >userId</td>
3209
+
3210
+ <td rowspan="1" colSpan="1" >[Field meaning] User identifier, the current user's userId, equivalent to username, using UTF-8 encoding.<br>[Recommended Value] If a user's ID in your account system is "mike", then userId can be set to "mike".</td>
3211
+ </tr>
3212
+ </table>
3213
+
3214
+
3215
+ ## TRTCPublishCdnUrl
3216
+
3217
+
3218
+
3219
+ #### URL configuration for publishing audio and video streams to Tencent or third-party CDN
3220
+
3221
+ This configuration is for the target streaming configuration ([TRTCPublishTarget](https://write.woa.com/document/87030132707430400)) in the media stream publishing interface [startPublishMediaStream](https://write.woa.com/document/87030026264555520)
3222
+ <table>
3223
+ <tr>
3224
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3225
+
3226
+ <td rowspan="1" colSpan="1" >Description</td>
3227
+ </tr>
3228
+
3229
+ <tr>
3230
+ <td rowspan="1" colSpan="1" >isInternalLine</td>
3231
+
3232
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies whether the audio and video stream is published to Tencent Cloud.<br>[Recommended Values] Default: true.<br>[Special Instructions] If your target live streaming service provider is Tencent, set this parameter to true. The backend billing system will not charge for the retweet service fee in this case.</td>
3233
+ </tr>
3234
+
3235
+ <tr>
3236
+ <td rowspan="1" colSpan="1" >rtmpUrl</td>
3237
+
3238
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the streaming address (RTMP format) of the audio and video stream on Tencent or third-party live streaming service providers.<br>[Recommended Value] The rules for the streaming address vary greatly between service providers. Please fill in a valid streaming URL according to the requirements of the target service provider. The TRTC backend server will publish the standard format audio and video streams to the third-party provider according to the URL you filled in.<br>[Special Instructions] The streaming URL must be in RTMP format and comply with your target live streaming service provider's specifications, otherwise, the target service provider will reject push-stream requests from the TRTC backend services.</td>
3239
+ </tr>
3240
+ </table>
3241
+
3242
+
3243
+ ## TRTCPublishTarget
3244
+
3245
+
3246
+
3247
+ #### Target Push Configuration
3248
+
3249
+ This configuration is for the media stream publishing interface [startPublishMediaStream](https://write.woa.com/document/87030026264555520).
3250
+ <table>
3251
+ <tr>
3252
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3253
+
3254
+ <td rowspan="1" colSpan="1" >Description</td>
3255
+ </tr>
3256
+
3257
+ <tr>
3258
+ <td rowspan="1" colSpan="1" >cdnUrlList</td>
3259
+
3260
+ <td rowspan="1" colSpan="1" >[Field Meaning] The streaming address (RTMP format) for publishing to Tencent or third-party live streaming service providers.<br>[Special Instructions] If your mode is set to TRTCPublishMixStreamToRoom, you do not need to set this parameter.</td>
3261
+ </tr>
3262
+
3263
+ <tr>
3264
+ <td rowspan="1" colSpan="1" >cdnUrlListSize</td>
3265
+
3266
+ <td rowspan="1" colSpan="1" >[Field Meaning] Number of elements in the cdnUrlList array.<br>[Special Instructions] If your mode is set to TRTCPublishMixStreamToRoom, you do not need to set this parameter.</td>
3267
+ </tr>
3268
+
3269
+ <tr>
3270
+ <td rowspan="1" colSpan="1" >mixStreamIdentity</td>
3271
+
3272
+ <td rowspan="1" colSpan="1" >[Field Meaning] Push-back Room Robot Information.<br>[Special Instructions] You need to set this parameter only if your mode is set to TRTCPublishMixStreamToRoom.<br>[Special Instructions] After setting, the transcoded audio and video data will be pushed back to your specified room. It is recommended to set a special userId to avoid confusion between the push-back robot and the host using the TRTC SDK to join the room.<br>[Special Instructions] Users involved in stream mixing cannot subscribe to the transcoded stream.<br>[Special Note] When the subscription mode you set before entering the room ([setDefaultStreamRecvMode](https://write.woa.com/document/87030026264555520)) is set to manual, you will need to manage the audio and video streams you wish to pull yourself (typically, when you pull the transcoding stream of the room, you should unsubscribe from the corresponding audio and video single streams involved in transcoding).<br>[Special Explanation] If the subscription mode you set before entering the room ([setDefaultStreamRecvMode](https://write.woa.com/document/87030026264555520)) is automatic, users not participating in transcoding will automatically receive the transcoded stream sent by the backend and will no longer receive the audio and video single streams involved in transcoding. Unless you explicitly unsubscribe ([muteRemoteVideoStream](https://write.woa.com/document/87030026264555520) and [muteRemoteAudio](https://write.woa.com/document/87030026264555520)), the transcoded stream data will continue to be sent.</td>
3273
+ </tr>
3274
+
3275
+ <tr>
3276
+ <td rowspan="1" colSpan="1" >mode</td>
3277
+
3278
+ <td rowspan="1" colSpan="1" >[Field Meaning] Media Stream Publishing Mode.<br>[Recommended Values] Please choose according to your business scenario requirements. TRTC supports relay, transcoding, and rollback to RTC room modes.<br>[Special Explanation] If your business scenario requires multiple publishing modes, you can call the media stream publishing interface ([startPublishMediaStream](https://write.woa.com/document/87030026264555520)) multiple times and set different TRTCPublishTargets separately.<br>[Special Explanation] For the same mode, please correspond to a media stream publishing interface ([startPublishMediaStream](https://write.woa.com/document/87030026264555520)), and use updatePublishCDNStream for updates when adjustments are needed later.</td>
3279
+ </tr>
3280
+ </table>
3281
+
3282
+
3283
+ ## TRTCVideoLayout
3284
+
3285
+
3286
+
3287
+ #### Transcode Video Layout
3288
+
3289
+ This configuration is for the transcoding settings ([TRTCStreamMixingConfig](https://write.woa.com/document/87030132707430400)) in the media stream publishing interface ([startPublishMediaStream](https://write.woa.com/document/87030026264555520)).
3290
+
3291
+ For specifying the position, size, layer, and stream type of each video screen in the transcoded stream.
3292
+ <table>
3293
+ <tr>
3294
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3295
+
3296
+ <td rowspan="1" colSpan="1" >Description</td>
3297
+ </tr>
3298
+
3299
+ <tr>
3300
+ <td rowspan="1" colSpan="1" >backgroundColor</td>
3301
+
3302
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the background color of the mixed-screen.<br>[Recommended Values] Default: 0x000000 represents black. The format is a hexadecimal number, e.g., "0x61B9F1" represents RGB values as (97,158,241).</td>
3303
+ </tr>
3304
+
3305
+ <tr>
3306
+ <td rowspan="1" colSpan="1" >fillMode</td>
3307
+
3308
+ <td rowspan="1" colSpan="1" >[Field Meaning] Screen Fill Mode.<br>[Recommended Values] Fill (the screen may be stretched or cropped) or Fit (the screen may have black edges), Default: [TRTCVideoFillMode_Fill](https://write.woa.com/document/87030132707430400).</td>
3309
+ </tr>
3310
+
3311
+ <tr>
3312
+ <td rowspan="1" colSpan="1" >fixedVideoStreamType</td>
3313
+
3314
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies whether this video stream is a main stream ([TRTCVideoStreamTypeBig](https://write.woa.com/document/87030132707430400)) or a sub-stream ([TRTCVideoStreamTypeSub](https://write.woa.com/document/87030132707430400)).</td>
3315
+ </tr>
3316
+
3317
+ <tr>
3318
+ <td rowspan="1" colSpan="1" >fixedVideoUser</td>
3319
+
3320
+ <td rowspan="1" colSpan="1" >[Field Meaning] User Information Participating in Transcoding.<br>[Special Note] User information ([TRTCUser](https://write.woa.com/document/87030132707430400)) can be left unfilled (i.e., userId, intRoomId, and strRoomId are all left blank). In this case, when there is an anchor streaming audio and video data in the room initiating the stream mix, the TRTC back-end server will automatically populate the corresponding anchor's audio and video into your specified layout.</td>
3321
+ </tr>
3322
+
3323
+ <tr>
3324
+ <td rowspan="1" colSpan="1" >placeHolderImage</td>
3325
+
3326
+ <td rowspan="1" colSpan="1" >[Field Meaning] Placeholder image URL, i.e., when the specified user is temporarily only sending audio, Tencent Cloud's back-end server will mix the image specified by this URL into the final screen.<br>[Recommended Values] Default: empty, which means no placeholder image is set.<br>[Special Note] At this time, you need to specify the user information for fixedVideoUser's userId.<br>[Special Note]<br>- The URL length is limited to 512 bytes. The size of the image must not exceed 2MB.<br>- Supported image formats include png, jpg, jpeg, and bmp. It is recommended to use semi-transparent png images as placeholders.</td>
3327
+ </tr>
3328
+
3329
+ <tr>
3330
+ <td rowspan="1" colSpan="1" >rect</td>
3331
+
3332
+ <td rowspan="1" colSpan="1" >[Field meaning] Specifies the coordinate area of the screen (unit: pixels).</td>
3333
+ </tr>
3334
+
3335
+ <tr>
3336
+ <td rowspan="1" colSpan="1" >zOrder</td>
3337
+
3338
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the level of the screen (Range: 0 - 15, unique).</td>
3339
+ </tr>
3340
+ </table>
3341
+
3342
+
3343
+ ## TRTCWatermark
3344
+
3345
+
3346
+
3347
+ #### Watermark Layout
3348
+
3349
+ This configuration is used in the Transcoding Configuration ([TRTCStreamMixingConfig](https://write.woa.com/document/87030132707430400)) of the Media Stream Publishing Interface ([startPublishMediaStream](https://write.woa.com/document/87030026264555520))
3350
+ <table>
3351
+ <tr>
3352
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3353
+
3354
+ <td rowspan="1" colSpan="1" >Description</td>
3355
+ </tr>
3356
+
3357
+ <tr>
3358
+ <td rowspan="1" colSpan="1" >rect</td>
3359
+
3360
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the coordinate area of the watermark screen (unit: pixels).</td>
3361
+ </tr>
3362
+
3363
+ <tr>
3364
+ <td rowspan="1" colSpan="1" >watermarkUrl</td>
3365
+
3366
+ <td rowspan="1" colSpan="1" >[Field Meaning] Watermark URL, Tencent Cloud's back-end server will mix the image specified by this URL into the final screen.<br>[Special Note]<br>- The URL length is limited to 512 bytes. The size of the image must not exceed 2MB.<br>- Supported image formats include png, jpg, jpeg, and bmp. It is recommended to use semi-transparent png images as watermarks.</td>
3367
+ </tr>
3368
+
3369
+ <tr>
3370
+ <td rowspan="1" colSpan="1" >zOrder</td>
3371
+
3372
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the level of the watermark screen (Range: 0 - 15, unique).</td>
3373
+ </tr>
3374
+ </table>
3375
+
3376
+
3377
+ ## TRTCStreamEncoderParam
3378
+
3379
+
3380
+
3381
+ #### Media Stream Encoding Output Parameters
3382
+
3383
+ [Field Meaning] This configuration is used in the Media Stream Publishing Interface ([startPublishMediaStream](https://write.woa.com/document/87030026264555520)).
3384
+
3385
+ [Special Note] When the mode configuration in your publishing target ([TRTCPublishTarget](https://write.woa.com/document/87030132707430400)) is set to TRTCPublish_MixStream_ToCdn or TRTCPublish_MixStream_ToRoom, this parameter is required.
3386
+
3387
+ [Special Explanation] When you use the retweet service (mode is TRTCPublish_BigStream_ToCdn or TRTCPublish_SubStream_ToCdn), to ensure better stability and CDN play compatibility, it is also recommended that you fill in the specific parameters of this configuration.
3388
+ <table>
3389
+ <tr>
3390
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3391
+
3392
+ <td rowspan="1" colSpan="1" >Description</td>
3393
+ </tr>
3394
+
3395
+ <tr>
3396
+ <td rowspan="1" colSpan="1" >audioEncodedChannelNum</td>
3397
+
3398
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target audio channel count for the media publish stream.<br>[Recommended Value] Default: 1, representing mono. The allowable values are: 1 - mono, 2 - stereo.</td>
3399
+ </tr>
3400
+
3401
+ <tr>
3402
+ <td rowspan="1" colSpan="1" >audioEncodedCodecType</td>
3403
+
3404
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target audio encoding type for the media publish stream.<br>[Recommended Value] Default: 0, representing LC-AAC. The allowable values are: 0 - LC-AAC, 1 - HE-AAC, 2 - HE-AACv2.<br>[Special Explanation] HE-AAC and HE-AACv2 support output stream audio sample rates of [48000, 44100, 32000, 24000, 16000].<br>[Special Explanation] When audio encoding is set to HE-AACv2, only stereo output is supported.</td>
3405
+ </tr>
3406
+
3407
+ <tr>
3408
+ <td rowspan="1" colSpan="1" >audioEncodedKbps</td>
3409
+
3410
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target audio bitrate (kbps) for the media publish stream.<br>[Recommended Value] Default: 50kbps, range: [32,192].</td>
3411
+ </tr>
3412
+
3413
+ <tr>
3414
+ <td rowspan="1" colSpan="1" >audioEncodedSampleRate</td>
3415
+
3416
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target audio sampling rate for the media publish stream.<br>[Recommended Value] Default: 48000Hz. Values are [48000, 44100, 32000, 24000, 16000, 8000], unit is Hz.</td>
3417
+ </tr>
3418
+
3419
+ <tr>
3420
+ <td rowspan="1" colSpan="1" >videoEncodedCodecType</td>
3421
+
3422
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target video encoding type for the media publish stream.<br>[Recommended Value] Default: 0, representing H264. The allowable values are: 0 - H264, 1 - H265.</td>
3423
+ </tr>
3424
+
3425
+ <tr>
3426
+ <td rowspan="1" colSpan="1" >videoEncodedFPS</td>
3427
+
3428
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target video frame rate (FPS) for the media publish stream.<br>[Recommended Value] Recommended value: 20fps, range: (0,30].</td>
3429
+ </tr>
3430
+
3431
+ <tr>
3432
+ <td rowspan="1" colSpan="1" >videoEncodedGOP</td>
3433
+
3434
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target video keyframe interval (GOP) for the media publish stream.<br>[Recommended Value] Recommended value: 3 seconds, range: [1,5].</td>
3435
+ </tr>
3436
+
3437
+ <tr>
3438
+ <td rowspan="1" colSpan="1" >videoEncodedHeight</td>
3439
+
3440
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target resolution (height) for the media publish stream.<br>[Recommended Value] Unit: Pixel Value. Recommended value: 640. If you are only mixing audio streams, set both width and height to 0, otherwise, the mixed transcoding live stream will have a black background.</td>
3441
+ </tr>
3442
+
3443
+ <tr>
3444
+ <td rowspan="1" colSpan="1" >videoEncodedKbps</td>
3445
+
3446
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target video bitrate (kbps) for the media publish stream.<br>[Recommended Values] If set to 0, TRTC will estimate a reasonable bitrate based on videoEncodedWidth and videoEncodedHeight. You can also refer to the bitrate value recommended in the video resolution enum Definition (see the comment section).</td>
3447
+ </tr>
3448
+
3449
+ <tr>
3450
+ <td rowspan="1" colSpan="1" >videoEncodedWidth</td>
3451
+
3452
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the target resolution (width) for the media publish stream.<br>[Recommended Values] Unit: Pixel Value. Recommended value: 368. If you are only mixing audio streams, set both width and height to 0, otherwise, the mixed transcoding live stream will have a black background.</td>
3453
+ </tr>
3454
+
3455
+ <tr>
3456
+ <td rowspan="1" colSpan="1" >videoSeiParams</td>
3457
+
3458
+ <td rowspan="1" colSpan="1" >[Field Meaning] Stream Mixing SEI Parameters. Not specified by default.<br>[Special Note] Parameters are passed in as a JSON String. Example:<br>`{`<br>` "payLoadContent":"xxx",`<br>` "payloadType":5,`<br>` "payloadUuid":"1234567890abcdef1234567890abcdef",`<br>` "interval":1000,`<br>` "followIdr":false`<br>`}`<br>Supported fields and their meanings:<br>- payloadContent: Required. The payload content of the transparent SEI; cannot be empty<br>- payloadType: Required. The type of SEI message, with a range of values: 5, or integers within [100, 254] (excluding 244, which is an internal self-definition timestamp SEI);<br>- payloadUuid: Required when payloadType is 5, otherwise this value is ignored. This value must be a 32-character hexadecimal number;<br>- interval: Optional, default is 1000. The sending interval of SEI, in milliseconds;<br>- followIdr: Optional, default is false. When set to true, SEI will be ensured with keyframes, otherwise, it will not be ensured.</td>
3459
+ </tr>
3460
+ </table>
3461
+
3462
+
3463
+ ## TRTCStreamMixingConfig
3464
+
3465
+
3466
+
3467
+ #### Media Stream Transcoding Configuration Parameters
3468
+
3469
+ This configuration is used for the media stream publish interface ([startPublishMediaStream](https://write.woa.com/document/87030026264555520)).
3470
+
3471
+ For specifying the layout position information of each screen and the input audio information during transcoding.
3472
+ <table>
3473
+ <tr>
3474
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3475
+
3476
+ <td rowspan="1" colSpan="1" >Description</td>
3477
+ </tr>
3478
+
3479
+ <tr>
3480
+ <td rowspan="1" colSpan="1" >audioMixUserList</td>
3481
+
3482
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the information of each input audio stream in the transcoding stream.<br>[Recommended Values] This field is an array of TRTCUser type. Each element in the array represents information for each input audio stream.<br>[Special Note] User information can be left blank (i.e., audioMixUserList is empty). In this case, if the audio-related encoding output parameters in TRTCStreamEncoderParam are set, the TRTC backend server will automatically mix the audio of all hosts (currently supports up to 16 audio and video inputs).</td>
3483
+ </tr>
3484
+
3485
+ <tr>
3486
+ <td rowspan="1" colSpan="1" >audioMixUserListSize</td>
3487
+
3488
+ <td rowspan="1" colSpan="1" >[Field Meaning] Number of elements in the audioMixUserList array.</td>
3489
+ </tr>
3490
+
3491
+ <tr>
3492
+ <td rowspan="1" colSpan="1" >backgroundColor</td>
3493
+
3494
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the background color of the mixed-screen.<br>[Recommended Values] Default: 0x000000 represents black. The format is a hexadecimal number, e.g., "0x61B9F1" represents RGB values as (97,158,241).</td>
3495
+ </tr>
3496
+
3497
+ <tr>
3498
+ <td rowspan="1" colSpan="1" >backgroundImage</td>
3499
+
3500
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the background image URL for the mixed screen. Tencent Cloud's backend server will mix the image specified by the URL into the final screen.<br>[Recommended Values] Default: empty, meaning no background image is set.<br>[Special Note]<br>- The URL length is limited to 512 bytes. The size of the image must not exceed 2MB.<br>- Supported image formats include png, jpg, jpeg, and bmp. It is recommended to use semi-transparent png images as background images.</td>
3501
+ </tr>
3502
+
3503
+ <tr>
3504
+ <td rowspan="1" colSpan="1" >videoLayoutList</td>
3505
+
3506
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the position, size, layer, and stream type information for each video screen in the mixed picture.<br>[Recommended Values] This field is an array of TRTCVideoLayout type. Each element in the array represents the information for each screen.</td>
3507
+ </tr>
3508
+
3509
+ <tr>
3510
+ <td rowspan="1" colSpan="1" >videoLayoutListSize</td>
3511
+
3512
+ <td rowspan="1" colSpan="1" >[Field Meaning] Number of elements in the videoLayoutList array.</td>
3513
+ </tr>
3514
+
3515
+ <tr>
3516
+ <td rowspan="1" colSpan="1" >watermarkList</td>
3517
+
3518
+ <td rowspan="1" colSpan="1" >[Field Meaning] Specifies the position, size, layer, etc., information for each watermarked screen in the mixed picture.<br>[Recommended Values] This field is an array of TRTCWatermark type. Each element in the array represents the information for each watermark.</td>
3519
+ </tr>
3520
+
3521
+ <tr>
3522
+ <td rowspan="1" colSpan="1" >watermarkListSize</td>
3523
+
3524
+ <td rowspan="1" colSpan="1" >[Field Meaning] Number of elements in the watermarkList array.</td>
3525
+ </tr>
3526
+ </table>
3527
+
3528
+
3529
+ ## TRTCPayloadPrivateEncryptionConfig
3530
+
3531
+
3532
+
3533
+ #### Media Stream Private Encryption Configuration
3534
+
3535
+ This configuration is used to set the algorithm and key for private media stream encryption.
3536
+ <table>
3537
+ <tr>
3538
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3539
+
3540
+ <td rowspan="1" colSpan="1" >Description</td>
3541
+ </tr>
3542
+
3543
+ <tr>
3544
+ <td rowspan="1" colSpan="1" >encryptionAlgorithm</td>
3545
+
3546
+ <td rowspan="1" colSpan="1" >[Field Meaning] Encryption algorithm, default is TRTCEncryptionAlgorithmAes128Gcm.</td>
3547
+ </tr>
3548
+
3549
+ <tr>
3550
+ <td rowspan="1" colSpan="1" >encryptionKey</td>
3551
+
3552
+ <td rowspan="1" colSpan="1" >[Field Meaning] Encryption key, string type.<br>[Recommended Values] If the encryption algorithm is TRTCEncryptionAlgorithmAes128Gcm, the key length needs to be 16 bytes; if the encryption algorithm is TRTCEncryptionAlgorithmAes256Gcm, the key length needs to be 32 bytes.</td>
3553
+ </tr>
3554
+
3555
+ <tr>
3556
+ <td rowspan="1" colSpan="1" >encryptionSalt[32]</td>
3557
+
3558
+ <td rowspan="1" colSpan="1" >[Field Meaning] Salt, initial vector for encryption.<br>[Recommended Values] Ensure that the array filled in for this parameter is not empty, not all zeros, and the data length is 32 bytes.</td>
3559
+ </tr>
3560
+ </table>
3561
+
3562
+
3563
+ ## TRTCAudioVolumeEvaluateParams
3564
+
3565
+
3566
+
3567
+ #### Volume Assessment and related parameter settings
3568
+
3569
+ This setting is used to enable voice detection and sound spectrum calculation.
3570
+ <table>
3571
+ <tr>
3572
+ <td rowspan="1" colSpan="1" >Enumeration Types</td>
3573
+
3574
+ <td rowspan="1" colSpan="1" >Description</td>
3575
+ </tr>
3576
+
3577
+ <tr>
3578
+ <td rowspan="1" colSpan="1" >enablePitchCalculation</td>
3579
+
3580
+ <td rowspan="1" colSpan="1" >[Field Meaning] Whether to enable local voice frequency calculation</td>
3581
+ </tr>
3582
+
3583
+ <tr>
3584
+ <td rowspan="1" colSpan="1" >enableSpectrumCalculation</td>
3585
+
3586
+ <td rowspan="1" colSpan="1" >[Field Meaning] Whether to enable sound spectrum calculation.</td>
3587
+ </tr>
3588
+
3589
+ <tr>
3590
+ <td rowspan="1" colSpan="1" >enableVadDetection</td>
3591
+
3592
+ <td rowspan="1" colSpan="1" >[Field Meaning] Whether to enable local voice detection.<br>[Please Note] It takes effect only when called before startLocalAudio.</td>
3593
+ </tr>
3594
+
3595
+ <tr>
3596
+ <td rowspan="1" colSpan="1" >interval</td>
3597
+
3598
+ <td rowspan="1" colSpan="1" >[Field Meaning] Sets the trigger interval for the onUserVoiceVolume callback, in milliseconds. The minimum interval is 100ms. If the value is less than or equal to 0, the callback will be disabled.<br>[Recommended Value] Recommended value: 300 milliseconds.<br>[Special Instruction] When the interval is greater than 0, the volume prompt will be enabled by default without additional settings.</td>
3599
+ </tr>
3600
+ </table>