@rongcloud/plugin-rtc 5.4.1 → 5.4.4-alpha.1

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 (95) hide show
  1. package/dist/async-task-queue.d.ts +9 -0
  2. package/dist/core/Invoker.d.ts +46 -0
  3. package/dist/core/PolarisReporter.d.ts +35 -0
  4. package/dist/core/RCAudienceClient.d.ts +89 -0
  5. package/dist/core/RCMediaStreamCapture.d.ts +124 -0
  6. package/dist/core/RCRTCClient.d.ts +126 -0
  7. package/dist/core/Store.d.ts +80 -0
  8. package/dist/core/command/BaseCommand.d.ts +22 -0
  9. package/dist/core/command/EnabelInnerCDNCommand.d.ts +16 -0
  10. package/dist/core/command/ExchangeCommand.d.ts +18 -0
  11. package/dist/core/command/ExchangeWithPushOtherRoomCommand.d.ts +22 -0
  12. package/dist/core/command/JoinRoomCommand.d.ts +26 -0
  13. package/dist/core/command/LeaveOtherRoomCommand.d.ts +30 -0
  14. package/dist/core/command/LocalTrackMuteCommand.d.ts +10 -0
  15. package/dist/core/command/MCUConfigFlushCommand.d.ts +18 -0
  16. package/dist/core/command/OnRemoteUserUnpubCommand.d.ts +13 -0
  17. package/dist/core/command/OnSignalReconnectedCommand.d.ts +38 -0
  18. package/dist/core/command/ParseRemoteResCommand.d.ts +38 -0
  19. package/dist/core/command/ParseUserStateCommand.d.ts +57 -0
  20. package/dist/core/command/PubCommand.d.ts +34 -0
  21. package/dist/core/command/RTCIdentityChangeCommand.d.ts +17 -0
  22. package/dist/core/command/RetryExchangeCommand.d.ts +18 -0
  23. package/dist/core/command/SubCommand.d.ts +21 -0
  24. package/dist/core/command/UnpubCommand.d.ts +20 -0
  25. package/dist/core/command/UnpubPrevCommand.d.ts +6 -0
  26. package/dist/core/command/UnsubCommand.d.ts +20 -0
  27. package/dist/core/command/UpdateSubListCommand.d.ts +28 -0
  28. package/dist/core/command/helper.d.ts +20 -0
  29. package/dist/core/constants.d.ts +2 -0
  30. package/dist/core/enums/BackgroundPictureFillMode.d.ts +14 -0
  31. package/dist/core/enums/MixLayoutMode.d.ts +18 -0
  32. package/dist/core/enums/MixVideoRenderMode.d.ts +14 -0
  33. package/dist/core/enums/RCBitrate.d.ts +48 -0
  34. package/dist/core/enums/RCFrameRate.d.ts +7 -0
  35. package/dist/core/enums/RCInnerCDNBroadcast.d.ts +5 -0
  36. package/dist/core/enums/RCInnerCDNModel.d.ts +5 -0
  37. package/dist/core/enums/RCInnerCDNPullIsHttps.d.ts +5 -0
  38. package/dist/core/enums/RCInnerCDNPullKind.d.ts +6 -0
  39. package/dist/core/enums/RCInnerCDNPushMode.d.ts +5 -0
  40. package/dist/core/enums/RCKickType.d.ts +11 -0
  41. package/dist/core/enums/RCLivingType.d.ts +14 -0
  42. package/dist/core/enums/RCLoggerTag.d.ts +629 -0
  43. package/dist/core/enums/RCMediaType.d.ts +18 -0
  44. package/dist/core/enums/RCMixInputFilterMode.d.ts +35 -0
  45. package/dist/core/enums/RCRTCCode.d.ts +86 -0
  46. package/dist/core/enums/RCRTCLiveRole.d.ts +14 -0
  47. package/dist/core/enums/RCRTCPingResult.d.ts +5 -0
  48. package/dist/core/enums/RCRTCResolution.d.ts +102 -0
  49. package/dist/core/enums/RCResolution.d.ts +16 -0
  50. package/dist/core/enums/inner/PolarisRole.d.ts +14 -0
  51. package/dist/core/enums/inner/R2Action.d.ts +14 -0
  52. package/dist/core/enums/inner/R2Status.d.ts +11 -0
  53. package/dist/core/enums/inner/RCRTCMessageType.d.ts +66 -0
  54. package/dist/core/enums/inner/RCStreamType.d.ts +14 -0
  55. package/dist/core/enums/inner/TrackState.d.ts +14 -0
  56. package/dist/core/interfaces.d.ts +912 -0
  57. package/dist/core/room/Pinger.d.ts +35 -0
  58. package/dist/core/room/RCAbstractRoom.d.ts +327 -0
  59. package/dist/core/room/RCAudienceLivingRoom.d.ts +321 -0
  60. package/dist/core/room/RCAudioLevelReport.d.ts +16 -0
  61. package/dist/core/room/RCLivingPKHandler.d.ts +164 -0
  62. package/dist/core/room/RCLivingRoom.d.ts +108 -0
  63. package/dist/core/room/RCLocalMediaStream.d.ts +8 -0
  64. package/dist/core/room/RCMCUConfigBuilder.d.ts +211 -0
  65. package/dist/core/room/RCRTCRoom.d.ts +15 -0
  66. package/dist/core/service/RCMediaService.d.ts +96 -0
  67. package/dist/core/service/helper.d.ts +8 -0
  68. package/dist/core/service/index.d.ts +6 -0
  69. package/dist/core/service/interface.d.ts +323 -0
  70. package/dist/core/service/mcu-interface.d.ts +293 -0
  71. package/dist/core/tracks/RCLocalTrack.d.ts +121 -0
  72. package/dist/core/tracks/RCRemoteTrack.d.ts +23 -0
  73. package/dist/core/tracks/RCTrack.d.ts +91 -0
  74. package/dist/core/webrtc/RCRTCPeerCManager.d.ts +159 -0
  75. package/dist/core/webrtc/RCRTCPeerConnection.d.ts +112 -0
  76. package/dist/core/webrtc/helper.d.ts +26 -0
  77. package/dist/core/webrtc/sdp/ASdpBuilder.d.ts +98 -0
  78. package/dist/core/webrtc/sdp/ASdpStrategy.d.ts +48 -0
  79. package/dist/core/webrtc/sdp/PlanBSdpBuilder.d.ts +20 -0
  80. package/dist/core/webrtc/sdp/PlanBStrategy.d.ts +26 -0
  81. package/dist/core/webrtc/sdp/UnifiedPlanSdpBuilder.d.ts +11 -0
  82. package/dist/core/webrtc/sdp/UnifiedPlanStrategy.d.ts +21 -0
  83. package/dist/core/webrtc/stat-parser/AbstractStatParser.d.ts +117 -0
  84. package/dist/core/webrtc/stat-parser/ChromeStatParser.d.ts +14 -0
  85. package/dist/core/webrtc/stat-parser/FirefoxStatParser.d.ts +14 -0
  86. package/dist/core/webrtc/stat-parser/IStatParser.d.ts +24 -0
  87. package/dist/core/webrtc/stat-parser/SafariStatParser.d.ts +14 -0
  88. package/dist/device.d.ts +6 -0
  89. package/dist/helper.d.ts +189 -0
  90. package/dist/index.d.ts +2038 -1909
  91. package/dist/index.esm.js +18238 -15
  92. package/dist/index.js +18270 -15
  93. package/dist/index.umd.js +18274 -15
  94. package/dist/logger.d.ts +4 -0
  95. package/package.json +3 -3
