@rongcloud/plugin-rtc 5.3.4 → 5.3.7-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * RCRTC - v5.3.4
3
- * CommitId - a0331c6614c5526fb301c3497945278cf0ecc69d
4
- * Wed Apr 06 2022 15:51:02 GMT+0800 (China Standard Time)
2
+ * RCRTC - v5.3.7-alpha.1
3
+ * CommitId - aca944e2fa79b4f5e894c21aaaec789528e8f3fc
4
+ * Fri Apr 15 2022 18:00:48 GMT+0800 (China Standard Time)
5
5
  * ©2020 RongCloud, Inc. All rights reserved.
6
6
  */
7
7
  import { EventEmitter, LogLevel, RTCMode, IRuntime, RTCPluginContext, IServerRTCRoomEntry, IReceivedMessage, ErrorCode, IJoinRTCRoomData, KVString, RTCJoinType, IRTCUserData, IRTCJoinedInfo, IPluginGenerator } from '@rongcloud/engine';
@@ -1318,6 +1318,41 @@ declare enum RCInnerCDNModel {
1318
1318
  STOP = 2
1319
1319
  }
1320
1320
 
1321
+ declare enum RCMixInputFilterMode {
1322
+ /** 全合流,后续加入房间的用户会自动合流 */
1323
+ AUDIO_VIDEO_ALL = 0,
1324
+ /** 全不合流,后续加入本房间的用户 */
1325
+ AUDIO_VIDEO_NO = 1,
1326
+ /** 音频全订阅, 视频全不订阅 */
1327
+ AUDIO_ALL_VIDEO_NO = 2,
1328
+ /** 视频全订阅, 音频全不订阅 */
1329
+ AUDIO_NO_VIDEO_ALL = 3,
1330
+ /**
1331
+ * 根据设置的音频合流列表和视频合流列表合并媒体流
1332
+ */
1333
+ AUDIO_VIDEO_INPUT = 4,
1334
+ /** 音频全订阅,视频根据设置的视频合流列表 */
1335
+ AUDIO_ALL_VIDEO_INPUT = 5,
1336
+ /** 音频全不订阅, 视频根据input里面的视频项订阅 */
1337
+ AUDIO_NO_VIDEO_INPUT = 6,
1338
+ /** 视频全订阅, 音频根据input里面的音频项订阅 */
1339
+ AUDIO_INPUT_VIDEO_ALL = 7,
1340
+ /** 视频全不订阅, 音频根据input里面的音频项订阅 */
1341
+ AUDIO_INPUT_VIDEO_NO = 8,
1342
+ /** 按房间列表订阅音视频(保留当前已经订阅的, 但没在房间列表里的音视频) */
1343
+ ROOM_AUDIO_VIDEO_APPEND = 9,
1344
+ /** 按房间列表订阅音视频(清理当前已经订阅的, 但没在房间列表里的音视频) */
1345
+ ROOM_AUDIO_VIDEO_NOT_APPEND = 10,
1346
+ /** 按房间列表订阅音频, 不订阅视频(保留当前已经订阅的, 但没在房间列表里的音频) */
1347
+ ROOM_AUDIO_APPEND = 11,
1348
+ /** 按房间列表订阅音视, 不订阅视频(清理当前已经订阅的, 但没在房间列表里的音频) */
1349
+ ROOM_AUDIO_NOT_APPEND = 12,
1350
+ /** 按房间列表订阅视频, 不订阅音频(保留当前已经订阅的, 但没在房间列表里的视频) */
1351
+ ROOM_VIDEO_APPEND = 13,
1352
+ /** 按房间列表订阅视频, 不订阅音频(清理当前已经订阅的, 但没在房间列表里的视频) */
1353
+ ROOM_VIDEO_NOT_APPEND = 14
1354
+ }
1355
+
1321
1356
  /**
1322
1357
  * 合流后的 video 输出编码配置,包含分辨率、帧率、码率配置项
1323
1358
  */
@@ -1339,6 +1374,13 @@ interface IMCUOutputVideoAttrs {
1339
1374
  */
1340
1375
  bitrate?: number;
1341
1376
  }
1377
+ /**
1378
+ * 合并入 MCU 的音频流
1379
+ */
1380
+ interface IMCUInputAudio {
1381
+ user_id: string;
1382
+ stream_id: string;
1383
+ }
1342
1384
  /**
1343
1385
  * 自定义布局中的单一视频流布局
1344
1386
  */
