@rongcloud/plugin-rtc 5.34.0 → 5.36.0-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.
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +1631 -1239
- package/dist/index.esm.js +2 -2
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _rongcloud_engine from '@rongcloud/engine';
|
|
2
|
-
import { EventEmitter, BasicLogger, INaviInfo,
|
|
2
|
+
import { EventEmitter, BasicLogger, INaviInfo, RTCPluginContext, Codec, IPromiseResult, ErrorCode, KVString, IRuntime, IAsyncRes, RCConnectionStatus, ConversationType, ISendMsgOptions, IReceivedMessage, LogL, EnableLogL, RTCMode as RTCMode$1, IPluginGenerator } from '@rongcloud/engine';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* 错误码,与移动端对齐
|
|
@@ -28,6 +28,10 @@ declare enum RCRTCCode {
|
|
|
28
28
|
SERVICE_INVALID = 50004,
|
|
29
29
|
/** RTC Token 无效 */
|
|
30
30
|
RTC_TOKEN_INVALID = 50006,
|
|
31
|
+
/** 后台未开通语音识别服务 */
|
|
32
|
+
ASR_NOT_AVAILABLE = 50034,
|
|
33
|
+
/** 此房间未开启语音识别服务 */
|
|
34
|
+
ASR_NOT_START = 50035,
|
|
31
35
|
/** 底层信令调用错误 */
|
|
32
36
|
SIGNAL_ERROR = 53001,
|
|
33
37
|
/** 创建 Offer 失败 */
|
|
@@ -598,6 +602,24 @@ declare enum RTCMode {
|
|
|
598
602
|
CALL = 5
|
|
599
603
|
}
|
|
600
604
|
|
|
605
|
+
/**
|
|
606
|
+
* ASR 状态枚举
|
|
607
|
+
*/
|
|
608
|
+
declare enum RCRTCASRStatus {
|
|
609
|
+
/**
|
|
610
|
+
* 无效值
|
|
611
|
+
*/
|
|
612
|
+
VOID = "0",
|
|
613
|
+
/**
|
|
614
|
+
* 打开
|
|
615
|
+
*/
|
|
616
|
+
OPEN = "2",
|
|
617
|
+
/**
|
|
618
|
+
* 关闭
|
|
619
|
+
*/
|
|
620
|
+
CLOSE = "1"
|
|
621
|
+
}
|
|
622
|
+
|
|
601
623
|
/**
|
|
602
624
|
* 与 MediaServer 交互所需的 Request Header 信息
|
|
603
625
|
*/
|
|
@@ -702,6 +724,10 @@ interface IExchangeReqBody {
|
|
|
702
724
|
* 是否支持 ipv6
|
|
703
725
|
*/
|
|
704
726
|
ipType: number;
|
|
727
|
+
/**
|
|
728
|
+
* asr 开关状态
|
|
729
|
+
*/
|
|
730
|
+
asr_status: RCRTCASRStatus;
|
|
705
731
|
}
|
|
706
732
|
interface ILiveUrls {
|
|
707
733
|
/**
|
|
@@ -890,6 +916,11 @@ interface ICDNUris {
|
|
|
890
916
|
'pull_safe': boolean;
|
|
891
917
|
}
|
|
892
918
|
|
|
919
|
+
declare enum RCRTCAISwitchType {
|
|
920
|
+
OPEN = 1,
|
|
921
|
+
CLOSE = 0
|
|
922
|
+
}
|
|
923
|
+
|
|
893
924
|
/**
|
|
894
925
|
* 设置 RTC 人员 inner、outer 数据
|
|
895
926
|
*/
|
|
@@ -1078,6 +1109,15 @@ interface IRTCNaviInfo extends INaviInfo {
|
|
|
1078
1109
|
* openGzip 开启标识,默认是false,开启使用true
|
|
1079
1110
|
*/
|
|
1080
1111
|
openGzip?: boolean;
|
|
1112
|
+
/**
|
|
1113
|
+
* AI 开关是否打开,1: 打开,0: 关闭
|
|
1114
|
+
*/
|
|
1115
|
+
rtcAISwitch?: RCRTCAISwitchType;
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
declare enum RCRTCOperateSummarizationType {
|
|
1119
|
+
OPEN = "2",
|
|
1120
|
+
CLOSE = "1"
|
|
1081
1121
|
}
|
|
1082
1122
|
|
|
1083
1123
|
declare abstract class ReadableStore {
|
|
@@ -1124,6 +1164,40 @@ declare abstract class ReadableStore {
|
|
|
1124
1164
|
protected _trackIdSSRCMap: Map<number, string>;
|
|
1125
1165
|
protected _roomStatusVersion: number;
|
|
1126
1166
|
protected _supportNtf: boolean;
|
|
1167
|
+
/**
|
|
1168
|
+
* asr 的打开状态
|
|
1169
|
+
*/
|
|
1170
|
+
protected _asrStatus: RCRTCASRStatus;
|
|
1171
|
+
/**
|
|
1172
|
+
* asr 是否被启用
|
|
1173
|
+
*/
|
|
1174
|
+
protected _asrEnable: boolean;
|
|
1175
|
+
/**
|
|
1176
|
+
* asr 输入语言,用于精准识别语音
|
|
1177
|
+
*/
|
|
1178
|
+
protected _srcLanguage: string;
|
|
1179
|
+
/**
|
|
1180
|
+
* asr sei uris 信息
|
|
1181
|
+
*/
|
|
1182
|
+
protected _asrSeiUris: {
|
|
1183
|
+
[userId: string]: IPublishedResource[];
|
|
1184
|
+
};
|
|
1185
|
+
/**
|
|
1186
|
+
* 是否开启实时翻译
|
|
1187
|
+
*/
|
|
1188
|
+
protected _isStartRealTranslate: boolean;
|
|
1189
|
+
/**
|
|
1190
|
+
* 翻译目标语言
|
|
1191
|
+
*/
|
|
1192
|
+
protected _translationLang: string;
|
|
1193
|
+
/**
|
|
1194
|
+
* 会议纪要开关状态、任务ID
|
|
1195
|
+
*/
|
|
1196
|
+
protected _summarizationStatusData: ISummarizationStatusData | null;
|
|
1197
|
+
/**
|
|
1198
|
+
* 语音识别中本地用户的昵称
|
|
1199
|
+
*/
|
|
1200
|
+
protected _nickName: string;
|
|
1127
1201
|
constructor(_logger: BasicLogger, clientSessionId: string, appkey: string, roomId: string, crtUserId: string, roomMode: RTCMode, isUpgrade?: boolean | undefined, isMainRoom?: boolean | undefined);
|
|
1128
1202
|
getResourcesByUserId(userId: string): IPublishedResource[] | undefined;
|
|
1129
1203
|
getRemoteTrack(trackId: string): RCRemoteAudioTrack | RCRemoteVideoTrack | undefined;
|
|
@@ -1144,6 +1218,15 @@ declare abstract class ReadableStore {
|
|
|
1144
1218
|
getTrackIdBySSRC(ssrc: number): string | undefined;
|
|
1145
1219
|
getRTCRequestHeader(): IRTCReqHeader;
|
|
1146
1220
|
getSupportNtf(): boolean;
|
|
1221
|
+
getASRIsAvailable(): boolean;
|
|
1222
|
+
getASRStatus(): RCRTCASRStatus;
|
|
1223
|
+
getASREnable(): boolean;
|
|
1224
|
+
getSrcLanguage(): string;
|
|
1225
|
+
getASRSeiUris(): IPublishedResource[];
|
|
1226
|
+
getIsStartRealTranslate(): boolean;
|
|
1227
|
+
getTranslationLang(): string;
|
|
1228
|
+
getSummarizationStatusData(): ISummarizationStatusData | null;
|
|
1229
|
+
getNickName(): string;
|
|
1147
1230
|
}
|
|
1148
1231
|
declare class Store extends ReadableStore {
|
|
1149
1232
|
/**
|
|
@@ -1164,6 +1247,202 @@ declare class Store extends ReadableStore {
|
|
|
1164
1247
|
resetSubscribedList(subscribeList: ISubscribeAttr[]): void;
|
|
1165
1248
|
resetCollectSubscribeList(collectSubscribeList: ISubscribeAttr[]): void;
|
|
1166
1249
|
setRoomStatusVersion(version: number): void;
|
|
1250
|
+
setASRStatus(status: RCRTCASRStatus): void;
|
|
1251
|
+
setASREnable(enable: boolean): void;
|
|
1252
|
+
setSrcLanguage(srcLanguage: string): void;
|
|
1253
|
+
setASRSeiUris(uris: IPublishedResource[]): void;
|
|
1254
|
+
addSeiRemoteTrack(uris: IPublishedResource[]): void;
|
|
1255
|
+
removeSeiRemoteTrack(): void;
|
|
1256
|
+
setIsStartRealTranslate(isStart: boolean): void;
|
|
1257
|
+
setTranslationLang(lang: string): void;
|
|
1258
|
+
setSummarizationStatusData(summarizationStatusData: {
|
|
1259
|
+
taskId?: string;
|
|
1260
|
+
status: RCRTCOperateSummarizationType;
|
|
1261
|
+
}): void;
|
|
1262
|
+
setNickName(nickName: string): void;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
/**
|
|
1266
|
+
* 多端登录时,加入房间时的踢人策略
|
|
1267
|
+
*/
|
|
1268
|
+
declare enum RTCJoinType {
|
|
1269
|
+
/**
|
|
1270
|
+
* 踢出已存在于房间的设备,以便于当前设备加入房间
|
|
1271
|
+
*/
|
|
1272
|
+
KICK = 0,
|
|
1273
|
+
/**
|
|
1274
|
+
* 保持已存在于房间的设备,拒绝当前设备加入房间
|
|
1275
|
+
*/
|
|
1276
|
+
REFUSE = 1
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1279
|
+
declare enum RTCApiType {
|
|
1280
|
+
ROOM = 1,
|
|
1281
|
+
PERSON = 2
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
declare enum RTCIdentityChangeType {
|
|
1285
|
+
AnchorToViewer = 1,
|
|
1286
|
+
ViewerToAnchor = 2
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1289
|
+
declare const keymaps: {
|
|
1290
|
+
readonly RtcInput: readonly ["roomType", "broadcastType", "extraInnerData", "needSysChatroom", "identityChangeType", "joinType", "innerDatas", "outerDatas", "supportNtf"];
|
|
1291
|
+
readonly RtcOutput: readonly ["version"];
|
|
1292
|
+
readonly RtcUserListOutput: readonly ["users", "token", "sessionId", "roomInfo", "version"];
|
|
1293
|
+
readonly SetUserStatusInput: readonly ["status"];
|
|
1294
|
+
readonly RtcSetDataInput: readonly ["interior", "target", "key", "value", "objectName", "content"];
|
|
1295
|
+
readonly RtcUserSetDataInput: readonly ["valueInfo", "objectName", "content"];
|
|
1296
|
+
readonly RtcDataInput: readonly ["interior", "target", "key", "objectName", "content"];
|
|
1297
|
+
readonly RtcSetOutDataInput: readonly ["target", "valueInfo", "objectName", "content"];
|
|
1298
|
+
readonly MCFollowInput: readonly ["state"];
|
|
1299
|
+
readonly RtcTokenOutput: readonly ["rtcToken"];
|
|
1300
|
+
readonly RtcQryOutput: readonly ["outInfo"];
|
|
1301
|
+
readonly RtcQryUserOutDataInput: readonly ["userId"];
|
|
1302
|
+
readonly RtcUserOutDataOutput: readonly ["user"];
|
|
1303
|
+
readonly RtcQueryListInput: readonly ["order"];
|
|
1304
|
+
readonly RtcRoomInfoOutput: readonly ["roomId", "roomData", "userCount", "list"];
|
|
1305
|
+
readonly RtcValueInfo: readonly ["key", "value"];
|
|
1306
|
+
readonly RtcKeyDeleteInput: readonly ["key"];
|
|
1307
|
+
readonly RtcNotifyMsg: readonly ["type", "time", "roomId"];
|
|
1308
|
+
readonly RtcPullKV: readonly ["timestamp", "roomId"];
|
|
1309
|
+
readonly RtcKVOutput: readonly ["entries", "bFullUpdate", "syncTime"];
|
|
1310
|
+
readonly RtcQueryUserJoinedInput: readonly ["userId"];
|
|
1311
|
+
readonly RtcQueryUserJoinedOutput: readonly ["info"];
|
|
1312
|
+
readonly RtcInviteInput: readonly ["invitedUserId", "timeoutTime", "invitedRoomId", "inviteInfo", "inviteSessionId"];
|
|
1313
|
+
readonly RtcCancelInviteInput: readonly ["invitedUserId", "invitedRoomId", "inviteInfo", "inviteSessionId"];
|
|
1314
|
+
readonly RtcInviteAnswerInput: readonly ["inviteUserId", "answerCode", "inviteRoomId", "inviteSessionId", "content", "key", "value"];
|
|
1315
|
+
readonly RtcEndInviteInput: readonly ["inviteRoomId", "inviteSessionId", "inviteContent", "inviteRoomKeys"];
|
|
1316
|
+
readonly RtcRoomStatusInput: readonly ["version"];
|
|
1317
|
+
readonly RtcRoomStatusOutput: readonly ["bFullStatus", "version", "usersData", "roomStatus"];
|
|
1318
|
+
readonly RtcReportSDKInput: readonly ["sdkInfo"];
|
|
1319
|
+
readonly RCRTCPBPolaris: readonly ["type", "appKey", "sessionId", "roomId", "roomCreateTime", "userId", "userRole", "joinTime", "signalDataCenter", "r1Info", "r2Info", "r3Info", "r4Info"];
|
|
1320
|
+
readonly RCRTCPBR1Info: readonly ["joinTime", "rtcVersion", "imVersion", "platform", "device", "os", "browserName", "browserVersion"];
|
|
1321
|
+
readonly RCRTCPBR2Info: readonly ["joinTime", "sendTime", "rtcActionType", "rtcActionStatus", "trackId"];
|
|
1322
|
+
readonly RCRTCPBR3Info: readonly ["info"];
|
|
1323
|
+
readonly RCRTCPBR4Info: readonly ["info"];
|
|
1324
|
+
readonly RCRTCPBStatusInfo: readonly ["joinTime", "receiveTime", "totalBitRate", "appCPUUsage", "systemCPUUsage", "systemCPUFrequency", "networkStatus", "googleRTTNetwork", "ipAddress", "useReceiveBroadBand", "useSendBroadBand", "packetLossCount", "streams"];
|
|
1325
|
+
readonly RCRTCPBStreamInfo: readonly ["trackId", "codeName", "volume", "samplingRate", "bitRate", "packetLossRate", "frameRate", "resolution", "blockTime", "jitterData", "nAckCount", "pliCount", "googleRTTTotalTime", "isReceiveFirstFrameRate", "codeType", "isEnabled"];
|
|
1326
|
+
readonly AsrTextMsg: readonly ["bms", "t", "isEnd", "msgId", "lang"];
|
|
1327
|
+
readonly AsrResTextMsg: readonly ["type", "uid", "asr"];
|
|
1328
|
+
};
|
|
1329
|
+
declare type RTCKeyMaps = typeof keymaps;
|
|
1330
|
+
|
|
1331
|
+
/**
|
|
1332
|
+
* 自定义上报北极星数据响应 code
|
|
1333
|
+
*/
|
|
1334
|
+
declare enum RCSendCode {
|
|
1335
|
+
NOT_REPORT = -1,
|
|
1336
|
+
REPORT_SUCCESS = 10000,
|
|
1337
|
+
REPORT_FAIL = 0,
|
|
1338
|
+
PB_ERROR = 40001
|
|
1339
|
+
}
|
|
1340
|
+
|
|
1341
|
+
declare class RTCContext {
|
|
1342
|
+
private context;
|
|
1343
|
+
logger: BasicLogger;
|
|
1344
|
+
private codec;
|
|
1345
|
+
roomCreateTime: number | undefined;
|
|
1346
|
+
userJoinTime: number | undefined;
|
|
1347
|
+
constructor(context: RTCPluginContext, logger: BasicLogger, codec: Codec<RTCKeyMaps>);
|
|
1348
|
+
joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData, supportNtf?: boolean): IPromiseResult<IJoinRTCRoomData>;
|
|
1349
|
+
quitRTCRoom(roomId: string): Promise<ErrorCode>;
|
|
1350
|
+
getRTCRoomInfo(roomId: string): IPromiseResult<IRTCRoomInfo>;
|
|
1351
|
+
/**
|
|
1352
|
+
* 移动端用来获取副房间资源
|
|
1353
|
+
*/
|
|
1354
|
+
getRTCUserInfoList(roomId: string): IPromiseResult<IRTCUsers>;
|
|
1355
|
+
getRTCUserInfo(roomId: string): IPromiseResult<unknown>;
|
|
1356
|
+
removeRTCUserInfo(roomId: string, keys: string[]): Promise<ErrorCode>;
|
|
1357
|
+
setRTCData(roomId: string, key: string, value: string, isInner: boolean, apiType: RTCApiType, message?: {
|
|
1358
|
+
name: string;
|
|
1359
|
+
content: string;
|
|
1360
|
+
}): Promise<ErrorCode>;
|
|
1361
|
+
/**
|
|
1362
|
+
* 全量订阅资源修改
|
|
1363
|
+
* @param roomId 房间 Id
|
|
1364
|
+
* @param message 向前兼容的消息内容
|
|
1365
|
+
* @param valueInfo 全量资源数据
|
|
1366
|
+
* @param objectName 全量 URI 消息名
|
|
1367
|
+
*/
|
|
1368
|
+
setRTCTotalRes(roomId: string, messageList: {
|
|
1369
|
+
name: string;
|
|
1370
|
+
content: string;
|
|
1371
|
+
}[], valueInfo: string, objectName: string, mcuValInfo?: string, cdnValInfo?: string): Promise<ErrorCode>;
|
|
1372
|
+
setRTCCDNUris(roomId: string, objectName: string, CDNUris: string): Promise<ErrorCode>;
|
|
1373
|
+
getRTCData(roomId: string, keys: string[], isInner: boolean, apiType: RTCApiType): IPromiseResult<KVString>;
|
|
1374
|
+
removeRTCData(roomId: string, keys: string[], isInner: boolean, apiType: RTCApiType, message?: {
|
|
1375
|
+
name: string;
|
|
1376
|
+
content: string;
|
|
1377
|
+
}): Promise<ErrorCode>;
|
|
1378
|
+
setRTCOutData(roomId: string, rtcData: unknown, type: number, message: unknown): Promise<ErrorCode>;
|
|
1379
|
+
getRTCOutData(roomId: string, userIds: string[]): IPromiseResult<unknown>;
|
|
1380
|
+
getRTCToken(roomId: string, mode: number, broadcastType?: number): IPromiseResult<IRtcTokenData>;
|
|
1381
|
+
setRTCState(roomId: string, report: string): Promise<ErrorCode>;
|
|
1382
|
+
/**
|
|
1383
|
+
* 通过 http 方式上报 rtc state
|
|
1384
|
+
*/
|
|
1385
|
+
setRTCStateByHttp(logServer: string, runtime: IRuntime, report: IRCRTCReportData, reportType: string): Promise<RCSendCode | RCRTCCode>;
|
|
1386
|
+
getRTCUserList(roomId: string): IPromiseResult<IRTCUsers>;
|
|
1387
|
+
joinLivingRoomAsAudience(roomId: string, mode: RTCMode, broadcastType?: number): Promise<IAsyncRes<{
|
|
1388
|
+
token: string;
|
|
1389
|
+
kvEntries: IServerRTCRoomEntry[];
|
|
1390
|
+
}>>;
|
|
1391
|
+
quitLivingRoomAsAudience(roomId: string): Promise<ErrorCode>;
|
|
1392
|
+
rtcIdentityChange(roomId: string, changeType: RTCIdentityChangeType, broadcastType?: number): Promise<IAsyncRes<IJoinRTCRoomData>>;
|
|
1393
|
+
requestRoomPK(options: IReqRoomPKOptions): Promise<ErrorCode>;
|
|
1394
|
+
cancelRoomPK(options: ICancelRoomPKOptions): Promise<ErrorCode>;
|
|
1395
|
+
responseRoomPK(options: IResRoomPKOptions): Promise<ErrorCode>;
|
|
1396
|
+
endRoomPK(options: IEndRoomPKOptions): Promise<ErrorCode>;
|
|
1397
|
+
getRTCJoinedUserInfo(userId: string): Promise<IAsyncRes<IRTCJoinedInfo[]>>;
|
|
1398
|
+
pullRTCRoomEntry(roomId: string): Promise<IAsyncRes<IChrmKVPullData>>;
|
|
1399
|
+
/**
|
|
1400
|
+
* 通知拉取房间数据
|
|
1401
|
+
* @param roomId 房间 id
|
|
1402
|
+
* @param version 本地最大得房间数据版本号
|
|
1403
|
+
*/
|
|
1404
|
+
pullRTCRoomStatus(roomId: string, version: number): Promise<{
|
|
1405
|
+
code: ErrorCode;
|
|
1406
|
+
data?: IPullRTCRoomStatus;
|
|
1407
|
+
}>;
|
|
1408
|
+
decodeRtcNotify(buffer: Uint8Array): {
|
|
1409
|
+
time: number;
|
|
1410
|
+
type: any;
|
|
1411
|
+
roomId: any;
|
|
1412
|
+
};
|
|
1413
|
+
getCurrentId(): string;
|
|
1414
|
+
getNaviInfo(): IRTCNaviInfo | null;
|
|
1415
|
+
getConnectionStatus(): RCConnectionStatus;
|
|
1416
|
+
getAppkey(): string;
|
|
1417
|
+
/** web 端发 rtcPing */
|
|
1418
|
+
webRtcPing(roomId: string, roomMode: RTCMode, broadcastType?: number): Promise<{
|
|
1419
|
+
code: ErrorCode;
|
|
1420
|
+
data?: {
|
|
1421
|
+
version: number;
|
|
1422
|
+
};
|
|
1423
|
+
}>;
|
|
1424
|
+
/**
|
|
1425
|
+
* 协议栈 rtcping 依赖 imlib 编解码数据
|
|
1426
|
+
* web 单独走 imlib 提供的 rtcSignaling 方法,减少对 imlib 的依赖
|
|
1427
|
+
*/
|
|
1428
|
+
rtcPing(roomId: string, roomMode: RTCMode, broadcastType?: number): Promise<_rongcloud_engine.RCResult<any>> | Promise<{
|
|
1429
|
+
code: ErrorCode;
|
|
1430
|
+
data?: {
|
|
1431
|
+
version: number;
|
|
1432
|
+
} | undefined;
|
|
1433
|
+
}>;
|
|
1434
|
+
sendMessage(conversationType: ConversationType, targetId: string, options: ISendMsgOptions): IPromiseResult<IReceivedMessage>;
|
|
1435
|
+
registerRTCSignalListener(listener?: ((buffer: Uint8Array) => void) | undefined): void;
|
|
1436
|
+
registerConnectionStateChangeListener(listener: (status: RCConnectionStatus, code: ErrorCode) => void): void;
|
|
1437
|
+
registerDisconnectListener(listener: () => void): void;
|
|
1438
|
+
registerDestroyListener(listener: () => void): void;
|
|
1439
|
+
registerMessageListener(listener: (message: IReceivedMessage) => boolean): void;
|
|
1440
|
+
getCoreVersion(): string;
|
|
1441
|
+
getPluginContext(): RTCPluginContext;
|
|
1442
|
+
reportSDKInfo(versionInfo: {
|
|
1443
|
+
[name: string]: string;
|
|
1444
|
+
}): void;
|
|
1445
|
+
decodeAsrText(buffer: Uint8Array): (RCRTCASRContent | RCRTCRealtimeTranslationContent)[];
|
|
1167
1446
|
}
|
|
1168
1447
|
|
|
1169
1448
|
declare type ISdpSemantics = 'plan-b' | 'unified-plan';
|
|
@@ -1277,6 +1556,17 @@ interface IRCEncryptorHooks {
|
|
|
1277
1556
|
encodeVideo: RCEncryptFunction;
|
|
1278
1557
|
}
|
|
1279
1558
|
|
|
1559
|
+
declare enum RCRTCGenerateSummarizationFormat {
|
|
1560
|
+
/**
|
|
1561
|
+
* 输出 MarkDown 格式
|
|
1562
|
+
*/
|
|
1563
|
+
MARK_DOWN = 0,
|
|
1564
|
+
/**
|
|
1565
|
+
* 输出 JSON 格式
|
|
1566
|
+
*/
|
|
1567
|
+
JSON = 1
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1280
1570
|
interface IRCTrackBitrate {
|
|
1281
1571
|
/**
|
|
1282
1572
|
* 最大码率
|
|
@@ -1925,6 +2215,38 @@ interface IRoomEventListener extends IRCRTCTrackEventListener {
|
|
|
1925
2215
|
* 主播和观众切换身份通知
|
|
1926
2216
|
*/
|
|
1927
2217
|
onSwitchRole?(userId: string, role: RCRTCLiveRole): void;
|
|
2218
|
+
/**
|
|
2219
|
+
* 语音识别服务开启通知
|
|
2220
|
+
* 如需要语音识别内容和语音实时翻译,可在此时机依次调用 room 的
|
|
2221
|
+
* setSrcLanguageCode 方法,设置输入语言代码,用于语音识别精准识别
|
|
2222
|
+
* setEnableASR 方法,设置房间内的语音识别资源为可用,语音识别内容通过 `onReceiveASRContent` 回调给业务层
|
|
2223
|
+
* startRealtimeTranslation 方法,开启语音实时翻译,实时翻译内容通过 `onReceiveRealtimeTranslationContent` 回调给业务层
|
|
2224
|
+
*/
|
|
2225
|
+
onReceiveStartASR?(): void;
|
|
2226
|
+
/**
|
|
2227
|
+
* 语音识别服务停止通知
|
|
2228
|
+
*/
|
|
2229
|
+
onReceiveStopASR?(): void;
|
|
2230
|
+
/**
|
|
2231
|
+
* 语音识别内容回调
|
|
2232
|
+
* @param asrContent
|
|
2233
|
+
*/
|
|
2234
|
+
onReceiveASRContent?(asrContent: RCRTCASRContent): void;
|
|
2235
|
+
/**
|
|
2236
|
+
* 语音翻译结果回调
|
|
2237
|
+
* @param content
|
|
2238
|
+
*/
|
|
2239
|
+
onReceiveRealtimeTranslationContent?(content: RCRTCRealtimeTranslationContent): void;
|
|
2240
|
+
/**
|
|
2241
|
+
* 开始智能总结
|
|
2242
|
+
* @param taskId 可用于获取会议纪要、会议语音转文字内容
|
|
2243
|
+
*/
|
|
2244
|
+
onReceiveStartSummarization?(taskId: string): void;
|
|
2245
|
+
/**
|
|
2246
|
+
* 结束智能总结
|
|
2247
|
+
* @param taskId
|
|
2248
|
+
*/
|
|
2249
|
+
onReceiveStopSummarization?(taskId: string): void;
|
|
1928
2250
|
}
|
|
1929
2251
|
/**
|
|
1930
2252
|
* RTCClient 初始化配置
|
|
@@ -2220,40 +2542,118 @@ interface IPullRTCRoomUsersData {
|
|
|
2220
2542
|
value: string;
|
|
2221
2543
|
}[];
|
|
2222
2544
|
}
|
|
2223
|
-
|
|
2224
2545
|
/**
|
|
2225
|
-
*
|
|
2546
|
+
* ASR 内容
|
|
2226
2547
|
*/
|
|
2227
|
-
|
|
2548
|
+
interface RCRTCASRContent {
|
|
2228
2549
|
/**
|
|
2229
|
-
*
|
|
2550
|
+
* 当前语音识别关联用户的 ID,
|
|
2230
2551
|
*/
|
|
2231
|
-
|
|
2552
|
+
userID: string;
|
|
2232
2553
|
/**
|
|
2233
|
-
*
|
|
2554
|
+
* 当前语音识别的 ID, 用于关联当前语音识别结果
|
|
2234
2555
|
*/
|
|
2235
|
-
|
|
2556
|
+
msgId: string;
|
|
2236
2557
|
/**
|
|
2237
|
-
*
|
|
2558
|
+
* 当前语音识别的时间戳, 单位为秒
|
|
2238
2559
|
*/
|
|
2239
|
-
|
|
2240
|
-
}
|
|
2241
|
-
|
|
2242
|
-
/**
|
|
2243
|
-
* 合流布局对视频的填充模式
|
|
2244
|
-
*/
|
|
2245
|
-
declare enum MixVideoRenderMode {
|
|
2560
|
+
timeUTC: number;
|
|
2246
2561
|
/**
|
|
2247
|
-
*
|
|
2562
|
+
* 当前语音识别结果
|
|
2248
2563
|
*/
|
|
2249
|
-
|
|
2564
|
+
msg: string;
|
|
2250
2565
|
/**
|
|
2251
|
-
*
|
|
2566
|
+
* 当前语音识别是否结束, 如果为 true, 则表示当前语音识别已结束
|
|
2252
2567
|
*/
|
|
2253
|
-
|
|
2568
|
+
isEnd: boolean;
|
|
2254
2569
|
}
|
|
2255
|
-
|
|
2256
|
-
|
|
2570
|
+
interface RCRTCRealtimeTranslationContent extends RCRTCASRContent {
|
|
2571
|
+
/**
|
|
2572
|
+
* 当前语音翻译的目标语言码
|
|
2573
|
+
*/
|
|
2574
|
+
destLangCode: string;
|
|
2575
|
+
}
|
|
2576
|
+
interface IRCRTCGenerateSummarizationConfig {
|
|
2577
|
+
/**
|
|
2578
|
+
* 自定义提示词,最大长度100
|
|
2579
|
+
*/
|
|
2580
|
+
customPrompt?: string;
|
|
2581
|
+
/**
|
|
2582
|
+
* 输出智能总结的目标语言代码
|
|
2583
|
+
*/
|
|
2584
|
+
destLang?: string;
|
|
2585
|
+
/**
|
|
2586
|
+
* 是否输出总结摘要。即对整个会议的高度概括,默认 false
|
|
2587
|
+
*/
|
|
2588
|
+
enableSummarization?: boolean;
|
|
2589
|
+
/**
|
|
2590
|
+
* 是否为输出总结整体,默认为 false
|
|
2591
|
+
*/
|
|
2592
|
+
enableSummarizationDetails?: boolean;
|
|
2593
|
+
/**
|
|
2594
|
+
* 是否输出章节摘要,即按时间线或话题划分的会议段落总结,默认为 false
|
|
2595
|
+
*/
|
|
2596
|
+
enableChapterSummary?: boolean;
|
|
2597
|
+
/**
|
|
2598
|
+
* 是否输出待办事项提取,自动识别会议中达成的共识和分配的任务,默认为 false
|
|
2599
|
+
*/
|
|
2600
|
+
enableTodoList?: boolean;
|
|
2601
|
+
/**
|
|
2602
|
+
* 是否输出话题提取,默认为 false
|
|
2603
|
+
*/
|
|
2604
|
+
enableHashtag?: boolean;
|
|
2605
|
+
/**
|
|
2606
|
+
* 输出格式,默认为 markdown
|
|
2607
|
+
*/
|
|
2608
|
+
format?: RCRTCGenerateSummarizationFormat;
|
|
2609
|
+
}
|
|
2610
|
+
/**
|
|
2611
|
+
* 智能总结状态数据
|
|
2612
|
+
*/
|
|
2613
|
+
interface ISummarizationStatusData {
|
|
2614
|
+
/**
|
|
2615
|
+
* 智能总结开关状态
|
|
2616
|
+
*/
|
|
2617
|
+
status: RCRTCOperateSummarizationType;
|
|
2618
|
+
/**
|
|
2619
|
+
* 智能总结任务 ID
|
|
2620
|
+
*/
|
|
2621
|
+
taskId?: string;
|
|
2622
|
+
}
|
|
2623
|
+
|
|
2624
|
+
/**
|
|
2625
|
+
* 直播布局模式定义
|
|
2626
|
+
*/
|
|
2627
|
+
declare enum MixLayoutMode {
|
|
2628
|
+
/**
|
|
2629
|
+
* 自定义布局
|
|
2630
|
+
*/
|
|
2631
|
+
CUSTOMIZE = 1,
|
|
2632
|
+
/**
|
|
2633
|
+
* 悬浮布局(默认)
|
|
2634
|
+
*/
|
|
2635
|
+
SUSPENSION = 2,
|
|
2636
|
+
/**
|
|
2637
|
+
* 自适应布局
|
|
2638
|
+
*/
|
|
2639
|
+
ADAPTATION = 3
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2642
|
+
/**
|
|
2643
|
+
* 合流布局对视频的填充模式
|
|
2644
|
+
*/
|
|
2645
|
+
declare enum MixVideoRenderMode {
|
|
2646
|
+
/**
|
|
2647
|
+
* 裁剪(默认)
|
|
2648
|
+
*/
|
|
2649
|
+
CROP = 1,
|
|
2650
|
+
/**
|
|
2651
|
+
* 不裁剪
|
|
2652
|
+
*/
|
|
2653
|
+
WHOLE = 2
|
|
2654
|
+
}
|
|
2655
|
+
|
|
2656
|
+
declare enum RCInnerCDNModel {
|
|
2257
2657
|
OPEN = 1,
|
|
2258
2658
|
STOP = 2
|
|
2259
2659
|
}
|
|
@@ -2497,186 +2897,6 @@ interface ISetEnableCDN {
|
|
|
2497
2897
|
};
|
|
2498
2898
|
}
|
|
2499
2899
|
|
|
2500
|
-
/**
|
|
2501
|
-
* 多端登录时,加入房间时的踢人策略
|
|
2502
|
-
*/
|
|
2503
|
-
declare enum RTCJoinType {
|
|
2504
|
-
/**
|
|
2505
|
-
* 踢出已存在于房间的设备,以便于当前设备加入房间
|
|
2506
|
-
*/
|
|
2507
|
-
KICK = 0,
|
|
2508
|
-
/**
|
|
2509
|
-
* 保持已存在于房间的设备,拒绝当前设备加入房间
|
|
2510
|
-
*/
|
|
2511
|
-
REFUSE = 1
|
|
2512
|
-
}
|
|
2513
|
-
|
|
2514
|
-
declare enum RTCApiType {
|
|
2515
|
-
ROOM = 1,
|
|
2516
|
-
PERSON = 2
|
|
2517
|
-
}
|
|
2518
|
-
|
|
2519
|
-
declare enum RTCIdentityChangeType {
|
|
2520
|
-
AnchorToViewer = 1,
|
|
2521
|
-
ViewerToAnchor = 2
|
|
2522
|
-
}
|
|
2523
|
-
|
|
2524
|
-
declare const keymaps: {
|
|
2525
|
-
readonly RtcInput: readonly ["roomType", "broadcastType", "extraInnerData", "needSysChatroom", "identityChangeType", "joinType", "innerDatas", "outerDatas", "supportNtf"];
|
|
2526
|
-
readonly RtcOutput: readonly ["version"];
|
|
2527
|
-
readonly RtcUserListOutput: readonly ["users", "token", "sessionId", "roomInfo", "version"];
|
|
2528
|
-
readonly SetUserStatusInput: readonly ["status"];
|
|
2529
|
-
readonly RtcSetDataInput: readonly ["interior", "target", "key", "value", "objectName", "content"];
|
|
2530
|
-
readonly RtcUserSetDataInput: readonly ["valueInfo", "objectName", "content"];
|
|
2531
|
-
readonly RtcDataInput: readonly ["interior", "target", "key", "objectName", "content"];
|
|
2532
|
-
readonly RtcSetOutDataInput: readonly ["target", "valueInfo", "objectName", "content"];
|
|
2533
|
-
readonly MCFollowInput: readonly ["state"];
|
|
2534
|
-
readonly RtcTokenOutput: readonly ["rtcToken"];
|
|
2535
|
-
readonly RtcQryOutput: readonly ["outInfo"];
|
|
2536
|
-
readonly RtcQryUserOutDataInput: readonly ["userId"];
|
|
2537
|
-
readonly RtcUserOutDataOutput: readonly ["user"];
|
|
2538
|
-
readonly RtcQueryListInput: readonly ["order"];
|
|
2539
|
-
readonly RtcRoomInfoOutput: readonly ["roomId", "roomData", "userCount", "list"];
|
|
2540
|
-
readonly RtcValueInfo: readonly ["key", "value"];
|
|
2541
|
-
readonly RtcKeyDeleteInput: readonly ["key"];
|
|
2542
|
-
readonly RtcNotifyMsg: readonly ["type", "time", "roomId"];
|
|
2543
|
-
readonly RtcPullKV: readonly ["timestamp", "roomId"];
|
|
2544
|
-
readonly RtcKVOutput: readonly ["entries", "bFullUpdate", "syncTime"];
|
|
2545
|
-
readonly RtcQueryUserJoinedInput: readonly ["userId"];
|
|
2546
|
-
readonly RtcQueryUserJoinedOutput: readonly ["info"];
|
|
2547
|
-
readonly RtcInviteInput: readonly ["invitedUserId", "timeoutTime", "invitedRoomId", "inviteInfo", "inviteSessionId"];
|
|
2548
|
-
readonly RtcCancelInviteInput: readonly ["invitedUserId", "invitedRoomId", "inviteInfo", "inviteSessionId"];
|
|
2549
|
-
readonly RtcInviteAnswerInput: readonly ["inviteUserId", "answerCode", "inviteRoomId", "inviteSessionId", "content", "key", "value"];
|
|
2550
|
-
readonly RtcEndInviteInput: readonly ["inviteRoomId", "inviteSessionId", "inviteContent", "inviteRoomKeys"];
|
|
2551
|
-
readonly RtcRoomStatusInput: readonly ["version"];
|
|
2552
|
-
readonly RtcRoomStatusOutput: readonly ["bFullStatus", "version", "usersData", "roomStatus"];
|
|
2553
|
-
readonly RtcReportSDKInput: readonly ["sdkInfo"];
|
|
2554
|
-
readonly RCRTCPBPolaris: readonly ["type", "appKey", "sessionId", "roomId", "roomCreateTime", "userId", "userRole", "joinTime", "signalDataCenter", "r1Info", "r2Info", "r3Info", "r4Info"];
|
|
2555
|
-
readonly RCRTCPBR1Info: readonly ["joinTime", "rtcVersion", "imVersion", "platform", "device", "os", "browserName", "browserVersion"];
|
|
2556
|
-
readonly RCRTCPBR2Info: readonly ["joinTime", "sendTime", "rtcActionType", "rtcActionStatus", "trackId"];
|
|
2557
|
-
readonly RCRTCPBR3Info: readonly ["info"];
|
|
2558
|
-
readonly RCRTCPBR4Info: readonly ["info"];
|
|
2559
|
-
readonly RCRTCPBStatusInfo: readonly ["joinTime", "receiveTime", "totalBitRate", "appCPUUsage", "systemCPUUsage", "systemCPUFrequency", "networkStatus", "googleRTTNetwork", "ipAddress", "useReceiveBroadBand", "useSendBroadBand", "packetLossCount", "streams"];
|
|
2560
|
-
readonly RCRTCPBStreamInfo: readonly ["trackId", "codeName", "volume", "samplingRate", "bitRate", "packetLossRate", "frameRate", "resolution", "blockTime", "jitterData", "nAckCount", "pliCount", "googleRTTTotalTime", "isReceiveFirstFrameRate", "codeType", "isEnabled"];
|
|
2561
|
-
};
|
|
2562
|
-
declare type RTCKeyMaps = typeof keymaps;
|
|
2563
|
-
|
|
2564
|
-
/**
|
|
2565
|
-
* 自定义上报北极星数据响应 code
|
|
2566
|
-
*/
|
|
2567
|
-
declare enum RCSendCode {
|
|
2568
|
-
NOT_REPORT = -1,
|
|
2569
|
-
REPORT_SUCCESS = 10000,
|
|
2570
|
-
REPORT_FAIL = 0,
|
|
2571
|
-
PB_ERROR = 40001
|
|
2572
|
-
}
|
|
2573
|
-
|
|
2574
|
-
declare class RTCContext {
|
|
2575
|
-
private context;
|
|
2576
|
-
logger: BasicLogger;
|
|
2577
|
-
private codec;
|
|
2578
|
-
roomCreateTime: number | undefined;
|
|
2579
|
-
userJoinTime: number | undefined;
|
|
2580
|
-
constructor(context: RTCPluginContext, logger: BasicLogger, codec: Codec<RTCKeyMaps>);
|
|
2581
|
-
joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData, supportNtf?: boolean): IPromiseResult<IJoinRTCRoomData>;
|
|
2582
|
-
quitRTCRoom(roomId: string): Promise<ErrorCode>;
|
|
2583
|
-
getRTCRoomInfo(roomId: string): IPromiseResult<IRTCRoomInfo>;
|
|
2584
|
-
/**
|
|
2585
|
-
* 移动端用来获取副房间资源
|
|
2586
|
-
*/
|
|
2587
|
-
getRTCUserInfoList(roomId: string): IPromiseResult<IRTCUsers>;
|
|
2588
|
-
getRTCUserInfo(roomId: string): IPromiseResult<unknown>;
|
|
2589
|
-
removeRTCUserInfo(roomId: string, keys: string[]): Promise<ErrorCode>;
|
|
2590
|
-
setRTCData(roomId: string, key: string, value: string, isInner: boolean, apiType: RTCApiType, message?: {
|
|
2591
|
-
name: string;
|
|
2592
|
-
content: string;
|
|
2593
|
-
}): Promise<ErrorCode>;
|
|
2594
|
-
/**
|
|
2595
|
-
* 全量订阅资源修改
|
|
2596
|
-
* @param roomId 房间 Id
|
|
2597
|
-
* @param message 向前兼容的消息内容
|
|
2598
|
-
* @param valueInfo 全量资源数据
|
|
2599
|
-
* @param objectName 全量 URI 消息名
|
|
2600
|
-
*/
|
|
2601
|
-
setRTCTotalRes(roomId: string, messageList: {
|
|
2602
|
-
name: string;
|
|
2603
|
-
content: string;
|
|
2604
|
-
}[], valueInfo: string, objectName: string, mcuValInfo?: string, cdnValInfo?: string): Promise<ErrorCode>;
|
|
2605
|
-
setRTCCDNUris(roomId: string, objectName: string, CDNUris: string): Promise<ErrorCode>;
|
|
2606
|
-
getRTCData(roomId: string, keys: string[], isInner: boolean, apiType: RTCApiType): IPromiseResult<KVString>;
|
|
2607
|
-
removeRTCData(roomId: string, keys: string[], isInner: boolean, apiType: RTCApiType, message?: {
|
|
2608
|
-
name: string;
|
|
2609
|
-
content: string;
|
|
2610
|
-
}): Promise<ErrorCode>;
|
|
2611
|
-
setRTCOutData(roomId: string, rtcData: unknown, type: number, message: unknown): Promise<ErrorCode>;
|
|
2612
|
-
getRTCOutData(roomId: string, userIds: string[]): IPromiseResult<unknown>;
|
|
2613
|
-
getRTCToken(roomId: string, mode: number, broadcastType?: number): IPromiseResult<IRtcTokenData>;
|
|
2614
|
-
setRTCState(roomId: string, report: string): Promise<ErrorCode>;
|
|
2615
|
-
/**
|
|
2616
|
-
* 通过 http 方式上报 rtc state
|
|
2617
|
-
*/
|
|
2618
|
-
setRTCStateByHttp(logServer: string, runtime: IRuntime, report: IRCRTCReportData, reportType: string): Promise<RCSendCode | RCRTCCode>;
|
|
2619
|
-
getRTCUserList(roomId: string): IPromiseResult<IRTCUsers>;
|
|
2620
|
-
joinLivingRoomAsAudience(roomId: string, mode: RTCMode, broadcastType?: number): Promise<IAsyncRes<{
|
|
2621
|
-
token: string;
|
|
2622
|
-
kvEntries: IServerRTCRoomEntry[];
|
|
2623
|
-
}>>;
|
|
2624
|
-
quitLivingRoomAsAudience(roomId: string): Promise<ErrorCode>;
|
|
2625
|
-
rtcIdentityChange(roomId: string, changeType: RTCIdentityChangeType, broadcastType?: number): Promise<IAsyncRes<IJoinRTCRoomData>>;
|
|
2626
|
-
requestRoomPK(options: IReqRoomPKOptions): Promise<ErrorCode>;
|
|
2627
|
-
cancelRoomPK(options: ICancelRoomPKOptions): Promise<ErrorCode>;
|
|
2628
|
-
responseRoomPK(options: IResRoomPKOptions): Promise<ErrorCode>;
|
|
2629
|
-
endRoomPK(options: IEndRoomPKOptions): Promise<ErrorCode>;
|
|
2630
|
-
getRTCJoinedUserInfo(userId: string): Promise<IAsyncRes<IRTCJoinedInfo[]>>;
|
|
2631
|
-
pullRTCRoomEntry(roomId: string): Promise<IAsyncRes<IChrmKVPullData>>;
|
|
2632
|
-
/**
|
|
2633
|
-
* 通知拉取房间数据
|
|
2634
|
-
* @param roomId 房间 id
|
|
2635
|
-
* @param version 本地最大得房间数据版本号
|
|
2636
|
-
*/
|
|
2637
|
-
pullRTCRoomStatus(roomId: string, version: number): Promise<{
|
|
2638
|
-
code: ErrorCode;
|
|
2639
|
-
data?: IPullRTCRoomStatus;
|
|
2640
|
-
}>;
|
|
2641
|
-
decodeRtcNotify(buffer: Uint8Array): {
|
|
2642
|
-
time: number;
|
|
2643
|
-
type: any;
|
|
2644
|
-
roomId: any;
|
|
2645
|
-
};
|
|
2646
|
-
getCurrentId(): string;
|
|
2647
|
-
getNaviInfo(): IRTCNaviInfo | null;
|
|
2648
|
-
getConnectionStatus(): RCConnectionStatus;
|
|
2649
|
-
getAppkey(): string;
|
|
2650
|
-
/** web 端发 rtcPing */
|
|
2651
|
-
webRtcPing(roomId: string, roomMode: RTCMode, broadcastType?: number): Promise<{
|
|
2652
|
-
code: ErrorCode;
|
|
2653
|
-
data?: {
|
|
2654
|
-
version: number;
|
|
2655
|
-
};
|
|
2656
|
-
}>;
|
|
2657
|
-
/**
|
|
2658
|
-
* 协议栈 rtcping 依赖 imlib 编解码数据
|
|
2659
|
-
* web 单独走 imlib 提供的 rtcSignaling 方法,减少对 imlib 的依赖
|
|
2660
|
-
*/
|
|
2661
|
-
rtcPing(roomId: string, roomMode: RTCMode, broadcastType?: number): Promise<{
|
|
2662
|
-
code: ErrorCode;
|
|
2663
|
-
data?: {
|
|
2664
|
-
version: number;
|
|
2665
|
-
} | undefined;
|
|
2666
|
-
}> | Promise<_rongcloud_engine.RCResult<any>>;
|
|
2667
|
-
sendMessage(conversationType: ConversationType, targetId: string, options: ISendMsgOptions): IPromiseResult<IReceivedMessage>;
|
|
2668
|
-
registerRTCSignalListener(listener?: ((buffer: Uint8Array) => void) | undefined): void;
|
|
2669
|
-
registerConnectionStateChangeListener(listener: (status: RCConnectionStatus, code: ErrorCode) => void): void;
|
|
2670
|
-
registerDisconnectListener(listener: () => void): void;
|
|
2671
|
-
registerDestroyListener(listener: () => void): void;
|
|
2672
|
-
registerMessageListener(listener: (message: IReceivedMessage) => boolean): void;
|
|
2673
|
-
getCoreVersion(): string;
|
|
2674
|
-
getPluginContext(): RTCPluginContext;
|
|
2675
|
-
reportSDKInfo(versionInfo: {
|
|
2676
|
-
[name: string]: string;
|
|
2677
|
-
}): void;
|
|
2678
|
-
}
|
|
2679
|
-
|
|
2680
2900
|
/**
|
|
2681
2901
|
* mediaServer 交互数据
|
|
2682
2902
|
*/
|
|
@@ -2700,152 +2920,19 @@ declare enum RCRTCResourceAction {
|
|
|
2700
2920
|
UNSUB = "unsub"
|
|
2701
2921
|
}
|
|
2702
2922
|
|
|
2703
|
-
declare
|
|
2704
|
-
private readonly _runtime;
|
|
2705
|
-
private readonly _context;
|
|
2923
|
+
declare enum RCCommandKind {
|
|
2706
2924
|
/**
|
|
2707
|
-
*
|
|
2925
|
+
* 发信令取消加入房间之前的资源
|
|
2708
2926
|
*/
|
|
2709
|
-
|
|
2927
|
+
UNPUBLISH_PREV = "UnpublishPrevCommand",
|
|
2710
2928
|
/**
|
|
2711
|
-
*
|
|
2929
|
+
* 拉取房间内数据
|
|
2712
2930
|
*/
|
|
2713
|
-
|
|
2931
|
+
PULL_RTCROOM_STATUS = "PullRTCRoomStatusCommand",
|
|
2714
2932
|
/**
|
|
2715
|
-
*
|
|
2933
|
+
* 加入房间
|
|
2716
2934
|
*/
|
|
2717
|
-
|
|
2718
|
-
/**
|
|
2719
|
-
* 服务器指纹数据,客户端不得修改,直接透传
|
|
2720
|
-
*/
|
|
2721
|
-
private _rtcFinger;
|
|
2722
|
-
/**
|
|
2723
|
-
* 服务器接口返回的 clusterId 数据,当此数据有值时,后续所有请求向此服务发送
|
|
2724
|
-
*/
|
|
2725
|
-
private _clusterId;
|
|
2726
|
-
/**
|
|
2727
|
-
* MCU 服务地址
|
|
2728
|
-
*/
|
|
2729
|
-
private _configUrl;
|
|
2730
|
-
/**
|
|
2731
|
-
* 排好序的探测地址
|
|
2732
|
-
*/
|
|
2733
|
-
private static msInDetector;
|
|
2734
|
-
private static detectorTime;
|
|
2735
|
-
private static detectValidMinute;
|
|
2736
|
-
private _msList;
|
|
2737
|
-
private _qualityMsList;
|
|
2738
|
-
private readonly _logger;
|
|
2739
|
-
constructor(_runtime: IRuntime, _context: RTCContext,
|
|
2740
|
-
/**
|
|
2741
|
-
* 自定义 MediaServer 地址,当有值时,不再使用导航内的地址
|
|
2742
|
-
*/
|
|
2743
|
-
_msUrl?: string | undefined,
|
|
2744
|
-
/**
|
|
2745
|
-
* 请求超时时长
|
|
2746
|
-
*/
|
|
2747
|
-
_timeout?: number);
|
|
2748
|
-
/**
|
|
2749
|
-
* 是否需要嗅探
|
|
2750
|
-
* im 未连接,无 navi 数据时,不需要嗅探
|
|
2751
|
-
* 客户端手动配置 mediaServer 时,不需要嗅探
|
|
2752
|
-
* navi 数据中 detectionServer 为空时,不需要嗅探
|
|
2753
|
-
* navi 数据中 jwt 为空时,不需要嗅探
|
|
2754
|
-
* 在探测有效期内不需要嗅探
|
|
2755
|
-
* RCMediaService.detectorTime 为 0 时,代表未探测过,需要嗅探
|
|
2756
|
-
*/
|
|
2757
|
-
isNededDetector(): boolean;
|
|
2758
|
-
detectorMediaSever(): void;
|
|
2759
|
-
/**
|
|
2760
|
-
* 地址探测
|
|
2761
|
-
* RTC 初始化时检测是否可以拿到 navi,可以拿到开始嗅探
|
|
2762
|
-
* 拿不到等 IM 链接成功后,再回调中调用开始嗅探
|
|
2763
|
-
*/
|
|
2764
|
-
private _startDetector;
|
|
2765
|
-
/**
|
|
2766
|
-
* 清空 msList 列表,重新请求导航后需清空 msList 列表
|
|
2767
|
-
*/
|
|
2768
|
-
clearMSList(): void;
|
|
2769
|
-
getMsList(): string[];
|
|
2770
|
-
/**
|
|
2771
|
-
* _mslist 列表排序:[_clusterId, ping1DetectorUrl, 主域名, ping2DetectorUrl, ..., pingNDetectorUrl, 备用域名list ]
|
|
2772
|
-
* ping1 :ping 结果返回最快值
|
|
2773
|
-
*/
|
|
2774
|
-
private _sortMediaServiceList;
|
|
2775
|
-
/**
|
|
2776
|
-
* 配置 gzip 请求头和请求体
|
|
2777
|
-
*/
|
|
2778
|
-
private _openGzip;
|
|
2779
|
-
/**
|
|
2780
|
-
* 处理 request 成功的结果
|
|
2781
|
-
*/
|
|
2782
|
-
private _dealRequestSuccessResult;
|
|
2783
|
-
/**
|
|
2784
|
-
* 发送请求,请求发送若失败,会继续尝试使用后续可用地址直到无地址可用,此时认为请求失败
|
|
2785
|
-
* @param path
|
|
2786
|
-
* @param header
|
|
2787
|
-
* @param body
|
|
2788
|
-
*/
|
|
2789
|
-
private _request;
|
|
2790
|
-
/**
|
|
2791
|
-
* 资源协商接口,订阅、发布、变更资源均可以使用此接口。该接口通过 sdp 字段交换 SDP 信息,
|
|
2792
|
-
* 并通过 subscribeList 和 publishList 表明最终发布和订阅的资源。本端产出 offer,服务器产出 answer
|
|
2793
|
-
* 每次接口调用,都会全量覆盖发布和订阅的资源。
|
|
2794
|
-
* @param header
|
|
2795
|
-
* @param body
|
|
2796
|
-
*/
|
|
2797
|
-
exchange(headers: IRTCReqHeader, body: IExchangeReqBody, traceId: string, isNeedUpdateMsas?: boolean): Promise<{
|
|
2798
|
-
code: RCRTCCode;
|
|
2799
|
-
data?: IExchangeResponse | undefined;
|
|
2800
|
-
qualityMsList?: IMediaServerQualityData[] | undefined;
|
|
2801
|
-
}>;
|
|
2802
|
-
/**
|
|
2803
|
-
* 退出房间
|
|
2804
|
-
*/
|
|
2805
|
-
exit(headers: IRTCReqHeader): Promise<RCRTCCode>;
|
|
2806
|
-
/**
|
|
2807
|
-
* 观众端订阅主播资源
|
|
2808
|
-
*/
|
|
2809
|
-
broadcastSubscribe(headers: IRTCReqHeader, body: IBroadcastSubReqBody): Promise<{
|
|
2810
|
-
code: RCRTCCode;
|
|
2811
|
-
data?: IBroadcastSubRespBody | undefined;
|
|
2812
|
-
qualityMsList?: IMediaServerQualityData[] | undefined;
|
|
2813
|
-
}>;
|
|
2814
|
-
/**
|
|
2815
|
-
* 观众端退出订阅
|
|
2816
|
-
*/
|
|
2817
|
-
broadcastExit(headers: IRTCReqHeader): Promise<{
|
|
2818
|
-
code: RCRTCCode;
|
|
2819
|
-
}>;
|
|
2820
|
-
/**
|
|
2821
|
-
* 直播推流、自定义布局配置
|
|
2822
|
-
*/
|
|
2823
|
-
setMcuConfig(headers: IMCUReqHeaders, body: IMCUConfig | ISetEnableCDN): Promise<{
|
|
2824
|
-
code: RCRTCCode;
|
|
2825
|
-
res?: any;
|
|
2826
|
-
}>;
|
|
2827
|
-
/**
|
|
2828
|
-
* 房间内观众获取 CDN 资源信息、拉流地址
|
|
2829
|
-
*/
|
|
2830
|
-
getCDNResourceInfo(headers: ICDNPlayUrlReqHeaders, url: string, traceId: string): Promise<{
|
|
2831
|
-
code: RCRTCCode;
|
|
2832
|
-
res?: ICDNPlayUrlResponse;
|
|
2833
|
-
}>;
|
|
2834
|
-
}
|
|
2835
|
-
|
|
2836
|
-
declare enum RCCommandKind {
|
|
2837
|
-
/**
|
|
2838
|
-
* 发信令取消加入房间之前的资源
|
|
2839
|
-
*/
|
|
2840
|
-
UNPUBLISH_PREV = "UnpublishPrevCommand",
|
|
2841
|
-
/**
|
|
2842
|
-
* 拉取房间内数据
|
|
2843
|
-
*/
|
|
2844
|
-
PULL_RTCROOM_STATUS = "PullRTCRoomStatusCommand",
|
|
2845
|
-
/**
|
|
2846
|
-
* 加入房间
|
|
2847
|
-
*/
|
|
2848
|
-
JOINROOM = "JoinRoomCommand",
|
|
2935
|
+
JOINROOM = "JoinRoomCommand",
|
|
2849
2936
|
/**
|
|
2850
2937
|
* 解析远端资源数据
|
|
2851
2938
|
*/
|
|
@@ -2964,322 +3051,395 @@ declare class ReportMediaActionLogger {
|
|
|
2964
3051
|
recordQualityIceStatusData(iceCandidatePair: IRCCandidatePairStat, status: RTCIceConnectionState, time: number): void;
|
|
2965
3052
|
}
|
|
2966
3053
|
|
|
2967
|
-
declare class RCLocalMediaStream {
|
|
2968
|
-
readonly msid: string;
|
|
2969
|
-
readonly mediaStream: MediaStream;
|
|
2970
|
-
readonly tinyStream: MediaStream;
|
|
2971
|
-
readonly tag: string;
|
|
2972
|
-
constructor(msid: string);
|
|
2973
|
-
}
|
|
2974
|
-
|
|
2975
3054
|
/**
|
|
2976
|
-
*
|
|
3055
|
+
* RTC 消息类型常量
|
|
3056
|
+
* @private
|
|
2977
3057
|
*/
|
|
2978
|
-
declare enum
|
|
3058
|
+
declare enum RCRTCMessageType {
|
|
2979
3059
|
/**
|
|
2980
|
-
*
|
|
3060
|
+
* 增量资源发布消息
|
|
3061
|
+
* @deprecated
|
|
2981
3062
|
*/
|
|
2982
|
-
|
|
3063
|
+
PUBLISH = "RCRTC:PublishResource",
|
|
2983
3064
|
/**
|
|
2984
|
-
*
|
|
3065
|
+
* 增量资源取消发布消息
|
|
3066
|
+
* @deprecated
|
|
2985
3067
|
*/
|
|
2986
|
-
|
|
2987
|
-
}
|
|
2988
|
-
|
|
2989
|
-
interface IAudienceRoomEventListener extends IRCRTCTrackEventListener {
|
|
3068
|
+
UNPUBLISH = "RCRTC:UnpublishResource",
|
|
2990
3069
|
/**
|
|
2991
|
-
*
|
|
2992
|
-
* @
|
|
3070
|
+
* 增量资源状态变更消息
|
|
3071
|
+
* @deprecated
|
|
2993
3072
|
*/
|
|
2994
|
-
|
|
3073
|
+
MODIFY = "RCRTC:ModifyResource",
|
|
2995
3074
|
/**
|
|
2996
|
-
*
|
|
2997
|
-
* @param userIds 退出主播的 id 列表
|
|
3075
|
+
* 全量资源变更消息
|
|
2998
3076
|
*/
|
|
2999
|
-
|
|
3077
|
+
TOTAL_CONTENT_RESOURCE = "RCRTC:TotalContentResources",
|
|
3000
3078
|
/**
|
|
3001
|
-
*
|
|
3002
|
-
* @param tracks 新发布的合流音轨与视轨数据列表,包含新发布的 RCRemoteAudioTrack 与 RCRemoteVideoTrack 实例
|
|
3003
|
-
* @description
|
|
3004
|
-
* 当房间内某个主播第一次发布资源时触发
|
|
3079
|
+
* 房间人员变更
|
|
3005
3080
|
*/
|
|
3006
|
-
|
|
3081
|
+
STATE = "RCRTC:state",
|
|
3007
3082
|
/**
|
|
3008
|
-
*
|
|
3009
|
-
* @param tracks 被取消发布的合流音轨与视轨数据列表
|
|
3010
|
-
* @description
|
|
3011
|
-
* 当房间内全部主播退出房间时,SDK 内部会取消对资源的订阅,业务层仅需处理 UI 业务
|
|
3083
|
+
* 房间属性变更
|
|
3012
3084
|
*/
|
|
3013
|
-
|
|
3085
|
+
ROOM_NOTIFY = "RCRTC:RoomNtf",
|
|
3014
3086
|
/**
|
|
3015
|
-
*
|
|
3016
|
-
* @param tracks 主播新发布的音轨与视轨数据列表,包含新发布的 RCRemoteAudioTrack 与 RCRemoteVideoTrack 实例
|
|
3087
|
+
* 房间用户属性变更
|
|
3017
3088
|
*/
|
|
3018
|
-
|
|
3089
|
+
USER_NOTIFY = "RCRTC:UserNtf",
|
|
3019
3090
|
/**
|
|
3020
|
-
*
|
|
3021
|
-
* @param tracks 被主播取消发布的音轨与视轨数据列表
|
|
3022
|
-
* @description 当资源被取消发布时,SDK 内部会取消对相关资源的订阅,业务层仅需处理 UI 业务
|
|
3091
|
+
* 被服务踢出房间
|
|
3023
3092
|
*/
|
|
3024
|
-
|
|
3093
|
+
KICK = "RCRTC:kick",
|
|
3025
3094
|
/**
|
|
3026
|
-
*
|
|
3027
|
-
* @param audioTrack RCRemoteAudioTrack 类实例
|
|
3095
|
+
* 跨房间连麦 PK 请求消息
|
|
3028
3096
|
*/
|
|
3029
|
-
|
|
3030
|
-
/**
|
|
3031
|
-
* 房间主播禁用/启用视频
|
|
3032
|
-
* @param videoTrack RCRemoteVideoTrack 类实例对象
|
|
3033
|
-
*/
|
|
3034
|
-
onVideoMuteChange?(videoTrack: RCRemoteVideoTrack): void;
|
|
3097
|
+
PK_INVITE = "RCRTC:invite",
|
|
3035
3098
|
/**
|
|
3036
|
-
*
|
|
3099
|
+
* 连麦请求超时
|
|
3037
3100
|
*/
|
|
3038
|
-
|
|
3039
|
-
resolution: RCResolution;
|
|
3040
|
-
fps: RCFrameRate;
|
|
3041
|
-
}): void;
|
|
3101
|
+
PK_INVITE_TIMEOUT = "RCRTC:inviteTimeout",
|
|
3042
3102
|
/**
|
|
3043
|
-
*
|
|
3103
|
+
* 跨房间连麦 PK 取消请求消息
|
|
3044
3104
|
*/
|
|
3045
|
-
|
|
3105
|
+
PK_CANCEL_INVITE = "RCRTC:cancelInvite",
|
|
3046
3106
|
/**
|
|
3047
|
-
*
|
|
3107
|
+
* 跨房间连麦 PK 请求响应消息
|
|
3048
3108
|
*/
|
|
3049
|
-
|
|
3050
|
-
resolution: RCResolution;
|
|
3051
|
-
fps: RCFrameRate;
|
|
3052
|
-
}): void;
|
|
3053
|
-
}
|
|
3054
|
-
/**
|
|
3055
|
-
* 观众直播房间类
|
|
3056
|
-
* 处理:
|
|
3057
|
-
* 1、通知观众房间内 人员变更、资源变更
|
|
3058
|
-
* 2、观众订阅、取消订阅资源
|
|
3059
|
-
*/
|
|
3060
|
-
declare class RCAudienceLivingRoom {
|
|
3061
|
-
private readonly _context;
|
|
3062
|
-
private readonly _runtime;
|
|
3063
|
-
private readonly _initOptions;
|
|
3064
|
-
private readonly _roomId;
|
|
3065
|
-
private readonly _joinResData;
|
|
3066
|
-
readonly livingType: RCLivingType;
|
|
3067
|
-
protected readonly _clientSessionId: string;
|
|
3068
|
-
private readonly _service;
|
|
3109
|
+
PK_INVITE_ANSWER = "RCRTC:answerInvite",
|
|
3069
3110
|
/**
|
|
3070
|
-
*
|
|
3111
|
+
* 结束跨房间连麦 PK 消息
|
|
3071
3112
|
*/
|
|
3072
|
-
|
|
3113
|
+
PK_END = "RCRTC:endInvite",
|
|
3073
3114
|
/**
|
|
3074
|
-
*
|
|
3115
|
+
* 连麦的房间不再了或离线了,主直播房间会收到的消息通知
|
|
3075
3116
|
*/
|
|
3076
|
-
|
|
3117
|
+
OTHER_ROOM_OFFLINE = "RCRTC:otherRoomOffline",
|
|
3077
3118
|
/**
|
|
3078
|
-
*
|
|
3119
|
+
* 订阅、取消订阅动作成功
|
|
3079
3120
|
*/
|
|
3080
|
-
|
|
3121
|
+
ROOM_TASK_FINISH = "RCRTC:roomTaskFinish",
|
|
3081
3122
|
/**
|
|
3082
|
-
*
|
|
3123
|
+
* ASR 状态变更
|
|
3083
3124
|
*/
|
|
3084
|
-
|
|
3085
|
-
private _appListener;
|
|
3086
|
-
private readonly _pc;
|
|
3087
|
-
private _subscribedList;
|
|
3088
|
-
private _sessionId;
|
|
3089
|
-
private _destroyed;
|
|
3125
|
+
ASR_STATUS = "RCRTC:AsrStatus",
|
|
3090
3126
|
/**
|
|
3091
|
-
*
|
|
3127
|
+
* ASR SEI 变更
|
|
3092
3128
|
*/
|
|
3093
|
-
|
|
3129
|
+
ASR_SEI = "RCRTC:PublishSeiAi",
|
|
3094
3130
|
/**
|
|
3095
|
-
*
|
|
3131
|
+
* 会议总结开关状态变更
|
|
3096
3132
|
*/
|
|
3097
|
-
|
|
3133
|
+
SUMMARIZATION_STATUS = "RCRTC:Summarization"
|
|
3134
|
+
}
|
|
3135
|
+
|
|
3136
|
+
/**
|
|
3137
|
+
* 直播间类型
|
|
3138
|
+
*/
|
|
3139
|
+
declare enum RCLivingType {
|
|
3098
3140
|
/**
|
|
3099
|
-
*
|
|
3141
|
+
* 音视频直播
|
|
3100
3142
|
*/
|
|
3101
|
-
|
|
3102
|
-
private _isPulling;
|
|
3103
|
-
private _pullTime;
|
|
3104
|
-
private readonly _store;
|
|
3105
|
-
private _crtUserId;
|
|
3106
|
-
private readonly _reportMediaActionLogger;
|
|
3143
|
+
VIDEO = 0,
|
|
3107
3144
|
/**
|
|
3108
|
-
*
|
|
3145
|
+
* 音频直播
|
|
3109
3146
|
*/
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
}, livingType: RCLivingType, _clientSessionId?: string);
|
|
3116
|
-
private _startPull;
|
|
3147
|
+
AUDIO = 1
|
|
3148
|
+
}
|
|
3149
|
+
|
|
3150
|
+
declare type IOnRecvPKMsg = (msg: IReceivedMessage) => void;
|
|
3151
|
+
interface IRoomPKEventListener {
|
|
3117
3152
|
/**
|
|
3118
|
-
*
|
|
3153
|
+
* 收到连麦邀请
|
|
3119
3154
|
*/
|
|
3120
|
-
|
|
3121
|
-
protected _assertRoomDestroyed(): RCRTCCode | undefined;
|
|
3155
|
+
onRequestJoinOtherRoom: (info: IPKInviteInfo) => {};
|
|
3122
3156
|
/**
|
|
3123
|
-
*
|
|
3124
|
-
* @param roomId 数据对应的房间 Id
|
|
3125
|
-
* @param singalData 拉取到的数据
|
|
3126
|
-
* * key RC_ANCHOR_LIST value: 为主播 ID 集合
|
|
3127
|
-
* * key RC_RES_`userId` value: 为主播发布的资源
|
|
3128
|
-
* * key RC_RTC_SESSIONID value: sessionId
|
|
3129
|
-
* * key RC_CDN value: CDN 资源数据
|
|
3157
|
+
* 收到取消连麦邀请
|
|
3130
3158
|
*/
|
|
3131
|
-
|
|
3159
|
+
onCancelRequestOtherRoom: (info: IPKInviteInfo) => {};
|
|
3132
3160
|
/**
|
|
3133
|
-
*
|
|
3161
|
+
* 收到连麦 PK 请求响应结果
|
|
3134
3162
|
*/
|
|
3135
|
-
|
|
3136
|
-
private _handleNewJoinedAnchor;
|
|
3137
|
-
private _handleLeftedAnchor;
|
|
3163
|
+
onResponseJoinOtherRoom: (info: IPKInviteAnswerInfo) => {};
|
|
3138
3164
|
/**
|
|
3139
|
-
*
|
|
3165
|
+
* 收到 PK 结束
|
|
3140
3166
|
*/
|
|
3141
|
-
|
|
3167
|
+
onFinishOtherRoom: (info: IPKEndInfo) => {};
|
|
3168
|
+
}
|
|
3169
|
+
declare class RCLivingPKHandler {
|
|
3170
|
+
private _invoker;
|
|
3171
|
+
private _PKInfo;
|
|
3172
|
+
private readonly _context;
|
|
3173
|
+
private readonly _runtime;
|
|
3174
|
+
private readonly _service;
|
|
3175
|
+
private readonly _initOptions;
|
|
3142
3176
|
/**
|
|
3143
|
-
*
|
|
3177
|
+
* 主直播房间
|
|
3144
3178
|
*/
|
|
3145
|
-
private
|
|
3179
|
+
private readonly _mainLivingRoom;
|
|
3180
|
+
private readonly _registerPKMsgListener;
|
|
3146
3181
|
/**
|
|
3147
|
-
*
|
|
3182
|
+
* 加入 PK 房间回调
|
|
3148
3183
|
*/
|
|
3149
|
-
private
|
|
3184
|
+
private readonly _onJoinedPKRoom;
|
|
3185
|
+
protected readonly _clientSessionId?: string | undefined;
|
|
3150
3186
|
/**
|
|
3151
|
-
*
|
|
3187
|
+
* PK 邀请超时时间,默认 30s
|
|
3152
3188
|
*/
|
|
3153
|
-
private
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
*/
|
|
3157
|
-
private _diffAnchorResource;
|
|
3158
|
-
private _onUserUnpublish;
|
|
3159
|
-
private _callAppListener;
|
|
3160
|
-
/**
|
|
3161
|
-
* ice 断线后,尝试重新走 exchange
|
|
3162
|
-
*/
|
|
3163
|
-
private _reTryExchange;
|
|
3189
|
+
private readonly _inviteTimeout;
|
|
3190
|
+
private _appListener;
|
|
3191
|
+
private _mainRoomId;
|
|
3164
3192
|
/**
|
|
3165
|
-
*
|
|
3166
|
-
* @param subscribeList 订阅清单
|
|
3167
|
-
* @param publishedStreams 已发布流
|
|
3168
|
-
* @param iceRestart
|
|
3193
|
+
* 跨房间连麦加入的 PK 房间
|
|
3169
3194
|
*/
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
reqBody: IBroadcastSubReqBody;
|
|
3174
|
-
offer: RTCSessionDescriptionInit;
|
|
3175
|
-
dynamicBitrate: {
|
|
3176
|
-
min: number;
|
|
3177
|
-
max: number;
|
|
3178
|
-
};
|
|
3179
|
-
}>;
|
|
3180
|
-
private _subscribeHandle;
|
|
3195
|
+
private _joinedPKRooms;
|
|
3196
|
+
private readonly _logger;
|
|
3197
|
+
constructor(_invoker: Invoker, _PKInfo: IPKInfo, _context: RTCContext, _runtime: IRuntime, _service: RCMediaService, _initOptions: IRCRTCInitOptions,
|
|
3181
3198
|
/**
|
|
3182
|
-
*
|
|
3199
|
+
* 主直播房间
|
|
3183
3200
|
*/
|
|
3184
|
-
|
|
3185
|
-
private _getReqHeaders;
|
|
3186
|
-
private _exchangeHandle;
|
|
3187
|
-
private _dealSubscribeResult;
|
|
3201
|
+
_mainLivingRoom: RCLivingRoom, _registerPKMsgListener: (listener: IOnRecvPKMsg) => void,
|
|
3188
3202
|
/**
|
|
3189
|
-
*
|
|
3203
|
+
* 加入 PK 房间回调
|
|
3190
3204
|
*/
|
|
3191
|
-
|
|
3192
|
-
private
|
|
3193
|
-
private _updateSubListHandle;
|
|
3205
|
+
_onJoinedPKRoom: (roomId: string, traceId: string) => Promise<void>, _clientSessionId?: string | undefined);
|
|
3206
|
+
private _callAppListener;
|
|
3194
3207
|
/**
|
|
3195
|
-
*
|
|
3196
|
-
* @param newCDNUris 新的 cdn_uris 数据
|
|
3208
|
+
* 收到连麦邀请
|
|
3197
3209
|
*/
|
|
3198
|
-
private
|
|
3210
|
+
private _onInvite;
|
|
3199
3211
|
/**
|
|
3200
|
-
*
|
|
3201
|
-
* _CDNUris 无 url 时,说明未开启 CDN 推送
|
|
3202
|
-
* @returns CDNPlayUrl
|
|
3212
|
+
* 收到取消连麦
|
|
3203
3213
|
*/
|
|
3204
|
-
private
|
|
3214
|
+
private _onCancelInvite;
|
|
3215
|
+
private _onInviteTimeout;
|
|
3205
3216
|
/**
|
|
3206
|
-
*
|
|
3207
|
-
* @returns CDNPlayUrl
|
|
3217
|
+
* 收到响应连麦
|
|
3208
3218
|
*/
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
CDNPlayUrl?: string;
|
|
3212
|
-
}>;
|
|
3219
|
+
private _onInviteAnswer;
|
|
3220
|
+
private createLeaveOtherRoomCommand;
|
|
3213
3221
|
/**
|
|
3214
|
-
*
|
|
3215
|
-
* @param tracks
|
|
3222
|
+
* 收到连麦结束
|
|
3216
3223
|
*/
|
|
3217
|
-
|
|
3218
|
-
code: RCRTCCode;
|
|
3219
|
-
failedList?: ISubscribeAttr[];
|
|
3220
|
-
}>;
|
|
3221
|
-
private __unsubscribe;
|
|
3224
|
+
private _onPKEnd;
|
|
3222
3225
|
/**
|
|
3223
|
-
*
|
|
3224
|
-
* @param tracks
|
|
3226
|
+
* 处理跨房间连麦相关消息
|
|
3225
3227
|
*/
|
|
3226
|
-
|
|
3227
|
-
code: RCRTCCode;
|
|
3228
|
-
failedList?: ISubscribeAttr[];
|
|
3229
|
-
}>;
|
|
3228
|
+
private _onRecvPKMsg;
|
|
3230
3229
|
/**
|
|
3231
|
-
*
|
|
3232
|
-
* @private
|
|
3230
|
+
* 注册跨房间连麦监听事件
|
|
3233
3231
|
*/
|
|
3234
|
-
|
|
3232
|
+
registerRoomPKEventListener(listener: IRoomPKEventListener): void;
|
|
3235
3233
|
/**
|
|
3236
|
-
*
|
|
3237
|
-
* @param
|
|
3234
|
+
* 发起跨房间连麦请求
|
|
3235
|
+
* @param inviteeRoomId 被邀请者所处的房间 roomId
|
|
3236
|
+
* @param inviteeUserId 被邀请者 userId
|
|
3237
|
+
* @param options.autoMix 是否将本房间资源合并到被邀请者所处房间的 MCU 合流中
|
|
3238
|
+
* @param options.extra 拓展字段,可随邀请连麦消息透传给被邀请者
|
|
3238
3239
|
*/
|
|
3239
|
-
|
|
3240
|
+
requestJoinOtherRoom(inviteeRoomId: string, inviteeUserId: string, options?: IReqResPKOptions): Promise<{
|
|
3241
|
+
code: RCRTCCode | ErrorCode;
|
|
3242
|
+
}>;
|
|
3240
3243
|
/**
|
|
3241
|
-
*
|
|
3242
|
-
* @param
|
|
3244
|
+
* 取消跨房间连麦请求
|
|
3245
|
+
* @param inviteeRoomId 被邀请者所处的房间 roomId
|
|
3246
|
+
* @param inviteeUserId 被邀请者 userId
|
|
3247
|
+
* @param extra 附加信息,可随取消邀请连麦消息透传给被邀请者
|
|
3243
3248
|
*/
|
|
3244
|
-
|
|
3249
|
+
cancelRequestJoinOtherRoom(inviteeRoomId: string, inviteeUserId: string, extra?: string): Promise<{
|
|
3250
|
+
code: RCRTCCode | ErrorCode;
|
|
3251
|
+
}>;
|
|
3245
3252
|
/**
|
|
3246
|
-
*
|
|
3247
|
-
* @
|
|
3253
|
+
* 响应跨房间连麦请求
|
|
3254
|
+
* @param inviterRoomId 邀请者所处的房间 roomId
|
|
3255
|
+
* @param inviterUserId 邀请者 userId
|
|
3256
|
+
* @param agree 是否同意连麦
|
|
3257
|
+
* @param options.autoMix 是否将本房间资源合并到邀请者所处房间的 MCU 合流中
|
|
3258
|
+
* @param options.extra 附加信息,可随响应连麦消息透传给邀请者
|
|
3248
3259
|
*/
|
|
3249
|
-
|
|
3260
|
+
responseJoinOtherRoom(inviterRoomId: string, inviterUserId: string, agree: boolean, options?: IReqResPKOptions): Promise<{
|
|
3261
|
+
code: RCRTCCode | ErrorCode;
|
|
3262
|
+
}>;
|
|
3250
3263
|
/**
|
|
3251
|
-
*
|
|
3252
|
-
* @
|
|
3264
|
+
* 加入副直播房间
|
|
3265
|
+
* @roomId 副房间的 roomId
|
|
3253
3266
|
*/
|
|
3254
|
-
|
|
3267
|
+
joinOtherRoom(roomId: string): Promise<{
|
|
3268
|
+
code: RCRTCCode;
|
|
3269
|
+
room?: RCLivingRoom;
|
|
3270
|
+
userIds?: string[];
|
|
3271
|
+
tracks?: RCRemoteTrack[];
|
|
3272
|
+
CDNEnable?: boolean;
|
|
3273
|
+
}>;
|
|
3255
3274
|
/**
|
|
3256
|
-
*
|
|
3257
|
-
* @param
|
|
3258
|
-
* @param
|
|
3275
|
+
* 退出副房间
|
|
3276
|
+
* @param room 要退出的副房间的 room 实例
|
|
3277
|
+
* @param isQuitPK 是否要结束连麦
|
|
3259
3278
|
*/
|
|
3260
|
-
|
|
3261
|
-
|
|
3279
|
+
leaveOtherRoom(room: RCLivingRoom, isQuitPK?: boolean): Promise<{
|
|
3280
|
+
code: RCRTCCode;
|
|
3281
|
+
}>;
|
|
3262
3282
|
/**
|
|
3263
|
-
*
|
|
3264
|
-
* @param
|
|
3283
|
+
* 获取连麦信息
|
|
3284
|
+
* @param roomId 连麦房间的 roomId
|
|
3265
3285
|
*/
|
|
3266
|
-
|
|
3286
|
+
getPKInfo(roomId: string): {
|
|
3287
|
+
inviteSessionId: string;
|
|
3288
|
+
inviterRoomId: string;
|
|
3289
|
+
inviterUserId: string;
|
|
3290
|
+
inviterUserAutoMix?: boolean | undefined;
|
|
3291
|
+
inviteeRoomId: string;
|
|
3292
|
+
inviteeUserAutoMix?: boolean | undefined;
|
|
3293
|
+
};
|
|
3267
3294
|
/**
|
|
3268
|
-
*
|
|
3295
|
+
* 获取所有连麦信息
|
|
3269
3296
|
*/
|
|
3270
|
-
|
|
3297
|
+
getAllPKInfo(): IPKInfo;
|
|
3271
3298
|
/**
|
|
3272
|
-
*
|
|
3299
|
+
* 获取已加入的副房间
|
|
3273
3300
|
*/
|
|
3274
|
-
|
|
3301
|
+
getJoinedPKRooms(): {
|
|
3302
|
+
[roomId: string]: RCLivingRoom;
|
|
3303
|
+
};
|
|
3304
|
+
}
|
|
3305
|
+
|
|
3306
|
+
declare type ResourceMsgContent = {
|
|
3275
3307
|
/**
|
|
3276
|
-
*
|
|
3308
|
+
* 旧版本兼容参数,当收到非 `RTCMessageName.TOTAL_CONTENT_RESOURCE` 时:
|
|
3309
|
+
* * ignore 值为 `true` 表示该消息由 signal server 向旧版本 RTCLib 提供的兼容消息,无需处理
|
|
3310
|
+
* * 否则认为该消息是由旧版本 RTCLib 主动发出的增量变更消息,需要处理
|
|
3277
3311
|
*/
|
|
3278
|
-
|
|
3312
|
+
ignore?: boolean;
|
|
3279
3313
|
/**
|
|
3280
|
-
*
|
|
3314
|
+
* 发布到房间内的资源列表,`RTCMessageName.TOTAL_CONTENT_RESOURCE` 消息携带全量数据,否则为增量数据
|
|
3315
|
+
*/
|
|
3316
|
+
uris: IPublishedResource[];
|
|
3317
|
+
cdn_uris?: ICDNUris[];
|
|
3318
|
+
};
|
|
3319
|
+
|
|
3320
|
+
/**
|
|
3321
|
+
* 房间抽象基类
|
|
3322
|
+
*/
|
|
3323
|
+
declare abstract class RCAbstractRoom extends EventEmitter {
|
|
3324
|
+
protected readonly _context: RTCContext;
|
|
3325
|
+
protected readonly _runtime: IRuntime;
|
|
3326
|
+
readonly _roomId: string;
|
|
3327
|
+
protected readonly _service: RCMediaService;
|
|
3328
|
+
protected readonly _initOptions: IRCRTCInitOptions;
|
|
3329
|
+
protected readonly _clientSessionId: string;
|
|
3330
|
+
/**
|
|
3331
|
+
* 房间保活 rtcPing
|
|
3332
|
+
*/
|
|
3333
|
+
private readonly _pinger;
|
|
3334
|
+
/**
|
|
3335
|
+
* 北极星上报实例
|
|
3336
|
+
*/
|
|
3337
|
+
protected readonly _polarisReport: PolarisReporter;
|
|
3338
|
+
/**
|
|
3339
|
+
* 音量上报实例
|
|
3340
|
+
*/
|
|
3341
|
+
private readonly _audioLevelReport;
|
|
3342
|
+
protected readonly _peerConnection: RCRTCPeerConnection;
|
|
3343
|
+
protected readonly _invoker: Invoker;
|
|
3344
|
+
protected readonly _store: ReadableStore;
|
|
3345
|
+
private readonly _reportMediaActionLogger;
|
|
3346
|
+
protected readonly _logger: BasicLogger;
|
|
3347
|
+
protected readonly _executeCtx: CommandExecuteContext;
|
|
3348
|
+
/**
|
|
3349
|
+
* RCRTCRoom 类的构造函数。
|
|
3350
|
+
* @param {RTCContext} _context - RTC上下文,
|
|
3351
|
+
* @param {IRuntime} _runtime - 运行时
|
|
3352
|
+
* @param {string} _roomId - 房间号
|
|
3353
|
+
* @param {RTCMode} _roomMode - RTC模式,
|
|
3354
|
+
* @param {RCMediaService} _service - RCMediaService
|
|
3355
|
+
* @param {IRCRTCInitOptions} _initOptions - IRCRTCInitOptions
|
|
3356
|
+
* @param {boolean} [isUpgrade] - 是否是升级,如果是升级则不会创建新的peerConnection
|
|
3357
|
+
* @param {boolean} [isMainRoom] - 无论是主房间,主房间都是用户创建的房间,子房间是用户创建的房间。
|
|
3358
|
+
* @param {string} _clientSessionId - 客户端会话 ID,用于标识客户端。
|
|
3359
|
+
*/
|
|
3360
|
+
constructor(_context: RTCContext, _runtime: IRuntime, _roomId: string, _roomMode: RTCMode, _service: RCMediaService, _initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean, _clientSessionId?: string, encrypt?: boolean);
|
|
3361
|
+
/**
|
|
3362
|
+
* 注册 RCRTCPeerConnection 事件监听器
|
|
3363
|
+
*/
|
|
3364
|
+
private _setPeerConnectionListener;
|
|
3365
|
+
/** 注册命令执行中的事件监听器 */
|
|
3366
|
+
private setCommandEventListener;
|
|
3367
|
+
/**
|
|
3368
|
+
* 拉取房间数据
|
|
3369
|
+
* @param roomId 房间 id
|
|
3370
|
+
*/
|
|
3371
|
+
private _startPullRTCRoomStatus;
|
|
3372
|
+
/**
|
|
3373
|
+
* @private
|
|
3374
|
+
*/
|
|
3375
|
+
__innerInit(mode: RTCMode, joinType?: RTCJoinType, livingType?: RCLivingType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData, traceId?: string, nickName?: string): Promise<{
|
|
3376
|
+
code: RCRTCCode | ErrorCode;
|
|
3377
|
+
data?: IJoinRTCRoomData;
|
|
3378
|
+
}>;
|
|
3379
|
+
protected _initWithRoomData(offlineKickTime: number): void;
|
|
3380
|
+
private _handlePingResult;
|
|
3381
|
+
/**
|
|
3382
|
+
* 设置房间上行资源的总码率配置
|
|
3383
|
+
* @deprecated use RCLocalTrack.setBitrate instead of setBitrate
|
|
3384
|
+
* @description
|
|
3385
|
+
* * 自 v5.1.0 版本开始,推荐使用 `RCLocalTrack.setBitrate` 对不同流分别指定码率。
|
|
3386
|
+
* * 该方法仅在 SDP `plan-b` 协议下(Chrome 92 与 Safari 11 之前的版本)有效。
|
|
3387
|
+
* @param max 音视频发送码率上限,不可小于 200 且不可小于 `min`
|
|
3388
|
+
* @param min 音视频发送码率下限,默认值为 1,且不可小于 1,不可大于 `max`
|
|
3389
|
+
* @param start 起始码率,默认为码率上限的 70%
|
|
3390
|
+
*/
|
|
3391
|
+
setBitrate(max: number, min: number, start?: number): void;
|
|
3392
|
+
private _onTrackReady;
|
|
3393
|
+
protected _callAppListener(eventType: keyof IRoomEventListener, ...attrs: any[]): void;
|
|
3394
|
+
private _onTrackUnpublish;
|
|
3395
|
+
/**
|
|
3396
|
+
* @private
|
|
3397
|
+
*/
|
|
3398
|
+
__parseInnerMessage(message: IReceivedMessage, traceId: string): void;
|
|
3399
|
+
/**
|
|
3400
|
+
* 被踢出房间通知
|
|
3401
|
+
* @param byServer
|
|
3402
|
+
* * 当值为 false 时,说明本端 rtcPing 超时
|
|
3403
|
+
* * 当值为 true 时,说明本端收到被踢出房间通知
|
|
3404
|
+
* @private
|
|
3405
|
+
*/
|
|
3406
|
+
__kickoff(byServer: boolean, content?: IRCRTCKickContent): Promise<void>;
|
|
3407
|
+
private _rtcpeerClosed;
|
|
3408
|
+
private _onReceiveAsrSeiContent;
|
|
3409
|
+
/**
|
|
3410
|
+
* 处理资源变更事件
|
|
3411
|
+
* @param content
|
|
3412
|
+
* @param messageType 消息类型
|
|
3413
|
+
* @param userId 消息发送者
|
|
3414
|
+
*/
|
|
3415
|
+
protected _resourceHandle(content: ResourceMsgContent, messageType: RCRTCMessageType.PUBLISH | RCRTCMessageType.UNPUBLISH | RCRTCMessageType.MODIFY | RCRTCMessageType.TOTAL_CONTENT_RESOURCE, userId: string, sentTime: number, traceId: string): Promise<void>;
|
|
3416
|
+
private _onTrackPublish;
|
|
3417
|
+
/**
|
|
3418
|
+
* 处理 `RCRTCMessageType.STATE` 消息
|
|
3419
|
+
* @param content
|
|
3420
|
+
*/
|
|
3421
|
+
private _stateHandle;
|
|
3422
|
+
/**
|
|
3423
|
+
* 处理人员应用层事件
|
|
3424
|
+
*/
|
|
3425
|
+
private _dealUserAppListener;
|
|
3426
|
+
/**
|
|
3427
|
+
* 获取房间 Id
|
|
3428
|
+
*/
|
|
3429
|
+
getRoomId(): string;
|
|
3430
|
+
/**
|
|
3431
|
+
* 获取当前 userId
|
|
3432
|
+
*/
|
|
3433
|
+
getCrtUserId(): string;
|
|
3434
|
+
/**
|
|
3435
|
+
* 获取远程用户列表,不包含当前用户
|
|
3281
3436
|
*/
|
|
3282
3437
|
getRemoteUserIds(): string[];
|
|
3438
|
+
/**
|
|
3439
|
+
* 获取所有房间已发布的远端资源列表
|
|
3440
|
+
* @returns
|
|
3441
|
+
*/
|
|
3442
|
+
getRemoteTracks(): RCRemoteTrack[];
|
|
3283
3443
|
/**
|
|
3284
3444
|
* 获取远端用户的资源列表
|
|
3285
3445
|
* @param userId
|
|
@@ -3287,1001 +3447,1203 @@ declare class RCAudienceLivingRoom {
|
|
|
3287
3447
|
*/
|
|
3288
3448
|
getRemoteTracksByUserId(userId: string): RCRemoteTrack[];
|
|
3289
3449
|
/**
|
|
3290
|
-
*
|
|
3450
|
+
* 获取房间当前会话 Id,当房间内已无成员时房间会回收,重新加入时 sessionId 将更新
|
|
3451
|
+
*/
|
|
3452
|
+
getSessionId(): string;
|
|
3453
|
+
/**
|
|
3454
|
+
* 向房间内发消息
|
|
3455
|
+
* @param name 消息名称
|
|
3456
|
+
* @param content 消息内容
|
|
3457
|
+
*/
|
|
3458
|
+
sendMessage(name: string, content: any): Promise<{
|
|
3459
|
+
code: RCRTCCode;
|
|
3460
|
+
}>;
|
|
3461
|
+
/**
|
|
3462
|
+
* 设置房间属性
|
|
3463
|
+
* @param key 属性名
|
|
3464
|
+
* @param value 属性值
|
|
3465
|
+
* @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息
|
|
3466
|
+
* @param isInner RTC 业务内部使用参数,用户忽略
|
|
3467
|
+
*/
|
|
3468
|
+
setRoomAttribute(key: string, value: string, message?: {
|
|
3469
|
+
name: string;
|
|
3470
|
+
content: string;
|
|
3471
|
+
}, isInner?: boolean): Promise<{
|
|
3472
|
+
code: RCRTCCode;
|
|
3473
|
+
}>;
|
|
3474
|
+
/**
|
|
3475
|
+
* 删除房间属性
|
|
3476
|
+
* @param keys 待删除的属性名数组
|
|
3477
|
+
* @param message 是否在删除属性的时候携带消息内容,传空则不往房间中发送消息
|
|
3478
|
+
* @param isInner RTC 业务内部使用参数,用户忽略
|
|
3479
|
+
*/
|
|
3480
|
+
deleteRoomAttributes(keys: string[], message?: {
|
|
3481
|
+
name: string;
|
|
3482
|
+
content: string;
|
|
3483
|
+
}, isInner?: boolean): Promise<{
|
|
3484
|
+
code: RCRTCCode;
|
|
3485
|
+
}>;
|
|
3486
|
+
/**
|
|
3487
|
+
* 获取房间属性
|
|
3488
|
+
* @param keys 要查询的属性名数组,当数组长度为空时,取所有已设置的 kv 值
|
|
3489
|
+
* @param isInner RTC 业务内部使用参数,用户忽略
|
|
3490
|
+
*/
|
|
3491
|
+
getRoomAttributes(keys?: string[], isInner?: boolean): Promise<{
|
|
3492
|
+
code: RCRTCCode;
|
|
3493
|
+
data?: KVString;
|
|
3494
|
+
}>;
|
|
3495
|
+
/**
|
|
3496
|
+
* 设置当前用户属性(暂不开放)
|
|
3497
|
+
* @param key 属性名
|
|
3498
|
+
* @param value 属性值
|
|
3499
|
+
* @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息
|
|
3500
|
+
*/
|
|
3501
|
+
private _setUserAttributeValue;
|
|
3502
|
+
/**
|
|
3503
|
+
* 删除当前用户属性(暂不开放)
|
|
3504
|
+
* @param keys 待删除的属性名数组
|
|
3505
|
+
* @param message 是否在删除属性的时候携带消息内容,传空则不往房间中发送消息
|
|
3506
|
+
*/
|
|
3507
|
+
private _deleteUserAttributes;
|
|
3508
|
+
/**
|
|
3509
|
+
* 获取当前用户属性(暂不开放)
|
|
3510
|
+
* @param keys 要查询的属性名数组
|
|
3511
|
+
*/
|
|
3512
|
+
private _getUserAttributes;
|
|
3513
|
+
/**
|
|
3514
|
+
* 查询房间是否已销毁
|
|
3515
|
+
*/
|
|
3516
|
+
isDestroyed(): boolean;
|
|
3517
|
+
/**
|
|
3518
|
+
* 退出并销毁当前房间实例,退出后该房间的所有方法将不可用
|
|
3519
|
+
* @private
|
|
3520
|
+
*/
|
|
3521
|
+
__destroy(quitRoom: boolean): Promise<void>;
|
|
3522
|
+
/**
|
|
3523
|
+
* 退出房间之前禁用所有远端资源,避免退出动作耗时过长,
|
|
3524
|
+
* 导致在未完全退出的过程中仍能听到房间内的声音问题
|
|
3525
|
+
*/
|
|
3526
|
+
private _muteRemoteTracksBeforeQuit;
|
|
3527
|
+
private _leaveHandle;
|
|
3528
|
+
/**
|
|
3529
|
+
* 释放 PCManager 上的资源
|
|
3530
|
+
*/
|
|
3531
|
+
private _releasePCManager;
|
|
3532
|
+
private _onLocalTrackDestroied;
|
|
3533
|
+
/**
|
|
3534
|
+
* 本端流状态修改,需通知房间内其他成员
|
|
3535
|
+
* @param localTrack
|
|
3536
|
+
*/
|
|
3537
|
+
private _onLocalTrackMuted;
|
|
3538
|
+
/**
|
|
3539
|
+
* 增量发布资源,若发布的资源 tag 及媒体类型重复,后者将覆盖前者进行发布。
|
|
3540
|
+
* @param tracks 待发布的 RCLocalTrack 实例
|
|
3291
3541
|
* @returns
|
|
3292
3542
|
*/
|
|
3293
|
-
|
|
3543
|
+
publish(tracks: (RCLocalTrack | IPublishAttrs)[]): Promise<IPubSuccessRes>;
|
|
3294
3544
|
/**
|
|
3295
|
-
*
|
|
3545
|
+
* 获取跨房间连麦需携带参数 pushOtherRooms 的值
|
|
3296
3546
|
*/
|
|
3297
|
-
|
|
3547
|
+
protected _getPushOtherRoomsParams(): IPushOtherRooms[];
|
|
3298
3548
|
/**
|
|
3299
|
-
*
|
|
3549
|
+
* ice 断线后,尝试重新走 exchange
|
|
3300
3550
|
*/
|
|
3301
|
-
|
|
3551
|
+
protected _reTryExchange(): Promise<ICommandResult<void>>;
|
|
3302
3552
|
/**
|
|
3303
|
-
*
|
|
3553
|
+
* 增量取消资源发布,若相应资源中存在小流资源,则同时取消发布
|
|
3554
|
+
* @param tracks 取消发布的 RCLocalTrack 列表
|
|
3304
3555
|
*/
|
|
3305
|
-
|
|
3306
|
-
resolution: RCResolution;
|
|
3307
|
-
fps: RCFrameRate;
|
|
3308
|
-
CDNEnable: boolean | undefined;
|
|
3309
|
-
} | {
|
|
3310
|
-
CDNEnable: boolean;
|
|
3311
|
-
resolution?: undefined;
|
|
3312
|
-
fps?: undefined;
|
|
3313
|
-
};
|
|
3314
|
-
getClientSessionId(): string;
|
|
3315
|
-
}
|
|
3316
|
-
|
|
3317
|
-
/**
|
|
3318
|
-
* 北极星上报角色
|
|
3319
|
-
*/
|
|
3320
|
-
declare enum PolarisRole {
|
|
3556
|
+
unpublish(tracks: RCLocalTrack[]): Promise<IPubSuccessRes>;
|
|
3321
3557
|
/**
|
|
3322
|
-
*
|
|
3558
|
+
* resourceId 有效性验证
|
|
3559
|
+
* @param resourceId
|
|
3323
3560
|
*/
|
|
3324
|
-
|
|
3561
|
+
protected _isValidResourceId(resourceId: string): boolean;
|
|
3325
3562
|
/**
|
|
3326
|
-
*
|
|
3563
|
+
* 订阅资源
|
|
3564
|
+
* @param tracks
|
|
3327
3565
|
*/
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
private readonly _context;
|
|
3333
|
-
private readonly _runtime;
|
|
3334
|
-
private readonly _roomId;
|
|
3335
|
-
private readonly _crtRTCRoom;
|
|
3336
|
-
private readonly _userRole;
|
|
3337
|
-
constructor(_context: RTCContext, _runtime: IRuntime, _roomId: string, _crtRTCRoom: RCAbstractRoom | RCAudienceLivingRoom, _userRole?: PolarisRole);
|
|
3338
|
-
private _send;
|
|
3339
|
-
private _getClientID;
|
|
3566
|
+
subscribe(tracks: (RCRemoteTrack | ISubscribeAttr)[]): Promise<{
|
|
3567
|
+
code: RCRTCCode;
|
|
3568
|
+
failedList?: ISubscribeAttr[];
|
|
3569
|
+
}>;
|
|
3340
3570
|
/**
|
|
3341
|
-
*
|
|
3571
|
+
* 取消订阅资源
|
|
3572
|
+
* @param tracks 预取消远端资源
|
|
3342
3573
|
*/
|
|
3343
|
-
|
|
3574
|
+
unsubscribe(tracks: RCRemoteTrack[]): Promise<{
|
|
3575
|
+
code: RCRTCCode;
|
|
3576
|
+
failedList?: ISubscribeAttr[];
|
|
3577
|
+
}>;
|
|
3344
3578
|
/**
|
|
3345
|
-
*
|
|
3346
|
-
*
|
|
3579
|
+
* 强制修改订阅列表,仅订阅数组中的资源,取消订阅其他已订阅资源。
|
|
3580
|
+
* 当参数为 `[]` 时,意味着不再订阅任何资源
|
|
3581
|
+
* @param tracks 变更的资源列表
|
|
3347
3582
|
*/
|
|
3348
|
-
|
|
3583
|
+
updateSubList(tracks: (RCRemoteTrack | ISubscribeAttr)[]): Promise<{
|
|
3584
|
+
code: RCRTCCode;
|
|
3585
|
+
failedList?: ISubscribeAttr[];
|
|
3586
|
+
}>;
|
|
3349
3587
|
/**
|
|
3350
|
-
*
|
|
3588
|
+
* 获取已发布的本地资源
|
|
3589
|
+
* @param trackId
|
|
3590
|
+
* @returns
|
|
3351
3591
|
*/
|
|
3352
|
-
|
|
3353
|
-
private _getAudioLevel;
|
|
3354
|
-
private _getBitrate;
|
|
3355
|
-
private _getPacketsLostRate;
|
|
3356
|
-
private _getFrameRate;
|
|
3357
|
-
private _getResolution;
|
|
3358
|
-
private _getJitter;
|
|
3359
|
-
private _getNackCount;
|
|
3360
|
-
private _getPliCount;
|
|
3361
|
-
private _getRTT;
|
|
3362
|
-
private _getTrackState;
|
|
3592
|
+
getLocalTrack(trackId: string): RCLocalTrack | null;
|
|
3363
3593
|
/**
|
|
3364
|
-
*
|
|
3365
|
-
|
|
3594
|
+
* 获取所有已发布的资源
|
|
3595
|
+
*/
|
|
3596
|
+
getLocalTracks(): RCLocalTrack[];
|
|
3597
|
+
/**
|
|
3598
|
+
* 根据 trackId 获取房间内的远端资源
|
|
3599
|
+
* @param trackId
|
|
3600
|
+
* @returns
|
|
3601
|
+
*/
|
|
3602
|
+
getRemoteTrack(trackId: string): RCRemoteAudioTrack | RCRemoteVideoTrack | null;
|
|
3603
|
+
/**
|
|
3604
|
+
* 获取当前已经订阅的全量资源
|
|
3605
|
+
* returns subscribedTracks ISubscribeAttr[]
|
|
3606
|
+
*/
|
|
3607
|
+
get subscribedTracks(): ISubscribeAttr[];
|
|
3608
|
+
private _appListener;
|
|
3609
|
+
/**
|
|
3610
|
+
* 注册事件监听器,多次注册会导致后者覆盖前者,可以通过使用 `registerRoomEventListener(null)` 取消注册
|
|
3611
|
+
* @param listener
|
|
3612
|
+
*/
|
|
3613
|
+
registerRoomEventListener(listener: IRoomEventListener | null): void;
|
|
3614
|
+
/**
|
|
3615
|
+
* 注册房间数据监控
|
|
3616
|
+
* @param listener
|
|
3617
|
+
* @description 该方法暂仅支持 Chrome 浏览器
|
|
3618
|
+
*/
|
|
3619
|
+
registerReportListener(listener: IRCRTCReportListener | null): void;
|
|
3620
|
+
/**
|
|
3621
|
+
* 音量上报
|
|
3622
|
+
* @param handler 音量事件监听函数
|
|
3623
|
+
* @param _ - 参数已废弃,SDK 默认以每秒一次进行回调~~上报时间间隔~~
|
|
3624
|
+
*/
|
|
3625
|
+
onAudioLevelChange(handler: IAudioLevelChangeHandler | null, _?: number): void;
|
|
3626
|
+
/**
|
|
3627
|
+
* 断线重连后尝试补发断线过程中的通知信息
|
|
3366
3628
|
*/
|
|
3367
|
-
sendR3Data(data: IInnerRCRTCStateReport): Promise<RCSendCode>;
|
|
3368
3629
|
/**
|
|
3369
|
-
*
|
|
3370
|
-
* @param
|
|
3630
|
+
* @private
|
|
3631
|
+
* @param livingType
|
|
3371
3632
|
*/
|
|
3372
|
-
|
|
3633
|
+
__onReconnected(livingType?: RCLivingType): void;
|
|
3634
|
+
private _onAudioMuteChange;
|
|
3635
|
+
private _onVideoMuteChange;
|
|
3373
3636
|
/**
|
|
3374
|
-
*
|
|
3637
|
+
* 存储连麦监听事件
|
|
3375
3638
|
*/
|
|
3376
|
-
|
|
3639
|
+
private _onRecvPKMsg;
|
|
3377
3640
|
/**
|
|
3378
|
-
*
|
|
3379
|
-
* RTC 订阅、取消订阅
|
|
3641
|
+
* 注册 PK 业务监听方法
|
|
3380
3642
|
*/
|
|
3381
|
-
|
|
3382
|
-
}
|
|
3383
|
-
|
|
3384
|
-
/**
|
|
3385
|
-
* PC 实例管理类
|
|
3386
|
-
*/
|
|
3387
|
-
declare class RCRTCPeerConnection extends EventEmitter {
|
|
3388
|
-
private _logger;
|
|
3643
|
+
protected _registerPKMsgListener(listener: IOnRecvPKMsg | null): void;
|
|
3389
3644
|
/**
|
|
3390
|
-
*
|
|
3645
|
+
* 退出 PK 房间
|
|
3391
3646
|
*/
|
|
3392
|
-
|
|
3647
|
+
protected _quitAllPKRoom(): Promise<void>;
|
|
3648
|
+
getClientSessionId(): string;
|
|
3393
3649
|
/**
|
|
3394
|
-
*
|
|
3650
|
+
* 切换已发布视频或音频的媒体设备
|
|
3651
|
+
* @param oldTrack 已经发布的视频轨道或音频轨道
|
|
3652
|
+
* @param newTrack 从新设备获取的视频轨道或音频轨道
|
|
3653
|
+
* @returns code 切换结果,RCRTCCode.SUCCESS 表示切换成功
|
|
3395
3654
|
*/
|
|
3396
|
-
|
|
3655
|
+
changeMediaDevice(oldTrack: RCCameraVideoTrack | RCMicphoneAudioTrack, newTrack: RCCameraVideoTrack | RCMicphoneAudioTrack): Promise<{
|
|
3656
|
+
code: RCRTCCode;
|
|
3657
|
+
}>;
|
|
3397
3658
|
/**
|
|
3398
|
-
*
|
|
3659
|
+
* 设置输入语言代码,用于语音识别精准识别
|
|
3660
|
+
* @param srcLanguage 语言代码
|
|
3661
|
+
* @description 需要在 `setEnableASR` 开启语音识别接口之前调用
|
|
3662
|
+
* @return
|
|
3399
3663
|
*/
|
|
3400
|
-
|
|
3664
|
+
setSrcLanguageCode(srcLanguage: string): Promise<ICommandResult<unknown>>;
|
|
3401
3665
|
/**
|
|
3402
|
-
*
|
|
3666
|
+
* 开启房间内的语音识别服务
|
|
3667
|
+
* @description 语音识别功能依赖房间内的音频流,开启后且房间内有音频流,会通过 `onReceiveStartASR` 通知业务层,代表真正开启成功
|
|
3668
|
+
* @returns
|
|
3403
3669
|
*/
|
|
3404
|
-
|
|
3670
|
+
startASR(): Promise<{
|
|
3671
|
+
code: RCRTCCode;
|
|
3672
|
+
}>;
|
|
3405
3673
|
/**
|
|
3406
|
-
*
|
|
3674
|
+
* 关闭房间内的语音识别服务
|
|
3675
|
+
* @returns
|
|
3407
3676
|
*/
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
static __INNER_ICE_STATE_CHANGE__: string;
|
|
3412
|
-
static __INNER_ICE_CONNECTED__: string;
|
|
3413
|
-
private readonly _rtcPeerConn;
|
|
3414
|
-
private readonly _sdpStrategy;
|
|
3415
|
-
reportParser: IStatParser | null;
|
|
3416
|
-
private pubLocalTracks;
|
|
3417
|
-
private _reTryExchangeTimer;
|
|
3418
|
-
private _reportStatsTimer;
|
|
3419
|
-
private _reportR3R4ToPolarisTimer;
|
|
3420
|
-
private _isDestroyed;
|
|
3421
|
-
private _formatStatsData?;
|
|
3422
|
-
constructor(_logger: BasicLogger,
|
|
3677
|
+
stopASR(): Promise<{
|
|
3678
|
+
code: RCRTCCode;
|
|
3679
|
+
}>;
|
|
3423
3680
|
/**
|
|
3424
|
-
*
|
|
3681
|
+
* 是否有语音识别资源
|
|
3682
|
+
* @returns
|
|
3425
3683
|
*/
|
|
3426
|
-
|
|
3684
|
+
asrIsAvailable(): boolean;
|
|
3427
3685
|
/**
|
|
3428
|
-
*
|
|
3686
|
+
* 设置房间内的语音识别资源是否可用
|
|
3687
|
+
* @param enable 为 ture 时,sdk 会获取语音识别资源并解析,通过房间监听事件 `onReceiveASRContent` 事件,抛出语音识别内容
|
|
3688
|
+
* @description
|
|
3689
|
+
* @returns
|
|
3429
3690
|
*/
|
|
3430
|
-
|
|
3691
|
+
setEnableASR(enable: boolean): Promise<{
|
|
3692
|
+
code: RCRTCCode;
|
|
3693
|
+
}>;
|
|
3431
3694
|
/**
|
|
3432
|
-
*
|
|
3695
|
+
* 开启语音实时翻译
|
|
3696
|
+
* @param destLangCode 翻译的目标语言
|
|
3697
|
+
* @description 执行时机:需在房间监听事件 `onReceiveStartASR` 中执行。
|
|
3698
|
+
* @description 执行条件:房间内语音识别资源被设置为可用
|
|
3699
|
+
* @returns
|
|
3433
3700
|
*/
|
|
3434
|
-
|
|
3701
|
+
startRealtimeTranslation(destLangCode: string): Promise<{
|
|
3702
|
+
code: RCRTCCode;
|
|
3703
|
+
}>;
|
|
3435
3704
|
/**
|
|
3436
|
-
*
|
|
3705
|
+
* 关闭语音实时翻译
|
|
3706
|
+
* @returns
|
|
3437
3707
|
*/
|
|
3438
|
-
|
|
3708
|
+
stopRealtimeTranslation(): Promise<{
|
|
3709
|
+
code: RCRTCCode;
|
|
3710
|
+
}>;
|
|
3439
3711
|
/**
|
|
3440
|
-
*
|
|
3712
|
+
* 开始智能总结
|
|
3713
|
+
*
|
|
3714
|
+
* @description 执行时机:需在房间监听事件 `onReceiveStartASR` 中执行。
|
|
3715
|
+
*
|
|
3716
|
+
* @discussion
|
|
3717
|
+
1. 智能总结任务依赖语音识别服务
|
|
3718
|
+
2. 开始智能总结任务为房间级别接口,房间内开始智能总结任务,房间内其他人通过 IRoomEventListener 的 onReceiveStartSummarization 收到通知,并携带任务 Id
|
|
3719
|
+
3. 智能总结任务开始后,房间内的语音识别内容会被用于智能总结生成文本内容
|
|
3720
|
+
4. 智能总结任务开始后,可通过 stopSummarization 接口关闭
|
|
3721
|
+
*
|
|
3722
|
+
* @returns taskId 智能总结任务 Id
|
|
3723
|
+
*/
|
|
3724
|
+
startSummarization(): Promise<{
|
|
3725
|
+
code: RCRTCCode;
|
|
3726
|
+
taskId?: string;
|
|
3727
|
+
}>;
|
|
3728
|
+
/**
|
|
3729
|
+
* 关闭智能总结
|
|
3730
|
+
*
|
|
3731
|
+
* @discussion
|
|
3732
|
+
1. 关闭智能总结任务为房间级别接口,房间内关闭智能总结任务,房间内其他人通过 IRoomEventListener 的 onReceiveStopSummarization 收到通知
|
|
3733
|
+
* @returns
|
|
3441
3734
|
*/
|
|
3442
|
-
|
|
3735
|
+
stopSummarization(): Promise<{
|
|
3736
|
+
code: RCRTCCode;
|
|
3737
|
+
}>;
|
|
3443
3738
|
/**
|
|
3444
|
-
*
|
|
3739
|
+
* 获取智能总结状态数据
|
|
3740
|
+
* @returns ISummarizationStatusData.status 智能总结开关状态
|
|
3741
|
+
* @returns ISummarizationStatusData.taskId 智能总结任务 Id
|
|
3445
3742
|
*/
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3743
|
+
getSummarizationStatusData(): ISummarizationStatusData | null;
|
|
3744
|
+
}
|
|
3745
|
+
|
|
3746
|
+
declare class RCLocalMediaStream {
|
|
3747
|
+
readonly msid: string;
|
|
3748
|
+
readonly mediaStream: MediaStream;
|
|
3749
|
+
readonly tinyStream: MediaStream;
|
|
3750
|
+
readonly tag: string;
|
|
3751
|
+
constructor(msid: string);
|
|
3752
|
+
}
|
|
3753
|
+
|
|
3754
|
+
interface IAudienceRoomEventListener extends IRCRTCTrackEventListener {
|
|
3455
3755
|
/**
|
|
3456
|
-
*
|
|
3756
|
+
* 主播加入
|
|
3757
|
+
* @param userIds 加入主播的 id 列表
|
|
3457
3758
|
*/
|
|
3458
|
-
|
|
3759
|
+
onAnchorJoin?(userId: string[]): void;
|
|
3459
3760
|
/**
|
|
3460
|
-
*
|
|
3461
|
-
* @param
|
|
3462
|
-
* @returns 具有两个属性的对象:
|
|
3463
|
-
* - sdp:SDP 字符串
|
|
3464
|
-
* - 语义:SDP 语义
|
|
3761
|
+
* 主播退出
|
|
3762
|
+
* @param userIds 退出主播的 id 列表
|
|
3465
3763
|
*/
|
|
3466
|
-
|
|
3467
|
-
private _firstConnectFromPub;
|
|
3764
|
+
onAnchorLeave?(userId: string[]): void;
|
|
3468
3765
|
/**
|
|
3469
|
-
*
|
|
3470
|
-
* @param
|
|
3766
|
+
* 房间内合流发布资源
|
|
3767
|
+
* @param tracks 新发布的合流音轨与视轨数据列表,包含新发布的 RCRemoteAudioTrack 与 RCRemoteVideoTrack 实例
|
|
3768
|
+
* @description
|
|
3769
|
+
* 当房间内某个主播第一次发布资源时触发
|
|
3471
3770
|
*/
|
|
3472
|
-
|
|
3473
|
-
getLocalTrack(trackId: string): RCLocalTrack | null;
|
|
3771
|
+
onTrackPublish?(tracks: RCRemoteTrack[]): void;
|
|
3474
3772
|
/**
|
|
3475
|
-
*
|
|
3476
|
-
* @param
|
|
3773
|
+
* 房间内取消合流发布资源
|
|
3774
|
+
* @param tracks 被取消发布的合流音轨与视轨数据列表
|
|
3775
|
+
* @description
|
|
3776
|
+
* 当房间内全部主播退出房间时,SDK 内部会取消对资源的订阅,业务层仅需处理 UI 业务
|
|
3477
3777
|
*/
|
|
3478
|
-
|
|
3778
|
+
onTrackUnpublish?(tracks: RCRemoteTrack[]): void;
|
|
3479
3779
|
/**
|
|
3480
|
-
*
|
|
3481
|
-
* @param
|
|
3482
|
-
* @returns 正在删除的轨道。
|
|
3780
|
+
* 房间内主播发布资源
|
|
3781
|
+
* @param tracks 主播新发布的音轨与视轨数据列表,包含新发布的 RCRemoteAudioTrack 与 RCRemoteVideoTrack 实例
|
|
3483
3782
|
*/
|
|
3484
|
-
|
|
3783
|
+
onAnchorTrackPublish?(tracks: RCRemoteTrack[]): void;
|
|
3485
3784
|
/**
|
|
3486
|
-
*
|
|
3785
|
+
* 房间内主播取消发布资源
|
|
3786
|
+
* @param tracks 被主播取消发布的音轨与视轨数据列表
|
|
3787
|
+
* @description 当资源被取消发布时,SDK 内部会取消对相关资源的订阅,业务层仅需处理 UI 业务
|
|
3487
3788
|
*/
|
|
3488
|
-
|
|
3789
|
+
onAnchorTrackUnpublish?(tracks: RCRemoteTrack[]): void;
|
|
3489
3790
|
/**
|
|
3490
|
-
*
|
|
3491
|
-
* @param
|
|
3791
|
+
* 房间主播禁用/启用音频
|
|
3792
|
+
* @param audioTrack RCRemoteAudioTrack 类实例
|
|
3492
3793
|
*/
|
|
3493
|
-
|
|
3494
|
-
private _updateRecvTransceiverMap;
|
|
3495
|
-
updateSubRemoteTracks(remoteTracks: RCRemoteTrack[]): void;
|
|
3794
|
+
onAudioMuteChange?(audioTrack: RCRemoteAudioTrack): void;
|
|
3496
3795
|
/**
|
|
3497
|
-
|
|
3796
|
+
* 房间主播禁用/启用视频
|
|
3797
|
+
* @param videoTrack RCRemoteVideoTrack 类实例对象
|
|
3798
|
+
*/
|
|
3799
|
+
onVideoMuteChange?(videoTrack: RCRemoteVideoTrack): void;
|
|
3800
|
+
/**
|
|
3801
|
+
* 房间内主播把发布的资源推至 CDN
|
|
3498
3802
|
*/
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3803
|
+
onCDNInfoEnable?(CDNInfo: {
|
|
3804
|
+
resolution: RCResolution;
|
|
3805
|
+
fps: RCFrameRate;
|
|
3806
|
+
}): void;
|
|
3503
3807
|
/**
|
|
3504
|
-
*
|
|
3505
|
-
* @param listener
|
|
3808
|
+
* 主播停止推 CDN
|
|
3506
3809
|
*/
|
|
3507
|
-
|
|
3810
|
+
onCDNInfoDisable?(): void;
|
|
3508
3811
|
/**
|
|
3509
|
-
*
|
|
3812
|
+
* 主播改变推 CDN 的分辨率或帧率
|
|
3510
3813
|
*/
|
|
3511
|
-
|
|
3814
|
+
onCDNInfoChange?(CDNInfo: {
|
|
3815
|
+
resolution: RCResolution;
|
|
3816
|
+
fps: RCFrameRate;
|
|
3817
|
+
}): void;
|
|
3818
|
+
}
|
|
3819
|
+
/**
|
|
3820
|
+
* 观众直播房间类
|
|
3821
|
+
* 处理:
|
|
3822
|
+
* 1、通知观众房间内 人员变更、资源变更
|
|
3823
|
+
* 2、观众订阅、取消订阅资源
|
|
3824
|
+
*/
|
|
3825
|
+
declare class RCAudienceLivingRoom {
|
|
3826
|
+
private readonly _context;
|
|
3827
|
+
private readonly _runtime;
|
|
3828
|
+
private readonly _initOptions;
|
|
3829
|
+
private readonly _roomId;
|
|
3830
|
+
private readonly _joinResData;
|
|
3831
|
+
readonly livingType: RCLivingType;
|
|
3832
|
+
protected readonly _clientSessionId: string;
|
|
3833
|
+
private readonly _service;
|
|
3512
3834
|
/**
|
|
3513
|
-
*
|
|
3835
|
+
* 主播列表
|
|
3514
3836
|
*/
|
|
3515
|
-
private
|
|
3516
|
-
private _createRCRTCStateReport;
|
|
3837
|
+
private _roomAnchorList;
|
|
3517
3838
|
/**
|
|
3518
|
-
*
|
|
3519
|
-
* @returns 返回格式化后的数据
|
|
3839
|
+
* 合流、分流资源
|
|
3520
3840
|
*/
|
|
3521
|
-
private
|
|
3841
|
+
private _roomRes;
|
|
3522
3842
|
/**
|
|
3523
|
-
*
|
|
3843
|
+
* 主播分流资源
|
|
3524
3844
|
*/
|
|
3525
|
-
private
|
|
3845
|
+
private _roomAnchorRes;
|
|
3526
3846
|
/**
|
|
3527
|
-
*
|
|
3847
|
+
* 合流、分流 remoteTracks
|
|
3528
3848
|
*/
|
|
3529
|
-
private
|
|
3849
|
+
private _remoteTracks;
|
|
3850
|
+
private _appListener;
|
|
3851
|
+
private readonly _pc;
|
|
3852
|
+
private _subscribedList;
|
|
3853
|
+
private _sessionId;
|
|
3854
|
+
private _destroyed;
|
|
3530
3855
|
/**
|
|
3531
|
-
*
|
|
3856
|
+
* 北极星上报实例
|
|
3532
3857
|
*/
|
|
3533
|
-
|
|
3858
|
+
protected readonly _polarisReport: PolarisReporter;
|
|
3534
3859
|
/**
|
|
3535
|
-
*
|
|
3860
|
+
* 音量上报实例
|
|
3536
3861
|
*/
|
|
3537
|
-
|
|
3538
|
-
getRTCPeerConn(): RTCPeerConnection;
|
|
3862
|
+
private readonly _audioLevelReport;
|
|
3539
3863
|
/**
|
|
3540
|
-
*
|
|
3541
|
-
* 1. 连接生命周期与房间实例一致(包含观众加房间),仅在退出房间时进行关闭。
|
|
3542
|
-
* 2. 观众客户端(观众不加房间)订阅时创建,取消订阅时销毁
|
|
3864
|
+
* cdn_uris 资源
|
|
3543
3865
|
*/
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
* 命令执行上下文
|
|
3551
|
-
*/
|
|
3552
|
-
declare class CommandExecuteContext extends EventEmitter {
|
|
3866
|
+
private _CDNUris;
|
|
3867
|
+
private _isPulling;
|
|
3868
|
+
private _pullTime;
|
|
3869
|
+
private readonly _store;
|
|
3870
|
+
private _crtUserId;
|
|
3871
|
+
private readonly _reportMediaActionLogger;
|
|
3553
3872
|
/**
|
|
3554
|
-
*
|
|
3873
|
+
* track 对应的 mediaServer 信息
|
|
3555
3874
|
*/
|
|
3556
|
-
|
|
3875
|
+
private _trackMediaMap;
|
|
3876
|
+
private readonly _logger;
|
|
3877
|
+
constructor(_context: RTCContext, _runtime: IRuntime, _initOptions: IRCRTCInitOptions, _roomId: string, _joinResData: {
|
|
3878
|
+
token: string;
|
|
3879
|
+
kvEntries: IServerRTCRoomEntry[];
|
|
3880
|
+
}, livingType: RCLivingType, _clientSessionId?: string);
|
|
3881
|
+
private _startPull;
|
|
3557
3882
|
/**
|
|
3558
|
-
*
|
|
3883
|
+
* 解析服务端返回的 KV 数据,赋值 room 内数据
|
|
3559
3884
|
*/
|
|
3560
|
-
|
|
3885
|
+
private _setInitData;
|
|
3886
|
+
protected _assertRoomDestroyed(): RCRTCCode | undefined;
|
|
3561
3887
|
/**
|
|
3562
|
-
*
|
|
3888
|
+
* @description 信令数据处理
|
|
3889
|
+
* @param roomId 数据对应的房间 Id
|
|
3890
|
+
* @param singalData 拉取到的数据
|
|
3891
|
+
* * key RC_ANCHOR_LIST value: 为主播 ID 集合
|
|
3892
|
+
* * key RC_RES_`userId` value: 为主播发布的资源
|
|
3893
|
+
* * key RC_RTC_SESSIONID value: sessionId
|
|
3894
|
+
* * key RC_CDN value: CDN 资源数据
|
|
3563
3895
|
*/
|
|
3564
|
-
|
|
3896
|
+
private singalDataChange;
|
|
3565
3897
|
/**
|
|
3566
|
-
*
|
|
3898
|
+
* 计算加入离开的主播 ID 列表
|
|
3567
3899
|
*/
|
|
3568
|
-
|
|
3900
|
+
private _diffAnchorList;
|
|
3901
|
+
private _handleNewJoinedAnchor;
|
|
3902
|
+
private _handleLeftedAnchor;
|
|
3569
3903
|
/**
|
|
3570
|
-
*
|
|
3904
|
+
* 计算新发布和取消发布的合流资源
|
|
3571
3905
|
*/
|
|
3572
|
-
|
|
3906
|
+
private _diffRoomResource;
|
|
3573
3907
|
/**
|
|
3574
|
-
*
|
|
3908
|
+
* 处理主播资源的新增发布
|
|
3575
3909
|
*/
|
|
3576
|
-
|
|
3910
|
+
private _dealPublished;
|
|
3577
3911
|
/**
|
|
3578
|
-
*
|
|
3912
|
+
* 处理主播资源的取消发布
|
|
3579
3913
|
*/
|
|
3580
|
-
|
|
3914
|
+
private _dealUnpublished;
|
|
3581
3915
|
/**
|
|
3582
|
-
*
|
|
3916
|
+
* 处理主播资源的变更
|
|
3583
3917
|
*/
|
|
3584
|
-
|
|
3585
|
-
constructor(
|
|
3918
|
+
private _dealModified;
|
|
3586
3919
|
/**
|
|
3587
|
-
*
|
|
3588
|
-
|
|
3589
|
-
|
|
3920
|
+
* 计算主播发布和取消发布的资源,以及资源的状态变更
|
|
3921
|
+
*/
|
|
3922
|
+
private _diffAnchorResource;
|
|
3923
|
+
private _onUserUnpublish;
|
|
3924
|
+
private _callAppListener;
|
|
3590
3925
|
/**
|
|
3591
|
-
*
|
|
3926
|
+
* ice 断线后,尝试重新走 exchange
|
|
3927
|
+
*/
|
|
3928
|
+
private _reTryExchange;
|
|
3929
|
+
/**
|
|
3930
|
+
* 获取 subscribe 接口的请求体数据
|
|
3931
|
+
* @param subscribeList 订阅清单
|
|
3932
|
+
* @param publishedStreams 已发布流
|
|
3933
|
+
* @param iceRestart
|
|
3592
3934
|
*/
|
|
3593
|
-
|
|
3935
|
+
protected _createSubscribeParams(subscribeList: ISubscribeAttr[], publishedStreams: {
|
|
3936
|
+
[msid: string]: RCLocalMediaStream;
|
|
3937
|
+
}, iceRestart: boolean): Promise<{
|
|
3938
|
+
reqBody: IBroadcastSubReqBody;
|
|
3939
|
+
offer: RTCSessionDescriptionInit;
|
|
3940
|
+
dynamicBitrate: {
|
|
3941
|
+
min: number;
|
|
3942
|
+
max: number;
|
|
3943
|
+
};
|
|
3944
|
+
}>;
|
|
3945
|
+
private _subscribeHandle;
|
|
3594
3946
|
/**
|
|
3595
|
-
*
|
|
3947
|
+
* 添加 peerConnection 事件
|
|
3596
3948
|
*/
|
|
3597
|
-
|
|
3949
|
+
private _addPeerCEvent;
|
|
3950
|
+
private _getReqHeaders;
|
|
3951
|
+
private _exchangeHandle;
|
|
3952
|
+
private _dealSubscribeResult;
|
|
3598
3953
|
/**
|
|
3599
|
-
*
|
|
3954
|
+
* 去重、转化参数格式为 ISubscribeAttr
|
|
3600
3955
|
*/
|
|
3601
|
-
|
|
3956
|
+
private _getParams;
|
|
3957
|
+
private _reportPubOrSubQualityData;
|
|
3958
|
+
private _updateSubListHandle;
|
|
3602
3959
|
/**
|
|
3603
|
-
*
|
|
3960
|
+
* 对比 cdn_uris 资源
|
|
3961
|
+
* @param newCDNUris 新的 cdn_uris 数据
|
|
3604
3962
|
*/
|
|
3605
|
-
|
|
3963
|
+
private _diffCDNUris;
|
|
3606
3964
|
/**
|
|
3607
|
-
*
|
|
3965
|
+
* 获取 CDN 资源对应的拉流地址
|
|
3966
|
+
* _CDNUris 无 url 时,说明未开启 CDN 推送
|
|
3967
|
+
* @returns CDNPlayUrl
|
|
3608
3968
|
*/
|
|
3609
|
-
|
|
3969
|
+
private _getCDNPlayUrl;
|
|
3610
3970
|
/**
|
|
3611
|
-
*
|
|
3971
|
+
* 获取 CDN 资源对应的拉流地址
|
|
3972
|
+
* @returns CDNPlayUrl
|
|
3612
3973
|
*/
|
|
3613
|
-
|
|
3974
|
+
getCDNPlayUrl(resolution?: RCResolution, fps?: RCFrameRate): Promise<{
|
|
3975
|
+
code: RCRTCCode;
|
|
3976
|
+
CDNPlayUrl?: string;
|
|
3977
|
+
}>;
|
|
3614
3978
|
/**
|
|
3615
|
-
*
|
|
3979
|
+
* 订阅资源
|
|
3980
|
+
* @param tracks
|
|
3616
3981
|
*/
|
|
3617
|
-
|
|
3982
|
+
subscribe(tracks: (RCRemoteTrack | ISubscribeAttr)[]): Promise<{
|
|
3983
|
+
code: RCRTCCode;
|
|
3984
|
+
failedList?: ISubscribeAttr[];
|
|
3985
|
+
}>;
|
|
3986
|
+
private __unsubscribe;
|
|
3618
3987
|
/**
|
|
3619
|
-
*
|
|
3988
|
+
* 取消订阅资源
|
|
3989
|
+
* @param tracks
|
|
3620
3990
|
*/
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
* @typeParams T - 事务执行上下文类型
|
|
3626
|
-
* @typeParams S - 内存读写模块类型
|
|
3627
|
-
*/
|
|
3628
|
-
declare class BaseInvoker<T, S> {
|
|
3629
|
-
protected readonly _logger: BasicLogger;
|
|
3991
|
+
unsubscribe(tracks: RCRemoteTrack[]): Promise<{
|
|
3992
|
+
code: RCRTCCode;
|
|
3993
|
+
failedList?: ISubscribeAttr[];
|
|
3994
|
+
}>;
|
|
3630
3995
|
/**
|
|
3631
|
-
*
|
|
3996
|
+
* 退出房间并销毁当前房间实例,退出后该房间的所有方法将不可用
|
|
3997
|
+
* @private
|
|
3632
3998
|
*/
|
|
3633
|
-
|
|
3999
|
+
__destroy(quitRoom: boolean): Promise<void>;
|
|
3634
4000
|
/**
|
|
3635
|
-
*
|
|
4001
|
+
* 根据 trackId 获取房间内的远端资源
|
|
4002
|
+
* @param trackId
|
|
3636
4003
|
*/
|
|
3637
|
-
|
|
4004
|
+
getRemoteTrack(trackId: string): RCRemoteTrack;
|
|
3638
4005
|
/**
|
|
3639
|
-
*
|
|
4006
|
+
* TODO 待优化
|
|
4007
|
+
* @param trackId
|
|
3640
4008
|
*/
|
|
3641
|
-
|
|
3642
|
-
constructor(_logger: BasicLogger,
|
|
4009
|
+
getLocalTrack(trackId: string): RCRemoteTrack;
|
|
3643
4010
|
/**
|
|
3644
|
-
*
|
|
4011
|
+
* 断线重连后处理逻辑, SDK 内部处理调用
|
|
4012
|
+
* @private
|
|
3645
4013
|
*/
|
|
3646
|
-
|
|
4014
|
+
__onReconnected(): Promise<void>;
|
|
3647
4015
|
/**
|
|
3648
|
-
*
|
|
4016
|
+
* 观众房间事件注册
|
|
4017
|
+
* @param tag 参数描述
|
|
3649
4018
|
*/
|
|
3650
|
-
|
|
4019
|
+
registerRoomEventListener(listener: IAudienceRoomEventListener | null): void;
|
|
3651
4020
|
/**
|
|
3652
|
-
*
|
|
4021
|
+
* 音量上报
|
|
4022
|
+
* @param handler 业务端传入的音量上报事件
|
|
4023
|
+
* @param _ - 参数已废弃
|
|
3653
4024
|
*/
|
|
3654
|
-
|
|
3655
|
-
private
|
|
3656
|
-
private _busy;
|
|
3657
|
-
private _next;
|
|
3658
|
-
private _execute;
|
|
3659
|
-
push<R>(command: BaseCommand<R, T, S>): Promise<ICommandResult<R>>;
|
|
3660
|
-
private _isDestroyed;
|
|
3661
|
-
isDestroyed(): boolean;
|
|
3662
|
-
destroy(): void;
|
|
3663
|
-
}
|
|
3664
|
-
/**
|
|
3665
|
-
* 房间任务队列管理
|
|
3666
|
-
*/
|
|
3667
|
-
declare class Invoker extends BaseInvoker<CommandExecuteContext, Store> {
|
|
3668
|
-
constructor(context: CommandExecuteContext, store: Store);
|
|
4025
|
+
onAudioLevelChange(handler: IAudioLevelChangeHandler | null, _?: number): void;
|
|
4026
|
+
private _reportListener;
|
|
3669
4027
|
/**
|
|
3670
|
-
*
|
|
4028
|
+
* 注册房间数据监控
|
|
4029
|
+
* @param listener
|
|
3671
4030
|
*/
|
|
3672
|
-
|
|
3673
|
-
destroy(): void;
|
|
3674
|
-
}
|
|
3675
|
-
|
|
3676
|
-
declare enum CommandPriority {
|
|
3677
|
-
LOW = 0,
|
|
3678
|
-
NORMAL = 1,
|
|
3679
|
-
HIGH = 2
|
|
3680
|
-
}
|
|
3681
|
-
declare type ICommandResult<R = void> = {
|
|
3682
|
-
code: number;
|
|
3683
|
-
data?: R;
|
|
3684
|
-
};
|
|
3685
|
-
/**
|
|
3686
|
-
* 命令基类
|
|
3687
|
-
* @typeParams R - 返回值类型声明
|
|
3688
|
-
* @typeParams T - 命令执行上下文类型
|
|
3689
|
-
* @typeParams S - 内存数据缓存模块
|
|
3690
|
-
*/
|
|
3691
|
-
declare abstract class BaseCommand<R = void, T = CommandExecuteContext, S = Store> {
|
|
4031
|
+
registerReportListener(listener: IRCRTCReportListener | null): void;
|
|
3692
4032
|
/**
|
|
3693
|
-
*
|
|
3694
|
-
* @param context - 事务执行上下文
|
|
3695
|
-
* @param store - 内存读写模块
|
|
3696
|
-
* @param invoker - 任务队列
|
|
4033
|
+
* 获取房间 Id
|
|
3697
4034
|
*/
|
|
3698
|
-
|
|
4035
|
+
getRoomId(): string;
|
|
3699
4036
|
/**
|
|
3700
|
-
*
|
|
4037
|
+
* 获取当前 userId
|
|
3701
4038
|
*/
|
|
3702
|
-
|
|
4039
|
+
getCrtUserId(): string;
|
|
3703
4040
|
/**
|
|
3704
|
-
*
|
|
3705
|
-
* @returns 命令的种类。
|
|
4041
|
+
* 获取房间当前会话 Id,当房间内已无成员时房间会回收,重新加入时 sessionId 将更新
|
|
3706
4042
|
*/
|
|
3707
|
-
|
|
3708
|
-
}
|
|
3709
|
-
|
|
3710
|
-
/**
|
|
3711
|
-
* RTC 消息类型常量
|
|
3712
|
-
* @private
|
|
3713
|
-
*/
|
|
3714
|
-
declare enum RCRTCMessageType {
|
|
4043
|
+
getSessionId(): string;
|
|
3715
4044
|
/**
|
|
3716
|
-
*
|
|
3717
|
-
* @deprecated
|
|
4045
|
+
* 获取远程主播用户列表
|
|
3718
4046
|
*/
|
|
3719
|
-
|
|
4047
|
+
getRemoteUserIds(): string[];
|
|
3720
4048
|
/**
|
|
3721
|
-
*
|
|
3722
|
-
* @
|
|
4049
|
+
* 获取远端用户的资源列表
|
|
4050
|
+
* @param userId
|
|
4051
|
+
* @returns
|
|
3723
4052
|
*/
|
|
3724
|
-
|
|
4053
|
+
getRemoteTracksByUserId(userId: string): RCRemoteTrack[];
|
|
3725
4054
|
/**
|
|
3726
|
-
*
|
|
3727
|
-
* @
|
|
4055
|
+
* 获取房间内所有已发布的远端资源列表, 包含合流资源
|
|
4056
|
+
* @returns
|
|
3728
4057
|
*/
|
|
3729
|
-
|
|
4058
|
+
getRemoteTracks(): RCRemoteTrack[];
|
|
3730
4059
|
/**
|
|
3731
|
-
*
|
|
4060
|
+
* 获取远端 RTC tracks
|
|
3732
4061
|
*/
|
|
3733
|
-
|
|
4062
|
+
getRemoteRTCTracks(): RCRemoteTrack[];
|
|
3734
4063
|
/**
|
|
3735
|
-
*
|
|
4064
|
+
* 获取远端 MCU tracks
|
|
3736
4065
|
*/
|
|
3737
|
-
|
|
4066
|
+
getRemoteMCUTracks(): RCRemoteTrack[];
|
|
3738
4067
|
/**
|
|
3739
|
-
*
|
|
4068
|
+
* 获取房间内 CDN 信息
|
|
3740
4069
|
*/
|
|
3741
|
-
|
|
4070
|
+
getCDNInfo(): {
|
|
4071
|
+
resolution: RCResolution;
|
|
4072
|
+
fps: RCFrameRate;
|
|
4073
|
+
CDNEnable: boolean | undefined;
|
|
4074
|
+
} | {
|
|
4075
|
+
CDNEnable: boolean;
|
|
4076
|
+
resolution?: undefined;
|
|
4077
|
+
fps?: undefined;
|
|
4078
|
+
};
|
|
4079
|
+
getClientSessionId(): string;
|
|
4080
|
+
}
|
|
4081
|
+
|
|
4082
|
+
/**
|
|
4083
|
+
* 北极星上报角色
|
|
4084
|
+
*/
|
|
4085
|
+
declare enum PolarisRole {
|
|
3742
4086
|
/**
|
|
3743
|
-
*
|
|
4087
|
+
* 会议参会者、主播
|
|
3744
4088
|
*/
|
|
3745
|
-
|
|
4089
|
+
MeetingOrAnchor = 1,
|
|
3746
4090
|
/**
|
|
3747
|
-
*
|
|
4091
|
+
* 观众
|
|
3748
4092
|
*/
|
|
3749
|
-
|
|
4093
|
+
Audience = 2
|
|
4094
|
+
}
|
|
4095
|
+
|
|
4096
|
+
declare class PolarisReporter {
|
|
4097
|
+
private readonly _context;
|
|
4098
|
+
private readonly _runtime;
|
|
4099
|
+
private readonly _roomId;
|
|
4100
|
+
private readonly _crtRTCRoom;
|
|
4101
|
+
private readonly _userRole;
|
|
4102
|
+
constructor(_context: RTCContext, _runtime: IRuntime, _roomId: string, _crtRTCRoom: RCAbstractRoom | RCAudienceLivingRoom, _userRole?: PolarisRole);
|
|
4103
|
+
private _send;
|
|
4104
|
+
private _getClientID;
|
|
3750
4105
|
/**
|
|
3751
|
-
*
|
|
4106
|
+
* 小流需去掉 _tiny,小流 resourceId 为 userId_tag_mediaType_tiny
|
|
3752
4107
|
*/
|
|
3753
|
-
|
|
4108
|
+
private _getRealResourceId;
|
|
3754
4109
|
/**
|
|
3755
|
-
*
|
|
4110
|
+
* 生成北极星上报的 trackId
|
|
4111
|
+
* @param resourceId userId_11_1_tiny 改为 userId_11_tiny_video
|
|
3756
4112
|
*/
|
|
3757
|
-
|
|
4113
|
+
private _getPolarisTrackId;
|
|
3758
4114
|
/**
|
|
3759
|
-
*
|
|
4115
|
+
* 上下行 track 包含的公共字段
|
|
3760
4116
|
*/
|
|
3761
|
-
|
|
4117
|
+
private _getBaseData;
|
|
4118
|
+
private _getAudioLevel;
|
|
4119
|
+
private _getBitrate;
|
|
4120
|
+
private _getPacketsLostRate;
|
|
4121
|
+
private _getFrameRate;
|
|
4122
|
+
private _getResolution;
|
|
4123
|
+
private _getJitter;
|
|
4124
|
+
private _getNackCount;
|
|
4125
|
+
private _getPliCount;
|
|
4126
|
+
private _getRTT;
|
|
4127
|
+
private _getTrackState;
|
|
3762
4128
|
/**
|
|
3763
|
-
*
|
|
4129
|
+
* 发送上行音视频资源数据
|
|
4130
|
+
* @param data peerConnection stats 解析出来业务所需的所有字段
|
|
3764
4131
|
*/
|
|
3765
|
-
|
|
4132
|
+
sendR3Data(data: IInnerRCRTCStateReport): Promise<RCSendCode>;
|
|
3766
4133
|
/**
|
|
3767
|
-
*
|
|
4134
|
+
* 发送下行音视频资源数据
|
|
4135
|
+
* @param data peerConnection stats 解析出来业务所需的所有字段
|
|
3768
4136
|
*/
|
|
3769
|
-
|
|
4137
|
+
sendR4Data(data: IInnerRCRTCStateReport): Promise<RCSendCode>;
|
|
3770
4138
|
/**
|
|
3771
|
-
*
|
|
4139
|
+
* 加入房间
|
|
3772
4140
|
*/
|
|
3773
|
-
|
|
4141
|
+
sendR1(): void;
|
|
3774
4142
|
/**
|
|
3775
|
-
*
|
|
4143
|
+
* RTC 和 LIVE 发布、取消发布
|
|
4144
|
+
* RTC 订阅、取消订阅
|
|
3776
4145
|
*/
|
|
3777
|
-
|
|
4146
|
+
sendR2(action: string, status: string, trackIds: string[]): void;
|
|
3778
4147
|
}
|
|
3779
4148
|
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
4149
|
+
/**
|
|
4150
|
+
* PC 实例管理类
|
|
4151
|
+
*/
|
|
4152
|
+
declare class RCRTCPeerConnection extends EventEmitter {
|
|
4153
|
+
readonly _context: RTCContext;
|
|
4154
|
+
private _logger;
|
|
3786
4155
|
/**
|
|
3787
|
-
*
|
|
4156
|
+
* _reTryExchange 方法
|
|
3788
4157
|
*/
|
|
3789
|
-
|
|
4158
|
+
private readonly _reTryExchange;
|
|
3790
4159
|
/**
|
|
3791
|
-
*
|
|
4160
|
+
* 当前用户 id
|
|
3792
4161
|
*/
|
|
3793
|
-
|
|
4162
|
+
private readonly _currentUserId;
|
|
3794
4163
|
/**
|
|
3795
|
-
*
|
|
4164
|
+
* store 实例
|
|
3796
4165
|
*/
|
|
3797
|
-
|
|
3798
|
-
}
|
|
3799
|
-
declare class RCLivingPKHandler {
|
|
3800
|
-
private _invoker;
|
|
3801
|
-
private _PKInfo;
|
|
3802
|
-
private readonly _context;
|
|
3803
|
-
private readonly _runtime;
|
|
3804
|
-
private readonly _service;
|
|
3805
|
-
private readonly _initOptions;
|
|
4166
|
+
private readonly _store;
|
|
3806
4167
|
/**
|
|
3807
|
-
*
|
|
4168
|
+
* 北极星上传实例
|
|
3808
4169
|
*/
|
|
3809
|
-
private readonly
|
|
3810
|
-
private readonly _registerPKMsgListener;
|
|
4170
|
+
private readonly _polarisReport?;
|
|
3811
4171
|
/**
|
|
3812
|
-
*
|
|
4172
|
+
* 是否是房间内观众
|
|
3813
4173
|
*/
|
|
3814
|
-
private readonly
|
|
3815
|
-
|
|
4174
|
+
private readonly _isRoomAudience;
|
|
4175
|
+
static __INNER_EVENT_TRACK_READY__: string;
|
|
4176
|
+
static __INNER_AUDIOLEVEL_CHANGE__: string;
|
|
4177
|
+
static __INNER_ICE_STATE_CHANGE__: string;
|
|
4178
|
+
static __INNER_ICE_CONNECTED__: string;
|
|
4179
|
+
static __INNER_SEI_CONTENT__: string;
|
|
4180
|
+
private readonly _rtcPeerConn;
|
|
4181
|
+
private readonly _sdpStrategy;
|
|
4182
|
+
reportParser: IStatParser | null;
|
|
4183
|
+
private pubLocalTracks;
|
|
4184
|
+
private _reTryExchangeTimer;
|
|
4185
|
+
private _reportStatsTimer;
|
|
4186
|
+
private _reportR3R4ToPolarisTimer;
|
|
4187
|
+
private _isDestroyed;
|
|
4188
|
+
private _formatStatsData?;
|
|
4189
|
+
constructor(_context: RTCContext, _logger: BasicLogger,
|
|
3816
4190
|
/**
|
|
3817
|
-
*
|
|
4191
|
+
* _reTryExchange 方法
|
|
3818
4192
|
*/
|
|
3819
|
-
|
|
3820
|
-
private _appListener;
|
|
3821
|
-
private _mainRoomId;
|
|
4193
|
+
_reTryExchange: () => Promise<ICommandResult<void>>,
|
|
3822
4194
|
/**
|
|
3823
|
-
*
|
|
4195
|
+
* 当前用户 id
|
|
3824
4196
|
*/
|
|
3825
|
-
|
|
3826
|
-
private readonly _logger;
|
|
3827
|
-
constructor(_invoker: Invoker, _PKInfo: IPKInfo, _context: RTCContext, _runtime: IRuntime, _service: RCMediaService, _initOptions: IRCRTCInitOptions,
|
|
4197
|
+
_currentUserId: string,
|
|
3828
4198
|
/**
|
|
3829
|
-
*
|
|
4199
|
+
* store 实例
|
|
3830
4200
|
*/
|
|
3831
|
-
|
|
4201
|
+
_store: ReadableStore,
|
|
3832
4202
|
/**
|
|
3833
|
-
*
|
|
4203
|
+
* 北极星上传实例
|
|
3834
4204
|
*/
|
|
3835
|
-
|
|
3836
|
-
private _callAppListener;
|
|
4205
|
+
_polarisReport?: PolarisReporter | undefined,
|
|
3837
4206
|
/**
|
|
3838
|
-
*
|
|
4207
|
+
* 是否是房间内观众
|
|
3839
4208
|
*/
|
|
3840
|
-
|
|
4209
|
+
_isRoomAudience?: boolean,
|
|
3841
4210
|
/**
|
|
3842
|
-
*
|
|
4211
|
+
* 是否启用自定义加密
|
|
3843
4212
|
*/
|
|
3844
|
-
|
|
3845
|
-
|
|
4213
|
+
encrypt?: boolean);
|
|
4214
|
+
getLocalTracks(): RCLocalTrack[];
|
|
4215
|
+
private _decodeSeiData;
|
|
4216
|
+
private _onConnectionStateChange;
|
|
4217
|
+
private startAutoExecute;
|
|
4218
|
+
private stopAutoExecute;
|
|
4219
|
+
private _onICEConnectionStateChange;
|
|
4220
|
+
private _inRetry;
|
|
4221
|
+
private _handleRetry;
|
|
4222
|
+
private _onTrackReady;
|
|
3846
4223
|
/**
|
|
3847
|
-
*
|
|
4224
|
+
* @deprecated use RCLocalTrack.setBitrate instead of setBitrate
|
|
3848
4225
|
*/
|
|
3849
|
-
|
|
3850
|
-
private createLeaveOtherRoomCommand;
|
|
4226
|
+
setBitrate(max: number, min: number, start?: number): Promise<void>;
|
|
3851
4227
|
/**
|
|
3852
|
-
*
|
|
4228
|
+
* `createOffer` 是一个创建报价并记录报价 SDP 和 SDP 语义的函数
|
|
4229
|
+
* @param {boolean} iceRestart - 布尔值
|
|
4230
|
+
* @returns 具有两个属性的对象:
|
|
4231
|
+
* - sdp:SDP 字符串
|
|
4232
|
+
* - 语义:SDP 语义
|
|
3853
4233
|
*/
|
|
3854
|
-
|
|
4234
|
+
createOffer(iceRestart: boolean): Promise<IOfferInfo>;
|
|
4235
|
+
private _firstConnectFromPub;
|
|
3855
4236
|
/**
|
|
3856
|
-
*
|
|
4237
|
+
* @param answer
|
|
4238
|
+
* @param fromPub 是否来自于发布动作,用来对外通知连接成功后统计
|
|
3857
4239
|
*/
|
|
3858
|
-
|
|
4240
|
+
setRemoteAnswer(answer: string, fromPub?: boolean): Promise<RCRTCCode>;
|
|
4241
|
+
getLocalTrack(trackId: string): RCLocalTrack | null;
|
|
3859
4242
|
/**
|
|
3860
|
-
*
|
|
4243
|
+
* 它将本地轨道添加到对等连接。
|
|
4244
|
+
* @param {RCLocalTrack} track - 要添加的本地轨道。
|
|
3861
4245
|
*/
|
|
3862
|
-
|
|
4246
|
+
addLocalTrack(track: RCLocalTrack): void;
|
|
3863
4247
|
/**
|
|
3864
|
-
*
|
|
3865
|
-
* @param
|
|
3866
|
-
* @
|
|
3867
|
-
* @param options.autoMix 是否将本房间资源合并到被邀请者所处房间的 MCU 合流中
|
|
3868
|
-
* @param options.extra 拓展字段,可随邀请连麦消息透传给被邀请者
|
|
4248
|
+
* 按 ID 删除本地轨道
|
|
4249
|
+
* @param {string} trackId - 要移除的轨道的 ID。
|
|
4250
|
+
* @returns 正在删除的轨道。
|
|
3869
4251
|
*/
|
|
3870
|
-
|
|
3871
|
-
code: RCRTCCode | ErrorCode;
|
|
3872
|
-
}>;
|
|
4252
|
+
removeLocalTrackById(trackId: string): void;
|
|
3873
4253
|
/**
|
|
3874
|
-
*
|
|
3875
|
-
* @param inviteeRoomId 被邀请者所处的房间 roomId
|
|
3876
|
-
* @param inviteeUserId 被邀请者 userId
|
|
3877
|
-
* @param extra 附加信息,可随取消邀请连麦消息透传给被邀请者
|
|
4254
|
+
* 它会删除所有本地Track。
|
|
3878
4255
|
*/
|
|
3879
|
-
|
|
3880
|
-
code: RCRTCCode | ErrorCode;
|
|
3881
|
-
}>;
|
|
4256
|
+
removeAllLocalTrack(): void;
|
|
3882
4257
|
/**
|
|
3883
|
-
*
|
|
3884
|
-
* @param
|
|
3885
|
-
* @param inviterUserId 邀请者 userId
|
|
3886
|
-
* @param agree 是否同意连麦
|
|
3887
|
-
* @param options.autoMix 是否将本房间资源合并到邀请者所处房间的 MCU 合流中
|
|
3888
|
-
* @param options.extra 附加信息,可随响应连麦消息透传给邀请者
|
|
4258
|
+
* 从对等连接中删除本地轨道。
|
|
4259
|
+
* @param {RCLocalTrack} track - 要删除的本地轨道。
|
|
3889
4260
|
*/
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
4261
|
+
removeLocalTrack(track: RCLocalTrack, isRemoveTiny?: boolean): void;
|
|
4262
|
+
private _updateRecvTransceiverMap;
|
|
4263
|
+
updateSubRemoteTracks(remoteTracks: RCRemoteTrack[]): void;
|
|
3893
4264
|
/**
|
|
3894
|
-
*
|
|
3895
|
-
* @roomId 副房间的 roomId
|
|
4265
|
+
* 获取当前已发布视频流信息
|
|
3896
4266
|
*/
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
tracks?: RCRemoteTrack[];
|
|
3902
|
-
CDNEnable?: boolean;
|
|
3903
|
-
}>;
|
|
4267
|
+
getOutboundVideoInfo(): OutboundVideoInfo[];
|
|
4268
|
+
private _onLocalTrackMuted;
|
|
4269
|
+
private _onLocalTrackDestroied;
|
|
4270
|
+
private _reportListener;
|
|
3904
4271
|
/**
|
|
3905
|
-
*
|
|
3906
|
-
* @param
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
leaveOtherRoom(room: RCLivingRoom, isQuitPK?: boolean): Promise<{
|
|
3910
|
-
code: RCRTCCode;
|
|
3911
|
-
}>;
|
|
4272
|
+
* 注册连接数据监控,开启质量数据上报定时器
|
|
4273
|
+
* @param listener
|
|
4274
|
+
*/
|
|
4275
|
+
registerReportListener(listener: IRCRTCReportListener | null): void;
|
|
3912
4276
|
/**
|
|
3913
|
-
*
|
|
3914
|
-
* @param roomId 连麦房间的 roomId
|
|
4277
|
+
* 组装上行质量报告数据
|
|
3915
4278
|
*/
|
|
3916
|
-
|
|
3917
|
-
inviteSessionId: string;
|
|
3918
|
-
inviterRoomId: string;
|
|
3919
|
-
inviterUserId: string;
|
|
3920
|
-
inviterUserAutoMix?: boolean | undefined;
|
|
3921
|
-
inviteeRoomId: string;
|
|
3922
|
-
inviteeUserAutoMix?: boolean | undefined;
|
|
3923
|
-
};
|
|
4279
|
+
private _createSenderReport;
|
|
3924
4280
|
/**
|
|
3925
|
-
*
|
|
4281
|
+
* 组装下行质量报告数据
|
|
3926
4282
|
*/
|
|
3927
|
-
|
|
4283
|
+
private _createReceiverReport;
|
|
4284
|
+
private _createRCRTCStateReport;
|
|
3928
4285
|
/**
|
|
3929
|
-
*
|
|
4286
|
+
* 获取 peerConnection stats 数据并格式化
|
|
4287
|
+
* @returns 返回格式化后的数据
|
|
3930
4288
|
*/
|
|
3931
|
-
|
|
3932
|
-
[roomId: string]: RCLivingRoom;
|
|
3933
|
-
};
|
|
3934
|
-
}
|
|
3935
|
-
|
|
3936
|
-
declare type ResourceMsgContent = {
|
|
4289
|
+
private _getStatsData;
|
|
3937
4290
|
/**
|
|
3938
|
-
*
|
|
3939
|
-
* * ignore 值为 `true` 表示该消息由 signal server 向旧版本 RTCLib 提供的兼容消息,无需处理
|
|
3940
|
-
* * 否则认为该消息是由旧版本 RTCLib 主动发出的增量变更消息,需要处理
|
|
4291
|
+
* 通知用户质量数据、peerConnection 北极星数据上报
|
|
3941
4292
|
*/
|
|
3942
|
-
|
|
4293
|
+
private _reportHandle;
|
|
3943
4294
|
/**
|
|
3944
|
-
*
|
|
4295
|
+
* 获取合流音源信息
|
|
3945
4296
|
*/
|
|
3946
|
-
|
|
3947
|
-
cdn_uris?: ICDNUris[];
|
|
3948
|
-
};
|
|
3949
|
-
|
|
3950
|
-
/**
|
|
3951
|
-
* 房间抽象基类
|
|
3952
|
-
*/
|
|
3953
|
-
declare abstract class RCAbstractRoom extends EventEmitter {
|
|
3954
|
-
protected readonly _context: RTCContext;
|
|
3955
|
-
protected readonly _runtime: IRuntime;
|
|
3956
|
-
readonly _roomId: string;
|
|
3957
|
-
protected readonly _service: RCMediaService;
|
|
3958
|
-
protected readonly _initOptions: IRCRTCInitOptions;
|
|
3959
|
-
protected readonly _clientSessionId: string;
|
|
4297
|
+
private _getLiveAudioState;
|
|
3960
4298
|
/**
|
|
3961
|
-
*
|
|
4299
|
+
* 北极星上报 R3、R4 数据
|
|
3962
4300
|
*/
|
|
3963
|
-
private
|
|
4301
|
+
private _sendR3R4Data;
|
|
3964
4302
|
/**
|
|
3965
|
-
*
|
|
4303
|
+
* 2s 给北极星上报一次 R3、R4
|
|
3966
4304
|
*/
|
|
3967
|
-
|
|
4305
|
+
__reportR3R4ToPolaris(): Promise<void>;
|
|
4306
|
+
getRTCPeerConn(): RTCPeerConnection;
|
|
3968
4307
|
/**
|
|
3969
|
-
*
|
|
4308
|
+
* 关闭 RTCPeerConnection 连接。其生命周期:
|
|
4309
|
+
* 1. 连接生命周期与房间实例一致(包含观众加房间),仅在退出房间时进行关闭。
|
|
4310
|
+
* 2. 观众客户端(观众不加房间)订阅时创建,取消订阅时销毁
|
|
3970
4311
|
*/
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
4312
|
+
destroy(): void;
|
|
4313
|
+
clearReTryExchangeTimer(): void;
|
|
4314
|
+
isDestroyed(): boolean;
|
|
4315
|
+
}
|
|
4316
|
+
|
|
4317
|
+
/**
|
|
4318
|
+
* 命令执行上下文
|
|
4319
|
+
*/
|
|
4320
|
+
declare class CommandExecuteContext extends EventEmitter {
|
|
3978
4321
|
/**
|
|
3979
|
-
*
|
|
3980
|
-
* @param {RTCContext} _context - RTC上下文,
|
|
3981
|
-
* @param {IRuntime} _runtime - 运行时
|
|
3982
|
-
* @param {string} _roomId - 房间号
|
|
3983
|
-
* @param {RTCMode} _roomMode - RTC模式,
|
|
3984
|
-
* @param {RCMediaService} _service - RCMediaService
|
|
3985
|
-
* @param {IRCRTCInitOptions} _initOptions - IRCRTCInitOptions
|
|
3986
|
-
* @param {boolean} [isUpgrade] - 是否是升级,如果是升级则不会创建新的peerConnection
|
|
3987
|
-
* @param {boolean} [isMainRoom] - 无论是主房间,主房间都是用户创建的房间,子房间是用户创建的房间。
|
|
3988
|
-
* @param {string} _clientSessionId - 客户端会话 ID,用于标识客户端。
|
|
4322
|
+
* 日志工具
|
|
3989
4323
|
*/
|
|
3990
|
-
|
|
4324
|
+
readonly logger: BasicLogger;
|
|
3991
4325
|
/**
|
|
3992
|
-
*
|
|
4326
|
+
* MediaServer 请求实例
|
|
3993
4327
|
*/
|
|
3994
|
-
|
|
3995
|
-
/** 注册命令执行中的事件监听器 */
|
|
3996
|
-
private setCommandEventListener;
|
|
4328
|
+
readonly service: RCMediaService;
|
|
3997
4329
|
/**
|
|
3998
|
-
*
|
|
3999
|
-
* @param roomId 房间 id
|
|
4330
|
+
* IM 信令上下文
|
|
4000
4331
|
*/
|
|
4001
|
-
|
|
4332
|
+
readonly context: RTCContext;
|
|
4002
4333
|
/**
|
|
4003
|
-
*
|
|
4334
|
+
* 运行时
|
|
4004
4335
|
*/
|
|
4005
|
-
|
|
4006
|
-
code: RCRTCCode | ErrorCode;
|
|
4007
|
-
data?: IJoinRTCRoomData;
|
|
4008
|
-
}>;
|
|
4009
|
-
protected _initWithRoomData(offlineKickTime: number): void;
|
|
4010
|
-
private _handlePingResult;
|
|
4336
|
+
readonly runtime: IRuntime;
|
|
4011
4337
|
/**
|
|
4012
|
-
*
|
|
4013
|
-
* @deprecated use RCLocalTrack.setBitrate instead of setBitrate
|
|
4014
|
-
* @description
|
|
4015
|
-
* * 自 v5.1.0 版本开始,推荐使用 `RCLocalTrack.setBitrate` 对不同流分别指定码率。
|
|
4016
|
-
* * 该方法仅在 SDP `plan-b` 协议下(Chrome 92 与 Safari 11 之前的版本)有效。
|
|
4017
|
-
* @param max 音视频发送码率上限,不可小于 200 且不可小于 `min`
|
|
4018
|
-
* @param min 音视频发送码率下限,默认值为 1,且不可小于 1,不可大于 `max`
|
|
4019
|
-
* @param start 起始码率,默认为码率上限的 70%
|
|
4338
|
+
* PeerConenction 连接实例
|
|
4020
4339
|
*/
|
|
4021
|
-
|
|
4022
|
-
private _onTrackReady;
|
|
4023
|
-
protected _callAppListener(eventType: keyof IRoomEventListener, ...attrs: any[]): void;
|
|
4024
|
-
private _onTrackUnpublish;
|
|
4340
|
+
readonly peer: RCRTCPeerConnection;
|
|
4025
4341
|
/**
|
|
4026
|
-
*
|
|
4342
|
+
* 内存只读模块
|
|
4027
4343
|
*/
|
|
4028
|
-
|
|
4344
|
+
readonly store: ReadableStore;
|
|
4029
4345
|
/**
|
|
4030
|
-
*
|
|
4031
|
-
* @param byServer
|
|
4032
|
-
* * 当值为 false 时,说明本端 rtcPing 超时
|
|
4033
|
-
* * 当值为 true 时,说明本端收到被踢出房间通知
|
|
4034
|
-
* @private
|
|
4346
|
+
* 北极星统计工具
|
|
4035
4347
|
*/
|
|
4036
|
-
|
|
4037
|
-
private _rtcpeerClosed;
|
|
4348
|
+
readonly polarisReport: PolarisReporter;
|
|
4038
4349
|
/**
|
|
4039
|
-
*
|
|
4040
|
-
* @param content
|
|
4041
|
-
* @param messageType 消息类型
|
|
4042
|
-
* @param userId 消息发送者
|
|
4350
|
+
* 行为数据采集工具
|
|
4043
4351
|
*/
|
|
4044
|
-
|
|
4045
|
-
|
|
4352
|
+
readonly reportMediaActionLogger: ReportMediaActionLogger;
|
|
4353
|
+
constructor(
|
|
4046
4354
|
/**
|
|
4047
|
-
*
|
|
4048
|
-
* @param content
|
|
4355
|
+
* 日志工具
|
|
4049
4356
|
*/
|
|
4050
|
-
|
|
4357
|
+
logger: BasicLogger,
|
|
4051
4358
|
/**
|
|
4052
|
-
*
|
|
4359
|
+
* MediaServer 请求实例
|
|
4053
4360
|
*/
|
|
4054
|
-
|
|
4361
|
+
service: RCMediaService,
|
|
4055
4362
|
/**
|
|
4056
|
-
*
|
|
4363
|
+
* IM 信令上下文
|
|
4057
4364
|
*/
|
|
4058
|
-
|
|
4365
|
+
context: RTCContext,
|
|
4059
4366
|
/**
|
|
4060
|
-
*
|
|
4367
|
+
* 运行时
|
|
4061
4368
|
*/
|
|
4062
|
-
|
|
4369
|
+
runtime: IRuntime,
|
|
4063
4370
|
/**
|
|
4064
|
-
*
|
|
4371
|
+
* PeerConenction 连接实例
|
|
4065
4372
|
*/
|
|
4066
|
-
|
|
4373
|
+
peer: RCRTCPeerConnection,
|
|
4067
4374
|
/**
|
|
4068
|
-
*
|
|
4069
|
-
* @returns
|
|
4375
|
+
* 内存只读模块
|
|
4070
4376
|
*/
|
|
4071
|
-
|
|
4377
|
+
store: ReadableStore,
|
|
4072
4378
|
/**
|
|
4073
|
-
*
|
|
4074
|
-
* @param userId
|
|
4075
|
-
* @returns
|
|
4379
|
+
* 北极星统计工具
|
|
4076
4380
|
*/
|
|
4077
|
-
|
|
4381
|
+
polarisReport: PolarisReporter,
|
|
4078
4382
|
/**
|
|
4079
|
-
*
|
|
4383
|
+
* 行为数据采集工具
|
|
4080
4384
|
*/
|
|
4081
|
-
|
|
4385
|
+
reportMediaActionLogger: ReportMediaActionLogger);
|
|
4082
4386
|
/**
|
|
4083
|
-
*
|
|
4084
|
-
* @param name 消息名称
|
|
4085
|
-
* @param content 消息内容
|
|
4387
|
+
* 代理房间实例以获取跨房间连麦时的推送配置
|
|
4086
4388
|
*/
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4389
|
+
getPushOtherRooms: () => IPushOtherRooms[];
|
|
4390
|
+
}
|
|
4391
|
+
|
|
4392
|
+
declare enum CommandPriority {
|
|
4393
|
+
LOW = 0,
|
|
4394
|
+
NORMAL = 1,
|
|
4395
|
+
HIGH = 2
|
|
4396
|
+
}
|
|
4397
|
+
declare type ICommandResult<R = void> = {
|
|
4398
|
+
code: number;
|
|
4399
|
+
data?: R;
|
|
4400
|
+
};
|
|
4401
|
+
/**
|
|
4402
|
+
* 命令基类
|
|
4403
|
+
* @typeParams R - 返回值类型声明
|
|
4404
|
+
* @typeParams T - 命令执行上下文类型
|
|
4405
|
+
* @typeParams S - 内存数据缓存模块
|
|
4406
|
+
*/
|
|
4407
|
+
declare abstract class BaseCommand<R = void, T = CommandExecuteContext, S = Store> {
|
|
4090
4408
|
/**
|
|
4091
|
-
*
|
|
4092
|
-
* @param
|
|
4093
|
-
* @param
|
|
4094
|
-
* @param
|
|
4095
|
-
* @param isInner RTC 业务内部使用参数,用户忽略
|
|
4409
|
+
* 事务执行函数
|
|
4410
|
+
* @param context - 事务执行上下文
|
|
4411
|
+
* @param store - 内存读写模块
|
|
4412
|
+
* @param invoker - 任务队列
|
|
4096
4413
|
*/
|
|
4097
|
-
|
|
4098
|
-
name: string;
|
|
4099
|
-
content: string;
|
|
4100
|
-
}, isInner?: boolean): Promise<{
|
|
4101
|
-
code: RCRTCCode;
|
|
4102
|
-
}>;
|
|
4414
|
+
abstract execute(context: T, store: S, invoker: BaseInvoker<T, S>): Promise<ICommandResult<R>>;
|
|
4103
4415
|
/**
|
|
4104
|
-
*
|
|
4105
|
-
* @param keys 待删除的属性名数组
|
|
4106
|
-
* @param message 是否在删除属性的时候携带消息内容,传空则不往房间中发送消息
|
|
4107
|
-
* @param isInner RTC 业务内部使用参数,用户忽略
|
|
4416
|
+
* 获取指令优先级,必要时可 override 此函数
|
|
4108
4417
|
*/
|
|
4109
|
-
|
|
4110
|
-
name: string;
|
|
4111
|
-
content: string;
|
|
4112
|
-
}, isInner?: boolean): Promise<{
|
|
4113
|
-
code: RCRTCCode;
|
|
4114
|
-
}>;
|
|
4418
|
+
get priority(): CommandPriority;
|
|
4115
4419
|
/**
|
|
4116
|
-
*
|
|
4117
|
-
* @
|
|
4118
|
-
* @param isInner RTC 业务内部使用参数,用户忽略
|
|
4420
|
+
* 它返回命令的种类。
|
|
4421
|
+
* @returns 命令的种类。
|
|
4119
4422
|
*/
|
|
4120
|
-
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4423
|
+
get kind(): RCCommandKind;
|
|
4424
|
+
}
|
|
4425
|
+
|
|
4426
|
+
/**
|
|
4427
|
+
* @typeParams T - 事务执行上下文类型
|
|
4428
|
+
* @typeParams S - 内存读写模块类型
|
|
4429
|
+
*/
|
|
4430
|
+
declare class BaseInvoker<T, S> {
|
|
4431
|
+
protected readonly _logger: BasicLogger;
|
|
4124
4432
|
/**
|
|
4125
|
-
*
|
|
4126
|
-
* @param key 属性名
|
|
4127
|
-
* @param value 属性值
|
|
4128
|
-
* @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息
|
|
4433
|
+
* 内存数据管理实例
|
|
4129
4434
|
*/
|
|
4130
|
-
|
|
4435
|
+
protected readonly _context: T;
|
|
4131
4436
|
/**
|
|
4132
|
-
*
|
|
4133
|
-
* @param keys 待删除的属性名数组
|
|
4134
|
-
* @param message 是否在删除属性的时候携带消息内容,传空则不往房间中发送消息
|
|
4437
|
+
* 内存读写模块
|
|
4135
4438
|
*/
|
|
4136
|
-
|
|
4439
|
+
protected readonly _store: S;
|
|
4137
4440
|
/**
|
|
4138
|
-
*
|
|
4139
|
-
* @param keys 要查询的属性名数组
|
|
4441
|
+
* 命令终止时返回的错误码定义
|
|
4140
4442
|
*/
|
|
4141
|
-
private
|
|
4443
|
+
private abortCode;
|
|
4444
|
+
constructor(_logger: BasicLogger,
|
|
4142
4445
|
/**
|
|
4143
|
-
*
|
|
4446
|
+
* 内存数据管理实例
|
|
4144
4447
|
*/
|
|
4145
|
-
|
|
4448
|
+
_context: T,
|
|
4146
4449
|
/**
|
|
4147
|
-
*
|
|
4148
|
-
* @private
|
|
4450
|
+
* 内存读写模块
|
|
4149
4451
|
*/
|
|
4150
|
-
|
|
4452
|
+
_store: S,
|
|
4151
4453
|
/**
|
|
4152
|
-
*
|
|
4153
|
-
* 导致在未完全退出的过程中仍能听到房间内的声音问题
|
|
4454
|
+
* 命令终止时返回的错误码定义
|
|
4154
4455
|
*/
|
|
4155
|
-
|
|
4156
|
-
private
|
|
4456
|
+
abortCode: RCRTCCode);
|
|
4457
|
+
private _queue;
|
|
4458
|
+
private _busy;
|
|
4459
|
+
private _next;
|
|
4460
|
+
private _execute;
|
|
4461
|
+
push<R>(command: BaseCommand<R, T, S>): Promise<ICommandResult<R>>;
|
|
4462
|
+
private _isDestroyed;
|
|
4463
|
+
isDestroyed(): boolean;
|
|
4464
|
+
destroy(): void;
|
|
4465
|
+
}
|
|
4466
|
+
/**
|
|
4467
|
+
* 房间任务队列管理
|
|
4468
|
+
*/
|
|
4469
|
+
declare class Invoker extends BaseInvoker<CommandExecuteContext, Store> {
|
|
4470
|
+
constructor(context: CommandExecuteContext, store: Store);
|
|
4157
4471
|
/**
|
|
4158
|
-
*
|
|
4472
|
+
* 获取 store 存储实例,返回值类型 `ReadableStore`,避免非 command 定义中修改内存
|
|
4159
4473
|
*/
|
|
4160
|
-
|
|
4161
|
-
|
|
4474
|
+
get store(): ReadableStore;
|
|
4475
|
+
destroy(): void;
|
|
4476
|
+
}
|
|
4477
|
+
|
|
4478
|
+
declare enum RCRTCRealtimeTranslationType {
|
|
4479
|
+
OPEN = 1,
|
|
4480
|
+
CLOSE = 0
|
|
4481
|
+
}
|
|
4482
|
+
|
|
4483
|
+
declare class RCMediaService {
|
|
4484
|
+
private readonly _runtime;
|
|
4485
|
+
private readonly _context;
|
|
4162
4486
|
/**
|
|
4163
|
-
*
|
|
4164
|
-
* @param localTrack
|
|
4487
|
+
* 自定义 MediaServer 地址,当有值时,不再使用导航内的地址
|
|
4165
4488
|
*/
|
|
4166
|
-
private
|
|
4489
|
+
private readonly _msUrl?;
|
|
4167
4490
|
/**
|
|
4168
|
-
*
|
|
4169
|
-
* @param tracks 待发布的 RCLocalTrack 实例
|
|
4170
|
-
* @returns
|
|
4491
|
+
* 请求超时时长
|
|
4171
4492
|
*/
|
|
4172
|
-
|
|
4493
|
+
private readonly _timeout;
|
|
4173
4494
|
/**
|
|
4174
|
-
*
|
|
4495
|
+
* 已失败的请求地址
|
|
4175
4496
|
*/
|
|
4176
|
-
|
|
4497
|
+
private readonly _failedMs;
|
|
4177
4498
|
/**
|
|
4178
|
-
*
|
|
4499
|
+
* 服务器指纹数据,客户端不得修改,直接透传
|
|
4179
4500
|
*/
|
|
4180
|
-
|
|
4501
|
+
private _rtcFinger;
|
|
4181
4502
|
/**
|
|
4182
|
-
*
|
|
4183
|
-
* @param tracks 取消发布的 RCLocalTrack 列表
|
|
4503
|
+
* 服务器接口返回的 clusterId 数据,当此数据有值时,后续所有请求向此服务发送
|
|
4184
4504
|
*/
|
|
4185
|
-
|
|
4505
|
+
private _clusterId;
|
|
4186
4506
|
/**
|
|
4187
|
-
*
|
|
4188
|
-
* @param resourceId
|
|
4507
|
+
* MCU 服务地址
|
|
4189
4508
|
*/
|
|
4190
|
-
|
|
4509
|
+
private _configUrl;
|
|
4191
4510
|
/**
|
|
4192
|
-
*
|
|
4193
|
-
* @param tracks
|
|
4511
|
+
* 排好序的探测地址
|
|
4194
4512
|
*/
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4513
|
+
private static msInDetector;
|
|
4514
|
+
private static detectorTime;
|
|
4515
|
+
private static detectValidMinute;
|
|
4516
|
+
private _msList;
|
|
4517
|
+
private _qualityMsList;
|
|
4518
|
+
private readonly _logger;
|
|
4519
|
+
constructor(_runtime: IRuntime, _context: RTCContext,
|
|
4199
4520
|
/**
|
|
4200
|
-
*
|
|
4201
|
-
* @param tracks 预取消远端资源
|
|
4521
|
+
* 自定义 MediaServer 地址,当有值时,不再使用导航内的地址
|
|
4202
4522
|
*/
|
|
4203
|
-
|
|
4204
|
-
code: RCRTCCode;
|
|
4205
|
-
failedList?: ISubscribeAttr[];
|
|
4206
|
-
}>;
|
|
4523
|
+
_msUrl?: string | undefined,
|
|
4207
4524
|
/**
|
|
4208
|
-
*
|
|
4209
|
-
* 当参数为 `[]` 时,意味着不再订阅任何资源
|
|
4210
|
-
* @param tracks 变更的资源列表
|
|
4525
|
+
* 请求超时时长
|
|
4211
4526
|
*/
|
|
4212
|
-
|
|
4213
|
-
code: RCRTCCode;
|
|
4214
|
-
failedList?: ISubscribeAttr[];
|
|
4215
|
-
}>;
|
|
4527
|
+
_timeout?: number);
|
|
4216
4528
|
/**
|
|
4217
|
-
*
|
|
4218
|
-
*
|
|
4219
|
-
*
|
|
4529
|
+
* 是否需要嗅探
|
|
4530
|
+
* im 未连接,无 navi 数据时,不需要嗅探
|
|
4531
|
+
* 客户端手动配置 mediaServer 时,不需要嗅探
|
|
4532
|
+
* navi 数据中 detectionServer 为空时,不需要嗅探
|
|
4533
|
+
* navi 数据中 jwt 为空时,不需要嗅探
|
|
4534
|
+
* 在探测有效期内不需要嗅探
|
|
4535
|
+
* RCMediaService.detectorTime 为 0 时,代表未探测过,需要嗅探
|
|
4220
4536
|
*/
|
|
4221
|
-
|
|
4537
|
+
isNededDetector(): boolean;
|
|
4538
|
+
detectorMediaSever(): void;
|
|
4222
4539
|
/**
|
|
4223
|
-
*
|
|
4540
|
+
* 地址探测
|
|
4541
|
+
* RTC 初始化时检测是否可以拿到 navi,可以拿到开始嗅探
|
|
4542
|
+
* 拿不到等 IM 链接成功后,再回调中调用开始嗅探
|
|
4224
4543
|
*/
|
|
4225
|
-
|
|
4544
|
+
private _startDetector;
|
|
4226
4545
|
/**
|
|
4227
|
-
*
|
|
4228
|
-
* @param trackId
|
|
4229
|
-
* @returns
|
|
4546
|
+
* 清空 msList 列表,重新请求导航后需清空 msList 列表
|
|
4230
4547
|
*/
|
|
4231
|
-
|
|
4548
|
+
clearMSList(): void;
|
|
4549
|
+
getMsList(): string[];
|
|
4232
4550
|
/**
|
|
4233
|
-
*
|
|
4234
|
-
*
|
|
4551
|
+
* _mslist 列表排序:[_clusterId, ping1DetectorUrl, 主域名, ping2DetectorUrl, ..., pingNDetectorUrl, 备用域名list ]
|
|
4552
|
+
* ping1 :ping 结果返回最快值
|
|
4235
4553
|
*/
|
|
4236
|
-
|
|
4237
|
-
private _appListener;
|
|
4554
|
+
private _sortMediaServiceList;
|
|
4238
4555
|
/**
|
|
4239
|
-
*
|
|
4240
|
-
* @param listener
|
|
4556
|
+
* 配置 gzip 请求头和请求体
|
|
4241
4557
|
*/
|
|
4242
|
-
|
|
4558
|
+
private _openGzip;
|
|
4243
4559
|
/**
|
|
4244
|
-
*
|
|
4245
|
-
* @param listener
|
|
4246
|
-
* @description 该方法暂仅支持 Chrome 浏览器
|
|
4560
|
+
* 处理 request 成功的结果
|
|
4247
4561
|
*/
|
|
4248
|
-
|
|
4562
|
+
private _dealRequestSuccessResult;
|
|
4249
4563
|
/**
|
|
4250
|
-
*
|
|
4251
|
-
* @param
|
|
4252
|
-
* @param
|
|
4564
|
+
* 发送请求,请求发送若失败,会继续尝试使用后续可用地址直到无地址可用,此时认为请求失败
|
|
4565
|
+
* @param path
|
|
4566
|
+
* @param header
|
|
4567
|
+
* @param body
|
|
4253
4568
|
*/
|
|
4254
|
-
|
|
4569
|
+
private _request;
|
|
4255
4570
|
/**
|
|
4256
|
-
*
|
|
4571
|
+
* 资源协商接口,订阅、发布、变更资源均可以使用此接口。该接口通过 sdp 字段交换 SDP 信息,
|
|
4572
|
+
* 并通过 subscribeList 和 publishList 表明最终发布和订阅的资源。本端产出 offer,服务器产出 answer
|
|
4573
|
+
* 每次接口调用,都会全量覆盖发布和订阅的资源。
|
|
4574
|
+
* @param header
|
|
4575
|
+
* @param body
|
|
4257
4576
|
*/
|
|
4577
|
+
exchange(headers: IRTCReqHeader, body: IExchangeReqBody, traceId: string, isNeedUpdateMsas?: boolean): Promise<{
|
|
4578
|
+
code: RCRTCCode;
|
|
4579
|
+
data?: IExchangeResponse | undefined;
|
|
4580
|
+
qualityMsList?: IMediaServerQualityData[] | undefined;
|
|
4581
|
+
}>;
|
|
4258
4582
|
/**
|
|
4259
|
-
*
|
|
4260
|
-
* @param livingType
|
|
4583
|
+
* 退出房间
|
|
4261
4584
|
*/
|
|
4262
|
-
|
|
4263
|
-
private _onAudioMuteChange;
|
|
4264
|
-
private _onVideoMuteChange;
|
|
4585
|
+
exit(headers: IRTCReqHeader): Promise<RCRTCCode>;
|
|
4265
4586
|
/**
|
|
4266
|
-
*
|
|
4587
|
+
* 观众端订阅主播资源
|
|
4267
4588
|
*/
|
|
4268
|
-
|
|
4589
|
+
broadcastSubscribe(headers: IRTCReqHeader, body: IBroadcastSubReqBody): Promise<{
|
|
4590
|
+
code: RCRTCCode;
|
|
4591
|
+
data?: IBroadcastSubRespBody | undefined;
|
|
4592
|
+
qualityMsList?: IMediaServerQualityData[] | undefined;
|
|
4593
|
+
}>;
|
|
4269
4594
|
/**
|
|
4270
|
-
*
|
|
4595
|
+
* 观众端退出订阅
|
|
4271
4596
|
*/
|
|
4272
|
-
|
|
4597
|
+
broadcastExit(headers: IRTCReqHeader): Promise<{
|
|
4598
|
+
code: RCRTCCode;
|
|
4599
|
+
}>;
|
|
4273
4600
|
/**
|
|
4274
|
-
*
|
|
4601
|
+
* 直播推流、自定义布局配置
|
|
4275
4602
|
*/
|
|
4276
|
-
|
|
4277
|
-
|
|
4603
|
+
setMcuConfig(headers: IMCUReqHeaders, body: IMCUConfig | ISetEnableCDN): Promise<{
|
|
4604
|
+
code: RCRTCCode;
|
|
4605
|
+
res?: any;
|
|
4606
|
+
}>;
|
|
4278
4607
|
/**
|
|
4279
|
-
*
|
|
4280
|
-
* @param oldTrack 已经发布的视频轨道或音频轨道
|
|
4281
|
-
* @param newTrack 从新设备获取的视频轨道或音频轨道
|
|
4282
|
-
* @returns code 切换结果,RCRTCCode.SUCCESS 表示切换成功
|
|
4608
|
+
* 房间内观众获取 CDN 资源信息、拉流地址
|
|
4283
4609
|
*/
|
|
4284
|
-
|
|
4610
|
+
getCDNResourceInfo(headers: ICDNPlayUrlReqHeaders, url: string, traceId: string): Promise<{
|
|
4611
|
+
code: RCRTCCode;
|
|
4612
|
+
res?: ICDNPlayUrlResponse;
|
|
4613
|
+
}>;
|
|
4614
|
+
updateASRStatus(headers: IRTCReqHeader, body: {
|
|
4615
|
+
'asr_status': RCRTCASRStatus;
|
|
4616
|
+
}, traceId: string): Promise<{
|
|
4617
|
+
code: RCRTCCode;
|
|
4618
|
+
data?: {
|
|
4619
|
+
resultCode: number;
|
|
4620
|
+
} | undefined;
|
|
4621
|
+
qualityMsList?: IMediaServerQualityData[] | undefined;
|
|
4622
|
+
}>;
|
|
4623
|
+
operateRealtimeTranslation(headers: IRTCReqHeader, body: {
|
|
4624
|
+
status: RCRTCRealtimeTranslationType;
|
|
4625
|
+
destLanguage?: string;
|
|
4626
|
+
}, traceId: string): Promise<{
|
|
4627
|
+
code: RCRTCCode;
|
|
4628
|
+
data?: {
|
|
4629
|
+
resultCode: number;
|
|
4630
|
+
} | undefined;
|
|
4631
|
+
qualityMsList?: IMediaServerQualityData[] | undefined;
|
|
4632
|
+
}>;
|
|
4633
|
+
operateSummarization(headers: IRTCReqHeader, body: {
|
|
4634
|
+
status: RCRTCOperateSummarizationType;
|
|
4635
|
+
}, traceId: string): Promise<{
|
|
4636
|
+
code: RCRTCCode;
|
|
4637
|
+
data?: {
|
|
4638
|
+
resultCode: number;
|
|
4639
|
+
taskId?: string | undefined;
|
|
4640
|
+
} | undefined;
|
|
4641
|
+
qualityMsList?: IMediaServerQualityData[] | undefined;
|
|
4642
|
+
}>;
|
|
4643
|
+
generateSummarization(roomId: string, taskId: string, startTime: number, endTime: number, config: IRCRTCGenerateSummarizationConfig, contentBlock: (data: string) => void, traceId: string): Promise<{
|
|
4644
|
+
code: RCRTCCode;
|
|
4645
|
+
}>;
|
|
4646
|
+
getASRContent(roomId: string, taskId: string, startTime: number, endTime: number, contentBlock: (data: string) => void, traceId: string, destLang?: string): Promise<{
|
|
4285
4647
|
code: RCRTCCode;
|
|
4286
4648
|
}>;
|
|
4287
4649
|
}
|
|
@@ -4851,6 +5213,10 @@ interface IJoinRTCRoomOptions {
|
|
|
4851
5213
|
* 设置用户属性
|
|
4852
5214
|
*/
|
|
4853
5215
|
userData?: IRTCUserData;
|
|
5216
|
+
/**
|
|
5217
|
+
* 昵称,用于智能总结
|
|
5218
|
+
*/
|
|
5219
|
+
nickName?: string;
|
|
4854
5220
|
}
|
|
4855
5221
|
/**
|
|
4856
5222
|
* RTC 业务客户端
|
|
@@ -5003,6 +5369,32 @@ declare class RCRTCClient extends RCMediaStreamCapture {
|
|
|
5003
5369
|
code: RCRTCCode | ErrorCode;
|
|
5004
5370
|
data?: IRTCJoinedInfo[];
|
|
5005
5371
|
}>;
|
|
5372
|
+
/**
|
|
5373
|
+
* 生成智能总结
|
|
5374
|
+
* @param roomId 生成智能总结的房间 Id
|
|
5375
|
+
* @param taskId 智能总结任务 Id,通过 onReceiveStartSummarization 回调获取到
|
|
5376
|
+
* @param startTime 本次需要总结的开始时间,UTC 时间戳,单位秒,传入 0,表示总结开始的时间
|
|
5377
|
+
* @param endTime 本次需要总结的结束时间,UTC 时间戳,单位秒,传入 0,表示当前时间,如果总结已经停止,则表示总结结束的时间
|
|
5378
|
+
* @param config 生成智能总结配置,其中 enableSummarization、enableSummarizationDetails、enableChapterSummary、enableTodoList、enableHashtag 必须有一个为 true,否则不会产生任何总结内容
|
|
5379
|
+
* @param contentBlock 内容回调
|
|
5380
|
+
* @returns
|
|
5381
|
+
*/
|
|
5382
|
+
generateSummarization(roomId: string, taskId: string, startTime: number | undefined, endTime: number | undefined, config: IRCRTCGenerateSummarizationConfig, contentBlock: (data: string) => void): Promise<{
|
|
5383
|
+
code: RCRTCCode;
|
|
5384
|
+
}>;
|
|
5385
|
+
/**
|
|
5386
|
+
* 获取语音转文字内容
|
|
5387
|
+
* @param roomId 获取语音转文字的房间 Id
|
|
5388
|
+
* @param taskId 智能总结任务 Id,通过 onReceiveStartSummarization 回调获取
|
|
5389
|
+
* @param startTime 本次需要获取语音转文字的开始时间,UTC 时间戳,单位秒,传入 0,表示总结开始的时间
|
|
5390
|
+
* @param endTime 本次需要获取语音转文字的结束时间,UTC 时间戳,单位秒,传入 0,表示当前时间,如果总结已经停止,则表示总结结束的时间
|
|
5391
|
+
* @param destLang 目标语言代码,如果传入 nil,则使用默认语言
|
|
5392
|
+
* @param contentBlock 内容回调,如果内容比较多,contentBlock 会回调多次
|
|
5393
|
+
* @returns
|
|
5394
|
+
*/
|
|
5395
|
+
getASRContent(roomId: string, taskId: string, startTime: number | undefined, endTime: number | undefined, contentBlock: (data: string) => void, destLang?: string): Promise<{
|
|
5396
|
+
code: RCRTCCode;
|
|
5397
|
+
}>;
|
|
5006
5398
|
}
|
|
5007
5399
|
|
|
5008
5400
|
/**
|
|
@@ -5052,4 +5444,4 @@ declare const helper: {
|
|
|
5052
5444
|
ifSupportScreenShare: typeof ifSupportScreenShare;
|
|
5053
5445
|
};
|
|
5054
5446
|
|
|
5055
|
-
export { BackgroundPictureFillMode, IAudienceRoomEventListener, IAudioLevelChangeHandler, ICameraVideoProfile, ICreateLocalTrackOptions, IJoinRTCRoomOptions, IJoinResCDNInfo, ILiveAudioState, IMCUOutputConfig, IMCUOutputVideoConfig, IMicphoneAudioProfile, IPKEndInfo, IPKInviteAnswerInfo, IPKInviteInfo, IPubSuccessRes, IPublishAttrs, IPublishedResource, IRCCandidatePairStat, IRCEncryptorHooks, IRCRTCInitOptions, IRCRTCReportListener, IRCRTCStateReport, IRCTrackStat, IRTCUserData, IReqResPKOptions, IRoomEventListener, IRoomPKEventListener, IScreenVideoProfile, ISubscribeAttr, IVideoProfile, MixLayoutMode, MixVideoRenderMode, RCAbstractRoom, RCAudienceClient, RCAudienceLivingRoom, RCAudioBitrate, RCCameraVideoTrack, RCEncryptFunction, 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, RTCMode, device, helper, installer };
|
|
5447
|
+
export { BackgroundPictureFillMode, IAudienceRoomEventListener, IAudioLevelChangeHandler, ICameraVideoProfile, ICreateLocalTrackOptions, IJoinRTCRoomOptions, IJoinResCDNInfo, ILiveAudioState, IMCUOutputConfig, IMCUOutputVideoConfig, IMicphoneAudioProfile, IPKEndInfo, IPKInviteAnswerInfo, IPKInviteInfo, IPubSuccessRes, IPublishAttrs, IPublishedResource, IRCCandidatePairStat, IRCEncryptorHooks, IRCRTCGenerateSummarizationConfig, IRCRTCInitOptions, IRCRTCReportListener, IRCRTCStateReport, IRCTrackStat, IRTCUserData, IReqResPKOptions, IRoomEventListener, IRoomPKEventListener, IScreenVideoProfile, ISubscribeAttr, ISummarizationStatusData, IVideoProfile, MixLayoutMode, MixVideoRenderMode, RCAbstractRoom, RCAudienceClient, RCAudienceLivingRoom, RCAudioBitrate, RCCameraVideoTrack, RCEncryptFunction, RCFrameRate, RCInnerCDNPullIsHttps, RCInnerCDNPullKind, RCKickReason, RCLivingRoom, RCLivingType, RCLocalAudioTrack, RCLocalFileAudioTrack, RCLocalFileTrack, RCLocalFileVideoTrack, RCLocalTrack, RCLocalVideoTrack, RCMCUConfigBuilder, RCMediaStreamCapture, RCMediaType, RCMicphoneAudioTrack, RCRTCASRContent, RCRTCClient, RCRTCCode, RCRTCGenerateSummarizationFormat, RCRTCLiveRole, RCRTCOperateSummarizationType, RCRTCPingResult, RCRTCRealtimeTranslationContent, RCRTCRoom, RCRemoteAudioTrack, RCRemoteTrack, RCRemoteVideoTrack, RCResolution, RCScreenAudioTrack, RCScreenVideoTrack, RCTag, RCTrack, RCVideoBitrate, RTCJoinType, RTCMode, device, helper, installer };
|