@rongcloud/plugin-rtc 5.4.1-alpha.2 → 5.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/async-task-queue.d.ts +9 -0
  2. package/dist/core/Invoker.d.ts +46 -0
  3. package/dist/core/PolarisReporter.d.ts +35 -0
  4. package/dist/core/RCAudienceClient.d.ts +89 -0
  5. package/dist/core/RCMediaStreamCapture.d.ts +124 -0
  6. package/dist/core/RCRTCClient.d.ts +126 -0
  7. package/dist/core/Store.d.ts +80 -0
  8. package/dist/core/command/BaseCommand.d.ts +22 -0
  9. package/dist/core/command/EnabelInnerCDNCommand.d.ts +16 -0
  10. package/dist/core/command/ExchangeCommand.d.ts +18 -0
  11. package/dist/core/command/ExchangeWithPushOtherRoomCommand.d.ts +22 -0
  12. package/dist/core/command/JoinRoomCommand.d.ts +26 -0
  13. package/dist/core/command/LeaveOtherRoomCommand.d.ts +30 -0
  14. package/dist/core/command/LocalTrackMuteCommand.d.ts +10 -0
  15. package/dist/core/command/MCUConfigFlushCommand.d.ts +18 -0
  16. package/dist/core/command/OnRemoteUserUnpubCommand.d.ts +13 -0
  17. package/dist/core/command/OnSignalReconnectedCommand.d.ts +38 -0
  18. package/dist/core/command/ParseRemoteResCommand.d.ts +38 -0
  19. package/dist/core/command/ParseUserStateCommand.d.ts +57 -0
  20. package/dist/core/command/PubCommand.d.ts +34 -0
  21. package/dist/core/command/RTCIdentityChangeCommand.d.ts +17 -0
  22. package/dist/core/command/RetryExchangeCommand.d.ts +18 -0
  23. package/dist/core/command/SubCommand.d.ts +21 -0
  24. package/dist/core/command/UnpubCommand.d.ts +20 -0
  25. package/dist/core/command/UnpubPrevCommand.d.ts +6 -0
  26. package/dist/core/command/UnsubCommand.d.ts +20 -0
  27. package/dist/core/command/UpdateSubListCommand.d.ts +28 -0
  28. package/dist/core/command/helper.d.ts +20 -0
  29. package/dist/core/constants.d.ts +2 -0
  30. package/dist/core/enums/BackgroundPictureFillMode.d.ts +14 -0
  31. package/dist/core/enums/MixLayoutMode.d.ts +18 -0
  32. package/dist/core/enums/MixVideoRenderMode.d.ts +14 -0
  33. package/dist/core/enums/RCBitrate.d.ts +48 -0
  34. package/dist/core/enums/RCFrameRate.d.ts +7 -0
  35. package/dist/core/enums/RCInnerCDNBroadcast.d.ts +5 -0
  36. package/dist/core/enums/RCInnerCDNModel.d.ts +5 -0
  37. package/dist/core/enums/RCInnerCDNPullIsHttps.d.ts +5 -0
  38. package/dist/core/enums/RCInnerCDNPullKind.d.ts +6 -0
  39. package/dist/core/enums/RCInnerCDNPushMode.d.ts +5 -0
  40. package/dist/core/enums/RCKickType.d.ts +11 -0
  41. package/dist/core/enums/RCLivingType.d.ts +14 -0
  42. package/dist/core/enums/RCLoggerTag.d.ts +629 -0
  43. package/dist/core/enums/RCMediaType.d.ts +18 -0
  44. package/dist/core/enums/RCMixInputFilterMode.d.ts +35 -0
  45. package/dist/core/enums/RCRTCCode.d.ts +86 -0
  46. package/dist/core/enums/RCRTCLiveRole.d.ts +14 -0
  47. package/dist/core/enums/RCRTCPingResult.d.ts +5 -0
  48. package/dist/core/enums/RCRTCResolution.d.ts +102 -0
  49. package/dist/core/enums/RCResolution.d.ts +16 -0
  50. package/dist/core/enums/inner/PolarisRole.d.ts +14 -0
  51. package/dist/core/enums/inner/R2Action.d.ts +14 -0
  52. package/dist/core/enums/inner/R2Status.d.ts +11 -0
  53. package/dist/core/enums/inner/RCRTCMessageType.d.ts +66 -0
  54. package/dist/core/enums/inner/RCStreamType.d.ts +14 -0
  55. package/dist/core/enums/inner/TrackState.d.ts +14 -0
  56. package/dist/core/interfaces.d.ts +912 -0
  57. package/dist/core/room/Pinger.d.ts +35 -0
  58. package/dist/core/room/RCAbstractRoom.d.ts +327 -0
  59. package/dist/core/room/RCAudienceLivingRoom.d.ts +321 -0
  60. package/dist/core/room/RCAudioLevelReport.d.ts +16 -0
  61. package/dist/core/room/RCLivingPKHandler.d.ts +164 -0
  62. package/dist/core/room/RCLivingRoom.d.ts +108 -0
  63. package/dist/core/room/RCLocalMediaStream.d.ts +8 -0
  64. package/dist/core/room/RCMCUConfigBuilder.d.ts +211 -0
  65. package/dist/core/room/RCRTCRoom.d.ts +15 -0
  66. package/dist/core/service/RCMediaService.d.ts +96 -0
  67. package/dist/core/service/helper.d.ts +8 -0
  68. package/dist/core/service/index.d.ts +6 -0
  69. package/dist/core/service/interface.d.ts +323 -0
  70. package/dist/core/service/mcu-interface.d.ts +293 -0
  71. package/dist/core/tracks/RCLocalTrack.d.ts +121 -0
  72. package/dist/core/tracks/RCRemoteTrack.d.ts +23 -0
  73. package/dist/core/tracks/RCTrack.d.ts +91 -0
  74. package/dist/core/webrtc/RCRTCPeerCManager.d.ts +159 -0
  75. package/dist/core/webrtc/RCRTCPeerConnection.d.ts +110 -0
  76. package/dist/core/webrtc/helper.d.ts +26 -0
  77. package/dist/core/webrtc/sdp/ASdpBuilder.d.ts +98 -0
  78. package/dist/core/webrtc/sdp/ASdpStrategy.d.ts +48 -0
  79. package/dist/core/webrtc/sdp/PlanBSdpBuilder.d.ts +20 -0
  80. package/dist/core/webrtc/sdp/PlanBStrategy.d.ts +26 -0
  81. package/dist/core/webrtc/sdp/UnifiedPlanSdpBuilder.d.ts +11 -0
  82. package/dist/core/webrtc/sdp/UnifiedPlanStrategy.d.ts +21 -0
  83. package/dist/core/webrtc/stat-parser/AbstractStatParser.d.ts +117 -0
  84. package/dist/core/webrtc/stat-parser/ChromeStatParser.d.ts +14 -0
  85. package/dist/core/webrtc/stat-parser/FirefoxStatParser.d.ts +14 -0
  86. package/dist/core/webrtc/stat-parser/IStatParser.d.ts +24 -0
  87. package/dist/core/webrtc/stat-parser/SafariStatParser.d.ts +14 -0
  88. package/dist/device.d.ts +6 -0
  89. package/dist/helper.d.ts +189 -0
  90. package/dist/index.d.ts +2034 -1907
  91. package/dist/index.esm.js +15 -14420
  92. package/dist/index.js +15 -14450
  93. package/dist/index.umd.js +15 -14454
  94. package/dist/logger.d.ts +4 -0
  95. package/package.json +3 -3