@@ -1554,7 +1596,8 @@ interface IMCUConfig {
1554
1596
  * 自定义布局输入定义,只有在 mode 值为 `MixLayoutMode.CUSTOMIZE` 时需传值
1555
1597
  */
1556
1598
  input?: {
1557
- video: IMCUInputVideoLayout[];
1599
+ video?: IMCUInputVideoLayout[];
1600
+ audio?: IMCUInputAudio[];
1558
1601
  };
1559
1602
  /**
1560
1603
  * 合流后的媒体输出配置
@@ -1564,6 +1607,14 @@ interface IMCUConfig {
1564
1607
  * 水印配置
1565
1608
  */
1566
1609
  waterMark?: IMCUWaterMarkConfig;
1610
+ /**
1611
+ * 设置合流混入音频、视频的模式
1612
+ */
1613
+ inputFilterMode?: RCMixInputFilterMode;
1614
+ /**
1615
+ * MCU 混入列表中房间内的资源
1616
+ */
1617
+ mixRooms?: string[];
1567
1618
  }
1568
1619
  /**
1569
1620
  * 设置开启、停用内置 CDN 数据
@@ -2249,6 +2300,7 @@ declare class RCLivingPKHandler {
2249
2300
  leaveOtherRoom(room: RCLivingRoom, isQuitPK?: boolean): Promise<{
2250
2301
  code: RCRTCCode;
2251
2302
  }>;
2303
+ private _leaveOtherRoom;
2252
2304
  /**
2253
2305
  * 获取连麦信息
2254
2306
  * @param roomId 连麦房间的 roomId
@@ -2273,6 +2325,11 @@ declare class RCLivingPKHandler {
2273
2325
  };
2274
2326
  }
2275
2327
 
2328
+ interface IPushOtherRooms {
2329
+ roomId: string;
2330
+ autoMix: boolean;
2331
+ sessionId: string;
2332
+ }
2276
2333
  /**
2277
2334
  * 房间抽象基类
2278
2335
  */
@@ -2501,11 +2558,7 @@ declare abstract class RCAbstractRoom {
2501
2558
  /**
2502
2559
  * 获取跨房间连麦需携带参数 pushOtherRooms 的值
2503
2560
  */
2504
- protected _getPushOtherRoomsParams(): {
2505
- roomId: string;
2506
- sessionId: string;
2507
- autoMix: boolean;
2508
- }[] | undefined;
2561
+ protected _getPushOtherRoomsParams(): IPushOtherRooms[];
2509
2562
  /**
2510
2563
  * ice 断线后,尝试重新走 exchange
2511
2564
  */
@@ -2798,6 +2851,34 @@ declare class RCMCUConfigBuilder {
2798
2851
  * 清除已添加的自定义布局中的视频流配置
2799
2852
  */
2800
2853
  clearCustomizeLayoutVideo(): RCMCUConfigBuilder;
2854
+ /**
2855
+ * 设置要合入 MCU 的音频
2856
+ * @param trackIds 一组音频 trackId
2857
+ */
2858
+ setCustomInputAudio(trackIds: string[]): RCMCUConfigBuilder;
2859
+ /**
2860
+ * 清除某个已设置合入 MCU 的音频
2861
+ * @param trackId 音频对应的 trackId
2862
+ */
2863
+ removeCustomInputAudio(trackId: string): RCMCUConfigBuilder;
2864
+ /**
2865
+ * 清除所有已设置合入 MCU 的音频
2866
+ */
2867
+ clearCustomInputAudio(): RCMCUConfigBuilder;
2868
+ private _validateInputVideoParams;
2869
+ /**
2870
+ * 设置 MCU 混流配置
2871
+ * @param videoList 视频输入混流列表,为 null 代表视频全混流,为空集合代表视频全不混流,否则按照输入列表进行混流
2872
+ * @param audioList 音频输入混流列表,为 null 代表音频全混流,为空集合代表音频全不混流,否则按照输入列表进行混流
2873
+ */
2874
+ /**
2875
+ * 设置 MCU 混流配置
2876
+ * @param roomIds 混流房间列表
2877
+ * @param mediaType 混流媒体类型
2878
+ * @param isAppend 是否为增量混流
2879
+ * * true 为增量混流
2880
+ * * false 为全量覆盖混流
2881
+ */
2801
2882
  /**
2802
2883
  * 使已修改的配置生效,在调用该方法前,所有数据只会对本地配置进行修改,不会产生实际效果
2803
2884
  */
@@ -2916,6 +2997,10 @@ declare class RCLivingRoom extends RCAbstractRoom {
2916
2997
  * 离开 PK 房间后,如果参与过连麦,pushOtherRooms 需去掉退出的连麦房间配置,重新和 mediaServer 交互
2917
2998
  */
2918
2999
  private _onLeavePKRoom;
3000
+ /**
3001
+ * @override
3002
+ */
3003
+ protected _getPushOtherRoomsParams(): IPushOtherRooms[];
2919
3004
  /**
2920
3005
  * 携带 pushOtherRooms 与 mediaServer 重新交互
2921
3006
  */