@rongcloud/plugin-rtc 5.6.21 → 5.7.0-enterprise-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.d.ts CHANGED
@@ -581,11 +581,12 @@ declare enum RTCMode {
581
581
  */
582
582
  CROSS_MUTI = 7,
583
583
  /**
584
- * sip呼叫
584
+ * SIP 呼叫
585
+ * @private
585
586
  */
586
587
  SIP = 4,
587
588
  /**
588
- * 内部 Callplus 呼叫房间类型,请勿使用
589
+ * 内部 Callplus 呼叫类型,请勿使用
589
590
  * @private
590
591
  */
591
592
  CALL = 5
@@ -1242,6 +1243,19 @@ declare enum PullRoomStatusEvent {
1242
1243
  RESOURCECHANGE = 3
1243
1244
  }
1244
1245
 
1246
+ declare type RTCEncodedFrame = RTCEncodedAudioFrame | RTCEncodedVideoFrame;
1247
+ declare type RCEncryptFunction<T extends RTCEncodedFrame> = (data: T) => T;
1248
+ interface IRCEncryptorHooks {
1249
+ /**
1250
+ * 加密回调,用于接收待加密的 opus 音频和 h.264 视频帧数据
1251
+ */
1252
+ decode: RCEncryptFunction<RTCEncodedFrame>;
1253
+ /**
1254
+ * 解密回调,用于接收待解密的 opus 音频和 h.264 视频帧数据
1255
+ */
1256
+ encode: RCEncryptFunction<RTCEncodedFrame>;
1257
+ }
1258
+
1245
1259
  interface IRCTrackBitrate {
1246
1260
  /**
1247
1261
  * 最大码率
@@ -1949,6 +1963,10 @@ interface IRCRTCInitOptions {
1949
1963
  * @deprecated
1950
1964
  */
1951
1965
  audio?: any;
1966
+ /**
1967
+ * 加密机创建参数
1968
+ */
1969
+ encryptor?: IRCEncryptorHooks;
1952
1970
  }
1953
1971
  interface ICameraVideoProfile extends IVideoProfile {
1954
1972
  cameraId?: string;
@@ -2455,19 +2473,19 @@ interface ISetEnableCDN {
2455
2473
  }
2456
2474
 
2457
2475
  /**
2458
- * RTC 房间加入类型
2476
+ * 多端登录时,加入房间时的踢人策略
2459
2477
  */
2460
2478
  declare enum RTCJoinType {
2461
2479
  /**
2462
- * 踢前一个设备
2480
+ * 踢出已存在于房间的设备,以便于当前设备加入房间
2463
2481
  */
2464
2482
  KICK = 0,
2465
2483
  /**
2466
- * 当前加入拒绝
2484
+ * 保持已存在于房间的设备,拒绝当前设备加入房间
2467
2485
  */
2468
2486
  REFUSE = 1,
2469
2487
  /**
2470
- * 两个设备共存
2488
+ * 两个设备共存,但发布的资源会相互覆盖,以最后发布的为准
2471
2489
  */
2472
2490
  COEXIST = 2
2473
2491
  }
@@ -2789,74 +2807,135 @@ declare class RCMediaService {
2789
2807
  }>;
2790
2808
  }
2791
2809
 
2792
- /**
2793
- * RTC 消息类型常量
2794
- * @private
2795
- */
2796
- declare enum RCRTCMessageType {
2810
+ declare enum RCCommandKind {
2797
2811
  /**
2798
- * 增量资源发布消息
2799
- * @deprecated
2812
+ * 发信令取消加入房间之前的资源
2800
2813
  */
2801
- PUBLISH = "RCRTC:PublishResource",
2814
+ UNPUBLISH_PREV = "UnpublishPrevCommand",
2802
2815
  /**
2803
- * 增量资源取消发布消息
2804
- * @deprecated
2816
+ * 拉取房间内数据
2805
2817
  */
2806
- UNPUBLISH = "RCRTC:UnpublishResource",
2818
+ PULL_RTCROOM_STATUS = "PullRTCRoomStatusCommand",
2807
2819
  /**
2808
- * 增量资源状态变更消息
2809
- * @deprecated
2820
+ * 加入房间
2810
2821
  */
2811
- MODIFY = "RCRTC:ModifyResource",
2822
+ JOINROOM = "JoinRoomCommand",
2812
2823
  /**
2813
- * 全量资源变更消息
2824
+ * 解析远端资源数据
2814
2825
  */
2815
- TOTAL_CONTENT_RESOURCE = "RCRTC:TotalContentResources",
2826
+ PARSE_REMOTERES = "ParseRemoteResCommand",
2816
2827
  /**
2817
- * 房间人员变更
2828
+ * 解析远端人员数据
2818
2829
  */
2819
- STATE = "RCRTC:state",
2830
+ PARSE_USERSTATE = "ParseUserStateCommand",
2820
2831
  /**
2821
- * 房间属性变更
2832
+ * 本端 track 禁用/启用
2822
2833
  */
2823
- ROOM_NOTIFY = "RCRTC:RoomNtf",
2834
+ LOCAL_TRACK_MUTE = "LocalTrackMuteCommand",
2824
2835
  /**
2825
- * 房间用户属性变更
2836
+ * 发布资源
2826
2837
  */
2827
- USER_NOTIFY = "RCRTC:UserNtf",
2838
+ PUBLISH = "PublishCommand",
2828
2839
  /**
2829
- * 被服务踢出房间
2840
+ * 恢复 ice 连接
2830
2841
  */
2831
- KICK = "RCRTC:kick",
2842
+ RETRY_EXCHANGE = "RetryExchangeCommand",
2832
2843
  /**
2833
- * 跨房间连麦 PK 请求消息
2844
+ * 取消发布
2834
2845
  */
2835
- PK_INVITE = "RCRTC:invite",
2846
+ UNPUBLISH = "UnpublishCommand",
2836
2847
  /**
2837
- * 连麦请求超时
2848
+ * 订阅
2838
2849
  */
2839
- PK_INVITE_TIMEOUT = "RCRTC:inviteTimeout",
2850
+ SUBSCRIBE = "SubscribeCommand",
2840
2851
  /**
2841
- * 跨房间连麦 PK 取消请求消息
2852
+ * 取消订阅
2842
2853
  */
2843
- PK_CANCEL_INVITE = "RCRTC:cancelInvite",
2854
+ UNSUBSCRIBE = "UnsubscribeCommand",
2844
2855
  /**
2845
- * 跨房间连麦 PK 请求响应消息
2856
+ * 全量订阅
2846
2857
  */
2847
- PK_INVITE_ANSWER = "RCRTC:answerInvite",
2858
+ UPDATE_SUBSCRIBE_LIST = "UpdateSubscribeListCommand",
2848
2859
  /**
2849
- * 结束跨房间连麦 PK 消息
2860
+ * im 重连房间内人员、资源处理
2850
2861
  */
2851
- PK_END = "RCRTC:endInvite",
2862
+ ON_SIGNAL_RECONNECTED = "OnSignalReconnectedCommand",
2852
2863
  /**
2853
- * 连麦的房间不再了或离线了,主直播房间会收到的消息通知
2864
+ * 退出副房间
2854
2865
  */
2855
- OTHER_ROOM_OFFLINE = "RCRTC:otherRoomOffline",
2866
+ LEAVE_OTHER_ROOM = "LeaveOtherRoomCommand",
2856
2867
  /**
2857
- * 订阅、取消订阅动作成功
2868
+ * 主播、观众切换身份
2858
2869
  */
2859
- ROOM_TASK_FINISH = "RCRTC:roomTaskFinish"
2870
+ RTC_IDENTITY_CHANGE = "RTCIdentityChangeCommand",
2871
+ /**
2872
+ * 开/关 CDN
2873
+ */
2874
+ ENABLE_INNER_CDN = "EnableInnerCDNCommand",
2875
+ /**
2876
+ * 携带副房间信息重新发 /exchange 请求
2877
+ */
2878
+ EXCHANGE_WITH_PUSH_OTHER_ROOM = "ExchangeWithPushOtherRoomCommand",
2879
+ /**
2880
+ * 发送 MCU 请求
2881
+ */
2882
+ MCUCONFIG_FLUSH = "MCUConfigFlushCommand",
2883
+ UNKNOWN = "Unknown"
2884
+ }
2885
+
2886
+ declare class ReportMediaActionLogger {
2887
+ private readonly _logger;
2888
+ private _roomId;
2889
+ private _clientSessionId;
2890
+ private _userId;
2891
+ /**
2892
+ * 埋点上报的基础数据
2893
+ */
2894
+ private _baseReportData;
2895
+ /**
2896
+ * 埋点上报的网络数据
2897
+ */
2898
+ private _networkReportData;
2899
+ /**
2900
+ * 最新发布或订阅成功的时间
2901
+ */
2902
+ private _pubOrSubSuccessTime;
2903
+ /**
2904
+ * 记录每一条 peerConnection 当前的连接状态和更新时间
2905
+ */
2906
+ private _peerCStatus?;
2907
+ constructor(_logger: BasicLogger, _roomId: string, _clientSessionId: string, _userId: string);
2908
+ /**
2909
+ * 加房间
2910
+ */
2911
+ reportQualityJoinRoomData: (start: number, code: ErrorCode, roomType: RTCMode$1, sessionId?: string | undefined) => void;
2912
+ /**
2913
+ * 异常掉线
2914
+ */
2915
+ reportQualityKickedData(kickType: RCKickReason): void;
2916
+ /**
2917
+ * 发布资源、取消发布、订阅、取消订阅
2918
+ */
2919
+ reportPubOrSubQualityData(type: RCRTCResourceAction, start: number, tracks: (RCLocalTrack | ISubscribeAttr | RCRemoteTrack)[], code: ErrorCode | RCRTCCode, msas?: {
2920
+ [trackId: string]: IMediaServerQualityData[];
2921
+ }, sigs?: ISignalQualityData[]): void;
2922
+ /**
2923
+ * 收到其他端发布通知
2924
+ */
2925
+ reportQualityRecvPubMsgData(sentTime: number, senderUserId: string): void;
2926
+ /**
2927
+ * 设置最新发布或订阅成功的时间
2928
+ */
2929
+ setPubOrSubSuccessTime(time: number): void;
2930
+ /**
2931
+ * 发布或订阅成功到 ICE 首次连接成功
2932
+ * 一个 peerConnection 只会触发一次
2933
+ */
2934
+ reportIceFirstConnectData(type: string): void;
2935
+ /**
2936
+ * ice 连接状态统计
2937
+ */
2938
+ recordQualityIceStatusData(iceCandidatePair: IRCCandidatePairStat, status: RTCIceConnectionState, time: number): void;
2860
2939
  }
2861
2940
 
2862
2941
  declare enum RCEncoder {
@@ -3324,7 +3403,7 @@ declare class RCRTCPeerConnection extends EventEmitter {
3324
3403
  /**
3325
3404
  * _reTryExchange 方法
3326
3405
  */
3327
- _reTryExchange: () => void,
3406
+ _reTryExchange: () => Promise<ICommandResult<void>>,
3328
3407
  /**
3329
3408
  * 当前用户 id
3330
3409
  */
@@ -3340,12 +3419,18 @@ declare class RCRTCPeerConnection extends EventEmitter {
3340
3419
  /**
3341
3420
  * 是否是房间内观众
3342
3421
  */
3343
- _isRoomAudience?: boolean);
3422
+ _isRoomAudience?: boolean,
3423
+ /**
3424
+ * 是否启用自定义加密
3425
+ */
3426
+ encrypt?: boolean);
3344
3427
  getLocalTracks(): RCLocalTrack[];
3345
3428
  private _onConnectionStateChange;
3346
3429
  private startAutoExecute;
3347
3430
  private stopAutoExecute;
3348
3431
  private _onICEConnectionStateChange;
3432
+ private _inRetry;
3433
+ private _handleRetry;
3349
3434
  private _onTrackReady;
3350
3435
  /**
3351
3436
  * @deprecated use RCLocalTrack.setBitrate instead of setBitrate
@@ -3452,137 +3537,6 @@ declare class RCRTCPeerConnection extends EventEmitter {
3452
3537
  isDestroyed(): boolean;
3453
3538
  }
3454
3539
 
3455
- declare enum RCCommandKind {
3456
- /**
3457
- * 发信令取消加入房间之前的资源
3458
- */
3459
- UNPUBLISH_PREV = "UnpublishPrevCommand",
3460
- /**
3461
- * 拉取房间内数据
3462
- */
3463
- PULL_RTCROOM_STATUS = "PullRTCRoomStatusCommand",
3464
- /**
3465
- * 加入房间
3466
- */
3467
- JOINROOM = "JoinRoomCommand",
3468
- /**
3469
- * 解析远端资源数据
3470
- */
3471
- PARSE_REMOTERES = "ParseRemoteResCommand",
3472
- /**
3473
- * 解析远端人员数据
3474
- */
3475
- PARSE_USERSTATE = "ParseUserStateCommand",
3476
- /**
3477
- * 本端 track 禁用/启用
3478
- */
3479
- LOCAL_TRACK_MUTE = "LocalTrackMuteCommand",
3480
- /**
3481
- * 发布资源
3482
- */
3483
- PUBLISH = "PublishCommand",
3484
- /**
3485
- * 恢复 ice 连接
3486
- */
3487
- RETRY_EXCHANGE = "RetryExchangeCommand",
3488
- /**
3489
- * 取消发布
3490
- */
3491
- UNPUBLISH = "UnpublishCommand",
3492
- /**
3493
- * 订阅
3494
- */
3495
- SUBSCRIBE = "SubscribeCommand",
3496
- /**
3497
- * 取消订阅
3498
- */
3499
- UNSUBSCRIBE = "UnsubscribeCommand",
3500
- /**
3501
- * 全量订阅
3502
- */
3503
- UPDATE_SUBSCRIBE_LIST = "UpdateSubscribeListCommand",
3504
- /**
3505
- * im 重连房间内人员、资源处理
3506
- */
3507
- ON_SIGNAL_RECONNECTED = "OnSignalReconnectedCommand",
3508
- /**
3509
- * 退出副房间
3510
- */
3511
- LEAVE_OTHER_ROOM = "LeaveOtherRoomCommand",
3512
- /**
3513
- * 主播、观众切换身份
3514
- */
3515
- RTC_IDENTITY_CHANGE = "RTCIdentityChangeCommand",
3516
- /**
3517
- * 开/关 CDN
3518
- */
3519
- ENABLE_INNER_CDN = "EnableInnerCDNCommand",
3520
- /**
3521
- * 携带副房间信息重新发 /exchange 请求
3522
- */
3523
- EXCHANGE_WITH_PUSH_OTHER_ROOM = "ExchangeWithPushOtherRoomCommand",
3524
- /**
3525
- * 发送 MCU 请求
3526
- */
3527
- MCUCONFIG_FLUSH = "MCUConfigFlushCommand",
3528
- UNKNOWN = "Unknown"
3529
- }
3530
-
3531
- declare class ReportMediaActionLogger {
3532
- private readonly _logger;
3533
- private _roomId;
3534
- private _clientSessionId;
3535
- private _userId;
3536
- /**
3537
- * 埋点上报的基础数据
3538
- */
3539
- private _baseReportData;
3540
- /**
3541
- * 埋点上报的网络数据
3542
- */
3543
- private _networkReportData;
3544
- /**
3545
- * 最新发布或订阅成功的时间
3546
- */
3547
- private _pubOrSubSuccessTime;
3548
- /**
3549
- * 记录每一条 peerConnection 当前的连接状态和更新时间
3550
- */
3551
- private _peerCStatus?;
3552
- constructor(_logger: BasicLogger, _roomId: string, _clientSessionId: string, _userId: string);
3553
- /**
3554
- * 加房间
3555
- */
3556
- reportQualityJoinRoomData: (start: number, code: ErrorCode, roomType: RTCMode$1, sessionId?: string | undefined) => void;
3557
- /**
3558
- * 异常掉线
3559
- */
3560
- reportQualityKickedData(kickType: RCKickReason): void;
3561
- /**
3562
- * 发布资源、取消发布、订阅、取消订阅
3563
- */
3564
- reportPubOrSubQualityData(type: RCRTCResourceAction, start: number, tracks: (RCLocalTrack | ISubscribeAttr | RCRemoteTrack)[], code: ErrorCode | RCRTCCode, msas?: {
3565
- [trackId: string]: IMediaServerQualityData[];
3566
- }, sigs?: ISignalQualityData[]): void;
3567
- /**
3568
- * 收到其他端发布通知
3569
- */
3570
- reportQualityRecvPubMsgData(sentTime: number, senderUserId: string): void;
3571
- /**
3572
- * 设置最新发布或订阅成功的时间
3573
- */
3574
- setPubOrSubSuccessTime(time: number): void;
3575
- /**
3576
- * 发布或订阅成功到 ICE 首次连接成功
3577
- * 一个 peerConnection 只会触发一次
3578
- */
3579
- reportIceFirstConnectData(type: string): void;
3580
- /**
3581
- * ice 连接状态统计
3582
- */
3583
- recordQualityIceStatusData(iceCandidatePair: IRCCandidatePairStat, status: RTCIceConnectionState, time: number): void;
3584
- }
3585
-
3586
3540
  /**
3587
3541
  * 命令执行上下文
3588
3542
  */
@@ -3658,40 +3612,6 @@ declare class CommandExecuteContext extends EventEmitter {
3658
3612
  getPushOtherRooms: () => IPushOtherRooms[];
3659
3613
  }
3660
3614
 
3661
- declare enum CommandPriority {
3662
- LOW = 0,
3663
- NORMAL = 1,
3664
- HIGH = 2
3665
- }
3666
- declare type ICommandResult<R = void> = {
3667
- code: number;
3668
- data?: R;
3669
- };
3670
- /**
3671
- * 命令基类
3672
- * @typeParams R - 返回值类型声明
3673
- * @typeParams T - 命令执行上下文类型
3674
- * @typeParams S - 内存数据缓存模块
3675
- */
3676
- declare abstract class BaseCommand<R = void, T = CommandExecuteContext, S = Store> {
3677
- /**
3678
- * 事务执行函数
3679
- * @param context - 事务执行上下文
3680
- * @param store - 内存读写模块
3681
- * @param invoker - 任务队列
3682
- */
3683
- abstract execute(context: T, store: S, invoker: BaseInvoker<T, S>): Promise<ICommandResult<R>>;
3684
- /**
3685
- * 获取指令优先级,必要时可 override 此函数
3686
- */
3687
- get priority(): CommandPriority;
3688
- /**
3689
- * 它返回命令的种类。
3690
- * @returns 命令的种类。
3691
- */
3692
- get kind(): RCCommandKind;
3693
- }
3694
-
3695
3615
  /**
3696
3616
  * @typeParams T - 事务执行上下文类型
3697
3617
  * @typeParams S - 内存读写模块类型
@@ -3744,6 +3664,110 @@ declare class Invoker extends BaseInvoker<CommandExecuteContext, Store> {
3744
3664
  destroy(): void;
3745
3665
  }
3746
3666
 
3667
+ declare enum CommandPriority {
3668
+ LOW = 0,
3669
+ NORMAL = 1,
3670
+ HIGH = 2
3671
+ }
3672
+ declare type ICommandResult<R = void> = {
3673
+ code: number;
3674
+ data?: R;
3675
+ };
3676
+ /**
3677
+ * 命令基类
3678
+ * @typeParams R - 返回值类型声明
3679
+ * @typeParams T - 命令执行上下文类型
3680
+ * @typeParams S - 内存数据缓存模块
3681
+ */
3682
+ declare abstract class BaseCommand<R = void, T = CommandExecuteContext, S = Store> {
3683
+ /**
3684
+ * 事务执行函数
3685
+ * @param context - 事务执行上下文
3686
+ * @param store - 内存读写模块
3687
+ * @param invoker - 任务队列
3688
+ */
3689
+ abstract execute(context: T, store: S, invoker: BaseInvoker<T, S>): Promise<ICommandResult<R>>;
3690
+ /**
3691
+ * 获取指令优先级,必要时可 override 此函数
3692
+ */
3693
+ get priority(): CommandPriority;
3694
+ /**
3695
+ * 它返回命令的种类。
3696
+ * @returns 命令的种类。
3697
+ */
3698
+ get kind(): RCCommandKind;
3699
+ }
3700
+
3701
+ /**
3702
+ * RTC 消息类型常量
3703
+ * @private
3704
+ */
3705
+ declare enum RCRTCMessageType {
3706
+ /**
3707
+ * 增量资源发布消息
3708
+ * @deprecated
3709
+ */
3710
+ PUBLISH = "RCRTC:PublishResource",
3711
+ /**
3712
+ * 增量资源取消发布消息
3713
+ * @deprecated
3714
+ */
3715
+ UNPUBLISH = "RCRTC:UnpublishResource",
3716
+ /**
3717
+ * 增量资源状态变更消息
3718
+ * @deprecated
3719
+ */
3720
+ MODIFY = "RCRTC:ModifyResource",
3721
+ /**
3722
+ * 全量资源变更消息
3723
+ */
3724
+ TOTAL_CONTENT_RESOURCE = "RCRTC:TotalContentResources",
3725
+ /**
3726
+ * 房间人员变更
3727
+ */
3728
+ STATE = "RCRTC:state",
3729
+ /**
3730
+ * 房间属性变更
3731
+ */
3732
+ ROOM_NOTIFY = "RCRTC:RoomNtf",
3733
+ /**
3734
+ * 房间用户属性变更
3735
+ */
3736
+ USER_NOTIFY = "RCRTC:UserNtf",
3737
+ /**
3738
+ * 被服务踢出房间
3739
+ */
3740
+ KICK = "RCRTC:kick",
3741
+ /**
3742
+ * 跨房间连麦 PK 请求消息
3743
+ */
3744
+ PK_INVITE = "RCRTC:invite",
3745
+ /**
3746
+ * 连麦请求超时
3747
+ */
3748
+ PK_INVITE_TIMEOUT = "RCRTC:inviteTimeout",
3749
+ /**
3750
+ * 跨房间连麦 PK 取消请求消息
3751
+ */
3752
+ PK_CANCEL_INVITE = "RCRTC:cancelInvite",
3753
+ /**
3754
+ * 跨房间连麦 PK 请求响应消息
3755
+ */
3756
+ PK_INVITE_ANSWER = "RCRTC:answerInvite",
3757
+ /**
3758
+ * 结束跨房间连麦 PK 消息
3759
+ */
3760
+ PK_END = "RCRTC:endInvite",
3761
+ /**
3762
+ * 连麦的房间不再了或离线了,主直播房间会收到的消息通知
3763
+ */
3764
+ OTHER_ROOM_OFFLINE = "RCRTC:otherRoomOffline",
3765
+ /**
3766
+ * 订阅、取消订阅动作成功
3767
+ */
3768
+ ROOM_TASK_FINISH = "RCRTC:roomTaskFinish"
3769
+ }
3770
+
3747
3771
  declare type IOnRecvPKMsg = (msg: IReceivedMessage) => void;
3748
3772
  interface IRoomPKEventListener {
3749
3773
  /**
@@ -3954,7 +3978,7 @@ declare abstract class RCAbstractRoom extends EventEmitter {
3954
3978
  * @param {boolean} [isMainRoom] - 无论是主房间,主房间都是用户创建的房间,子房间是用户创建的房间。
3955
3979
  * @param {string} _clientSessionId - 客户端会话 ID,用于标识客户端。
3956
3980
  */
3957
- constructor(_context: RTCContext, _runtime: IRuntime, _roomId: string, _roomMode: RTCMode, _service: RCMediaService, _initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean, _clientSessionId?: string);
3981
+ constructor(_context: RTCContext, _runtime: IRuntime, _roomId: string, _roomMode: RTCMode, _service: RCMediaService, _initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean, _clientSessionId?: string, encrypt?: boolean);
3958
3982
  /**
3959
3983
  * 注册 RCRTCPeerConnection 事件监听器
3960
3984
  */
@@ -4144,7 +4168,7 @@ declare abstract class RCAbstractRoom extends EventEmitter {
4144
4168
  /**
4145
4169
  * ice 断线后,尝试重新走 exchange
4146
4170
  */
4147
- protected _reTryExchange(): Promise<void>;
4171
+ protected _reTryExchange(): Promise<ICommandResult<void>>;
4148
4172
  /**
4149
4173
  * 增量取消资源发布,若相应资源中存在小流资源,则同时取消发布
4150
4174
  * @param tracks 取消发布的 RCLocalTrack 列表
@@ -4576,12 +4600,10 @@ declare class RCRTCRoom extends RCAbstractRoom {
4576
4600
  * @param {string} roomId - 房间号
4577
4601
  * @param {RCMediaService} service - RCMediaService
4578
4602
  * @param {IRCRTCInitOptions} initOptions - IRCRTCInitOptions
4579
- * @param {boolean} [isUpgrade] - 是否升级房间,默认为false
4580
- * @param {boolean} [isMainRoom] - 无论是主房间,主房间是用户进入的房间,子房间是用户进入主房间后进入的房间。
4581
4603
  * @param {string} [_clientSessionId] - 当前房间的clientSessionId,用于区分当前房间和其他房间。
4582
4604
  * @param {RTCMode} roomType - RTCMode = RTCMode.RTC,
4583
4605
  */
4584
- constructor(context: RTCContext, runtime: IRuntime, roomId: string, service: RCMediaService, initOptions: IRCRTCInitOptions, isUpgrade?: boolean, isMainRoom?: boolean, _clientSessionId?: string, roomType?: RTCMode);
4606
+ constructor(context: RTCContext, runtime: IRuntime, roomId: string, service: RCMediaService, initOptions: IRCRTCInitOptions, roomType?: RTCMode, encrypt?: boolean);
4585
4607
  }
4586
4608
 
4587
4609
  /**
@@ -4793,6 +4815,24 @@ declare class RCMediaStreamCapture {
4793
4815
  private static getTracksWithOptions;
4794
4816
  }
4795
4817
 
4818
+ interface IJoinRTCRoomOptions {
4819
+ /**
4820
+ * 房间模式,默认为 `RTCMode.RTC`
4821
+ */
4822
+ mode?: RTCMode.RTC | RTCMode.CALL | RTCMode.CROSS_MUTI | RTCMode.SIP;
4823
+ /**
4824
+ * 同一账号多设备登录时,加入房间时的踢人策略,默认为 `RTCJoinType.KICK`
4825
+ */
4826
+ joinType?: RTCJoinType;
4827
+ /**
4828
+ * 是否启用自定义加密;需配合初始化 RTCLib 时定义的 `encrypt` 配置项使用,由配置项定义自定义加解密算法
4829
+ */
4830
+ encrypt?: boolean;
4831
+ /**
4832
+ * 设置用户属性
4833
+ */
4834
+ userData?: IRTCUserData;
4835
+ }
4796
4836
  /**
4797
4837
  * RTC 业务客户端
4798
4838
  * @public
@@ -4818,30 +4858,43 @@ declare class RCRTCClient extends RCMediaStreamCapture {
4818
4858
  */
4819
4859
  getCurrentId(): string;
4820
4860
  private _crtRoom;
4821
- private __joinRoom;
4861
+ /**
4862
+ * 加入跨 AppKey 音视频房间
4863
+ * @deprecated @since 5.7.0; 请使用 `joinRTCRoomWithOptions` 方法替代
4864
+ * @param roomId
4865
+ * @param joinType 多端处理方式
4866
+ * @param userData 设置用户属性
4867
+ * @param _ 参数已废弃
4868
+ * @param __ 参数已废弃
4869
+ */
4870
+ joinCrossRTCRoom(roomId: string, joinType?: RTCJoinType, userData?: IRTCUserData, _?: boolean, __?: RTCMode): Promise<{
4871
+ room?: RCRTCRoom;
4872
+ code: RCRTCCode;
4873
+ userIds?: string[];
4874
+ tracks?: RCRemoteTrack[];
4875
+ }>;
4822
4876
  /**
4823
4877
  * 加入普通音视频房间,加入成功后返回 room 实例、code、userIds、tracks
4878
+ * @deprecated @since 5.7.0; 请使用 `joinRTCRoomWithOptions` 方法替代
4824
4879
  * @param {string} roomId - 房间号
4825
4880
  * @param {RTCJoinType} [joinType] - 要加入的房间类型。
4826
- * @param {IRTCUserData} [outerUserDatas] - 加入房间的用户的用户数据。
4827
- * @param {boolean} [_] - 已废弃~~(是否使用多条 PeerConnection 链路)~~
4881
+ * @param {IRTCUserData} [userData] - 加入房间的用户的用户数据。
4882
+ * @param {boolean} [_] - 已废弃
4828
4883
  * @param {RTCMode} roomType - 房间类型,请谨慎修改,默认为 RTCMode.RTC
4829
4884
  */
4830
- joinRTCRoom(roomId: string, joinType?: RTCJoinType, outerUserDatas?: IRTCUserData, _?: boolean, roomType?: RTCMode.RTC | RTCMode.SIP | RTCMode.CALL): Promise<{
4885
+ joinRTCRoom(roomId: string, joinType?: RTCJoinType, userData?: IRTCUserData, _?: boolean, roomType?: RTCMode.RTC | RTCMode.SIP | RTCMode.CALL): Promise<{
4831
4886
  room?: RCRTCRoom;
4832
4887
  code: RCRTCCode;
4833
4888
  userIds?: string[];
4834
4889
  tracks?: RCRemoteTrack[];
4835
4890
  }>;
4836
4891
  /**
4837
- * 加入跨 AppKey 音视频房间
4838
- * @param roomId
4839
- * @param joinType 多端处理方式
4840
- * @param outerUserDatas 业务层设置人员属性
4841
- * @param _ 参数已废弃
4842
- * @param __ 参数已废弃
4892
+ * 加入普通音视频房间
4893
+ * @param roomId 房间 ID
4894
+ * @param options
4895
+ * @since 5.7.0
4843
4896
  */
4844
- joinCrossRTCRoom(roomId: string, joinType?: RTCJoinType, outerUserDatas?: IRTCUserData, _?: boolean, __?: RTCMode): Promise<{
4897
+ joinRTCRoomWithOptions(roomId: string, options?: IJoinRTCRoomOptions): Promise<{
4845
4898
  room?: RCRTCRoom;
4846
4899
  code: RCRTCCode;
4847
4900
  userIds?: string[];
@@ -4869,10 +4922,6 @@ declare class RCRTCClient extends RCMediaStreamCapture {
4869
4922
  */
4870
4923
  getAudienceClient(_?: boolean): RCAudienceClient;
4871
4924
  private _onIMStatusChange;
4872
- /**
4873
- * 用户主动断开 IM 连接
4874
- */
4875
- private _onIMDisconnect;
4876
4925
  /**
4877
4926
  * 用户销毁 IM 客户端,IM 客户端需重新初始化
4878
4927
  */
@@ -4984,4 +5033,4 @@ declare const helper: {
4984
5033
  ifSupportScreenShare: typeof ifSupportScreenShare;
4985
5034
  };
4986
5035
 
4987
- export { BackgroundPictureFillMode, IAudienceRoomEventListener, IAudioLevelChangeHandler, ICameraVideoProfile, ICreateLocalTrackOptions, IJoinResCDNInfo, ILiveAudioState, IMCUOutputConfig, IMCUOutputVideoConfig, IMicphoneAudioProfile, IPKEndInfo, IPKInviteAnswerInfo, IPKInviteInfo, IPubSuccessRes, IPublishAttrs, IPublishedResource, IRCCandidatePairStat, IRCRTCInitOptions, IRCRTCReportListener, IRCRTCStateReport, IRCTrackStat, IRTCUserData, IReqResPKOptions, IRoomEventListener, IRoomPKEventListener, IScreenVideoProfile, ISubscribeAttr, IVideoProfile, MixLayoutMode, MixVideoRenderMode, RCAbstractRoom, RCAudienceClient, RCAudienceLivingRoom, RCAudioBitrate, RCCameraVideoTrack, RCFrameRate, RCInnerCDNPullIsHttps, RCInnerCDNPullKind, RCKickReason, RCLivingRoom, RCLivingType, RCLocalAudioTrack, RCLocalFileAudioTrack, RCLocalFileTrack, RCLocalFileVideoTrack, RCLocalTrack, RCLocalVideoTrack, RCMCUConfigBuilder, RCMediaStreamCapture, RCMediaType, RCMicphoneAudioTrack, RCRTCClient, RCRTCCode, RCRTCLiveRole, RCRTCPingResult, RCRTCRoom, RCRemoteAudioTrack, RCRemoteTrack, RCRemoteVideoTrack, RCResolution, RCScreenAudioTrack, RCScreenVideoTrack, RCTag, RCTrack, RCVideoBitrate, RTCJoinType, device, helper, installer };
5036
+ 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, RTCEncodedFrame, RTCJoinType, RTCMode, device, helper, installer };