@rongcloud/plugin-rtc 5.4.7 → 5.5.2-alpha.2

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 (103) hide show
  1. package/dist/index.d.ts +405 -34
  2. package/dist/index.esm.js +21612 -15
  3. package/dist/index.js +21641 -15
  4. package/dist/index.umd.js +21645 -15
  5. package/package.json +2 -5
  6. package/dist/async-task-queue.d.ts +0 -9
  7. package/dist/core/Invoker.d.ts +0 -54
  8. package/dist/core/PolarisReporter.d.ts +0 -35
  9. package/dist/core/RCAudienceClient.d.ts +0 -89
  10. package/dist/core/RCMediaStreamCapture.d.ts +0 -124
  11. package/dist/core/RCRTCClient.d.ts +0 -126
  12. package/dist/core/Store.d.ts +0 -84
  13. package/dist/core/command/AsyncCommand.d.ts +0 -55
  14. package/dist/core/command/AsyncSubscribeCommand.d.ts +0 -28
  15. package/dist/core/command/AsyncUnsubscribeCommand.d.ts +0 -28
  16. package/dist/core/command/AsyncUpdateSubscribeListCommand.d.ts +0 -25
  17. package/dist/core/command/BaseCommand.d.ts +0 -31
  18. package/dist/core/command/EnabelInnerCDNCommand.d.ts +0 -16
  19. package/dist/core/command/ExchangeCommand.d.ts +0 -18
  20. package/dist/core/command/ExchangeWithPushOtherRoomCommand.d.ts +0 -22
  21. package/dist/core/command/JoinRoomCommand.d.ts +0 -28
  22. package/dist/core/command/LeaveOtherRoomCommand.d.ts +0 -32
  23. package/dist/core/command/LocalTrackMuteCommand.d.ts +0 -18
  24. package/dist/core/command/MCUConfigFlushCommand.d.ts +0 -18
  25. package/dist/core/command/OnRemoteUserUnpubCommand.d.ts +0 -13
  26. package/dist/core/command/OnSignalReconnectedCommand.d.ts +0 -38
  27. package/dist/core/command/ParseRemoteResCommand.d.ts +0 -38
  28. package/dist/core/command/ParseUserStateCommand.d.ts +0 -57
  29. package/dist/core/command/PublishCommand.d.ts +0 -36
  30. package/dist/core/command/RTCIdentityChangeCommand.d.ts +0 -17
  31. package/dist/core/command/RetryExchangeCommand.d.ts +0 -18
  32. package/dist/core/command/SubscribeCommand.d.ts +0 -21
  33. package/dist/core/command/UnpublishCommand.d.ts +0 -22
  34. package/dist/core/command/UnpublishPrevCommand.d.ts +0 -11
  35. package/dist/core/command/UnsubscribeCommand.d.ts +0 -20
  36. package/dist/core/command/UpdateSubscribeListCommand.d.ts +0 -28
  37. package/dist/core/command/helper.d.ts +0 -20
  38. package/dist/core/constants.d.ts +0 -2
  39. package/dist/core/enums/BackgroundPictureFillMode.d.ts +0 -14
  40. package/dist/core/enums/MixLayoutMode.d.ts +0 -18
  41. package/dist/core/enums/MixVideoRenderMode.d.ts +0 -14
  42. package/dist/core/enums/RCBitrate.d.ts +0 -48
  43. package/dist/core/enums/RCCommandKind.d.ts +0 -12
  44. package/dist/core/enums/RCFrameRate.d.ts +0 -7
  45. package/dist/core/enums/RCInnerCDNBroadcast.d.ts +0 -5
  46. package/dist/core/enums/RCInnerCDNModel.d.ts +0 -5
  47. package/dist/core/enums/RCInnerCDNPullIsHttps.d.ts +0 -5
  48. package/dist/core/enums/RCInnerCDNPullKind.d.ts +0 -6
  49. package/dist/core/enums/RCInnerCDNPushMode.d.ts +0 -5
  50. package/dist/core/enums/RCKickType.d.ts +0 -11
  51. package/dist/core/enums/RCLinkedListPoint.d.ts +0 -6
  52. package/dist/core/enums/RCLivingType.d.ts +0 -14
  53. package/dist/core/enums/RCLoggerTag.d.ts +0 -641
  54. package/dist/core/enums/RCMediaType.d.ts +0 -18
  55. package/dist/core/enums/RCMixInputFilterMode.d.ts +0 -35
  56. package/dist/core/enums/RCRTCCode.d.ts +0 -90
  57. package/dist/core/enums/RCRTCLiveRole.d.ts +0 -14
  58. package/dist/core/enums/RCRTCPingResult.d.ts +0 -5
  59. package/dist/core/enums/RCRTCResolution.d.ts +0 -132
  60. package/dist/core/enums/RCResolution.d.ts +0 -21
  61. package/dist/core/enums/inner/PolarisRole.d.ts +0 -14
  62. package/dist/core/enums/inner/R2Action.d.ts +0 -14
  63. package/dist/core/enums/inner/R2Status.d.ts +0 -11
  64. package/dist/core/enums/inner/RCRTCMessageType.d.ts +0 -70
  65. package/dist/core/enums/inner/RCStreamType.d.ts +0 -14
  66. package/dist/core/enums/inner/TrackState.d.ts +0 -14
  67. package/dist/core/interfaces.d.ts +0 -931
  68. package/dist/core/room/Pinger.d.ts +0 -35
  69. package/dist/core/room/RCAbstractRoom.d.ts +0 -350
  70. package/dist/core/room/RCAudienceLivingRoom.d.ts +0 -329
  71. package/dist/core/room/RCAudioLevelReport.d.ts +0 -18
  72. package/dist/core/room/RCLivingPKHandler.d.ts +0 -164
  73. package/dist/core/room/RCLivingRoom.d.ts +0 -108
  74. package/dist/core/room/RCLocalMediaStream.d.ts +0 -8
  75. package/dist/core/room/RCMCUConfigBuilder.d.ts +0 -211
  76. package/dist/core/room/RCRTCRoom.d.ts +0 -15
  77. package/dist/core/service/RCMediaService.d.ts +0 -96
  78. package/dist/core/service/helper.d.ts +0 -8
  79. package/dist/core/service/index.d.ts +0 -6
  80. package/dist/core/service/interface.d.ts +0 -323
  81. package/dist/core/service/mcu-interface.d.ts +0 -293
  82. package/dist/core/tracks/RC3AnoiseTrack.d.ts +0 -27
  83. package/dist/core/tracks/RCLocalTrack.d.ts +0 -143
  84. package/dist/core/tracks/RCRemoteTrack.d.ts +0 -29
  85. package/dist/core/tracks/RCTrack.d.ts +0 -95
  86. package/dist/core/webrtc/RCRTCPeerCManager.d.ts +0 -161
  87. package/dist/core/webrtc/RCRTCPeerConnection.d.ts +0 -120
  88. package/dist/core/webrtc/helper.d.ts +0 -26
  89. package/dist/core/webrtc/sdp/ASdpBuilder.d.ts +0 -120
  90. package/dist/core/webrtc/sdp/ASdpStrategy.d.ts +0 -53
  91. package/dist/core/webrtc/sdp/PlanBSdpBuilder.d.ts +0 -20
  92. package/dist/core/webrtc/sdp/PlanBStrategy.d.ts +0 -26
  93. package/dist/core/webrtc/sdp/SDPUtils.d.ts +0 -60
  94. package/dist/core/webrtc/sdp/UnifiedPlanSdpBuilder.d.ts +0 -11
  95. package/dist/core/webrtc/sdp/UnifiedPlanStrategy.d.ts +0 -25
  96. package/dist/core/webrtc/stat-parser/AbstractStatParser.d.ts +0 -117
  97. package/dist/core/webrtc/stat-parser/ChromeStatParser.d.ts +0 -14
  98. package/dist/core/webrtc/stat-parser/FirefoxStatParser.d.ts +0 -14
  99. package/dist/core/webrtc/stat-parser/IStatParser.d.ts +0 -24
  100. package/dist/core/webrtc/stat-parser/SafariStatParser.d.ts +0 -14
  101. package/dist/device.d.ts +0 -6
  102. package/dist/helper.d.ts +0 -193
  103. package/dist/logger.d.ts +0 -4
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /*
2
- * RCRTC - v5.4.7
3
- * CommitId - 25ac42535d0f142de4179ee5b74a714f361e1712
4
- * Tue Sep 20 2022 21:34:29 GMT+0800 (China Standard Time)
2
+ * RCRTC - v5.5.2-alpha.2
3
+ * CommitId - 6de076a491750ccb3861c8008ba1147a4812d1a8
4
+ * Thu Sep 29 2022 10:29:44 GMT+0800 (China Standard Time)
5
5
  * ©2020 RongCloud, Inc. All rights reserved.
6
6
  */