@@ -0,0 +1,912 @@
1
+ import { LogLevel } from '@rongcloud/engine';
2
+ import { RCMediaType } from './enums/RCMediaType';
3
+ import { RCFrameRate } from './enums/RCFrameRate';
4
+ import { RCResolution } from './enums/RCResolution';
5
+ import { TrackState } from './enums/inner/TrackState';
6
+ import { RCLocalTrack, RCLocalAudioTrack } from './tracks/RCLocalTrack';
7
+ import { RCRemoteAudioTrack, RCRemoteTrack, RCRemoteVideoTrack } from './tracks/RCRemoteTrack';
8
+ import { ISdpSemantics } from './webrtc/sdp/ASdpStrategy';
9
+ import { RCInnerCDNPullKind } from './enums/RCInnerCDNPullKind';
10
+ import { RCInnerCDNPullIsHttps } from './enums/RCInnerCDNPullIsHttps';
11
+ import { RCKickReason } from './enums/RCKickType';
12
+ import { RCRTCPingResult } from './enums/RCRTCPingResult';
13
+ import { RCRTCLiveRole } from './enums/RCRTCLiveRole';
14
+ import RCRTCPeerConnection from './webrtc/RCRTCPeerConnection';
15
+ import { RCRTCCode } from './enums/RCRTCCode';
16
+ import { IExchangeResponse } from './service/interface';
17
+ export interface IRCTrackBitrate {
18
+ /**
19
+ * 最大码率
20
+ */
21
+ max: number;
22
+ /**
23
+ * 最小码率
24
+ */
25
+ min: number;
26
+ /**
27
+ * 上行起始码率
28
+ */
29
+ start?: number;
30
+ }
31
+ /**
32
+ * MediaServer 返回的媒体资源数据
33
+ */
34
+ export interface IResource {
35
+ /**
36
+ * 媒体类型
37
+ */
38
+ mediaType: RCMediaType.AUDIO_ONLY | RCMediaType.VIDEO_ONLY;
39
+ /**
40
+ * MediaStream Id,基本为 `userId` 与 `tag` 以 `_` 拼接而来。该值无法直接作为资源的唯一性标识属性,
41
+ * 需与 mediaType 拼接使用
42
+ */
43
+ msid: string;
44
+ /**
45
+ * MediaServer 返回的资源地址
46
+ * @example 举例如下:
47
+ * `{"clusterId":"rtc-data-bdcbj.ronghub.com:80","serverId":"172.28.76.215:40080","resourceId":"13111111111_5vls_web_RongCloudRTC_1","connectionId":"AAYxMDAzNjgAFDEzMTExMTExMTExXzV2bHNfd2ViAAMzMzMA","ssrc":1716229921,"serviceProvider":"bdc","userTimestamp":1604994044706}`
48
+ */
49
+ uri: string;
50
+ /**
51
+ * 资源特征,simulcast 代表这道流支持大小流
52
+ * @description 此参数存疑,MediaServer 似乎并未下发此字段,Web 端暂不启用
53
+ * @deprecated
54
+ */
55
+ features?: ['simulcast'] | [];
56
+ }
57
+ /**
58
+ * 向房间内发布的媒体数据
59
+ */
60
+ export interface IPublishedResource extends IResource {
61
+ /**
62
+ * 资源禁用/启用标识,用于向 signal 同步本端资源状态,1 为启用,0 为禁用
63
+ */
64
+ state: 0 | 1;
65
+ /**
66
+ * 资源标识,同标识的资源将视作同道流,标识不可重复
67
+ */
68
+ tag: string;
69
+ }
70
+ export interface ISubscribeAttr {
71
+ /**
72
+ * 要订阅的音视轨数据 Id
73
+ */
74
+ track: RCRemoteTrack;
75
+ /**
76
+ * 订阅小流,默认为 `false`
77
+ */
78
+ subTiny?: boolean;
79
+ }
80
+ /**
81
+ * 视频配置
82
+ */
83
+ export interface IVideoProfile {
84
+ /**
85
+ * 视频帧率
86
+ */
87
+ frameRate: RCFrameRate;
88
+ /**
89
+ * 视频分辨率
90
+ */
91
+ resolution: RCResolution;
92
+ }
93
+ /**
94
+ * 屏幕共享流配置
95
+ */
96
+ export interface IScreenVideoProfile extends IVideoProfile {
97
+ /**
98
+ * Electron 平台下通过 `desktopCapturer.getSources` 获取到的 sourceId,
99
+ * 不传 chromeMediaSourceId 时默认共享桌面,传入时共享指定窗口。
100
+ * @see `https://www.electronjs.org/docs/api/desktop-capturer`
101
+ */
102
+ chromeMediaSourceId?: string;
103
+ }
104
+ /**
105
+ * 待发布资源数据
106
+ */
107
+ export interface IPublishAttrs {
108
+ /**
109
+ * 待发布的轨道数据
110
+ */
111
+ track: RCLocalTrack;
112
+ /**
113
+ * 是否同时发布小流
114
+ */
115
+ pubTiny?: boolean | IVideoProfile;
116
+ }
117
+ /**
118
+ * 资源可用性描述
119
+ */
120
+ export interface IResourceEnabled {
121
+ resourceId: string;
122
+ enabled: boolean;
123
+ }
124
+ /**
125
+ * 资源地址字符串解析后的结构
126
+ */
127
+ export interface IUriInfo {
128
+ clousterId: string;
129
+ serverId: string;
130
+ /**
131
+ * 资源唯一标识,为 `userId_tag_mediaType` 拼接而来,mediaType 为 0 或 1,是单独的音频或视频资源
132
+ */
133
+ resourceId: string;
134
+ connectionId: string;
135
+ ssrc: string;
136
+ serviceProvider: string;
137
+ /**
138
+ * 时间戳
139
+ */
140
+ userTimestamp: number;
141
+ }
142
+ /**
143
+ * peerConnection 抛出给用户的 track 字段
144
+ */
145
+ export interface IRCTrackStat {
146
+ /**
147
+ * stat id
148
+ */
149
+ id?: string;
150
+ /**
151
+ * 资源 Id
152
+ */
153
+ trackId: string;
154
+ /**
155
+ * 资源类型
156
+ */
157
+ kind: 'audio' | 'video';
158
+ /**
159
+ * 丢包率,有效值 `0` - `1`
160
+ */
161
+ packetsLostRate: number | null;
162
+ /**
163
+ * 是否是远端资源
164
+ */
165
+ remoteResource: boolean;
166
+ /**
167
+ * 音量
168
+ */
169
+ audioLevel?: number | null;
170
+ /**
171
+ * 视频高度
172
+ */
173
+ frameHeight?: number | null;
174
+ /**
175
+ * 视频宽度
176
+ */
177
+ frameWidth?: number | null;
178
+ /**
179
+ * 视频帧率
180
+ */
181
+ frameRate?: number | null;
182
+ /**
183
+ * 码率
184
+ */
185
+ bitrate: number;
186
+ /**
187
+ * 网络抖动,单位 ms
188
+ * @description 下行数据中,同道流中只有一个 track 会有值,另一轨道数据值为 `0`
189
+ */
190
+ jitter: number | null;
191
+ }
192
+ /**
193
+ * peerConnection 抛出给用户的 iceCandidatePair 字段
194
+ */
195
+ export interface IRCCandidatePairStat {
196
+ /**
197
+ * 本端 IP
198
+ */
199
+ IP: string;
200
+ /**
201
+ * 本地 UDP 端口
202
+ */
203
+ port: number;
204
+ /**
205
+ * 本地网络类型
206
+ */
207
+ networkType: string | null;
208
+ /**
209
+ * 远端 IP
210
+ */
211
+ remoteIP: string;
212
+ /**
213
+ * 远端 UDP 端口
214
+ */
215
+ remotePort: number;
216
+ /**
217
+ * 协议
218
+ */
219
+ protocol: string;
220
+ /**
221
+ * 发送总码率,单位 kbps
222
+ */
223
+ bitrateSend: number;
224
+ /**
225
+ * 接收总码率,单位 kbps
226
+ */
227
+ bitrateRecv: number;
228
+ /**
229
+ * (Round-Trip-Time)往返时延,单位 ms
230
+ */
231
+ rtt: number | null;
232
+ /**
233
+ * 可用上行带宽,单位 bit
234
+ */
235
+ availableOutgoingBitrate: number | null;
236
+ /**
237
+ * 可用下行带宽,在无下行资源时,其值为 `0`,单位: `bit`
238
+ */
239
+ availableIncomingBitrate: number | null;
240
+ }
241
+ /**
242
+ * iceCandidatePair 所有字段
243
+ * 含 peerConnection 抛出给用户的 iceCandidatePair 字段
244
+ * 含 北极星上报 R3、R4 所需的 totalPacketsLost
245
+ */
246
+ export interface IInnerIcePair extends IRCCandidatePairStat {
247
+ /**
248
+ * 上、下行总丢包率
249
+ */
250
+ totalPacketsLost?: number;
251
+ }
252
+ /**
253
+ * send track 所有字段
254
+ * 含 peerConnection 抛出给用户的 track 字段
255
+ * 含 北极星上报 R3 track 所需字段
256
+ */
257
+ export interface ISendTrackState extends IRCTrackStat {
258
+ /**
259
+ * (Round-Trip-Time)往返时延,单位 ms
260
+ */
261
+ rtt: number | null;
262
+ /**
263
+ * 编码方式
264
+ */
265
+ encoderImplementation: string | null;
266
+ /**
267
+ * PLI 请求数
268
+ */
269
+ pliCount: number;
270
+ /**
271
+ * nack 数量
272
+ */
273
+ nackCount: number;
274
+ /**
275
+ * 第一个关键帧是否正常收到
276
+ */
277
+ googFirsSent: number;
278
+ /**
279
+ * 音频采样率
280
+ */
281
+ samplingRate: number;
282
+ /**
283
+ * 接收卡顿(间隔时间, 单位: ms)
284
+ */
285
+ googRenderDelayMs: number;
286
+ /**
287
+ * 流状态(0:不可用, 1:可用)
288
+ */
289
+ trackState: TrackState;
290
+ }
291
+ /**
292
+ * receive track 所有字段
293
+ * 含 peerConnection 抛出给用户的 track 字段
294
+ * 含 北极星上报 R4 track 所需字段
295
+ */
296
+ export interface IRecvTrackState extends IRCTrackStat {
297
+ /**
298
+ * 解码方式
299
+ */
300
+ codecImplementationName: string | null;
301
+ samplingRate: number;
302
+ nackCount: number;
303
+ pliCount: number;
304
+ rtt: number | null;
305
+ googFirsReceived: number;
306
+ googRenderDelayMs: number;
307
+ trackState: TrackState;
308
+ }
309
+ /**
310
+ * peerConnection stats 解析出来业务所需的所有字段
311
+ */
312
+ export interface IInnerRCRTCStateReport {
313
+ timestamp: number;
314
+ iceCandidatePair?: IInnerIcePair;
315
+ senders: ISendTrackState[];
316
+ receivers: IRecvTrackState[];
317
+ }
318
+ /**
319
+ * /**
320
+ * peerConnection stats 抛给用户的字段
321
+ */
322
+ export interface IRCRTCStateReport {
323
+ pcName?: string;
324
+ /**
325
+ * 报告生成时间戳
326
+ */
327
+ timestamp: number;
328
+ /**
329
+ * 对等连接状态数据
330
+ */
331
+ iceCandidatePair?: IRCCandidatePairStat;
332
+ /**
333
+ * 上行状态数据
334
+ */
335
+ senders: IRCTrackStat[];
336
+ /**
337
+ * 下行状态数据
338
+ */
339
+ receivers: IRCTrackStat[];
340
+ }
341
+ /**
342
+ * 北极星上报 R3、R4 公共字段
343
+ */
344
+ export interface IR3R4BaseData {
345
+ /**
346
+ * 发送总码率,单位 kbps
347
+ */
348
+ bitrateSend: number;
349
+ /**
350
+ * 接收总码率,单位 kbps
351
+ */
352
+ bitrateRecv: number;
353
+ /**
354
+ * 本地网络类型
355
+ */
356
+ networkType: string;
357
+ /**
358
+ * (Round-Trip-Time)往返时延,单位 ms
359
+ */
360
+ rtt: number;
361
+ /**
362
+ * 本端地址
363
+ */
364
+ localAddress: string;
365
+ /**
366
+ * 远端地址
367
+ */
368
+ remoteAddress: string;
369
+ /**
370
+ * 可用下行带宽,在无下行资源时,其值为 `0`,单位: `bit`
371
+ */
372
+ receiveBand: number;
373
+ /**
374
+ * 可用上行带宽,单位 bit
375
+ */
376
+ sendBand: number;
377
+ /**
378
+ * 上、下行总丢包数
379
+ */
380
+ packetsLost: number;
381
+ /**
382
+ * 设备id
383
+ */
384
+ deviceId: string;
385
+ }
386
+ /**
387
+ * 北极星上报 R3 track 字段
388
+ */
389
+ export interface IR3TackData {
390
+ /**
391
+ * trackId,内容为: userId_tag_video/(tiny_video)/audio
392
+ */
393
+ trackId: string;
394
+ /**
395
+ * 编解码名称
396
+ */
397
+ googCodecName: string;
398
+ /**
399
+ * 音量
400
+ */
401
+ audioLevel: number;
402
+ /**
403
+ * 音频采样率
404
+ */
405
+ samplingRate: number;
406
+ /**
407
+ * 上行码率
408
+ */
409
+ bitrate: number;
410
+ /**
411
+ * 丢包率
412
+ */
413
+ packetsLostRate: number;
414
+ /**
415
+ * 视频帧率,单位 fps
416
+ */
417
+ frameRate: number;
418
+ /**
419
+ * 分辨率,格式为 640*480
420
+ */
421
+ resolution: string;
422
+ /**
423
+ * 接收卡顿(间隔时间, 单位: ms)
424
+ */
425
+ googRenderDelayMs: number;
426
+ /**
427
+ * jitter 数据抖动
428
+ */
429
+ jitter: number;
430
+ /**
431
+ * nack 数量
432
+ */
433
+ nackCount: number;
434
+ /**
435
+ * PLI 请求数
436
+ */
437
+ pliCount: number;
438
+ /**
439
+ * googRtt 往返时长
440
+ */
441
+ rtt: number;
442
+ /**
443
+ * 第一个关键帧是否正常
444
+ */
445
+ googFirsSent: number;
446
+ /**
447
+ * 编码方式
448
+ */
449
+ encoderImplementation: string;
450
+ /**
451
+ * 流状态(0:不可用, 1:可用)
452
+ */
453
+ trackState: TrackState;
454
+ }
455
+ /**
456
+ * 北极星上报 R4 track 字段
457
+ */
458
+ export interface IR4TackData {
459
+ trackId: string;
460
+ googCodecName: string;
461
+ audioLevel: number;
462
+ samplingRate: number;
463
+ /**
464
+ * 下行码率
465
+ */
466
+ bitrate: number;
467
+ packetsLostRate: number;
468
+ frameRate: number;
469
+ resolution: string;
470
+ googRenderDelayMs: number;
471
+ jitter: number;
472
+ nackCount: number;
473
+ pliCount: number;
474
+ rtt: number;
475
+ /**
476
+ * 第一个关键帧是否正常
477
+ */
478
+ googFirsReceived: number;
479
+ /**
480
+ * 解码方式
481
+ */
482
+ codecImplementationName: string;
483
+ trackState: TrackState;
484
+ }
485
+ export interface IRCRTCReportListener {
486
+ /**
487
+ * RTCPeerConnection 的详细状态数据
488
+ * @param report
489
+ */
490
+ onStateReport?(report: IRCRTCStateReport): void;
491
+ /**
492
+ * ICE 连接状态变更通知
493
+ * @since version 5.1.5
494
+ */
495
+ onICEConnectionStateChange?(state: RTCIceConnectionState, pcName?: string): void;
496
+ /**
497
+ * @deprecated
498
+ */
499
+ onConnectionStateChange?(state: RTCPeerConnectionState, pcName?: string): void;
500
+ }
501
+ export interface IRCRTCTrackEventListener {
502
+ /**
503
+ * 订阅的音视频流通道已建立, track 已可以进行播放
504
+ * @param track RCRemoteTrack 类实例
505
+ */
506
+ onTrackReady?(track: RCRemoteTrack): void;
507
+ }
508
+ export interface IRoomEventListener extends IRCRTCTrackEventListener {
509
+ /**
510
+ * 当 RTCPeerConnection 连接被异常关闭时触发,此时需业务层重新加入房间并重新发布、订阅资源。
511
+ * 引起连接异常中断的原因包括但不限于:电脑休眠、浏览器页面长期后台运行等
512
+ * @since 5.1.5
513
+ */
514
+ onRTCPeerConnectionCloseByException?(): void;
515
+ /**
516
+ * 当本端被剔出房间时触发
517
+ * @description 被踢出房间可能是由于服务端超出一定时间未能收到 rtcPing 消息,所以认为己方离线。
518
+ * 另一种可能是己方 rtcPing 失败次数超出上限
519
+ * @param byServer 当值为 `false` 时,说明本端 rtcPing 超时;当值为 `true` 时,说明本端收到被踢出房间通知
520
+ */
521
+ onKickOff?(byServer: boolean, state?: RCKickReason, kickExtra?: any): void;
522
+ /**
523
+ * 接收到房间信令时回调,用户可通过房间实例的 sendMessage 接口发送信令
524
+ * @param name 信令名
525
+ * @param content 信令内容
526
+ * @param senderUserId 发送者 Id
527
+ * @param messageUId 消息唯一标识
528
+ */
529
+ onMessageReceive?(name: string, content: any, senderUserId: string, messageUId: string): void;
530
+ /**
531
+ * 房间属性变更回调
532
+ * @param name
533
+ * @param content
534
+ */
535
+ onRoomAttributeChange?(name: string, content?: string): void;
536
+ /**
537
+ * 房间用户禁用/启用音频
538
+ * @param audioTrack RCRemoteAudioTrack 类实例
539
+ */
540
+ onAudioMuteChange?(audioTrack: RCRemoteAudioTrack): void;
541
+ /**
542
+ * 房间用户禁用/启用视频
543
+ * @param videoTrack RCRemoteVideoTrack 类实例对象
544
+ */
545
+ onVideoMuteChange?(videoTrack: RCRemoteVideoTrack): void;
546
+ /**
547
+ * 房间内用户发布资源
548
+ * @param tracks 新发布的音轨与视轨数据列表,包含新发布的 RCRemoteAudioTrack 与 RCRemoteVideoTrack 实例
549
+ */
550
+ onTrackPublish?(tracks: RCRemoteTrack[]): void;
551
+ /**
552
+ * 房间用户取消发布资源
553
+ * @param tracks 被取消发布的音轨与视轨数据列表
554
+ * @description 当资源被取消发布时,SDK 内部会取消对相关资源的订阅,业务层仅需处理 UI 业务
555
+ */
556
+ onTrackUnpublish?(tracks: RCRemoteTrack[]): void;
557
+ /**
558
+ * 人员加入
559
+ * @param userIds 加入的人员 id 列表
560
+ */
561
+ onUserJoin?(userIds: string[]): void;
562
+ /**
563
+ * 人员退出
564
+ * @param userIds
565
+ */
566
+ onUserLeave?(userIds: string[]): void;
567
+ /**
568
+ * 主播开启、停止推 CDN 状态通知
569
+ */
570
+ onCDNEnableChange?(enable: boolean): void;
571
+ /**
572
+ * RTC 每次 Ping 的结果
573
+ * @since version: 5.1.5
574
+ */
575
+ onPing?(result: RCRTCPingResult): void;
576
+ /**
577
+ * 主播和观众切换身份通知
578
+ */
579
+ onSwitchRole?(userId: string, role: RCRTCLiveRole): void;
580
+ }
581
+ /**
582
+ * RTCClient 初始化配置
583
+ * @public
584
+ */
585
+ export interface IRCRTCInitOptions {
586
+ /**
587
+ * 自定义 MediaServer Url,公有云用户无需关注
588
+ * @description
589
+ * 1. 仅当 `location.hostname` 为 `localhost` 时,`http` 协议地址有效,否则必须使用 `https` 协议地址
590
+ * 2. 当该值有效时,将不再从 IMLib 导航数据中获取 mediaServer 地址
591
+ */
592
+ mediaServer?: string;
593
+ /**
594
+ * 输出日志等级,生产环境默认使用 WARN,开发环境默认为 DEBUG
595
+ * @description
596
+ * * 0 - DEBUG
597
+ * * 1 - INFO
598
+ * * 2 - WARN
599
+ * * 3 - ERROR
600
+ */
601
+ logLevel?: LogLevel;
602
+ /**
603
+ * 修改默认的 log 输出函数
604
+ */
605
+ logStdout?: (logLevel: LogLevel, content: string) => void;
606
+ /**
607
+ * 与 MediaServer 的 http 请求超时时间,单位为毫秒,默认值为 `5000`,有效值 `5000-30000`。
608
+ * 优先级:用户配置 > 导航配置 > 默认时间。
609
+ */
610
+ timeout?: number;
611
+ /**
612
+ * 房间 Ping 间隔时长,默认 `10000` ms,有效值 `3000`-`10000`
613
+ */
614
+ pingGap?: number;
615
+ /**
616
+ * 优化使用的 SDP 协议版本,仅当运行时浏览器支持相应 SDP 协议版本时生效
617
+ */
618
+ sdpSemantics?: ISdpSemantics;
619
+ /**
620
+ * 观众拉内置 CDN 资源的直播拉流协议,默认为 RCInnerCDNPullKind.FLV
621
+ */
622
+ pullInnerCDNProtocol?: RCInnerCDNPullKind;
623
+ /**
624
+ * 观众拉内置 CDN 资源时是否使用 https,默认为 RCInnerCDNPullIsHttps.HTTPS
625
+ */
626
+ pullInnerCDNUseHttps?: RCInnerCDNPullIsHttps;
627
+ }
628
+ export interface ICameraVideoProfile extends IVideoProfile {
629
+ cameraId?: string;
630
+ faceMode?: 'user' | 'environment';
631
+ }
632
+ export interface IMicphoneAudioProfile {
633
+ micphoneId?: string;
634
+ sampleRate?: number;
635
+ }
636
+ export interface ICreateLocalTrackOptions {
637
+ /**
638
+ * 剔除音轨
639
+ */
640
+ withoutAudio?: boolean;
641
+ /**
642
+ * 剔除视轨
643
+ */
644
+ withoutVideo?: boolean;
645
+ }
646
+ /**
647
+ * 音量上报事件接口
648
+ */
649
+ export interface IAudioLevelChangeHandler {
650
+ (audioLevelReportList: {
651
+ track: RCLocalAudioTrack | RCRemoteAudioTrack;
652
+ audioLevel: number;
653
+ }[]): void;
654
+ }
655
+ /**
656
+ * 房间资源数据
657
+ */
658
+ export declare type RoomData = {
659
+ [userId: string]: IPublishedResource[];
660
+ };
661
+ /**
662
+ * RCRTCMessageType.KICK content
663
+ */
664
+ export interface IRCRTCKickContent {
665
+ users: {
666
+ userId: string;
667
+ type: RCKickReason;
668
+ kickExtra?: any;
669
+ }[];
670
+ }
671
+ /**
672
+ * IMutilPeerC 中的 track 类型
673
+ */
674
+ export declare type TrackParam = RCLocalTrack | IPublishAttrs | RCRemoteTrack | ISubscribeAttr;
675
+ /**
676
+ * RCRTCPeerCManager 创建的一条 pcItem 上的数据类型
677
+ */
678
+ export interface IMutilPeerC {
679
+ /**
680
+ * pcName,/exchange 请求中 request header 中的 Peer-Connection-Id 值
681
+ */
682
+ pcName: string;
683
+ /**
684
+ * RCRTCPeerConnection 对象
685
+ */
686
+ pc: RCRTCPeerConnection;
687
+ /**
688
+ * 存放 peerConnection 上本次要发布、取消发布、订阅、取消订阅的 track
689
+ */
690
+ tracks: TrackParam[];
691
+ }
692
+ export interface IPKInfo {
693
+ [roomId: string]: {
694
+ inviteSessionId: string;
695
+ inviterRoomId: string;
696
+ inviterUserId: string;
697
+ inviterUserAutoMix?: boolean;
698
+ inviteeRoomId: string;
699
+ inviteeUserAutoMix?: boolean;
700
+ };
701
+ }
702
+ /**
703
+ * 业务层发起连麦、响应连麦可选参数定义
704
+ */
705
+ export interface IReqResPKOptions {
706
+ autoMix?: boolean;
707
+ extra?: string;
708
+ }
709
+ export interface IPKInviterBaseInfo {
710
+ /**
711
+ * 邀请者房间 ID
712
+ */
713
+ inviterRoomId: string;
714
+ /**
715
+ * 邀请者用户 ID
716
+ */
717
+ inviterUserId: string;
718
+ }
719
+ export interface IPKInviteeBaseInfo {
720
+ /**
721
+ * 被邀请者房间 ID
722
+ */
723
+ inviteeRoomId: string;
724
+ /**
725
+ * 被邀请者用户 ID
726
+ */
727
+ inviteeUserId: string;
728
+ }
729
+ /**
730
+ * 业务层监听收到连麦邀请、取消连麦的字段
731
+ */
732
+ export interface IPKInviteInfo extends IPKInviterBaseInfo {
733
+ /**
734
+ * 邀请额外信息
735
+ */
736
+ extra?: string;
737
+ }
738
+ export interface IPKInviteTimeoutInfo {
739
+ /**
740
+ * 被邀请者房间 ID
741
+ */
742
+ inviteeRoomId: string;
743
+ /**
744
+ * 被邀请者用户 ID
745
+ */
746
+ inviteUserId: string;
747
+ }
748
+ /**
749
+ * 业务层监听收到连麦应答的字段
750
+ */
751
+ export interface IPKInviteAnswerInfo extends IPKInviterBaseInfo, IPKInviteeBaseInfo {
752
+ /**
753
+ * 是否同意邀请
754
+ */
755
+ agree: boolean;
756
+ /**
757
+ * 响应额外信息
758
+ */
759
+ extra?: string;
760
+ }
761
+ /**
762
+ * 业务层监听收到连麦结束的字段
763
+ */
764
+ export interface IPKEndInfo {
765
+ /**
766
+ * 发起结束的房间 ID
767
+ */
768
+ endRoomId: string;
769
+ /**
770
+ * 发起结束的用户 ID
771
+ */
772
+ endUserId: string;
773
+ }
774
+ /**
775
+ * 给 signal 发邀请连麦时,inviteInfo 字段的内容定义
776
+ */
777
+ export interface IReqInviteInfo extends IPKInviterBaseInfo, IPKInviteeBaseInfo {
778
+ /**
779
+ * 邀请超时时间
780
+ */
781
+ inviteeTimeoutTime: number;
782
+ /**
783
+ * 邀请 sessionId
784
+ */
785
+ inviteSessionId: string;
786
+ /**
787
+ * 邀请者房间是否合流
788
+ */
789
+ inviterUserAutoMix: boolean;
790
+ /**
791
+ * 额外信息
792
+ */
793
+ extra: string;
794
+ }
795
+ /**
796
+ * 给 signal 发取消连麦时,inviteInfo 字段的内容定义
797
+ */
798
+ export interface ICancelReqInviteInfo extends IPKInviterBaseInfo, IPKInviteeBaseInfo {
799
+ /**
800
+ * 额外信息
801
+ */
802
+ extra: string;
803
+ }
804
+ /**
805
+ * 给 signal 发响应连麦时,content 字段的内容定义
806
+ */
807
+ export interface IResInviteContent extends IPKInviterBaseInfo, IPKInviteeBaseInfo {
808
+ /**
809
+ * 邀请 sessionId
810
+ */
811
+ inviteSessionId: string;
812
+ /**
813
+ * 邀请者房间是否合流,收到 signal 转发的响应时存在
814
+ */
815
+ inviterUserAutoMix?: boolean;
816
+ /**
817
+ * 被邀请者房间是否合流
818
+ */
819
+ inviteeUserAutoMix: boolean;
820
+ /**
821
+ * 同意邀请时必传 `${inviterRoomId}|${inviteeRoomId}`
822
+ */
823
+ MultiRoomKey?: string;
824
+ /**
825
+ * 同意邀请时必传
826
+ */
827
+ MultiRoomValue?: string;
828
+ /**
829
+ * 额外信息
830
+ */
831
+ extra?: string;
832
+ }
833
+ /**
834
+ * 给 signal 发结束连麦时,content 字段的内容定义
835
+ */
836
+ export interface IEndPKContent {
837
+ /**
838
+ * 被邀请者房间 ID
839
+ */
840
+ inviteeRoomId: string;
841
+ /**
842
+ * 邀请者房间 ID
843
+ */
844
+ inviterRoomId: string;
845
+ /**
846
+ * 当前登录用户 ID
847
+ */
848
+ userId: string;
849
+ }
850
+ /**
851
+ * 收到结束 PK 时的消息字段
852
+ */
853
+ export interface IEndPKMsgContent {
854
+ inviteInfo: IEndPKContent;
855
+ inviteSessionId: string;
856
+ }
857
+ /**
858
+ * 收到连麦邀请、取消连麦的消息体字段
859
+ */
860
+ export interface IPKMsgContent {
861
+ /**
862
+ * 邀请 sessionId
863
+ */
864
+ inviteSessionId: string;
865
+ /**
866
+ * 邀请消息为:IReqInviteInfo 序列化后字符串
867
+ * 取消邀请消息为:ICancelReqInviteInfo 序列化后字符串
868
+ * 超时消息为:IReqInviteInfo 序列化后字符串
869
+ * 结束消息为:IEndPKContent 序列化后字符串
870
+ */
871
+ inviteInfo: IReqInviteInfo;
872
+ }
873
+ /**
874
+ * 收到 PK 应答消息体字段
875
+ */
876
+ export interface IPKAnswerMsgContent {
877
+ /**
878
+ * 响应结果 0: 拒绝; 1: 接收
879
+ */
880
+ answerCode: number;
881
+ /**
882
+ * 邀请 sessionId
883
+ */
884
+ inviteSessionId: string;
885
+ inviteeUserAutoMix: boolean;
886
+ /**
887
+ * 消息内容 IResInviteContent 序列化后字符串
888
+ */
889
+ inviteContent: IResInviteContent;
890
+ }
891
+ /**
892
+ * 观众加房间返回给客户的 CDN 信息
893
+ */
894
+ export interface IJoinResCDNInfo {
895
+ resolution?: RCResolution;
896
+ fps?: RCFrameRate;
897
+ CDNEnable?: boolean;
898
+ }
899
+ export interface IPubSuccessRes {
900
+ code: RCRTCCode;
901
+ liveUrl?: string;
902
+ failedTracks?: {
903
+ code: RCRTCCode;
904
+ tracks: RCLocalTrack[];
905
+ }[];
906
+ }
907
+ export interface IPubTaskRes {
908
+ code: RCRTCCode;
909
+ data?: IExchangeResponse | undefined;
910
+ tracks: RCLocalTrack[];
911
+ }
912
+ //# sourceMappingURL=interfaces.d.ts.map