quickvo-sdk-js 1.4.6 → 1.5.0

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.
@@ -0,0 +1,6 @@
1
+ import { Message } from '../types';
2
+ import * as protos from '../protos/index';
3
+ export declare const sendMessageFormat: (message: Message) => Message;
4
+ export declare const onMessageFormat: (message: any) => any;
5
+ export declare const obj2pb: (message: Message) => Uint8Array<ArrayBufferLike>;
6
+ export declare const pb2obj: (uint8Array: Uint8Array) => protos.com.quick.voice.proto.CommonRsp;
@@ -1,86 +1,62 @@
1
1
  import { K_mediaType } from '../enums/mediaType';
2
2
  import { PrResolves } from './PrResolves';
3
- import { UserTrack } from '../types';
3
+ import { MediaTypeTransceiver, Message, UserTrack } from '../types';
4
4
  import { PeerAnalyzeStats } from './PeerAnalyzeStats';
5
5
  export declare class P2P {
6
- prResolves: PrResolves;
7
- phoneyStreams: Map<K_mediaType, MediaStream>;
8
- recv_peer_ins: RTCPeerConnection;
9
- recv_icecandidates: RTCIceCandidate[];
10
- recv_candidate_collected: boolean;
11
- recv_transceiverMap: Map<"microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio", RTCRtpTransceiver>;
12
- recvPeerAnalyzeStatsIns: PeerAnalyzeStats;
13
- send_peer_ins: RTCPeerConnection;
14
- send_icecandidates: RTCIceCandidate[];
15
- send_candidate_collected: boolean;
16
- send_transceiverMap: Map<"microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio", RTCRtpTransceiver>;
17
- sendPeerAnalyzeStatsIns: PeerAnalyzeStats;
6
+ #private;
7
+ pr_resolves: PrResolves;
8
+ roomId: string;
9
+ userId: string;
10
+ remoteUserId: string;
11
+ phoney_streams_map: Map<K_mediaType, MediaStream>;
12
+ peer_ins?: RTCPeerConnection;
13
+ local_channel?: RTCDataChannel;
14
+ remote_channel?: RTCDataChannel;
15
+ icecandidates: RTCIceCandidate[];
16
+ candidate_collected: boolean;
17
+ analyze_stats_ins: PeerAnalyzeStats;
18
+ send_transceiver_map: Map<"microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio", RTCRtpTransceiver>;
19
+ recv_transceiver_map: Map<"microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio", RTCRtpTransceiver>;
18
20
  tracks: MediaStreamTrack[];
19
- reports: any[];
20
- getPeerStatsTimer: number;
21
- constructor(phoneyStreams: Map<K_mediaType, MediaStream>);
22
- onSendPeerNetwork: (_e: any) => void;
23
- onRecvPeerNetwork: (_e: any) => void;
24
- getPhoneyStreams: (mediaType: K_mediaType) => MediaStream;
25
- /**
26
- * sendIceConnected
27
- */
28
- sendIceConnected: () => Promise<unknown>;
29
- /**
30
- * recvIceConnected
31
- */
32
- recvIceConnected: () => Promise<unknown>;
33
- /**
34
- * sendCandidateCollected
35
- */
36
- sendCandidateCollected: () => Promise<unknown>;
37
- /**
38
- * recvCandidateCollected
39
- */
40
- recvCandidateCollected: () => Promise<unknown>;
21
+ constructor(roomId: string, userId: string, remoteUserId: string, phoney_streams: Map<K_mediaType, MediaStream>);
22
+ remoteChannelSend: (message: Message) => void;
23
+ init: () => Promise<void>;
41
24
  /**
42
- * getSendIcecandidates
43
- */
44
- getSendIcecandidates: () => Promise<RTCIceCandidate[]>;
45
- /**
46
- * getRecvIcecandidates
25
+ * initSenders
47
26
  */
48
- getRecvIcecandidates: () => Promise<RTCIceCandidate[]>;
27
+ initSenders: (media_type_transceivers?: MediaTypeTransceiver[], direction?: RTCRtpTransceiverDirection) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
49
28
  /**
50
- * setOffered
29
+ * initRecvs
51
30
  */
52
- setOffered: () => Promise<unknown>;
31
+ initRecvs: (mediaTypes?: K_mediaType[], direction?: RTCRtpTransceiverDirection) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
32
+ hasRecv: (mediaType: K_mediaType) => Promise<boolean>;
33
+ checkActive: () => boolean;
34
+ pauseSends: (mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
35
+ pauseRecvs: (mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
53
36
  /**
54
- * initSender
37
+ * createOffer
55
38
  */
56
- initSenderPc: () => Promise<void>;
39
+ createOffer: () => Promise<RTCSessionDescriptionInit>;
57
40
  /**
58
- * clearSenderPc
41
+ * setOffer
59
42
  */
60
- clearSenderPc: () => Promise<void>;
43
+ setOffer: (offer: RTCSessionDescriptionInit) => Promise<void>;
61
44
  /**
62
- * initRecvPc
45
+ * createAnswer
63
46
  */
64
- initRecvPc: () => Promise<void>;
47
+ createAnswer: () => Promise<RTCSessionDescriptionInit>;
65
48
  /**
66
- * clearSenderPc
49
+ * setAnswer
67
50
  */
68
- clearRecvPc: () => Promise<void>;
51
+ setAnswer: (answer: RTCSessionDescriptionInit) => Promise<void>;
69
52
  /**
70
- * initSenders
53
+ * getIcecandidates
71
54
  */
72
- initSenders: (tracks?: {
73
- mid: string;
74
- type: number;
75
- }[]) => Promise<void>;
55
+ getIcecandidates: () => Promise<RTCIceCandidate[]>;
76
56
  /**
77
- * addSenders
78
- */
79
- addSenders: (mediaTypes?: K_mediaType[]) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
80
- /**
81
- * addRecvs
57
+ * addCandidates
82
58
  */
83
- addRecvs: (mediaTypes?: K_mediaType[]) => Promise<("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[]>;
59
+ addCandidates: (remote_candidates: RTCIceCandidateInit[]) => Promise<void>;
84
60
  /**
85
61
  * getSenderTracks
86
62
  */
@@ -95,53 +71,29 @@ export declare class P2P {
95
71
  location: string;
96
72
  mid: string | null;
97
73
  key: string;
74
+ isActive: boolean;
98
75
  }[]>;
99
76
  /**
100
- * createOffer
101
- */
102
- createOffer: () => Promise<RTCSessionDescriptionInit>;
103
- /**
104
- * setOffer
105
- */
106
- setOffer: (offer: RTCSessionDescriptionInit) => Promise<void>;
107
- /**
108
- * createAnswer
77
+ * isActive
109
78
  */
110
- createAnswer: () => Promise<RTCSessionDescriptionInit>;
111
- /**
112
- * addCandidates
113
- */
114
- addCandidates: (remote_candidates: RTCIceCandidate[]) => Promise<void>;
115
- /**
116
- * setAnswer
117
- */
118
- setAnswer: (answer: RTCSessionDescriptionInit, answer_candidates: RTCIceCandidateInit[]) => Promise<void>;
79
+ isActive: (mediaType: K_mediaType) => boolean;
119
80
  /**
120
81
  * getTrack
121
82
  */
122
83
  getTrack: (mediaType: K_mediaType) => MediaStreamTrack | undefined;
84
+ getPhoneyStreams: (mediaType: K_mediaType) => MediaStream;
123
85
  /**
124
- * getSendPeerNetwork
86
+ * candidateCollected
125
87
  */
126
- getSendPeerNetwork: () => {
127
- inboundBytes: number;
128
- outboundBytes: number;
129
- lostRate: string;
130
- roundTripTime: string;
131
- jitter: string;
132
- quality: number;
133
- averageQuality: number;
134
- };
88
+ candidateCollected: () => Promise<unknown>;
135
89
  /**
136
- * getRecvPeerNetwork
90
+ * iceConnected
137
91
  */
138
- getRecvPeerNetwork: () => {
139
- inboundBytes: number;
140
- outboundBytes: number;
141
- lostRate: string;
142
- roundTripTime: string;
143
- jitter: string;
144
- quality: number;
145
- averageQuality: number;
146
- };
92
+ iceConnected: () => Promise<unknown>;
93
+ /**
94
+ * setOffered
95
+ */
96
+ setOffered: () => Promise<unknown>;
97
+ checkPeer: () => RTCPeerConnection;
98
+ destroy: () => Promise<void>;
147
99
  }
@@ -8,6 +8,8 @@ export declare class PeerAnalyzeStats {
8
8
  jitter: string;
9
9
  quality: number;
10
10
  averageQuality: number;
11
+ velocityPull: number;
12
+ velocityPush: number;
11
13
  };
12
14
  reports: any[];
13
15
  averageQualitys: number[];
@@ -22,6 +24,8 @@ export declare class PeerAnalyzeStats {
22
24
  jitter: string;
23
25
  quality: number;
24
26
  averageQuality: number;
27
+ velocityPull: number;
28
+ velocityPush: number;
25
29
  };
26
30
  getAverageQuality: () => number;
27
31
  /**
@@ -2,7 +2,6 @@ import { K_roomState } from '../enums/roomState';
2
2
  import { QuickOptions, Report_Log_Type, RoomOptions, RoomUser, UserMediaTypes, UserTrack, UserTracks } from '../types';
3
3
  import { CallsWebSocket, CallsWebSocketOptions } from './CallsWebSocket';
4
4
  import { K_mediaType } from '../enums/mediaType';
5
- import { NetworkQualityTester } from './NetworkQualityTester';
6
5
  import { StreamRecorder } from './StreamRecorder';
7
6
  import { PrAsyncQueue } from 'pr-async-queue';
8
7
  import { P2P } from './P2P';
@@ -41,7 +40,6 @@ export declare class RoomBase {
41
40
  setLocalStreamActiveMap: Map<K_mediaType, Boolean>;
42
41
  phoneyStreams: Map<K_mediaType, MediaStream>;
43
42
  recorder: StreamRecorder;
44
- networkQualityTester: NetworkQualityTester;
45
43
  mediaDevicesErrInfo: {
46
44
  microphoneCamera_audio: string;
47
45
  microphoneCamera_video: string;
@@ -68,6 +66,7 @@ export declare class RoomBase {
68
66
  logUrl?: string;
69
67
  debug?: boolean;
70
68
  reportErr?: boolean;
69
+ useP2P?: boolean;
71
70
  callStrategy?: import('../enums/callStrategy').K_callStrategy;
72
71
  sdkToken?: string;
73
72
  roomId: string;
@@ -129,10 +128,11 @@ export declare class RoomBase {
129
128
  screenSharing_video: boolean;
130
129
  screenSharing_audio: boolean;
131
130
  };
131
+ debugSdp: (sdp: string | undefined, desc: string) => void;
132
132
  /**
133
133
  * getAverageVolume
134
134
  */
135
- getAverageVolume: (analyser: AnalyserNode, dataArray: Uint8Array) => number;
135
+ getAverageVolume: (analyser: AnalyserNode, dataArray: Uint8Array<ArrayBuffer>) => number;
136
136
  /**
137
137
  * getTrackNamesFormTracks
138
138
  * @param tracks
@@ -16,9 +16,9 @@ export declare class RoomCalls extends RoomPeer {
16
16
  /**
17
17
  * setMediaDeviceKind
18
18
  * @param mediaDeviceKind "audioinput" | "audiooutput" | "videoinput"
19
- * @param deviceId string
19
+ * @param deviceId string | undefined
20
20
  */
21
- setMediaDeviceKind: (mediaDeviceKind: MediaDeviceKind, deviceId: string) => Promise<unknown>;
21
+ setMediaDeviceKind: (mediaDeviceKind: MediaDeviceKind, deviceId: string | undefined) => Promise<unknown>;
22
22
  /**
23
23
  * changeScreenSharing
24
24
  * @param mediaDeviceKind "audioinput" | "audiooutput" | "videoinput"
@@ -79,11 +79,12 @@ export declare class RoomCalls extends RoomPeer {
79
79
  */
80
80
  stopPublish: (mediaTypes?: K_mediaType[]) => Promise<boolean>;
81
81
  /**
82
- * inactiveTracks
82
+ * pauseTracks
83
83
  * @param mediaTypes MediaType[]
84
- * @param enabled boolean
85
- * @example quickvo.inactiveTracks(['microphoneCamera_audio'], false)
84
+ * @param pause boolean
85
+ * @example quickvo.pauseTracks(['microphoneCamera_audio'], true)
86
86
  */
87
+ pauseTracks: (mediaTypes: K_mediaType[], pause: boolean) => Promise<boolean>;
87
88
  inactiveTracks: (mediaTypes: K_mediaType[], enabled: boolean) => Promise<boolean>;
88
89
  /**
89
90
  * subscribe
@@ -98,7 +99,11 @@ export declare class RoomCalls extends RoomPeer {
98
99
  * @example quickvo.stopSubscribe([{ userId: '123', mediaTypes: ['mediaTypes', 'microphoneCamera_video'] }])
99
100
  * @returns Promise<boolean>
100
101
  */
101
- stopSubscribe: (userMediaTypes?: UserMediaTypes[]) => Promise<boolean>;
102
+ stopSubscribe: (usersMediaTypes?: UserMediaTypes[]) => Promise<boolean>;
103
+ /**
104
+ * updateSimulcast
105
+ */
106
+ updateSimulcast: (simulcast: "f" | "h" | "q") => Promise<import('..').SendMessageRevolve<any>>;
102
107
  /**
103
108
  * setBanBehaviors
104
109
  */
@@ -138,6 +143,10 @@ export declare class RoomCalls extends RoomPeer {
138
143
  * wsConnected
139
144
  */
140
145
  cwsConnected: () => Promise<unknown>;
146
+ /**
147
+ * #createSession
148
+ */
149
+ createSession: () => Promise<unknown>;
141
150
  p2p: {
142
151
  /**
143
152
  * open
@@ -147,6 +156,8 @@ export declare class RoomCalls extends RoomPeer {
147
156
  * replaceSenderStreams
148
157
  */
149
158
  replaceSenderStreams: (remoteUserIds: string[], mediaTypes: K_mediaType[] | undefined, isReal: Boolean) => Promise<void>;
159
+ pauseSends: (remoteUserIds: string[], mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<void>;
160
+ pauseRecvs: (remoteUserIds: string[], mediaTypes: K_mediaType[] | undefined, pause: boolean) => Promise<void>;
150
161
  /**
151
162
  * reportNetwork
152
163
  */
@@ -156,12 +167,8 @@ export declare class RoomCalls extends RoomPeer {
156
167
  */
157
168
  reportP2PConnect: (recvUserId: string, sendUserId: string, state: "success" | "fail" | "ignore" | "disconnect" | "poor_network", reason?: string, pushUserIds?: string[], connectedTime?: number) => Promise<import('..').SendMessageRevolve<any>>;
158
169
  /**
159
- * closeSend
160
- */
161
- closeSend: (userIds?: string[], mediaTypes?: K_mediaType[]) => Promise<void>;
162
- /**
163
- * closeRecv
170
+ * close
164
171
  */
165
- closeRecv: (userIds?: string[], mediaTypes?: K_mediaType[]) => Promise<void>;
172
+ close: (userIds?: string[]) => Promise<void>;
166
173
  };
167
174
  }
@@ -60,6 +60,13 @@ export declare class RoomMedias extends RoomBase {
60
60
  * setMediaTrackConstraints
61
61
  */
62
62
  setMediaTrackConstraints: (mediaType: K_mediaType, constraints: MediaTrackConstraints) => Promise<void>;
63
+ /**
64
+ * checkLocalStream
65
+ */
66
+ checkLocalStream: (mediaTypes?: K_mediaType[]) => Promise<{
67
+ valid_mediaTypes: ("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[];
68
+ invalid_mediaTypes: ("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[];
69
+ }>;
63
70
  /**
64
71
  * stopLocalStreams
65
72
  */
@@ -97,7 +104,7 @@ export declare class RoomMedias extends RoomBase {
97
104
  * @param mediaDeviceKind "audioinput" | "audiooutput" | "videoinput"
98
105
  * @param deviceId string
99
106
  */
100
- setDeviceKind: (mediaDeviceKind: MediaDeviceKind, deviceId: string) => void;
107
+ setDeviceKind: (mediaDeviceKind: MediaDeviceKind, deviceId: string | undefined) => void;
101
108
  /**
102
109
  * setAudioOutputDevice
103
110
  * @param deviceId string
@@ -6,6 +6,7 @@ import { PeerAnalyzeStats } from './PeerAnalyzeStats';
6
6
  export declare class RoomPeer extends RoomUsers {
7
7
  #private;
8
8
  peerAnalyzeStatsIns: PeerAnalyzeStats;
9
+ simulcast: 'f' | 'h' | 'q';
9
10
  offset_inboundBytes: number;
10
11
  offset_outboundBytes: number;
11
12
  constructor(options: QuickOptions);
@@ -31,6 +32,7 @@ export declare class RoomPeer extends RoomUsers {
31
32
  * getSenderTracks
32
33
  */
33
34
  getSenderTracks: (mediaTypes?: K_mediaType[]) => Promise<UserTrack[]>;
35
+ setCodecPreferences: (mediaType: K_mediaType) => void;
34
36
  /**
35
37
  * addSenders
36
38
  */
@@ -67,6 +69,10 @@ export declare class RoomPeer extends RoomUsers {
67
69
  * @param parameters RTCRtpSendParameters
68
70
  */
69
71
  setRTCRtpSenderParameters: (parameters: RTCRtpSendParameters) => void;
72
+ /**
73
+ * setSimulcast
74
+ */
75
+ setSimulcast: (simulcast: "f" | "h" | "q") => void;
70
76
  /**
71
77
  * getPeerNetwork
72
78
  */
@@ -78,18 +84,25 @@ export declare class RoomPeer extends RoomUsers {
78
84
  jitter: string;
79
85
  quality: number;
80
86
  averageQuality: number;
87
+ velocityPull: number;
88
+ velocityPush: number;
81
89
  };
82
90
  /**
83
91
  * getRoomNetwork
84
92
  */
85
93
  getRoomNetwork: () => {
86
- inboundBytes: number;
87
- outboundBytes: number;
88
- lostRate: string;
89
- roundTripTime: string;
90
- jitter: string;
91
- quality: number;
92
- averageQuality: number;
94
+ sfu: any;
95
+ p2p: {
96
+ averageQuality: number;
97
+ inboundBytes: number;
98
+ jitter: number;
99
+ lostRate: number;
100
+ outboundBytes: number;
101
+ quality: number;
102
+ roundTripTime: number;
103
+ velocityPull: number;
104
+ velocityPush: number;
105
+ };
93
106
  };
94
107
  /**
95
108
  * getReportsByMid
@@ -1,5 +1,5 @@
1
1
  import { K_mediaType } from '../enums/mediaType';
2
- import { QuickOptions, RoomUser, UserMediaTypes, UserTrack, UserTracks } from '../types';
2
+ import { QuickOptions, RoomUser, UserMediaTypes, UserTrack } from '../types';
3
3
  import { RoomMedias } from './RoomMedias';
4
4
  import { P2P } from './P2P';
5
5
  export declare class RoomUsers extends RoomMedias {
@@ -114,9 +114,31 @@ export declare class RoomUsers extends RoomMedias {
114
114
  mediaTypes: ("microphoneCamera_audio" | "microphoneCamera_video" | "screenSharing_video" | "screenSharing_audio")[];
115
115
  }[]>;
116
116
  /**
117
- * getUserTrackByUserMediaTypes
117
+ * createUserTrackByUserMediaTypes
118
118
  */
119
- getUserTrackByUserMediaTypes: (usersMediaTypes?: UserMediaTypes[], lastRetry?: boolean) => Promise<UserTracks[]>;
119
+ createUserTrackByUserMediaTypes: (usersMediaTypes?: UserMediaTypes[], covers?: {
120
+ lastRetry?: boolean;
121
+ simulcast?: "f" | "h" | "q";
122
+ }) => Promise<{
123
+ id: string;
124
+ tracks: {
125
+ lastRetry?: boolean;
126
+ simulcast?: "f" | "h" | "q";
127
+ location: string;
128
+ mid: string | null;
129
+ msid?: string | undefined;
130
+ trackName: string;
131
+ userId?: string;
132
+ type: number;
133
+ mediaType: K_mediaType;
134
+ volume?: number;
135
+ enabled?: boolean;
136
+ settings?: MediaTrackSettings;
137
+ key: string;
138
+ origin: "sfu" | "p2p" | "unknown";
139
+ }[];
140
+ }[]>;
141
+ getUserStreamOrigin: (userId: string, mediaType: K_mediaType) => Promise<"sfu" | "p2p" | "unknown">;
120
142
  /**
121
143
  * getAllUserMediaTypes
122
144
  */
@@ -10,6 +10,11 @@ export declare class VideoMediaContext {
10
10
  * 替换媒体
11
11
  */
12
12
  replaceStream: (stream: MediaStream) => void;
13
+ /**
14
+ * 暂停
15
+ * @param pause
16
+ */
17
+ pause: (pause: boolean) => Promise<void>;
13
18
  /**
14
19
  * 获取数据流
15
20
  */
package/dist/tools.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare const createMutedAudioStream: (audioContext: AudioContext) => MediaStream;
2
2
  export declare const createFakeVideoStream: (width?: number, height?: number, fps?: number) => MediaStream;
3
+ export declare const isMobile: () => boolean;
package/dist/types.d.ts CHANGED
@@ -21,9 +21,13 @@ export interface QuickOptions {
21
21
  */
22
22
  debug?: boolean;
23
23
  /**
24
- * 上报错误 默认为false
24
+ * 上报错误 默认为true
25
25
  */
26
26
  reportErr?: boolean;
27
+ /**
28
+ * 是否使用p2p 默认为true
29
+ */
30
+ useP2P?: boolean;
27
31
  /**
28
32
  * 通话策略
29
33
  */
@@ -55,6 +59,10 @@ export interface Message extends protos.com.quick.voice.proto.ICommonReq {
55
59
  */
56
60
  timeStr?: string;
57
61
  sn?: number;
62
+ /**
63
+ * 是否压缩数据
64
+ */
65
+ compress?: boolean;
58
66
  }
59
67
  /**
60
68
  * 用户轨道
@@ -104,7 +112,17 @@ export interface UserTrack {
104
112
  * 唯一key 每次轨道变化均会改变
105
113
  */
106
114
  key: string;
107
- origin: 'sfu' | 'p2p';
115
+ /**
116
+ * 数据来源
117
+ */
118
+ origin: 'sfu' | 'p2p' | 'unknown';
119
+ /**
120
+ * 传输质量(video有效)
121
+ */
122
+ simulcast?: 'f' | 'h' | 'q';
123
+ /**
124
+ * 是否声明最后一次订阅
125
+ */
108
126
  lastRetry?: boolean;
109
127
  }
110
128
  /**
@@ -305,3 +323,8 @@ export interface SubscribeRes {
305
323
  fail_users: UserTracks[];
306
324
  retry_users: UserTracks[];
307
325
  }
326
+ export interface MediaTypeTransceiver {
327
+ mid: number | string | null;
328
+ mediaType: K_mediaType;
329
+ enabled: boolean;
330
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quickvo-sdk-js",
3
3
  "description": "提供快捷接入单对单、单对多、群体会议、舞台会议等音视频功能。",
4
- "version": "1.4.6",
4
+ "version": "1.5.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -21,19 +21,19 @@
21
21
  "dependencies": {
22
22
  "pako": "^2.1.0",
23
23
  "pr-async-queue": "^0.1.3",
24
- "pr-audio-stream": "^0.1.1",
24
+ "pr-audio-stream": "^0.1.4",
25
25
  "pr-nat-type": "^0.1.2",
26
- "pr-tools": "^1.6.1",
26
+ "pr-tools": "^1.6.4",
27
27
  "pr-ws": "^0.3.3",
28
- "sdp-transform": "^2.15.0",
28
+ "sdp-transform": "^3.0.0",
29
29
  "webm-duration-fix": "^1.0.4"
30
30
  },
31
31
  "devDependencies": {
32
- "protobufjs": "^7.4.0",
33
- "typescript": "^5.8.2",
34
- "vite": "^7.1.4",
35
- "vite-plugin-bundle-obfuscator": "^1.6.0",
36
- "vite-plugin-dts": "^4.5.3"
32
+ "protobufjs": "^7.5.4",
33
+ "typescript": "^5.9.3",
34
+ "vite": "^7.1.12",
35
+ "vite-plugin-bundle-obfuscator": "^1.8.0",
36
+ "vite-plugin-dts": "^4.5.4"
37
37
  },
38
38
  "private": false,
39
39
  "author": "Breathe",
@@ -1,44 +0,0 @@
1
- export declare class NetworkQualityTester {
2
- targetUrls: string[];
3
- results: any[];
4
- constructor(targetUrls?: string[]);
5
- testAll(): Promise<{
6
- overallSuccess: boolean;
7
- message: string;
8
- totalTests?: undefined;
9
- successfulTests?: undefined;
10
- averageDownloadSpeed?: undefined;
11
- averageResponseTime?: undefined;
12
- totalDataTransferred?: undefined;
13
- detailedResults?: undefined;
14
- } | {
15
- overallSuccess: boolean;
16
- totalTests: number;
17
- successfulTests: number;
18
- averageDownloadSpeed: string;
19
- averageResponseTime: string;
20
- totalDataTransferred: string;
21
- detailedResults: any[];
22
- message?: undefined;
23
- }>;
24
- testUrl(url: string): Promise<void>;
25
- analyzeResults(): {
26
- overallSuccess: boolean;
27
- message: string;
28
- totalTests?: undefined;
29
- successfulTests?: undefined;
30
- averageDownloadSpeed?: undefined;
31
- averageResponseTime?: undefined;
32
- totalDataTransferred?: undefined;
33
- detailedResults?: undefined;
34
- } | {
35
- overallSuccess: boolean;
36
- totalTests: number;
37
- successfulTests: number;
38
- averageDownloadSpeed: string;
39
- averageResponseTime: string;
40
- totalDataTransferred: string;
41
- detailedResults: any[];
42
- message?: undefined;
43
- };
44
- }