@rongcloud/plugin-rtc 5.4.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 +193 -155
  91. package/dist/index.esm.js +2 -2
  92. package/dist/index.js +1 -1
  93. package/dist/index.umd.js +1 -1
  94. package/dist/logger.d.ts +4 -0
  95. package/package.json +3 -3
@@ -0,0 +1,121 @@
1
+ import { RCRTCCode } from '../enums/RCRTCCode';
2
+ import { IRCTrackBitrate } from '../interfaces';
3
+ import { RCTrack } from './RCTrack';
4
+ import { RCAudioBitrate, RCVideoBitrate } from '../enums/RCBitrate';
5
+ export declare abstract class RCLocalTrack extends RCTrack {
6
+ /**
7
+ * 本地流结束事件通知
8
+ * @description
9
+ * 该事件为 MediaStreamTrack 实例的 'ended' 事件触发
10
+ */
11
+ static EVENT_LOCAL_TRACK_END: string;
12
+ /**
13
+ * muted 状态变更通知常量定义
14
+ */
15
+ static __INNER_EVENT_MUTED_CHANGE__: string;
16
+ /**
17
+ * 本地流已销毁
18
+ */
19
+ static __INNER_EVENT_DESTROY__: string;
20
+ constructor(tag: string, userId: string, kind: 'audio' | 'video', track: MediaStreamTrack);
21
+ /**
22
+ * @override 重写 RCTrack 父类方法
23
+ * @param bool
24
+ */
25
+ _setLocalMuted(bool: boolean): void;
26
+ private _isPublished;
27
+ __innerSetPublished(bool: boolean): void;
28
+ /**
29
+ * 检测本地资源是否已发布
30
+ */
31
+ isPublished(): boolean;
32
+ /**
33
+ * 销毁本地流
34
+ */
35
+ destroy(): void;
36
+ private _bitrateInfo?;
37
+ /**
38
+ * 为本地流设定上行码率,仅视频流有效,音频默认 15 kbps,不支持修改
39
+ * @description 当 `max` 或 `min` 值为 `0` 时,取动态码率计算结果
40
+ * @param max 最大码率
41
+ * @param min 最小码率
42
+ * @param start 起始码率
43
+ */
44
+ setBitrate(max?: number, min?: number, start?: number): void;
45
+ /**
46
+ * 获取码率配置,当未指定码率时,将取得动态码率计算值
47
+ * @returns
48
+ */
49
+ getBitrate(): IRCTrackBitrate;
50
+ }
51
+ export declare class RCLocalAudioTrack extends RCLocalTrack {
52
+ constructor(tag: string, userId: string, track: MediaStreamTrack);
53
+ /**
54
+ * 它设置推荐的音频码率。
55
+ * @param {RCAudioBitrate} audio - RCA音频比特率
56
+ */
57
+ setRecommendBitrate(audio: RCAudioBitrate): void;
58
+ /**
59
+ * 它设置视频的比特率。
60
+ * @param {number} max - 客户端将使用的最大比特率。
61
+ * @param {number[]} args - [分钟,开始]
62
+ */
63
+ setBitrate(max: number, ...args: number[]): void;
64
+ }
65
+ export declare class RCLocalVideoTrack extends RCLocalTrack {
66
+ private _isTiny;
67
+ constructor(tag: string, userId: string, track: MediaStreamTrack, _isTiny?: boolean);
68
+ __isTiny(): boolean;
69
+ getStreamId(): string;
70
+ getTrackId(): string;
71
+ /**
72
+ * 它设置推荐的音频码率
73
+ * @param {RCVideoBitrate} video - RC视频比特率
74
+ */
75
+ setRecommendBitrate(video: RCVideoBitrate): void;
76
+ /**
77
+ * 它设置视频的比特率。
78
+ * @param {number} max - 视频可以编码的最大比特率。
79
+ * @param {number[]} args - [最大、最小、开始]
80
+ */
81
+ setBitrate(max: number, ...args: number[]): void;
82
+ }
83
+ export declare abstract class RCLocalFileTrack extends RCLocalTrack {
84
+ /**
85
+ * 自定义文件流的播放宿主原生,该类型流所持有的 MediaStreamTrack 实例是由该宿主元素 `captureStream` 获取
86
+ */
87
+ protected _resource: HTMLVideoElement;
88
+ private static readonly _mapping;
89
+ /**
90
+ * 建立 trackId 与宿主播放元素的映射关系
91
+ * @param trackId
92
+ * @param video
93
+ */
94
+ private static __innerSetMapping;
95
+ private static __innerRemoveMapping;
96
+ constructor(tag: string, userId: string, kind: 'audio' | 'video', track: MediaStreamTrack,
97
+ /**
98
+ * 自定义文件流的播放宿主原生,该类型流所持有的 MediaStreamTrack 实例是由该宿主元素 `captureStream` 获取
99
+ */
100
+ _resource: HTMLVideoElement);
101
+ destroy(): void;
102
+ }
103
+ export declare class RCLocalFileVideoTrack extends RCLocalFileTrack {
104
+ constructor(tag: string, userId: string, track: MediaStreamTrack, element: HTMLVideoElement);
105
+ }
106
+ export declare class RCLocalFileAudioTrack extends RCLocalFileTrack {
107
+ constructor(tag: string, userId: string, track: MediaStreamTrack, element: HTMLVideoElement);
108
+ _setLocalMuted(bool: boolean): void;
109
+ play(): Promise<{
110
+ code: RCRTCCode;
111
+ }>;
112
+ }
113
+ export declare class RCMicphoneAudioTrack extends RCLocalAudioTrack {
114
+ }
115
+ export declare class RCCameraVideoTrack extends RCLocalVideoTrack {
116
+ }
117
+ export declare class RCScreenVideoTrack extends RCLocalVideoTrack {
118
+ }
119
+ export declare class RCScreenAudioTrack extends RCLocalAudioTrack {
120
+ }
121
+ //# sourceMappingURL=RCLocalTrack.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { RCTrack } from './RCTrack';
2
+ export declare class RCRemoteTrack extends RCTrack {
3
+ constructor(tag: string, userId: string, kind: 'audio' | 'video', roomId?: string);
4
+ /**
5
+ * 根据房间数据更新状态
6
+ * @param value
7
+ */
8
+ __innerSetRemoteMuted(bool: boolean): void;
9
+ private _isSubscribed;
10
+ __innerSetSubscribed(bool: boolean): void;
11
+ /**
12
+ * 查看是否已订阅了该远端资源
13
+ * @returns
14
+ */
15
+ isSubscribed(): boolean;
16
+ }
17
+ export declare class RCRemoteAudioTrack extends RCRemoteTrack {
18
+ constructor(tag: string, userId: string, roomId?: string);
19
+ }
20
+ export declare class RCRemoteVideoTrack extends RCRemoteTrack {
21
+ constructor(tag: string, userId: string, roomId?: string);
22
+ }
23
+ //# sourceMappingURL=RCRemoteTrack.d.ts.map
@@ -0,0 +1,91 @@
1
+ import { EventEmitter } from '@rongcloud/engine';
2
+ import { RCRTCCode } from '../enums/RCRTCCode';
3
+ export declare enum RCTrackKind {
4
+ AUDIO = "audio",
5
+ VIDEO = "video"
6
+ }
7
+ export declare abstract class RCTrack extends EventEmitter {
8
+ private readonly _tag;
9
+ private readonly _userId;
10
+ protected readonly _kind: 'audio' | 'video';
11
+ private readonly _isLocalTrack;
12
+ private readonly _roomId?;
13
+ protected _localMuted: boolean;
14
+ protected _remoteMuted: boolean;
15
+ protected readonly _id: string;
16
+ protected readonly _streamId: string;
17
+ protected _msTrack?: MediaStreamTrack;
18
+ private _msStream;
19
+ constructor(_tag: string, _userId: string, _kind: 'audio' | 'video', _isLocalTrack: boolean, _roomId?: string | undefined);
20
+ /**
21
+ * 获取音视轨所属的 streamId,streamId 相同的音轨和视轨可认为属于统一道流
22
+ * @returns
23
+ */
24
+ getStreamId(): string;
25
+ getTrackId(): string;
26
+ /**
27
+ * 当 isMCUTrack 为 true 时,返回空字符串
28
+ */
29
+ getUserId(): string;
30
+ __innerGetMediaStreamTrack(): MediaStreamTrack | undefined;
31
+ /**
32
+ * 获取数据标识
33
+ * @returns
34
+ */
35
+ getTag(): string;
36
+ isLocalTrack(): boolean;
37
+ isVideoTrack(): boolean;
38
+ isAudioTrack(): boolean;
39
+ /**
40
+ * 查询流数据是否已可进行播放
41
+ * @returns
42
+ */
43
+ isReady(): boolean;
44
+ __innerSetMediaStreamTrack(track: MediaStreamTrack | undefined): void;
45
+ protected _setLocalMuted(bool: boolean): void;
46
+ /**
47
+ * 禁用
48
+ */
49
+ mute(): void;
50
+ /**
51
+ * 启用
52
+ */
53
+ unmute(): void;
54
+ /**
55
+ * 本端是否已禁用该轨道数据
56
+ */
57
+ isLocalMuted(): boolean;
58
+ /**
59
+ * 是否为 MCU track
60
+ */
61
+ isMCUTrack(): boolean;
62
+ /**
63
+ * 发布者是否已禁用该轨道数据,在 RCLocalTrack 实例中,则其值始终等于 `isLocalMuted()`
64
+ */
65
+ isOwnerMuted(): boolean;
66
+ private _element?;
67
+ /**
68
+ * 播放
69
+ * @param element 用于承载媒体流的元素标签,音频流可传空
70
+ * @param volume 有效值为 0-100
71
+ */
72
+ play(element?: HTMLVideoElement, options?: {
73
+ volume?: number;
74
+ audioDeviceId?: string;
75
+ autoplay: boolean;
76
+ }): Promise<{
77
+ code: RCRTCCode;
78
+ }>;
79
+ __innerDestroy(): void;
80
+ /**
81
+ * 释放内存中的 video、audio 标签
82
+ */
83
+ __releaseMediaElement(): void;
84
+ /**
85
+ * 它检查元素是否是视频节点
86
+ * @param {any} element - 您要检查的元素是否为视频元素。
87
+ * @returns 一个布尔值。
88
+ */
89
+ private __validateVideoNodeName;
90
+ }
91
+ //# sourceMappingURL=RCTrack.d.ts.map
@@ -0,0 +1,159 @@
1
+ import { TrackParam, IMutilPeerC, IPublishedResource, ISubscribeAttr } from '../interfaces';
2
+ import PolarisReporter from '../PolarisReporter';
3
+ import RCRTCPeerConnection from '../webrtc/RCRTCPeerConnection';
4
+ export default class RCRTCPeerCManager {
5
+ /**
6
+ * 是否使用多 peerConnection
7
+ */
8
+ private readonly _useMutilPeerC;
9
+ /**
10
+ * roomId 或观众端 userId
11
+ */
12
+ private readonly _roomId;
13
+ /**
14
+ * 断线重连每一条 peerConnection
15
+ */
16
+ private readonly _reTryExchange;
17
+ /**
18
+ * 当前用户 id
19
+ */
20
+ private readonly _currentUserId;
21
+ /**
22
+ * 北极星上报模块
23
+ */
24
+ private readonly _polarisReport?;
25
+ /**
26
+ * 存储创建的所有 peerC,key 为 pcName,/exchange 请求中 request header 中的 Peer-Connection-Id 值
27
+ */
28
+ private _mutilPeerC;
29
+ constructor(
30
+ /**
31
+ * 是否使用多 peerConnection
32
+ */
33
+ _useMutilPeerC: boolean,
34
+ /**
35
+ * roomId 或观众端 userId
36
+ */
37
+ _roomId: string,
38
+ /**
39
+ * 断线重连每一条 peerConnection
40
+ */
41
+ _reTryExchange: Function,
42
+ /**
43
+ * 当前用户 id
44
+ */
45
+ _currentUserId: string,
46
+ /**
47
+ * 北极星上报模块
48
+ */
49
+ _polarisReport?: PolarisReporter | undefined);
50
+ get useMutilPeerC(): boolean;
51
+ /**
52
+ * 根据 track 判断是否为上行
53
+ */
54
+ private _isPub;
55
+ /**
56
+ * 按 tag 分 tracks
57
+ */
58
+ private _groupTracksByTag;
59
+ /**
60
+ * 按规则生成 pcName
61
+ * 单 peerC roomId_pub
62
+ * 多 peerC 上行: roomId_tag、下行: roomId_sub
63
+ * 观众加房间: roomId_sub
64
+ * 观众不加房间: userId_sub
65
+ * @param isPub 是否为上行、下行
66
+ * @param tag 多 peerC 时,上行需资源标识
67
+ */
68
+ private _genPCName;
69
+ /**
70
+ * 创建一个 peerC
71
+ * @param pcName 使用的 peerConnection 名称
72
+ * @param tracks 本次要操作的资源
73
+ */
74
+ private _createOnePeerCItem;
75
+ /**
76
+ * 创建一组 peerC
77
+ * @param pcName
78
+ * @returns
79
+ */
80
+ createPeerCList(tracks: TrackParam[]): IMutilPeerC[];
81
+ /**
82
+ * 移除所有 peerConnection 的上行资源
83
+ */
84
+ private _removeAllLocalTrack;
85
+ /**
86
+ * 销毁某一个 peerConnection
87
+ */
88
+ destroyPeerC(pcName: string): void;
89
+ /**
90
+ * 销毁所有 peerConnection
91
+ */
92
+ private _destroyAllPeerC;
93
+ /**
94
+ * 获取某一个 peerC
95
+ */
96
+ getPCItemByPCName(pcName: string): {
97
+ /**
98
+ * RCRTCPeerConnection 对象
99
+ */
100
+ pc: RCRTCPeerConnection;
101
+ /**
102
+ * 存放 peerConnection 上本次要发布、取消发布、订阅、取消订阅的 track
103
+ */
104
+ tracks: TrackParam[];
105
+ /**
106
+ * 当前 peerC 是否为发上行的 peerConnection
107
+ */
108
+ isPub: boolean;
109
+ /**
110
+ * peerConnection 上行资源,暂不需要
111
+ */
112
+ publishList?: IPublishedResource[] | undefined;
113
+ /**
114
+ * peerConnection 下行资源,暂不需要
115
+ */
116
+ subscribeList?: ISubscribeAttr[] | undefined;
117
+ };
118
+ /**
119
+ * 根据 trackId 获取 peerConnection 对象
120
+ */
121
+ getPCByTrackId(trackId: string, isPub?: boolean): RCRTCPeerConnection;
122
+ /**
123
+ * 获取所有的 peerConnection
124
+ */
125
+ getPCList(): RCRTCPeerConnection[];
126
+ /**
127
+ * 获取存储的多 peerConnection 数据
128
+ */
129
+ getMutilPeerCData(): {
130
+ [key: string]: {
131
+ /**
132
+ * RCRTCPeerConnection 对象
133
+ */
134
+ pc: RCRTCPeerConnection;
135
+ /**
136
+ * 存放 peerConnection 上本次要发布、取消发布、订阅、取消订阅的 track
137
+ */
138
+ tracks: TrackParam[];
139
+ /**
140
+ * 当前 peerC 是否为发上行的 peerConnection
141
+ */
142
+ isPub: boolean;
143
+ /**
144
+ * peerConnection 上行资源,暂不需要
145
+ */
146
+ publishList?: IPublishedResource[] | undefined;
147
+ /**
148
+ * peerConnection 下行资源,暂不需要
149
+ */
150
+ subscribeList?: ISubscribeAttr[] | undefined;
151
+ };
152
+ };
153
+ setPeerCData(pcName: string, key: string, value: any): void;
154
+ /**
155
+ * 销毁资源
156
+ */
157
+ clear(): void;
158
+ }
159
+ //# sourceMappingURL=RCRTCPeerCManager.d.ts.map
@@ -0,0 +1,110 @@
1
+ import { IRCRTCReportListener } from '../interfaces';
2
+ import PolarisReporter from '../PolarisReporter';
3
+ import { RCLocalTrack } from '../tracks/RCLocalTrack';
4
+ import { RCRemoteTrack } from '../tracks/RCRemoteTrack';
5
+ import { EventEmitter } from '@rongcloud/engine';
6
+ import IStatParser from './stat-parser/IStatParser';
7
+ /**
8
+ * PC 实例管理类
9
+ */
10
+ export default class RCRTCPeerConnection extends EventEmitter {
11
+ /**
12
+ * peerConnection 对应名称
13
+ */
14
+ private readonly _pcName;
15
+ /**
16
+ * _reTryExchange 方法
17
+ */
18
+ private readonly _reTryExchange;
19
+ /**
20
+ * 当前用户 id
21
+ */
22
+ private readonly _currentUserId;
23
+ /**
24
+ * 北极星上传实例
25
+ */
26
+ private readonly _polarisReport?;
27
+ static __INNER_EVENT_TRACK_READY__: string;
28
+ private readonly _rtcPeerConn;
29
+ private readonly _sdpStrategy;
30
+ reportParser: IStatParser | null;
31
+ private pubLocalTracks;
32
+ private _reTryExchangeTimer;
33
+ private _reportStatsTimer;
34
+ private _reportR3R4ToPolarisTimer;
35
+ constructor(
36
+ /**
37
+ * peerConnection 对应名称
38
+ */
39
+ _pcName: string,
40
+ /**
41
+ * _reTryExchange 方法
42
+ */
43
+ _reTryExchange: Function,
44
+ /**
45
+ * 当前用户 id
46
+ */
47
+ _currentUserId: string,
48
+ /**
49
+ * 北极星上传实例
50
+ */
51
+ _polarisReport?: PolarisReporter | undefined);
52
+ getName(): string;
53
+ getLocalTracks(): RCLocalTrack[];
54
+ private _onConnectionStateChange;
55
+ private _onICEConnectionStateChange;
56
+ private _onTrackReady;
57
+ /**
58
+ * 它设置对等连接的比特率。
59
+ * @deprecated use RCLocalTrack.setBitrate instead of setBitrate
60
+ */
61
+ setBitrate(max: number, min: number, start?: number): Promise<void>;
62
+ createOffer(iceRestart: boolean): Promise<import("./sdp/ASdpStrategy").IOfferInfo>;
63
+ setRemoteAnswer(answer: string): Promise<import("../..").RCRTCCode>;
64
+ getLocalTrack(trackId: string): RCLocalTrack | null;
65
+ addLocalTrack(track: RCLocalTrack): void;
66
+ removeLocalTrackById(trackId: string): void;
67
+ removeAllLocalTrack(): void;
68
+ removeLocalTrack(track: RCLocalTrack): void;
69
+ private _updateRecvTransceiverMap;
70
+ updateSubRemoteTracks(remoteTracks: RCRemoteTrack[]): void;
71
+ /**
72
+ * 获取当前已发布视频流信息
73
+ */
74
+ getOutboundVideoInfo(): import("./sdp/ASdpStrategy").OutboundVideoInfo[];
75
+ private _onLocalTrackMuted;
76
+ private _onLocalTrackDestroied;
77
+ private _reportListener;
78
+ /**
79
+ * 注册连接数据监控,开启质量数据上报定时器
80
+ * @param listener
81
+ */
82
+ registerReportListener(listener: IRCRTCReportListener | null): void;
83
+ private _createRCRTCStateReport;
84
+ /**
85
+ * 获取 peerConnection stats 数据并格式化
86
+ * @returns 返回格式化后的数据
87
+ */
88
+ private _getStatsData;
89
+ getAudioLevelReportData(): Promise<{
90
+ trackId: string;
91
+ audioLevel: number | null;
92
+ }[] | undefined>;
93
+ /**
94
+ * 通知用户质量数据、peerConnection 北极星数据上报
95
+ * @todo
96
+ */
97
+ private _reportHandle;
98
+ /**
99
+ * 北极星上报 R3、R4 数据
100
+ */
101
+ private _sendR3R4Data;
102
+ /**
103
+ * 2s 给北极星上报一次 R3、R4
104
+ */
105
+ __reportR3R4ToPolaris(): Promise<void>;
106
+ getRTCPeerConn(): RTCPeerConnection;
107
+ destroy(): void;
108
+ clearReTryExchangeTimer(): void;
109
+ }
110
+ //# sourceMappingURL=RCRTCPeerConnection.d.ts.map
@@ -0,0 +1,26 @@
1
+ export declare const getBitrate: (dTime: number, dBytes: number) => number;
2
+ /**
3
+ * 限制浮点数小数位的有效位数
4
+ * @param value
5
+ * @param fractionDigits 小数点后保留的有效数字位数
6
+ */
7
+ export declare const fixed: (value: number, fractionDigits?: number) => number;
8
+ /**
9
+ * 处理音量 * 100,并向下取整
10
+ */
11
+ export declare const handleAudioLevel: (audioLevel: number, factor?: number) => number;
12
+ /**
13
+ * 计算丢包率
14
+ * @param packetsLost 当前统计丢包总数
15
+ * @param packets 当前统计总包数
16
+ * @param prePacketsLost 前次统计丢包总数
17
+ * @param prePackets 前次统计总包数
18
+ */
19
+ export declare const getPacketsLostRate: (packetsLost: number, packets: number, prePacketsLost?: number, prePackets?: number) => number;
20
+ export declare const senderHasRemoteData: (sender: {
21
+ [key: string]: any;
22
+ }) => boolean;
23
+ export declare const senderHasMediaData: (sender: {
24
+ [key: string]: any;
25
+ }) => boolean;
26
+ //# sourceMappingURL=helper.d.ts.map
@@ -0,0 +1,98 @@
1
+ import { IRCTrackBitrate } from '../../interfaces';
2
+ import { ISdpSemantics } from './ASdpStrategy';
3
+ /**
4
+ * 以字符串的形式 硬处理 SDP 信息
5
+ * 对于 plan-b | unified-plan 数据的处理 方式是相同的。
6
+ * 将 SDP 以 m=[video|audio] 进行拆分,
7
+ * 从而获取 SDPHeader | videoStreams | audioStreams 并对其内容进行处理
8
+ */
9
+ export default abstract class ASdpBuilder {
10
+ readonly SDP: string;
11
+ readonly type: ISdpSemantics;
12
+ protected SDPHeader: string;
13
+ protected videoStreams: string[];
14
+ protected audioStreams: string[];
15
+ constructor(SDP: string, type: ISdpSemantics);
16
+ /**
17
+ * 它从 SDP 中删除空行和尾随空格
18
+ * @param {string} sdp - 要处理的 SDP 字符串。
19
+ * @returns 删除了换行符的 sdp 字符串。
20
+ */
21
+ static trimBlankLine(sdp: string): string;
22
+ /**
23
+ * 通过 m=video | m=audio 将 SDP 进行分隔
24
+ * 它返回一个索引数组,其中在 SDP 中找到子字符串“m=video”或“m=audio”
25
+ * 它返回 SDP 中 execResult.index 的索引数组。
26
+ * @returns 一组数字。
27
+ */
28
+ private getStreamIndex;
29
+ /**
30
+ * 它将 SDP 拆分为标头和流
31
+ * @param {number[]} streams - 表示每个流的开始和结束的数字数组。
32
+ */
33
+ private spliteStreams;
34
+ /**
35
+ * 如果当前资源方向 RTCRtpTransceiverDirection 是 recvonly | inactive
36
+ * 表明当前不需要发送 RTP 数据所以将 SDP 中删除所有以 `a=ssrc` 或 `a=msid` 开头的行
37
+ * @param {string} stream - string - 要修改的 SDP 字符串
38
+ * @returns 正在返回流。
39
+ */
40
+ clearInactiveOrRecvonly(stream: string): string;
41
+ /**
42
+ * 它采用 SDP 标头和音频和视频流并将它们连接到一个字符串中
43
+ * @returns SDP 标头和音频和视频流的字符串。
44
+ */
45
+ abstract stringify(): string;
46
+ /**
47
+ * 它获取音频流并将它们映射到一个新数组,其中每个项目都是调用 setAudioItemBitrate 函数的结果
48
+ * @param {IRCTrackBitrate} bitrate - 以 kbps 为单位的比特率。
49
+ */
50
+ setAudiosBitrate(bitrate: IRCTrackBitrate): ASdpBuilder;
51
+ /**
52
+ * 它设置特定 MID 的音频比特率。
53
+ * @param {IRCTrackBitrate} bitrate - 音频流的比特率,以 kbps 为单位。
54
+ * @param {string} streamId - 音频流的媒体流 ID。
55
+ */
56
+ setAudioBitrateWithStreamId(bitrate: IRCTrackBitrate, streamId: string): ASdpBuilder;
57
+ /**
58
+ * 它接受一个 SDP 音频块和一个比特率,并返回比特率设置为给定值的 SDP 音频块
59
+ * @param {string} sdpAudioBlock - SDP 的音频块。
60
+ * @param {IRCTrackBitrate} bitrate - 以 kbps 为单位的比特率。
61
+ * @returns 正在返回 sdpAudioBlock 并将比特率设置为传入的比特率。
62
+ */
63
+ private setAudioItemBitrate;
64
+ /**
65
+ * 如果 SDP 的音频块没有 b=AS: 行,则添加一个
66
+ * @param {string} sdpAudioBlock - SDP 的音频块。
67
+ * @param {IRCTrackBitrate} bitrate - IRCTrack比特率
68
+ * @returns 正在返回 sdpAudioBlock。
69
+ */
70
+ private addAudioBlineAS;
71
+ /**
72
+ * 对视频元素设置 SDP 相关信息
73
+ * 针对 SDP 中所有的 video 元素添加码率设置
74
+ * @param bitrate
75
+ */
76
+ setVideosBitrate(bitrate: IRCTrackBitrate): ASdpBuilder;
77
+ /**
78
+ * 它设置特定中间的视频比特率, 针对 SDP 中给定 mid 的 video 元素添加码率设置。
79
+ * @param {IRCTrackBitrate} bitrate - 您要设置的比特率。
80
+ * @param {string} streamId - 媒体流 ID。
81
+ */
82
+ setVideoBitrateWithStreamId(bitrate: IRCTrackBitrate, streamId: string): ASdpBuilder;
83
+ /**
84
+ * 它设置视频项目的比特率。
85
+ * @param {string} sdpVideoBlock - SDP 的视频块。
86
+ * @param {IRCTrackBitrate} bitrate - 包含最小、最大和起始比特率值的比特率对象。
87
+ * @returns 正在返回 sdpVideoBlock。
88
+ */
89
+ private setVideoItemBitrate;
90
+ /**
91
+ * 如果视频块没有 b=AS: 行,则添加一个
92
+ * @param {string} sdpVideoBlock - SDP 的视频块。
93
+ * @param {IRCTrackBitrate} bitrate - IRCTrack比特率
94
+ * @returns 正在返回 sdpVideoBlock。
95
+ */
96
+ private addVideoBlineAS;
97
+ }
98
+ //# sourceMappingURL=ASdpBuilder.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { RCStreamType } from '../../enums/inner/RCStreamType';
2
+ import { RCRTCCode } from '../../enums/RCRTCCode';
3
+ import { RCLocalTrack } from '../../tracks/RCLocalTrack';
4
+ import { RCRemoteTrack } from '../../tracks/RCRemoteTrack';
5
+ import IStatParser from '../stat-parser/IStatParser';
6
+ export declare type ISdpSemantics = 'plan-b' | 'unified-plan';
7
+ export declare enum SdpSemantics {
8
+ PLANB = "plan-b",
9
+ UNIFIEDPLAN = "unified-plan"
10
+ }
11
+ export interface IOfferInfo {
12
+ type: 'offer';
13
+ sdp: string;
14
+ semantics: ISdpSemantics;
15
+ }
16
+ export declare type OutboundVideoInfo = {
17
+ trackId: string;
18
+ simulcast: RCStreamType;
19
+ resolution: string;
20
+ };
21
+ export declare abstract class ASdpStrategy {
22
+ protected _peer: RTCPeerConnection;
23
+ private static _sdpSemantics;
24
+ /**
25
+ * 设置指定的 SDP 协议版本
26
+ * @param sdpSemantics 优先版本
27
+ */
28
+ static setSdpSemantics(sdpSemantics: ISdpSemantics): void;
29
+ /**
30
+ * 获取使用的 SDP 协议版本
31
+ */
32
+ static getSdpSemantics(): ISdpSemantics;
33
+ protected _outboundStreams: {
34
+ [msid: string]: MediaStream;
35
+ };
36
+ constructor(_peer: RTCPeerConnection);
37
+ getOutboundVideoInfo(): OutboundVideoInfo[];
38
+ setRemoteAnswer(sdp: string): Promise<RCRTCCode>;
39
+ abstract updateRecvTransceiverMap(trackId: string, transceiver: RTCRtpTransceiver): void;
40
+ abstract setBitrate(max: number, min: number, start?: number): void;
41
+ abstract addLocalTrack(track: RCLocalTrack): void;
42
+ abstract removeLocalTrack(track: RCLocalTrack): void;
43
+ abstract updateSubRemoteTracks(remoteTracks: RCRemoteTrack[]): void;
44
+ abstract createOffer(iceRestart: boolean): Promise<IOfferInfo>;
45
+ getStatParsr(rtcPeerConn: RTCPeerConnection, sdpSemantics: string, currentUserId: string): IStatParser | null;
46
+ protected resetSdp(sdp: string): string;
47
+ }
48
+ //# sourceMappingURL=ASdpStrategy.d.ts.map