@@ -0,0 +1,20 @@
1
+ import { IRCTrackBitrate } from '../../interfaces';
2
+ import ASdpBuilder from './ASdpBuilder';
3
+ export default class PlanBSdpBuilder extends ASdpBuilder {
4
+ readonly SDP: string;
5
+ constructor(SDP: string);
6
+ /**
7
+ * 它采用 SDP 标头和音频和视频流并将它们连接到一个字符串中
8
+ * @returns SDP 标头和音频和视频流的字符串。
9
+ */
10
+ stringify(): string;
11
+ /**
12
+ * @overwrite 因为 Plan-b 设置是针对整个 m=audio ,所以不需要单独设置
13
+ */
14
+ setAudioBitrateWithStreamId(bitrate: IRCTrackBitrate, streamId: string): ASdpBuilder;
15
+ /**
16
+ * @overwrite 因为 Plan-b 设置是针对整个 m=video ,所以不需要单独设置
17
+ */
18
+ setVideoBitrateWithStreamId(bitrate: IRCTrackBitrate, streamId: string): ASdpBuilder;
19
+ }
20
+ //# sourceMappingURL=PlanBSdpBuilder.d.ts.map
@@ -0,0 +1,26 @@
1
+ import { RCRTCCode } from '../../enums/RCRTCCode';
2
+ import { RCLocalTrack } from '../../tracks/RCLocalTrack';
3
+ import { RCRemoteTrack } from '../../tracks/RCRemoteTrack';
4
+ import { IOfferInfo, ASdpStrategy } from './ASdpStrategy';
5
+ export declare class PlanBStrategy extends ASdpStrategy {
6
+ private senders;
7
+ private _maxBitrate?;
8
+ private _minBitrate?;
9
+ private _startBitrate?;
10
+ private _localTracks;
11
+ addLocalTrack(track: RCLocalTrack): void;
12
+ removeLocalTrack(track: RCLocalTrack): void;
13
+ updateSubRemoteTracks(remoteTracks: RCRemoteTrack[]): void;
14
+ updateRecvTransceiverMap(trackId: string, transceiver: RTCRtpTransceiver): void;
15
+ /**
16
+ * 指定上行码率范围
17
+ * @param maxBitrate
18
+ * @param minBitrate
19
+ * @param startBitrate
20
+ */
21
+ setBitrate(maxBitrate: number, minBitrate: number, startBitrate?: number): void;
22
+ createOffer(iceRestart: boolean): Promise<IOfferInfo>;
23
+ setRemoteAnswer(sdp: string): Promise<RCRTCCode>;
24
+ protected resetSdp(sdp: string): string;
25
+ }
26
+ //# sourceMappingURL=PlanBStrategy.d.ts.map
@@ -0,0 +1,11 @@
1
+ import ASdpBuilder from './ASdpBuilder';
2
+ export default class UnifiedPlanSdpBuilder extends ASdpBuilder {
3
+ readonly SDP: string;
4
+ constructor(SDP: string);
5
+ /**
6
+ * 它采用 SDP 标头和音频和视频流并将它们连接到一个字符串中
7
+ * @returns SDP 标头和音频和视频流的字符串。
8
+ */
9
+ stringify(): string;
10
+ }
11
+ //# sourceMappingURL=UnifiedPlanSdpBuilder.d.ts.map
@@ -0,0 +1,21 @@
1
+ import { RCRTCCode } from '../../enums/RCRTCCode';
2
+ import { RCLocalTrack } from '../../tracks/RCLocalTrack';
3
+ import { RCRemoteTrack } from '../../tracks/RCRemoteTrack';
4
+ import { ASdpStrategy, IOfferInfo } from './ASdpStrategy';
5
+ export declare class UnifiedPlanStrategy extends ASdpStrategy {
6
+ private _sendTransceiver;
7
+ setBitrate(max: number, min: number, start?: number): void;
8
+ private _localTracks;
9
+ addLocalTrack(track: RCLocalTrack): void;
10
+ removeLocalTrack(track: RCLocalTrack): void;
11
+ private _recvAudio;
12
+ private _recvVideo;
13
+ private _recvTransceiver;
14
+ private _subedTracks;
15
+ updateRecvTransceiverMap(trackId: string, transceiver: RTCRtpTransceiver): void;
16
+ updateSubRemoteTracks(tracks: RCRemoteTrack[]): void;
17
+ createOffer(iceRestart: boolean): Promise<IOfferInfo>;
18
+ setRemoteAnswer(sdp: string): Promise<RCRTCCode>;
19
+ protected resetSdp(sdp: string): string;
20
+ }
21
+ //# sourceMappingURL=UnifiedPlanStrategy.d.ts.map
@@ -0,0 +1,117 @@
1
+ import IStatParser from './IStatParser';
2
+ import { IInnerRCRTCStateReport } from '../../interfaces';
3
+ export default abstract class AbstractStatParser implements IStatParser {
4
+ protected readonly _rtcPeerConn: RTCPeerConnection;
5
+ protected readonly _sdpSemantics: string;
6
+ protected readonly _currentUserId: string;
7
+ constructor(_rtcPeerConn: RTCPeerConnection, _sdpSemantics: string, _currentUserId: string);
8
+ /**
9
+ * 最近的上行发送包数据统计
10
+ */
11
+ protected _latestPacketsSent: {
12
+ [resourceId: string]: {
13
+ packetsLost?: number;
14
+ packetsSent?: number;
15
+ crtPacketsSent?: number;
16
+ };
17
+ };
18
+ /**
19
+ * 最近的上行发送字节数统计
20
+ */
21
+ protected _latestBytesSent: {
22
+ [resourceId: string]: {
23
+ bytesSent: number;
24
+ timestamp: number;
25
+ };
26
+ };
27
+ /**
28
+ * 最近的下行接收字节数统计
29
+ */
30
+ protected _latestBytesRecv: {
31
+ [resourceId: string]: {
32
+ bytesRecv: number;
33
+ timestamp: number;
34
+ };
35
+ };
36
+ /**
37
+ * 最近的下行接收包数据统计
38
+ */
39
+ protected _latestPacketsRecv: {
40
+ [resourceId: string]: {
41
+ packetsLost: number;
42
+ packetsRecv: number;
43
+ };
44
+ };
45
+ /**
46
+ * 更新上行码率存储,返回计算出的码率
47
+ * @param resourceId
48
+ * @param bytesSent 本次发送的字节数
49
+ * @param timestamp
50
+ * @returns bitrate
51
+ */
52
+ protected updateBytesSent(resourceId: string, bytesSent: number, timestamp: number): number;
53
+ /**
54
+ * 更新下行码率存储,返回计算出的码率
55
+ * @param resourceId
56
+ * @param bytesRecv
57
+ * @param timestamp
58
+ * @returns bitrate
59
+ */
60
+ protected updateBytesRecv(resourceId: string, bytesRecv: number, timestamp: number): number;
61
+ /**
62
+ * 更新上行丢包总数,返回计算出的丢包率
63
+ * 计算丢包率
64
+ * 上行数据统计中,packageLost 的统计具有延时性
65
+ * 会导致瞬时的 packetsLost - prePacketsLost 值大于 packetsSent - prePacketsSent,从而丢包率可能大于 1
66
+ * 因此此处计算只在 packetsLost - prePacketsLost !== 0 时计算丢包率,其他时间丢包为 0
67
+ * packetsSent 只在 packetsLost 有变化时更新
68
+ */
69
+ protected updateSenderPacketsLost(resourceId: string, packetsLost: number, packetsSent: number): number;
70
+ /**
71
+ * 更新下行丢包总数,返回计算出的丢包率
72
+ */
73
+ protected updateReceiverPacketsLost(resourceId: string, packetsLost: number, packetsReceived: number): number;
74
+ /**
75
+ * 取消发布后,需把 _latestPacketsSent 中 key 为 resourceId 存储的数据清除掉
76
+ */
77
+ clearLatestpacketsSent(resourceIds: string[]): void;
78
+ /**
79
+ * 取消订阅后,需把 _latestPacketsRecv 中 key 为 resourceId 存储的数据清除掉
80
+ */
81
+ clearLatestPacketsRecv(resourceIds: string[]): void;
82
+ parseRTCStatsReport(reports: RTCStatsReport): {
83
+ [key: string]: any;
84
+ };
85
+ formatRCRTCStateReport(stats: {
86
+ [key: string]: any;
87
+ }): IInnerRCRTCStateReport;
88
+ getAudioLevelList(stats: {
89
+ [key: string]: any;
90
+ }): {
91
+ trackId: string;
92
+ audioLevel: number | null;
93
+ }[];
94
+ /**
95
+ * 从 offer 和 answer 的 sdp 中获取 ssrc 对应的 msid
96
+ * @param statInfo outbound 和 inbound 对应值
97
+ * @returns resourceId
98
+ */
99
+ protected getResourceIdByParseSdp(statInfo: {
100
+ [key: string]: any;
101
+ }): string;
102
+ /**
103
+ * 从 offer sdp 中查找 ssrc 对应的通道是否可用
104
+ * @param outboundInfo
105
+ */
106
+ protected isValidSender(outboundInfo: {
107
+ [key: string]: any;
108
+ }): boolean;
109
+ /**
110
+ * 从 answer sdp 中查找 ssrc 对应的通道是否可用
111
+ * @param inboundInfo
112
+ */
113
+ protected isValidReceiver(inboundInfo: {
114
+ [key: string]: any;
115
+ }): boolean;
116
+ }
117
+ //# sourceMappingURL=AbstractStatParser.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { IInnerRCRTCStateReport } from '../../interfaces';
2
+ import AbstractStatParser from './AbstractStatParser';
3
+ export default class RTCReportParser extends AbstractStatParser {
4
+ formatRCRTCStateReport(stats: {
5
+ [key: string]: any;
6
+ }): IInnerRCRTCStateReport;
7
+ getAudioLevelList(stats: {
8
+ [key: string]: any;
9
+ }): {
10
+ trackId: string;
11
+ audioLevel: number | null;
12
+ }[];
13
+ }
14
+ //# sourceMappingURL=ChromeStatParser.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { IInnerRCRTCStateReport } from '../../interfaces';
2
+ import AbstractStatParser from './AbstractStatParser';
3
+ export default class RTCReportParser extends AbstractStatParser {
4
+ formatRCRTCStateReport(stats: {
5
+ [key: string]: any;
6
+ }): IInnerRCRTCStateReport;
7
+ getAudioLevelList(stats: {
8
+ [key: string]: any;
9
+ }): {
10
+ trackId: string;
11
+ audioLevel: number | null;
12
+ }[];
13
+ }
14
+ //# sourceMappingURL=FirefoxStatParser.d.ts.map
@@ -0,0 +1,24 @@
1
+ import { IInnerRCRTCStateReport } from '../../interfaces';
2
+ export default interface IStatParser {
3
+ /**
4
+ * 取消发布后,需把 _latestPacketsSent 中 key 为 resourceId 存储的数据清除掉
5
+ */
6
+ clearLatestpacketsSent(resourceIds: string[]): void;
7
+ /**
8
+ * 取消订阅后,需把 _latestPacketsRecv 中 key 为 resourceId 存储的数据清除掉
9
+ */
10
+ clearLatestPacketsRecv(resourceIds: string[]): void;
11
+ parseRTCStatsReport(reports: RTCStatsReport): {
12
+ [key: string]: any;
13
+ };
14
+ formatRCRTCStateReport(stats: {
15
+ [key: string]: any;
16
+ }): IInnerRCRTCStateReport;
17
+ getAudioLevelList(stats: {
18
+ [key: string]: any;
19
+ }): {
20
+ trackId: string;
21
+ audioLevel: number | null;
22
+ }[];
23
+ }
24
+ //# sourceMappingURL=IStatParser.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { IInnerRCRTCStateReport } from '../../interfaces';
2
+ import AbstractStatParser from './AbstractStatParser';
3
+ export default class RTCReportParser extends AbstractStatParser {
4
+ formatRCRTCStateReport(stats: {
5
+ [key: string]: any;
6
+ }): IInnerRCRTCStateReport;
7
+ getAudioLevelList(stats: {
8
+ [key: string]: any;
9
+ }): {
10
+ trackId: string;
11
+ audioLevel: number | null;
12
+ }[];
13
+ }
14
+ //# sourceMappingURL=SafariStatParser.d.ts.map
@@ -0,0 +1,6 @@
1
+ export declare const device: {
2
+ getCameras: () => Promise<MediaDeviceInfo[]>;
3
+ getMicrophones: () => Promise<MediaDeviceInfo[]>;
4
+ getSpeakers: () => Promise<MediaDeviceInfo[]>;
5
+ };
6
+ //# sourceMappingURL=device.d.ts.map
@@ -0,0 +1,189 @@
1
+ import { INaviInfo, IRTCUsers, IServerRTCRoomEntry } from '@rongcloud/engine';
2
+ import { RCFrameRate } from './core/enums/RCFrameRate';
3
+ import { RCResolution } from './core/enums/RCResolution';
4
+ import { RCRTCMessageType } from './core/enums/inner/RCRTCMessageType';
5
+ import { IPKInfo, IPublishAttrs, IPublishedResource, IResource, ISubscribeAttr, RoomData } from './core/interfaces';
6
+ import { RCMediaType } from './core/enums/RCMediaType';
7
+ import { RCLocalTrack } from './core/tracks/RCLocalTrack';
8
+ import RCRTCPeerConnection from './core/webrtc/RCRTCPeerConnection';
9
+ import { RCRemoteTrack } from './core/tracks/RCRemoteTrack';
10
+ import { RCTrack } from './core/tracks/RCTrack';
11
+ /**
12
+ * 构建增量消息内容
13
+ * @param objectname 消息名
14
+ * @param uris 增量变更资源
15
+ */
16
+ export declare const buildPlusMessage: (messageName: RCRTCMessageType, uris: IPublishedResource[]) => {
17
+ name: RCRTCMessageType;
18
+ content: string;
19
+ };
20
+ /**
21
+ * 构建预发布的全量资源变更消息
22
+ * @param uris 全量资源数据
23
+ */
24
+ export declare const buildTotalURIMessageContent: (uris: IPublishedResource[]) => string;
25
+ /**
26
+ * roomId 有效性验证
27
+ * @param roomId
28
+ */
29
+ export declare const isValidRoomId: (roomId: string) => boolean;
30
+ /**
31
+ * 验证 tag 是否有效
32
+ * @param tag
33
+ * @returns
34
+ */
35
+ export declare const isValidTag: (tag: string) => boolean;
36
+ /**
37
+ * 页面地址有效性检测
38
+ */
39
+ export declare const isValidLocation: boolean;
40
+ /**
41
+ * 获取视频流的分辨率及帧率数据,若无法获取真实值,则返回 0
42
+ * @param track
43
+ */
44
+ export declare const getVideoTrackInfo: (track: MediaStreamTrack) => {
45
+ width: number;
46
+ height: number;
47
+ frameRate: number;
48
+ };
49
+ /**
50
+ * 取视频流动态码率
51
+ * @param track
52
+ * @returns
53
+ */
54
+ export declare const getDynamicBitrate: (track: MediaStreamTrack) => {
55
+ min: number;
56
+ max: number;
57
+ };
58
+ /**
59
+ * 获取资源唯一性标识
60
+ * @param item
61
+ */
62
+ export declare const getTrackId: (item: IResource) => string;
63
+ /**
64
+ * 它接受一个类似“userId_tag_mediaType”的字符串,并返回一个包含字符串三个部分的对象
65
+ * 解析 trackId 以获取资源信息
66
+ * trackId 构成说明 trackId = [ userid, tag, mediaType ].join('_')
67
+ * userid : 用户可随意定义可包含 _ 下划线
68
+ * tag : `不可以有 _ 下划线`
69
+ * mediaType : RCMediaType 0:音频流 1:视频流 2:音视频混合流
70
+ * @param {string} trackId - 远程轨道的轨道 ID。
71
+ * @returns 具有三个属性的对象:mediaType、tag 和 userId。
72
+ */
73
+ export declare const parseTrackId: (trackId: string) => {
74
+ mediaType: RCMediaType;
75
+ tag: string;
76
+ userId: string;
77
+ };
78
+ export declare const parseStreamId: (streamId: string) => {
79
+ tag: string;
80
+ userId: string;
81
+ };
82
+ export declare const formatStreamId: (userId: string, tag: string) => string;
83
+ export declare const deepCopyResources: <T>(resources: T[]) => T[];
84
+ /**
85
+ * 比对资源找出新增、状态变更及取消发布的资源
86
+ * @param prevResources 原资源数据
87
+ * @param resources 变更的全量资源
88
+ */
89
+ export declare const diffPublishResources: (prevResources: IPublishedResource[], resources: IPublishedResource[], isReconnect?: boolean) => {
90
+ publishedList: IPublishedResource[];
91
+ unpublishedList: IPublishedResource[];
92
+ modifiedList: IPublishedResource[];
93
+ };
94
+ export declare const diffPubResOnReconnect: (prevResources: IPublishedResource[], resources: IPublishedResource[]) => {
95
+ publishedList: IPublishedResource[];
96
+ unpublishedList: IPublishedResource[];
97
+ modifiedList: IPublishedResource[];
98
+ };
99
+ export declare const getUUID22: () => string;
100
+ /**
101
+ * 转化 RCResolution 枚举值为分辨率宽高
102
+ * @param resolution
103
+ * @returns
104
+ */
105
+ export declare const transResolution: (resolution: RCResolution) => {
106
+ width: number;
107
+ height: number;
108
+ };
109
+ /**
110
+ * 判断枚举值有效性
111
+ * @param resolution
112
+ * @returns
113
+ */
114
+ export declare const isValidResolution: (resolution?: RCResolution) => boolean;
115
+ /**
116
+ * 判断帧率枚举值有效性
117
+ * @param fps
118
+ * @returns
119
+ */
120
+ export declare const isValidFPS: (fps?: RCFrameRate) => boolean;
121
+ /**
122
+ * 获取枚举值对应的帧率
123
+ * @param fps
124
+ * @returns
125
+ */
126
+ export declare const transFrameRate: (fps: RCFrameRate) => number;
127
+ export declare type IBrowserDetails = {
128
+ browser: string;
129
+ version?: number;
130
+ supportsUnifiedPlan: boolean;
131
+ };
132
+ export declare const browserInfo: IBrowserDetails;
133
+ /**
134
+ * 验证浏览器是否支持创建自定义文件流
135
+ * @returns
136
+ */
137
+ export declare function ifSupportLocalFileTrack(): boolean;
138
+ /**
139
+ * 验证浏览器是否支持屏幕共享
140
+ * @returns
141
+ */
142
+ export declare function ifSupportScreenShare(): boolean;
143
+ /**
144
+ * 检查参数是否为 null
145
+ */
146
+ export declare const isNull: (val: any) => boolean;
147
+ /**
148
+ * 公有云连接私有云 SDK 为非法连接
149
+ */
150
+ export declare const isIllegalConnection: (navi: INaviInfo) => boolean;
151
+ /**
152
+ * 获取将要发布的 track 数量
153
+ * 需要发布小流的算两个 track
154
+ */
155
+ export declare const calcTracksNum: (tracks: (RCLocalTrack | IPublishAttrs)[], pc: RCRTCPeerConnection) => number;
156
+ /**
157
+ * 解析房间数据
158
+ */
159
+ export declare const parseRoomData: (data: IRTCUsers, mainRoomId: string) => RoomData;
160
+ export declare const isRepeatPub: (newPub: IPublishedResource, allPublishList: IPublishedResource[]) => {
161
+ isInclude: boolean;
162
+ index: number;
163
+ };
164
+ /**
165
+ * 从加房间返回的数据中获取加入的副房间
166
+ */
167
+ export declare const getPKInfoByRoomData: (mainRoomId: string, roomInfo: {
168
+ key: string;
169
+ value: string;
170
+ }[]) => IPKInfo;
171
+ /**
172
+ * 解析观众加房间 kv 数据
173
+ * 远端无人员时,kvEntries 的 key 不包含 RC_ANCHOR_LIST
174
+ * 远端无资源时,key 不包含 RC_RES_、RC_CDN
175
+ * 远端有资源、无 CDN 资源时,key 不包含 RC_CDN
176
+ * 服务端 bug,偶现无 RC_RTC_SESSIONID
177
+ */
178
+ export declare const parseAudienceRoomData: (roomId: string, kvEntries: IServerRTCRoomEntry[]) => {
179
+ sessionId: string;
180
+ remoteUserIds: string[];
181
+ remoteRTCUris: IPublishedResource[];
182
+ remoteMUCUris: IPublishedResource[];
183
+ remoteRTCTracks: RCRemoteTrack[];
184
+ remoteMCUTracks: RCRemoteTrack[];
185
+ remoteTracks: RCRemoteTrack[];
186
+ CDNUris: any;
187
+ };
188
+ export declare const getTrackIdFromAttr: (track: RCTrack | ISubscribeAttr | IPublishAttrs) => string;
189
+ //# sourceMappingURL=helper.d.ts.map