7
- import { EventEmitter, RTCMode, IRuntime, RTCPluginContext, IJoinRTCRoomData, IReceivedMessage, ErrorCode, RTCJoinType, IRTCUserData, KVString, IServerRTCRoomEntry, LogLevel, IRTCJoinedInfo, IPluginGenerator } from '@rongcloud/engine';
8
- export { RTCJoinType } from '@rongcloud/engine';
7
+ import * as _rongcloud_engine from '@rongcloud/engine';
8
+ import { EventEmitter, RTCPluginContext, AbsCodec, IPromiseResult, ErrorCode, KVString, IAsyncRes, ConnectionStatus, ConversationType, ISendMsgOptions, IReceivedMessage, IRuntime, LogLevel, IPluginGenerator } from '@rongcloud/engine';
9
9
 
10
10
  /**
11
11
  * 错误码,与移动端对齐
@@ -15,6 +15,7 @@ export { RTCJoinType } from '@rongcloud/engine';
15
15
  * 3. `53000 - 53199` 为 Web RTC 专用段
16
16
  * 4. `53200 - 53499` 为 Web Call 专用段
17
17
  * 5. `53500 - 53999` 为 Web 保留段
18
+ * 6. 1004 jwt token 过期
18
19
  */
19
20
  declare enum RCRTCCode {
20
21
  /** 成功 */
@@ -91,6 +92,8 @@ declare enum RCRTCCode {
91
92
  SOME_TRACKS_PUBLISH_FAILED = 53031,
92
93
  /** electron 中 mac 系统暂不支持屏幕共享采集声音 */
93
94
  MAC_IN_ELECTRON_NOT_SUPPORT_SCREEN_SHARE_WITH_AUDIO = 53032,
95
+ /** JWT token 解析超时,需要刷新 navi 重新获取 */
96
+ JWT_TIME_OUT = 1004,
94
97
  /** 获取媒体资源时,无系统权限 */
95
98
  SYSTEM_PERMISSION_DENIED = 53033,
96
99
  /** 发布时无有效资源,如 track 已被销毁 */
@@ -125,22 +128,22 @@ declare enum RCFrameRate {
125
128
  declare enum RCResolution {
126
129
  W176_H132 = "W176_H132",
127
130
  W176_H144 = "W176_H144",
131
+ W180_H180 = "W180_H180",
132
+ W240_H180 = "W240_H180",
133
+ W240_H240 = "W240_H240",
128
134
  W256_H144 = "W256_H144",
129
135
  W320_H180 = "W320_H180",
130
- W240_H240 = "W240_H240",
131
136
  W320_H240 = "W320_H240",
137
+ W360_H360 = "W360_H360",
132
138
  W480_H360 = "W480_H360",
133
- W640_H360 = "W640_H360",
134
139
  W480_H480 = "W480_H480",
140
+ W640_H360 = "W640_H360",
135
141
  W640_H480 = "W640_H480",
136
142
  W720_H480 = "W720_H480",
137
- W1280_H720 = "W1280_H720",
138
- W1920_H1080 = "W1920_H1080",
139
- W180_H180 = "W180_H180",
140
- W240_H180 = "W240_H180",
141
- W360_H360 = "W360_H360",
142
143
  W848_H480 = "W848_H480",
143
- W960_H720 = "W960_H720"
144
+ W960_H720 = "W960_H720",
145
+ W1280_H720 = "W1280_H720",
146
+ W1920_H1080 = "W1920_H1080"
144
147
  }
145
148
 
146
149
  /**
@@ -624,6 +627,28 @@ declare enum RCInnerCDNBroadcast {
624
627
  NO_SPREAD = -1
625
628
  }
626
629
 
630
+ /**
631
+ * 音视频模式
632
+ */
633
+ declare enum RTCMode {
634
+ /**
635
+ * 普通音视频模式
636
+ */
637
+ RTC = 0,
638
+ /**
639
+ * 直播模式
640
+ */
641
+ LIVE = 2,
642
+ /**
643
+ * 跨应用多人房间
644
+ */
645
+ CROSS_MUTI = 7,
646
+ /**
647
+ * 跨应用直播
648
+ */
649
+ CROSS_LIVE = 8
650
+ }
651
+
627
652
  /**
628
653
  * 与 MediaServer 交互所需的 Request Header 信息
629
654
  */
@@ -1187,6 +1212,303 @@ interface ISetEnableCDN {
1187
1212
  };
1188
1213
  }
1189
1214
 
1215
+ /**
1216
+ * RTC 房间加入类型
1217
+ */
1218
+ declare enum RTCJoinType {
1219
+ /**
1220
+ * 踢前一个设备
1221
+ */
1222
+ KICK = 0,
1223
+ /**
1224
+ * 当前加入拒绝
1225
+ */
1226
+ REFUSE = 1,
1227
+ /**
1228
+ * 两个设备共存
1229
+ */
1230
+ COEXIST = 2
1231
+ }
1232
+
1233
+ declare enum RTCApiType {
1234
+ ROOM = 1,
1235
+ PERSON = 2
1236
+ }
1237
+
1238
+ declare enum RTCIdentityChangeType {
1239
+ AnchorToViewer = 1,
1240
+ ViewerToAnchor = 2
1241
+ }
1242
+
1243
+ declare const keymaps: {
1244
+ readonly RtcInput: readonly ["roomType", "broadcastType", "extraInnerData", "needSysChatroom", "identityChangeType", "joinType", "innerDatas", "outerDatas"];
1245
+ readonly RtcUserListOutput: readonly ["users", "token", "sessionId", "roomInfo"];
1246
+ readonly SetUserStatusInput: readonly ["status"];
1247
+ readonly RtcSetDataInput: readonly ["interior", "target", "key", "value", "objectName", "content"];
1248
+ readonly RtcUserSetDataInput: readonly ["valueInfo", "objectName", "content"];
1249
+ readonly RtcDataInput: readonly ["interior", "target", "key", "objectName", "content"];
1250
+ readonly RtcSetOutDataInput: readonly ["target", "valueInfo", "objectName", "content"];
1251
+ readonly MCFollowInput: readonly ["state"];
1252
+ readonly RtcTokenOutput: readonly ["rtcToken"];
1253
+ readonly RtcQryOutput: readonly ["outInfo"];
1254
+ readonly RtcQryUserOutDataInput: readonly ["userId"];
1255
+ readonly RtcUserOutDataOutput: readonly ["user"];
1256
+ readonly RtcQueryListInput: readonly ["order"];
1257
+ readonly RtcRoomInfoOutput: readonly ["roomId", "roomData", "userCount", "list"];
1258
+ readonly RtcValueInfo: readonly ["key", "value"];
1259
+ readonly RtcKeyDeleteInput: readonly ["key"];
1260
+ readonly RtcNotifyMsg: readonly ["type", "time", "roomId"];
1261
+ readonly RtcPullKV: readonly ["timestamp", "roomId"];
1262
+ readonly RtcKVOutput: readonly ["entries", "bFullUpdate", "syncTime"];
1263
+ readonly RtcQueryUserJoinedInput: readonly ["userId"];
1264
+ readonly RtcQueryUserJoinedOutput: readonly ["info"];
1265
+ readonly RtcInviteInput: readonly ["invitedUserId", "timeoutTime", "invitedRoomId", "inviteInfo", "inviteSessionId"];
1266
+ readonly RtcCancelInviteInput: readonly ["invitedUserId", "invitedRoomId", "inviteInfo", "inviteSessionId"];
1267
+ readonly RtcInviteAnswerInput: readonly ["inviteUserId", "answerCode", "inviteRoomId", "inviteSessionId", "content", "key", "value"];
1268
+ readonly RtcEndInviteInput: readonly ["inviteRoomId", "inviteSessionId", "inviteContent", "inviteRoomKeys"];
1269
+ readonly RtcReportSDKInput: readonly ["sdkInfo"];
1270
+ };
1271
+ declare type RTCKeyMaps = typeof keymaps;
1272
+
1273
+ /**
1274
+ * 设置 RTC 人员 inner、outer 数据
1275
+ */
1276
+ interface IRTCUserData {
1277
+ [key: string]: string;
1278
+ }
1279
+ interface IRtcTokenData {
1280
+ rtcToken: string;
1281
+ }
1282
+ /**
1283
+ * 加入 RTC 房间的用户信息
1284
+ */
1285
+ interface IRTCJoinedInfo {
1286
+ /**
1287
+ * 设备 ID
1288
+ */
1289
+ deviceId: string;
1290
+ /**
1291
+ * RTC 房间 ID
1292
+ */
1293
+ roomId: string;
1294
+ /**
1295
+ * 加入的时间戳
1296
+ */
1297
+ joinTime: number;
1298
+ }
1299
+ interface IRTCRoomInfo {
1300
+ roomId: string;
1301
+ roomData: unknown[];
1302
+ userCount: number;
1303
+ list: unknown[];
1304
+ }
1305
+ interface IServerRTCRoomEntry {
1306
+ key: string;
1307
+ value: string;
1308
+ status: number;
1309
+ timestamp: number;
1310
+ uid: string;
1311
+ }
1312
+ interface IRTCUsers {
1313
+ users: {
1314
+ [userId: string]: {
1315
+ /**
1316
+ * 发布的资源数据,是一个 JSON 字符串,解析后为发布的资源列表
1317
+ */
1318
+ uris?: string;
1319
+ /**
1320
+ * 加房间的身份标识,保存主房间 roomId
1321
+ */
1322
+ extra?: string;
1323
+ };
1324
+ };
1325
+ }
1326
+ interface IJoinRTCRoomData extends IRTCUsers {
1327
+ token: string;
1328
+ sessionId: string;
1329
+ roomInfo: {
1330
+ key: string;
1331
+ value: string;
1332
+ }[];
1333
+ kvEntries: IServerRTCRoomEntry[];
1334
+ offlineKickTime: number;
1335
+ }
1336
+ interface IReqRoomPKOptions {
1337
+ /**
1338
+ * 当前房间 ID
1339
+ */
1340
+ roomId: string;
1341
+ /**
1342
+ * 被邀请房间 ID
1343
+ */
1344
+ invitedRoomId: string;
1345
+ /**
1346
+ * 被邀请用户 ID
1347
+ */
1348
+ invitedUserId: string;
1349
+ /**
1350
+ * 本次邀请超时时间
1351
+ */
1352
+ inviteTimeout: number;
1353
+ /**
1354
+ * 本次邀请额外信息
1355
+ */
1356
+ inviteInfo: string;
1357
+ /**
1358
+ * 本次邀请唯一 ID
1359
+ */
1360
+ inviteSessionId: string;
1361
+ }
1362
+ interface ICancelRoomPKOptions {
1363
+ /**
1364
+ * 当前房间 ID
1365
+ */
1366
+ roomId: string;
1367
+ /**
1368
+ * 被邀请房间 ID
1369
+ */
1370
+ invitedRoomId: string;
1371
+ /**
1372
+ * 被邀请用户 ID
1373
+ */
1374
+ invitedUserId: string;
1375
+ /**
1376
+ * 本次邀请额外信息
1377
+ */
1378
+ inviteInfo: string;
1379
+ /**
1380
+ * 本次邀请唯一 ID
1381
+ */
1382
+ inviteSessionId: string;
1383
+ }
1384
+ interface IResRoomPKOptions {
1385
+ /**
1386
+ * 当前房间 ID
1387
+ */
1388
+ roomId: string;
1389
+ /**
1390
+ * 邀请者 ID
1391
+ */
1392
+ inviteUserId: string;
1393
+ /**
1394
+ * 邀请者房间 ID
1395
+ */
1396
+ inviteRoomId: string;
1397
+ /**
1398
+ * 邀请的 session ID
1399
+ */
1400
+ inviteSessionId: string;
1401
+ /**
1402
+ * 需要转发的信息
1403
+ */
1404
+ content: string;
1405
+ /**
1406
+ * 同意邀请时要设置的 key, 放在room级别的k和v,新加入房间的能拉取到
1407
+ */
1408
+ key: string;
1409
+ /**
1410
+ * 同意邀请时要设置的 value, 放在room级别的k和v,新加入房间的能拉取到
1411
+ */
1412
+ value: string;
1413
+ /**
1414
+ * 是否同意邀请
1415
+ */
1416
+ agree: boolean;
1417
+ }
1418
+ interface IEndRoomPKOptions {
1419
+ /**
1420
+ * 当前房间 ID
1421
+ */
1422
+ roomId: string;
1423
+ /**
1424
+ * 需要结束的连麦房间 ID
1425
+ */
1426
+ endRoomId: string;
1427
+ /**
1428
+ * 需要结束连麦的 sessionID
1429
+ */
1430
+ sessionId: string;
1431
+ /**
1432
+ * 结束连麦的信息
1433
+ */
1434
+ content: string;
1435
+ /**
1436
+ * 需要删除连麦的信息的 keys
1437
+ */
1438
+ keys: string[];
1439
+ }
1440
+
1441
+ declare class RTCContext {
1442
+ private context;
1443
+ private codec;
1444
+ constructor(context: RTCPluginContext, codec: AbsCodec<RTCKeyMaps>);
1445
+ joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): IPromiseResult<IJoinRTCRoomData>;
1446
+ quitRTCRoom(roomId: string): Promise<ErrorCode>;
1447
+ getRTCRoomInfo(roomId: string): IPromiseResult<IRTCRoomInfo>;
1448
+ getRTCUserInfoList(roomId: string): IPromiseResult<IRTCUsers>;
1449
+ getRTCUserInfo(roomId: string): IPromiseResult<unknown>;
1450
+ removeRTCUserInfo(roomId: string, keys: string[]): Promise<ErrorCode>;
1451
+ setRTCData(roomId: string, key: string, value: string, isInner: boolean, apiType: RTCApiType, message?: {
1452
+ name: string;
1453
+ content: string;
1454
+ }): Promise<ErrorCode>;
1455
+ /**
1456
+ * 全量订阅资源修改
1457
+ * @param roomId 房间 Id
1458
+ * @param message 向前兼容的消息内容
1459
+ * @param valueInfo 全量资源数据
1460
+ * @param objectName 全量 URI 消息名
1461
+ */
1462
+ setRTCTotalRes(roomId: string, message: {
1463
+ name: string;
1464
+ content: string;
1465
+ }, valueInfo: string, objectName: string, mcuValInfo?: string): Promise<ErrorCode>;
1466
+ setRTCCDNUris(roomId: string, objectName: string, CDNUris: string): Promise<ErrorCode>;
1467
+ getRTCData(roomId: string, keys: string[], isInner: boolean, apiType: RTCApiType): IPromiseResult<KVString>;
1468
+ removeRTCData(roomId: string, keys: string[], isInner: boolean, apiType: RTCApiType, message?: {
1469
+ name: string;
1470
+ content: string;
1471
+ }): Promise<ErrorCode>;
1472
+ setRTCOutData(roomId: string, rtcData: unknown, type: number, message: unknown): Promise<ErrorCode>;
1473
+ getRTCOutData(roomId: string, userIds: string[]): IPromiseResult<unknown>;
1474
+ getRTCToken(roomId: string, mode: number, broadcastType?: number): IPromiseResult<IRtcTokenData>;
1475
+ setRTCState(roomId: string, report: string): Promise<ErrorCode>;
1476
+ getRTCUserList(roomId: string): IPromiseResult<IRTCUsers>;
1477
+ joinLivingRoomAsAudience(roomId: string, mode: RTCMode, broadcastType?: number): Promise<IAsyncRes<{
1478
+ token: string;
1479
+ kvEntries: IServerRTCRoomEntry[];
1480
+ }>>;
1481
+ quitLivingRoomAsAudience(roomId: string): Promise<ErrorCode>;
1482
+ rtcIdentityChange(roomId: string, changeType: RTCIdentityChangeType, broadcastType?: number): Promise<IAsyncRes<IJoinRTCRoomData>>;
1483
+ requestRoomPK(options: IReqRoomPKOptions): Promise<ErrorCode>;
1484
+ cancelRoomPK(options: ICancelRoomPKOptions): Promise<ErrorCode>;
1485
+ responseRoomPK(options: IResRoomPKOptions): Promise<ErrorCode>;
1486
+ endRoomPK(options: IEndRoomPKOptions): Promise<ErrorCode>;
1487
+ getRTCJoinedUserInfo(userId: string): Promise<IAsyncRes<IRTCJoinedInfo[]>>;
1488
+ pullRTCRoomEntry(roomId: string): Promise<IAsyncRes<IChrmKVPullData>>;
1489
+ decodeRtcNotify(buffer: Uint8Array): {
1490
+ time: number;
1491
+ type: any;
1492
+ roomId: any;
1493
+ };
1494
+ getCurrentId(): string;
1495
+ getNaviInfo(): _rongcloud_engine.INaviInfo | null;
1496
+ getConnectionStatus(): ConnectionStatus;
1497
+ getAppkey(): string;
1498
+ rtcPing(roomId: string, roomMode: number, broadcastType?: number): Promise<ErrorCode>;
1499
+ sendMessage(conversationType: ConversationType, targetId: string, options: ISendMsgOptions): IPromiseResult<IReceivedMessage>;
1500
+ registerRTCSignalListener(listener?: ((buffer: Uint8Array) => void) | undefined): void;
1501
+ registerConnectionStateChangeListener(listener: (status: ConnectionStatus) => void): void;
1502
+ registerDisconnectListener(listener: () => void): void;
1503
+ registerDestroyListener(listener: () => void): void;
1504
+ registerMessageListener(listener: (message: IReceivedMessage) => boolean): void;
1505
+ getCoreVersion(): string;
1506
+ getPluginContext(): RTCPluginContext;
1507
+ reportSDKInfo(versionInfo: {
1508
+ [name: string]: string;
1509
+ }): void;
1510
+ }
1511
+
1190
1512
  declare class RCMediaService {
1191
1513
  private readonly _runtime;
1192
1514
  private readonly _context;
@@ -1218,7 +1540,19 @@ declare class RCMediaService {
1218
1540
  * MCU 服务地址
1219
1541
  */
1220
1542
  private _configUrl;
1221
- constructor(_runtime: IRuntime, _context: RTCPluginContext,
1543
+ /**
1544
+ * 嗅探中获取的媒体服务地址
1545
+ */
1546
+ private static isDetector;
1547
+ /**
1548
+ * 嗅探中获取的媒体服务地址
1549
+ */
1550
+ private static msInDetector;
1551
+ private static detectorTime;
1552
+ private static detectValidMinute;
1553
+ private static naviRefetchCount;
1554
+ private _msList;
1555
+ constructor(_runtime: IRuntime, _context: RTCContext,
1222
1556
  /**
1223
1557
  * 自定义 MediaServer 地址,当有值时,不再使用导航内的地址
1224
1558
  */
@@ -1227,7 +1561,19 @@ declare class RCMediaService {
1227
1561
  * 请求超时时长
1228
1562
  */
1229
1563
  _timeout?: number);
1564
+ detectorMediaSever(): void;
1565
+ /**
1566
+ * 地址探测
1567
+ * RTC 初始化时检测是否可以拿到 navi,可以拿到开始嗅探
1568
+ * 拿不到等 IM 链接成功后,再回调中调用开始嗅探
1569
+ */
1570
+ private _getDetectorUrls;
1230
1571
  getNaviMS(): string[];
1572
+ /**
1573
+ * _mslist 列表排序:[_clusterId, ping1, 主域名,ping2, ..., pingN, 备用域名list ]
1574
+ * ping1 :ping 结果返回最快值
1575
+ */
1576
+ private setMediaServiceList;
1231
1577
  /**
1232
1578
  * 发送请求,请求发送若失败,会继续尝试使用后续可用地址直到无地址可用,此时认为请求失败
1233
1579
  * @param path
@@ -1464,7 +1810,7 @@ declare class RCRTCPeerCManager {
1464
1810
  }
1465
1811
 
1466
1812
  declare abstract class ReadableStore {
1467
- readonly context: RTCPluginContext;
1813
+ readonly context: RTCContext;
1468
1814
  readonly service: RCMediaService;
1469
1815
  readonly peerMgr: RCRTCPeerCManager;
1470
1816
  readonly roomId: string;
@@ -1502,7 +1848,7 @@ declare abstract class ReadableStore {
1502
1848
  protected _CDNUris: ICDNUris | null;
1503
1849
  protected _CDNEnable: boolean;
1504
1850
  protected _destroyed: boolean;
1505
- constructor(context: RTCPluginContext, service: RCMediaService, peerMgr: RCRTCPeerCManager, roomId: string, crtUserId: string, roomMode: RTCMode, polarisReport: PolarisReporter, isUpgrade?: boolean | undefined, isMainRoom?: boolean | undefined);
1851
+ constructor(context: RTCContext, service: RCMediaService, peerMgr: RCRTCPeerCManager, roomId: string, crtUserId: string, roomMode: RTCMode, polarisReport: PolarisReporter, isUpgrade?: boolean | undefined, isMainRoom?: boolean | undefined);
1506
1852
  get useMutilPeerC(): boolean;
1507
1853
  getResourcesByUserId(userId: string): IPublishedResource[] | undefined;
1508
1854
  getRemoteTrack(trackId: string): RCRemoteTrack | undefined;
@@ -1602,7 +1948,7 @@ declare class BaseInvoker<STORE> {
1602
1948
  * 房间任务队列管理
1603
1949
  */
1604
1950
  declare class Invoker extends BaseInvoker<Store> {
1605
- constructor(context: RTCPluginContext, service: RCMediaService, peerMrg: RCRTCPeerCManager, roomId: string, crtUserId: string, mode: RTCMode, reporter: PolarisReporter, isUpgrade?: boolean, isMainRoom?: boolean);
1951
+ constructor(context: RTCContext, service: RCMediaService, peerMrg: RCRTCPeerCManager, roomId: string, crtUserId: string, mode: RTCMode, reporter: PolarisReporter, isUpgrade?: boolean, isMainRoom?: boolean);
1606
1952
  /**
1607
1953
  * 获取 store 存储实例,返回值类型 `ReadableStore`,避免非 command 定义中修改内存
1608
1954
  */
@@ -1663,7 +2009,7 @@ declare class RCLivingPKHandler {
1663
2009
  * 跨房间连麦加入的 PK 房间
1664
2010
  */
1665
2011
  private _joinedPKRooms;
1666
- constructor(_invoker: Invoker, _PKInfo: IPKInfo, _hooks: ExchangeHooks, _context: RTCPluginContext, _runtime: IRuntime, _service: RCMediaService, _initOptions: IRCRTCInitOptions,
2012
+ constructor(_invoker: Invoker, _PKInfo: IPKInfo, _hooks: ExchangeHooks, _context: RTCContext, _runtime: IRuntime, _service: RCMediaService, _initOptions: IRCRTCInitOptions,
1667
2013
  /**
1668
2014
  * 主直播房间
1669
2015
  */
@@ -1790,7 +2136,7 @@ declare type ResourceMsgContent = {
1790
2136
  * 房间抽象基类
1791
2137
  */
1792
2138
  declare abstract class RCAbstractRoom extends EventEmitter {
1793
- protected readonly _context: RTCPluginContext;
2139
+ protected readonly _context: RTCContext;
1794
2140
  protected readonly _runtime: IRuntime;
1795
2141
  readonly _roomId: string;
1796
2142
  protected readonly _service: RCMediaService;
@@ -1818,7 +2164,7 @@ declare abstract class RCAbstractRoom extends EventEmitter {
1818
2164
  protected _peerCManager: RCRTCPeerCManager | null;
1819
2165
  protected readonly _invoker: Invoker;
1820
2166
  protected readonly _store: ReadableStore;
1821
- constructor(_context: RTCPluginContext, _runtime: IRuntime, _roomId: string, _roomMode: RTCMode, _service: RCMediaService, _initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean,
2167
+ constructor(_context: RTCContext, _runtime: IRuntime, _roomId: string, _roomMode: RTCMode, _service: RCMediaService, _initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean,
1822
2168
  /**
1823
2169
  * 是否使用多 peerConnection
1824
2170
  */
@@ -2248,10 +2594,13 @@ declare class RCAudienceLivingRoom {
2248
2594
  * peerConnection 管理类
2249
2595
  */
2250
2596
  private _peerCManager;
2251
- constructor(_context: RTCPluginContext, _runtime: IRuntime, _initOptions: IRCRTCInitOptions, _roomId: string, _joinResData: {
2597
+ private _isPulling;
2598
+ private _pullTime;
2599
+ constructor(_context: RTCContext, _runtime: IRuntime, _initOptions: IRCRTCInitOptions, _roomId: string, _joinResData: {
2252
2600
  token: string;
2253
2601
  kvEntries: IServerRTCRoomEntry[];
2254
2602
  }, livingType: RCLivingType, _useMutilPeerC?: boolean | undefined, _clientSessionId?: string);
2603
+ private _startPull;
2255
2604
  /**
2256
2605
  * 解析服务端返回的 KV 数据,赋值 room 内数据
2257
2606
  */
@@ -2464,7 +2813,7 @@ declare class PolarisReporter {
2464
2813
  private readonly _roomId;
2465
2814
  private readonly _crtRTCRoom;
2466
2815
  private readonly _userRole;
2467
- constructor(_context: RTCPluginContext, _runtime: IRuntime, _roomId: string, _crtRTCRoom: RCAbstractRoom | RCAudienceLivingRoom, _userRole?: PolarisRole);
2816
+ constructor(_context: RTCContext, _runtime: IRuntime, _roomId: string, _crtRTCRoom: RCAbstractRoom | RCAudienceLivingRoom, _userRole?: PolarisRole);
2468
2817
  private _send;
2469
2818
  private _getClientID;
2470
2819
  /**
@@ -2637,10 +2986,8 @@ interface IResource {
2637
2986
  uri: string;
2638
2987
  /**
2639
2988
  * 资源特征,simulcast 代表这道流支持大小流
2640
- * @description 此参数存疑,MediaServer 似乎并未下发此字段,Web 端暂不启用
2641
- * @deprecated
2642
2989
  */
2643
- features?: ['simulcast'] | [];
2990
+ simulcast: number;
2644
2991
  }
2645
2992
  /**
2646
2993
  * 向房间内发布的媒体数据
@@ -3205,6 +3552,11 @@ interface IPubSuccessRes {
3205
3552
  tracks: RCLocalTrack[];
3206
3553
  }[];
3207
3554
  }
3555
+ interface IChrmKVPullData {
3556
+ kvEntries: IServerRTCRoomEntry[];
3557
+ isFullUpdate?: boolean;
3558
+ syncTime?: number;
3559
+ }
3208
3560
 
3209
3561
  /**
3210
3562
  * 自定义合流布局时,背景图片填充方式
@@ -3433,7 +3785,7 @@ declare class RCLivingRoom extends RCAbstractRoom {
3433
3785
  * 跨房间连麦管理器
3434
3786
  */
3435
3787
  private _roomPKHandler;
3436
- constructor(context: RTCPluginContext, runtime: IRuntime, roomId: string, service: RCMediaService, initOptions: IRCRTCInitOptions, _livingType: RCLivingType, isUpgrade?: boolean, isMainRoom?: boolean,
3788
+ constructor(context: RTCContext, runtime: IRuntime, roomId: string, service: RCMediaService, initOptions: IRCRTCInitOptions, _livingType: RCLivingType, isUpgrade?: boolean, isMainRoom?: boolean,
3437
3789
  /**
3438
3790
  * 是否使用多 peerConnection
3439
3791
  */
@@ -3523,11 +3875,11 @@ declare class RCLivingRoom extends RCAbstractRoom {
3523
3875
  * 普通音视频房间
3524
3876
  */
3525
3877
  declare class RCRTCRoom extends RCAbstractRoom {
3526
- constructor(context: RTCPluginContext, runtime: IRuntime, roomId: string, service: RCMediaService, initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean,
3878
+ constructor(context: RTCContext, runtime: IRuntime, roomId: string, service: RCMediaService, initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean,
3527
3879
  /**
3528
3880
  * 是否使用多 peerConnection
3529
3881
  */
3530
- useMutilPeerC?: boolean, _clientSessionId?: string);
3882
+ useMutilPeerC?: boolean, _clientSessionId?: string, roomType?: RTCMode);
3531
3883
  }
3532
3884
 
3533
3885
  /**
@@ -3566,7 +3918,7 @@ declare class RCAudienceClient {
3566
3918
  */
3567
3919
  private _peerCManager;
3568
3920
  private readonly _clientSessionId;
3569
- constructor(_context: RTCPluginContext, runtime: IRuntime, _initOption: IRCRTCInitOptions,
3921
+ constructor(_context: RTCContext, runtime: IRuntime, _initOption: IRCRTCInitOptions,
3570
3922
  /**
3571
3923
  * 是否使用多 peerConnection
3572
3924
  */
@@ -3614,8 +3966,8 @@ declare class RCAudienceClient {
3614
3966
  }
3615
3967
 
3616
3968
  declare class RCMediaStreamCapture {
3617
- protected readonly _context: RTCPluginContext;
3618
- constructor(_context: RTCPluginContext);
3969
+ protected readonly _context: RTCContext;
3970
+ constructor(_context: RTCContext);
3619
3971
  private _isElectron;
3620
3972
  private _getMediaStream;
3621
3973
  /**
@@ -3738,12 +4090,16 @@ declare class RCMediaStreamCapture {
3738
4090
  * @public
3739
4091
  */
3740
4092
  declare class RCRTCClient extends RCMediaStreamCapture {
3741
- protected readonly _context: RTCPluginContext;
4093
+ protected readonly _context: RTCContext;
3742
4094
  private readonly _runtime;
3743
4095
  private readonly _options;
3744
4096
  private readonly _service;
3745
- constructor(_context: RTCPluginContext, _runtime: IRuntime, _options: IRCRTCInitOptions);
4097
+ constructor(_context: RTCContext, _runtime: IRuntime, _options: IRCRTCInitOptions);
3746
4098
  private _handleMessage;
4099
+ /**
4100
+ * voip 变更、jwt 变更需要触发重走嗅探逻辑
4101
+ */
4102
+ private naviDataChange;
3747
4103
  /**
3748
4104
  * 获取加入的连麦房间
3749
4105
  */
@@ -3768,6 +4124,20 @@ declare class RCRTCClient extends RCMediaStreamCapture {
3768
4124
  userIds?: string[];
3769
4125
  tracks?: RCRemoteTrack[];
3770
4126
  }>;
4127
+ /**
4128
+ * 加入跨AppKey音视频房间
4129
+ * @param roomId
4130
+ * @param joinType 多端处理方式
4131
+ * @param outerUserDatas 业务层设置人员属性
4132
+ * @param useMutilPeerC 是否使用多 peerConnection 发布资源
4133
+ * @param roomType 加入房间的类型 默认参数 RTCMode.CROSS_MUTI
4134
+ */
4135
+ joinCrossRTCRoom(roomId: string, joinType?: RTCJoinType, outerUserDatas?: IRTCUserData, useMutilPeerC?: boolean, roomType?: RTCMode): Promise<{
4136
+ room?: RCRTCRoom;
4137
+ code: RCRTCCode;
4138
+ userIds?: string[];
4139
+ tracks?: RCRemoteTrack[];
4140
+ }>;
3771
4141
  /**
3772
4142
  * 主播加入直播房间或观众上麦场景调用,观众上麦之前需先取消已订阅的直播间资源
3773
4143
  * @param roomId 房间 Id
@@ -3846,6 +4216,7 @@ declare class RCRTCClient extends RCMediaStreamCapture {
3846
4216
  code: RCRTCCode | ErrorCode;
3847
4217
  data?: IRTCJoinedInfo[];
3848
4218
  }>;
4219
+ reportSDKInfo(): void;
3849
4220
  }
3850
4221
 
3851
4222
  /**
@@ -3895,4 +4266,4 @@ declare const helper: {
3895
4266
  ifSupportScreenShare: typeof ifSupportScreenShare;
3896
4267
  };
3897
4268
 
3898
- export { BackgroundPictureFillMode, IAudienceRoomEventListener, ICameraVideoProfile, IMCUOutputConfig, IMCUOutputVideoConfig, IMicphoneAudioProfile, IPKEndInfo, IPKInviteAnswerInfo, IPKInviteInfo, IPubSuccessRes, IPublishAttrs, IPublishedResource, IRCCandidatePairStat, IRCRTCInitOptions, IRCRTCReportListener, IRCRTCStateReport, IRCTrackStat, IReqResPKOptions, IRoomEventListener, IRoomPKEventListener, ISubscribeAttr, IVideoProfile, MixLayoutMode, MixVideoRenderMode, RCAbstractRoom, RCAudienceClient, RCAudienceLivingRoom, RCAudioBitrate, RCCameraVideoTrack, RCFrameRate, RCInnerCDNPullIsHttps, RCInnerCDNPullKind, RCKickReason, RCLivingRoom, RCLivingType, RCLocalAudioTrack, RCLocalFileAudioTrack, RCLocalFileTrack, RCLocalFileVideoTrack, RCLocalTrack, RCLocalVideoTrack, RCMCUConfigBuilder, RCMediaStreamCapture, RCMediaType, RCMicphoneAudioTrack, RCRTCClient, RCRTCCode, RCRTCLiveRole, RCRTCPingResult, RCRTCRoom, RCRemoteAudioTrack, RCRemoteTrack, RCRemoteVideoTrack, RCResolution, RCScreenAudioTrack, RCScreenVideoTrack, RCTag, RCTrack, RCVideoBitrate, device, helper, installer };
4269
+ export { BackgroundPictureFillMode, IAudienceRoomEventListener, ICameraVideoProfile, IMCUOutputConfig, IMCUOutputVideoConfig, IMicphoneAudioProfile, IPKEndInfo, IPKInviteAnswerInfo, IPKInviteInfo, IPubSuccessRes, IPublishAttrs, IPublishedResource, IRCCandidatePairStat, IRCRTCInitOptions, IRCRTCReportListener, IRCRTCStateReport, IRCTrackStat, IReqResPKOptions, IRoomEventListener, IRoomPKEventListener, ISubscribeAttr, IVideoProfile, MixLayoutMode, MixVideoRenderMode, RCAbstractRoom, RCAudienceClient, RCAudienceLivingRoom, RCAudioBitrate, RCCameraVideoTrack, RCFrameRate, RCInnerCDNPullIsHttps, RCInnerCDNPullKind, RCKickReason, RCLivingRoom, RCLivingType, RCLocalAudioTrack, RCLocalFileAudioTrack, RCLocalFileTrack, RCLocalFileVideoTrack, RCLocalTrack, RCLocalVideoTrack, RCMCUConfigBuilder, RCMediaStreamCapture, RCMediaType, RCMicphoneAudioTrack, RCRTCClient, RCRTCCode, RCRTCLiveRole, RCRTCPingResult, RCRTCRoom, RCRemoteAudioTrack, RCRemoteTrack, RCRemoteVideoTrack, RCResolution, RCScreenAudioTrack, RCScreenVideoTrack, RCTag, RCTrack, RCVideoBitrate, RTCJoinType, device, helper, installer };