quickvo-sdk-js 1.5.12 → 1.5.14

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.
@@ -1,27 +1,29 @@
1
- export declare class PeerAnalyzeStats {
1
+ import { PrPeerAnalysisItem } from './PrPeerAnalysisItem';
2
+ export declare class PrPeerAnalysis {
2
3
  pc: RTCPeerConnection | undefined;
4
+ analysisMap: Map<string, PrPeerAnalysisItem>;
5
+ reports: any[];
6
+ roundTripTimes: number[];
7
+ jitters: number[];
3
8
  network: {
4
9
  inboundBytes: number;
5
10
  outboundBytes: number;
6
- lostRate: string;
7
- roundTripTime: string;
8
- jitter: string;
11
+ lostRate: number;
12
+ roundTripTime: number;
13
+ jitter: number;
9
14
  quality: number;
10
15
  averageQuality: number;
11
16
  velocityPull: number;
12
17
  velocityPush: number;
13
18
  };
14
- reports: any[];
15
- averageQualitys: number[];
16
- timer: number;
17
19
  constructor();
18
20
  onNetwork: (_e: typeof this.network) => void;
19
21
  getNetwork: () => {
20
22
  inboundBytes: number;
21
23
  outboundBytes: number;
22
- lostRate: string;
23
- roundTripTime: string;
24
- jitter: string;
24
+ lostRate: number;
25
+ roundTripTime: number;
26
+ jitter: number;
25
27
  quality: number;
26
28
  averageQuality: number;
27
29
  velocityPull: number;
@@ -29,16 +31,19 @@ export declare class PeerAnalyzeStats {
29
31
  };
30
32
  getAverageQuality: () => number;
31
33
  /**
32
- * start
34
+ * 初始化
35
+ */
36
+ init: (pc: RTCPeerConnection) => void;
37
+ /**
38
+ * 定时获取报告
33
39
  */
34
- start: (pc: RTCPeerConnection) => void;
35
- analyzeStats: () => Promise<void>;
40
+ getReportsInterval: () => Promise<void>;
36
41
  /**
37
- * getReports
42
+ * 获取报告
38
43
  */
39
44
  getReports: (mids?: string[]) => Promise<any[]>;
40
45
  /**
41
- * stop
46
+ * 清理
42
47
  */
43
- stop: () => void;
48
+ clear: () => void;
44
49
  }
@@ -0,0 +1,55 @@
1
+ interface ReportInfo {
2
+ bytesSent: number;
3
+ bytesReceived: number;
4
+ packetsSent: number;
5
+ packetsLost: number;
6
+ }
7
+ export declare class PrPeerAnalysisItem {
8
+ lastReports: never[];
9
+ reportInfos: ReportInfo[];
10
+ roundTripTime: number;
11
+ jitter: number;
12
+ network: {
13
+ inboundBytes: number;
14
+ outboundBytes: number;
15
+ lostRate: number;
16
+ roundTripTime: number;
17
+ jitter: number;
18
+ quality: number;
19
+ averageQuality: number;
20
+ velocityPull: number;
21
+ velocityPush: number;
22
+ };
23
+ packetsSentBefore: number;
24
+ packetsLostBefore: number;
25
+ averageQualitys: number[];
26
+ constructor();
27
+ /**
28
+ * 添加信息
29
+ * @param report
30
+ */
31
+ addInfo: (info: ReportInfo) => void;
32
+ setRoundTripTimeAndJitter: ({ roundTripTime, jitter }: {
33
+ roundTripTime: number;
34
+ jitter: number;
35
+ }) => void;
36
+ /**
37
+ * 汇总报告
38
+ */
39
+ gather: () => {
40
+ inboundBytes: number;
41
+ outboundBytes: number;
42
+ lostRate: number;
43
+ roundTripTime: number;
44
+ jitter: number;
45
+ quality: number;
46
+ averageQuality: number;
47
+ velocityPull: number;
48
+ velocityPush: number;
49
+ };
50
+ /**
51
+ * 清理
52
+ */
53
+ clear: () => void;
54
+ }
55
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { K_mediaType } from '../enums/mediaType';
2
2
  import { PrResolves } from './PrResolves';
3
3
  import { MediaTypeTransceiver, Message, UserTrack } from '../types';
4
- import { PeerAnalyzeStats } from './PeerAnalyzeStats';
4
+ import { PrPeerAnalysis } from '../pr-analysis-for-webrtc/PrPeerAnalysis';
5
5
  export declare class P2P {
6
6
  #private;
7
7
  pr_resolves: PrResolves;
@@ -9,18 +9,19 @@ export declare class P2P {
9
9
  userId: string;
10
10
  remoteUserId: string;
11
11
  phoney_streams_map: Map<K_mediaType, MediaStream>;
12
+ local_streams_map: Map<K_mediaType, MediaStream>;
12
13
  peer_ins?: RTCPeerConnection;
13
14
  timer?: NodeJS.Timeout;
14
15
  local_channel?: RTCDataChannel;
15
16
  remote_channel?: RTCDataChannel;
16
17
  icecandidates: RTCIceCandidate[];
17
18
  candidate_collected: boolean;
18
- analyze_stats_ins: PeerAnalyzeStats;
19
+ analyze_stats_ins: PrPeerAnalysis;
19
20
  send_transceiver_map: Map<"microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio", RTCRtpTransceiver>;
20
21
  recv_transceiver_map: Map<"microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio", RTCRtpTransceiver>;
21
22
  tracks: MediaStreamTrack[];
22
23
  onClose: () => void;
23
- constructor(roomId: string, userId: string, remoteUserId: string, phoney_streams: Map<K_mediaType, MediaStream>);
24
+ constructor(roomId: string, userId: string, remoteUserId: string, phoney_streams: Map<K_mediaType, MediaStream>, local_streams_map: Map<K_mediaType, MediaStream>);
24
25
  remoteChannelSend: (message: Message) => void;
25
26
  init: () => Promise<void>;
26
27
  /**
@@ -33,6 +34,10 @@ export declare class P2P {
33
34
  initRecvs: (mediaTypes?: K_mediaType[], direction?: RTCRtpTransceiverDirection) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
34
35
  hasRecv: (mediaType: K_mediaType) => Promise<boolean>;
35
36
  checkActive: () => boolean;
37
+ /**
38
+ * 替换流
39
+ */
40
+ replaceSenderStreams: (mediaTypes: K_mediaType[] | undefined, isReal: Boolean) => Promise<void>;
36
41
  pauseSends: (mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
37
42
  pauseRecvs: (mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
38
43
  /**
@@ -7,6 +7,7 @@ import { PrAsyncQueue } from 'pr-async-queue';
7
7
  import { P2P } from './P2P';
8
8
  import { K_iceState } from '../enums/iceState';
9
9
  import { PrResolves } from './PrResolves';
10
+ import { Queue } from 'pr-interval-queue';
10
11
  type Options = QuickOptions & RoomOptions & CallsWebSocketOptions & {
11
12
  earlyId?: string;
12
13
  };
@@ -19,6 +20,7 @@ export declare class RoomBase {
19
20
  historical_publish_mediaTypes: K_mediaType[];
20
21
  historical_subscribe_mediaTypes: UserMediaTypes[];
21
22
  prResolves: PrResolves;
23
+ intervalQueue: Queue;
22
24
  sdk_service_version: string;
23
25
  sdk_session: string;
24
26
  isEarly: boolean;
@@ -156,10 +156,6 @@ export declare class RoomCalls extends RoomPeer {
156
156
  * open
157
157
  */
158
158
  open: (remoteUserId: string, mediaTypes: K_mediaType[]) => Promise<unknown>;
159
- /**
160
- * replaceSenderStreams
161
- */
162
- replaceSenderStreams: (remoteUserIds: string[], mediaTypes: K_mediaType[] | undefined, isReal: Boolean) => Promise<void>;
163
159
  pauseSends: (remoteUserIds: string[], mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<void>;
164
160
  pauseRecvs: (remoteUserIds: string[], mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<void>;
165
161
  /**
@@ -176,9 +172,5 @@ export declare class RoomCalls extends RoomPeer {
176
172
  desc?: string;
177
173
  connectedTime?: string;
178
174
  }) => Promise<import('..').SendMessageRevolve<any>>;
179
- /**
180
- * close
181
- */
182
- close: (userIds?: string[]) => Promise<void>;
183
175
  };
184
176
  }
@@ -5,6 +5,7 @@ import { RoomBase } from './RoomBase';
5
5
  import { PrAudioStream } from 'pr-audio-stream';
6
6
  export declare class RoomMedias extends RoomBase {
7
7
  #private;
8
+ localStreamsMap: Map<K_mediaType, MediaStream>;
8
9
  localStreamsActionMap: Map<K_mediaType, Boolean>;
9
10
  audioContext: AudioContext;
10
11
  constructor(options: QuickOptions);
@@ -2,10 +2,10 @@ import { K_callStrategy } from '../enums/callStrategy';
2
2
  import { K_mediaType } from '../enums/mediaType';
3
3
  import { QuickOptions, UserTrack } from '../types';
4
4
  import { RoomUsers } from './RoomUsers';
5
- import { PeerAnalyzeStats } from './PeerAnalyzeStats';
5
+ import { PrPeerAnalysis } from '../pr-analysis-for-webrtc/PrPeerAnalysis';
6
6
  export declare class RoomPeer extends RoomUsers {
7
7
  #private;
8
- peerAnalyzeStatsIns: PeerAnalyzeStats;
8
+ peerAnalyzeStatsIns: PrPeerAnalysis;
9
9
  simulcast: 'f' | 'h' | 'q';
10
10
  offset_inboundBytes: number;
11
11
  offset_outboundBytes: number;
@@ -79,9 +79,9 @@ export declare class RoomPeer extends RoomUsers {
79
79
  getPeerNetwork: () => {
80
80
  inboundBytes: number;
81
81
  outboundBytes: number;
82
- lostRate: string;
83
- roundTripTime: string;
84
- jitter: string;
82
+ lostRate: number;
83
+ roundTripTime: number;
84
+ jitter: number;
85
85
  quality: number;
86
86
  averageQuality: number;
87
87
  velocityPull: number;
@@ -93,12 +93,12 @@ export declare class RoomPeer extends RoomUsers {
93
93
  getRoomNetwork: () => {
94
94
  sfu: any;
95
95
  p2p: {
96
- averageQuality: number;
97
96
  inboundBytes: number;
98
- jitter: number;
99
- lostRate: number;
100
97
  outboundBytes: number;
98
+ averageQuality: number;
101
99
  quality: number;
100
+ jitter: number;
101
+ lostRate: number;
102
102
  roundTripTime: number;
103
103
  velocityPull: number;
104
104
  velocityPush: number;
@@ -108,6 +108,4 @@ export declare class RoomPeer extends RoomUsers {
108
108
  * getReportsByMid
109
109
  */
110
110
  getReportsByMid: (mids?: string[]) => Promise<any[]>;
111
- startGetPeerStats: () => void;
112
- stopGetPeerStats: () => void;
113
111
  }
@@ -84,6 +84,7 @@ export declare class RoomUsers extends RoomMedias {
84
84
  * createUser
85
85
  */
86
86
  createUser: (userId: string) => Promise<void>;
87
+ createP2PUser: (userId: string) => void;
87
88
  /**
88
89
  * getUser
89
90
  */
@@ -116,7 +117,7 @@ export declare class RoomUsers extends RoomMedias {
116
117
  /**
117
118
  * checkSubscribed
118
119
  */
119
- checkSubscribed: (remoteUserId: string, mediaTypes: K_mediaType[]) => Promise<{
120
+ checkSubscribed: (remoteUserId: string, mediaTypes: K_mediaType[], origin?: "sfu" | "p2p" | "all") => Promise<{
120
121
  subscribed_mediaTypes: ("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[];
121
122
  prohibited_mediaTypes: ("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[];
122
123
  }>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quickvo-sdk-js",
3
3
  "description": "提供快捷接入单对单、单对多、群体会议、舞台会议等音视频功能。",
4
- "version": "1.5.12",
4
+ "version": "1.5.14",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -21,7 +21,8 @@
21
21
  "dependencies": {
22
22
  "pako": "^2.1.0",
23
23
  "pr-async-queue": "^0.1.3",
24
- "pr-audio-stream": "^0.1.4",
24
+ "pr-audio-stream": "^0.2.0",
25
+ "pr-interval-queue": "^1.1.4",
25
26
  "pr-nat-type": "^0.1.2",
26
27
  "pr-tools": "^1.6.4",
27
28
  "pr-ws": "^0.3.3",