quickvo-sdk-js 0.2.2 → 0.2.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.
@@ -1,12 +1,4 @@
1
1
  import { RoomCalls } from './RoomCalls';
2
2
  export declare class Room extends RoomCalls {
3
3
  constructor();
4
- /**
5
- * 获取指定轨道的名称数组
6
- * @param tracks 轨道
7
- * @param types number[] = []
8
- * @param keyName
9
- * @returns string[]
10
- */
11
- getTrackNamesFormTracks: (tracks: any[], types?: number[], keyName?: string) => string[];
12
4
  }
@@ -1,17 +1,17 @@
1
1
  import { K_roomState } from '../enums/roomState';
2
- import { QuickOptions, RoomOptions } from '../types';
2
+ import { QuickOptions, RoomOptions, RoomUser, UserTrack } from '../types';
3
3
  import { CallsWebSocket, CallsWebSocketOptions } from './CallsWebSocket';
4
4
  import { PrAsyncQueue } from 'pr-async-queue';
5
- import * as tools from '../tools';
6
5
  type Options = QuickOptions & RoomOptions & CallsWebSocketOptions;
7
6
  export declare class RoomBase {
8
7
  options: Options;
9
- tools: typeof tools;
8
+ prohibitNotify: boolean;
10
9
  asyncQueue: PrAsyncQueue;
11
10
  state: K_roomState;
12
11
  createAt: number;
13
12
  cwsIns: CallsWebSocket;
14
- audioOutput: string;
13
+ peerIns: RTCPeerConnection;
14
+ userMap: Map<string, RoomUser>;
15
15
  mediaDevicesErrInfo: {
16
16
  microphoneCamera_audio: string;
17
17
  microphoneCamera_video: string;
@@ -29,7 +29,7 @@ export declare class RoomBase {
29
29
  url?: string;
30
30
  debug?: boolean;
31
31
  callStrategy?: import('../enums/callStrategy').K_callStrategy;
32
- sdkToken: string;
32
+ sdkToken?: string;
33
33
  roomId: string;
34
34
  userId: string;
35
35
  callType: number;
@@ -57,5 +57,38 @@ export declare class RoomBase {
57
57
  screenSharing_video: string;
58
58
  screenSharing_audio: string;
59
59
  }>;
60
+ /**
61
+ * 获取MediaKey
62
+ */
63
+ getUserMediaKey: (userId: string, mediaType: string) => string;
64
+ /**
65
+ * 获取 CallAction map
66
+ */
67
+ getCallActionMap: (callAction?: number) => {
68
+ microphoneCamera_audio: boolean;
69
+ microphoneCamera_video: boolean;
70
+ screenSharing_video: boolean;
71
+ screenSharing_audio: boolean;
72
+ };
73
+ /**
74
+ * 获取音量
75
+ */
76
+ getAverageVolume: (analyser: AnalyserNode, dataArray: Uint8Array) => number;
77
+ /**
78
+ * 通过轨道计算当前用户的通话状态
79
+ */
80
+ getCallAction: (tracks: UserTrack[]) => Promise<number>;
81
+ /**
82
+ * 获取指定轨道的名称数组
83
+ * @param tracks 轨道
84
+ * @param types number[] = []
85
+ * @param keyName
86
+ * @returns string[]
87
+ */
88
+ getTrackNamesFormTracks: (tracks: any[], types?: number[], keyName?: string) => string[];
89
+ /**
90
+ * 处理为应用层数据
91
+ */
92
+ usersFilter: (users: RoomUser[]) => RoomUser[];
60
93
  }
61
94
  export {};
@@ -5,12 +5,6 @@ export declare class RoomCalls extends RoomPeer {
5
5
  #private;
6
6
  sdk_service_version: string;
7
7
  constructor();
8
- /**
9
- * 添加广播事件
10
- * @param notify Notify
11
- * @returns sn
12
- */
13
- addNotify: (notify: Notify) => string;
14
8
  /**
15
9
  * 设置本地流
16
10
  * @param mediaType MediaType
@@ -19,6 +13,12 @@ export declare class RoomCalls extends RoomPeer {
19
13
  * @returns Promise<Streams>
20
14
  */
21
15
  setLocalStream: (mediaType: K_mediaType, active: boolean) => Promise<Streams>;
16
+ /**
17
+ * 添加广播事件
18
+ * @param notify Notify
19
+ * @returns sn
20
+ */
21
+ addNotify: (notify: Notify) => string;
22
22
  /**
23
23
  * 加入房间
24
24
  * @param roomOptions RoomOptions
@@ -0,0 +1,97 @@
1
+ import { K_mediaType } from '../enums/mediaType';
2
+ import { Streams } from '../types';
3
+ import { AudioMediaContext } from './mediaStreams/AudioMediaContext';
4
+ import { VideoMediaContext } from './mediaStreams/VideoMediaContext';
5
+ import { RoomBase } from './RoomBase';
6
+ export declare class RoomMedias extends RoomBase {
7
+ #private;
8
+ mediaDevices: MediaDeviceInfo[];
9
+ constructor();
10
+ /**
11
+ * 初始化用户媒体上下文
12
+ */
13
+ initUserMediaStreamContext: (userId: string, mediaType: K_mediaType, stream: MediaStream) => Promise<void>;
14
+ /**
15
+ * 获取用户媒体流上下文
16
+ */
17
+ getUserMediaStreamContext: (userId: string, mediaType: K_mediaType) => AudioMediaContext | VideoMediaContext | undefined;
18
+ /**
19
+ * 获取用户音频媒体流上下文
20
+ */
21
+ getUserAudioMediaStreamContext: (userId: string, mediaType: "microphoneCamera_audio" | "screenSharing_audio") => AudioMediaContext;
22
+ /**
23
+ * 删除用户媒体流上下文
24
+ */
25
+ removeUserMediaStreamContext: (userId: string, mediaType: K_mediaType) => void;
26
+ /**
27
+ * 获取某个用户的某个数据流
28
+ */
29
+ getUserStream: (userId: string, mediaType: K_mediaType) => MediaStream;
30
+ /**
31
+ * 获取某个用户的某些数据流
32
+ */
33
+ getUserStreams: (userId: string, mediaTypes?: K_mediaType[]) => Streams;
34
+ /**
35
+ * 删除某个用户的某些数据流
36
+ */
37
+ removeUserStreams: (userId: string, mediaTypes?: K_mediaType[]) => Promise<void>;
38
+ /**
39
+ * 清除所有媒体流使用
40
+ */
41
+ clearUserStreams: () => Promise<void>;
42
+ /**
43
+ * 设置轨道媒体参数
44
+ */
45
+ setMediaTrackConstraints: (mediaType: K_mediaType, constraints: MediaTrackConstraints) => Promise<void>;
46
+ /**
47
+ * 改变本地流
48
+ * @param mediaType MediaType
49
+ * @param active 激活状态
50
+ * @example quickvo.setLocalStream('microphoneCamera_audio', false)
51
+ * @returns Promise<Streams>
52
+ */
53
+ changeLocalStream: (mediaType: K_mediaType) => Promise<void>;
54
+ /**
55
+ * 获取正在使用的媒体设备ID
56
+ * @param mediaDeviceKind 设备类型 "audioinput" | "audiooutput" | "videoinput"
57
+ * @returns deviceId 设备ID
58
+ */
59
+ getMediaDeviceKind: (mediaDeviceKind: MediaDeviceKind) => string | undefined;
60
+ /**
61
+ * 替换发射器媒体流
62
+ */
63
+ replaceSenderStream: (mediaType: K_mediaType, stream: MediaStream) => Promise<void>;
64
+ /**
65
+ * 设置正在使用的媒体设备
66
+ * @param mediaDeviceKind 设备类型 "audioinput" | "audiooutput" | "videoinput"
67
+ * @param deviceId 设备ID
68
+ */
69
+ setMediaDeviceKind: (mediaDeviceKind: MediaDeviceKind, deviceId: string) => Promise<void>;
70
+ /**
71
+ * 设置音频输出设备
72
+ * @param deviceId 设备ID
73
+ * @returns
74
+ */
75
+ setAudioOutputDevice: (deviceId: string) => Promise<void>;
76
+ /**
77
+ * 获取可用设备
78
+ * @param mediaDeviceKind 设备类型 "audioinput" | "audiooutput" | "videoinput"
79
+ * @returns MediaDeviceInfo[]
80
+ */
81
+ getEnumerateDevices: (mediaDeviceKind: MediaDeviceKind) => Promise<MediaDeviceInfo[]>;
82
+ /**
83
+ * 获取可用音频输入设备
84
+ * @returns MediaDeviceInfo[]
85
+ */
86
+ getEnumerateAudioinputDevices: () => Promise<MediaDeviceInfo[]>;
87
+ /**
88
+ * 获取可用音频输出设备
89
+ * @returns MediaDeviceInfo[]
90
+ */
91
+ getEnumerateAudioOutputDevices: () => Promise<MediaDeviceInfo[]>;
92
+ /**
93
+ * 获取可用视频输入设备
94
+ * @returns MediaDeviceInfo[]
95
+ */
96
+ getEnumerateVideoinputDevices: () => Promise<MediaDeviceInfo[]>;
97
+ }
@@ -4,7 +4,6 @@ import { UserTrack } from '../types';
4
4
  import { RoomUsers } from './RoomUsers';
5
5
  export declare class RoomPeer extends RoomUsers {
6
6
  #private;
7
- peerIns: RTCPeerConnection;
8
7
  getPeerStatsTimer: number;
9
8
  reports: any[];
10
9
  peerNetwork: {
@@ -73,6 +72,10 @@ export declare class RoomPeer extends RoomUsers {
73
72
  * @param parameters RTCRtpSendParameters
74
73
  */
75
74
  setRTCRtpSenderParameters: (parameters: RTCRtpSendParameters) => void;
75
+ /**
76
+ * 获取分析报告
77
+ */
78
+ getReportsByMid: (mids?: string[]) => Promise<any[]>;
76
79
  /**
77
80
  * 停止网络报告分析
78
81
  */
@@ -1,15 +1,9 @@
1
1
  import { K_mediaType } from '../enums/mediaType';
2
2
  import { RoomUser, UserTrack } from '../types';
3
- import { MediaStreams } from './MediaStreams';
4
- import { UserAudioFilterOptions } from './mediaStreamsContext/AudioMediaStreamContext';
5
- export declare class RoomUsers extends MediaStreams {
6
- userMap: Map<string, RoomUser>;
7
- prohibitNotify: boolean;
3
+ import { RoomMedias } from './RoomMedias';
4
+ import { UserAudioFilterOptions } from './mediaStreams/AudioMediaContext';
5
+ export declare class RoomUsers extends RoomMedias {
8
6
  constructor();
9
- /**
10
- * 获取用户音频处理上下文
11
- */
12
- getUserAudioMediaStreamContext: (userId: string, mediaType: K_mediaType) => import('./mediaStreamsContext/AudioMediaStreamContext').AudioMediaStreamContext | undefined;
13
7
  /**
14
8
  * 获取最大音量用户
15
9
  */
@@ -113,5 +107,9 @@ export declare class RoomUsers extends MediaStreams {
113
107
  /**
114
108
  * 广播用户变化
115
109
  */
110
+ emitNotifyUpdateUser: (userId: string) => Promise<void>;
111
+ /**
112
+ * 房间所有用户所有变化
113
+ */
116
114
  emitNotifyUpdateUsers: () => Promise<void>;
117
115
  }
@@ -3,8 +3,9 @@ export interface UserAudioFilterOptions {
3
3
  noiseSuppression: boolean;
4
4
  echoCancellation: boolean;
5
5
  }
6
- export declare class AudioMediaStreamContext {
6
+ export declare class AudioMediaContext {
7
7
  options: UserAudioFilterOptions;
8
+ kind: "audio";
8
9
  stream: MediaStream;
9
10
  audio: HTMLAudioElement;
10
11
  audioContext: AudioContext;
@@ -15,7 +16,7 @@ export declare class AudioMediaStreamContext {
15
16
  gainNode: GainNode;
16
17
  analyserNode: AnalyserNode;
17
18
  analyserArrayData: Uint8Array;
18
- constructor(stream: MediaStream);
19
+ constructor(track: MediaStreamTrack);
19
20
  /**
20
21
  * 停止
21
22
  */
@@ -1,4 +1,5 @@
1
- export declare class VideoMediaStreamContext {
1
+ export declare class VideoMediaContext {
2
+ kind: "video";
2
3
  stream: MediaStream;
3
4
  constructor(stream: MediaStream);
4
5
  /**
package/dist/tools.d.ts CHANGED
@@ -1,17 +0,0 @@
1
- import { UserTrack } from './types';
2
- /**
3
- * 获取指定轨道的名称数组
4
- * @param tracks 轨道
5
- * @param types number[] = []
6
- * @param keyName
7
- * @returns string[]
8
- */
9
- export declare const getTrackNamesFormTracks: (tracks: any[], types?: number[], keyName?: string) => string[];
10
- export declare const getAverageVolume: (analyser: AnalyserNode, dataArray: Uint8Array) => number;
11
- export declare const getCallAction: (tracks: UserTrack[]) => Promise<number>;
12
- export declare const getCallActionMap: (callAction?: number) => {
13
- microphoneCamera_audio: boolean;
14
- microphoneCamera_video: boolean;
15
- screenSharing_video: boolean;
16
- screenSharing_audio: boolean;
17
- };
package/dist/types.d.ts CHANGED
@@ -213,9 +213,9 @@ export interface RoomUser {
213
213
  }
214
214
  export interface RoomOptions {
215
215
  /**
216
- * 房间授权凭证 仅当前房间内操作有效
216
+ * 房间授权凭证 仅当前房间内操作有效 可以不传跳过验证
217
217
  */
218
- sdkToken: string;
218
+ sdkToken?: string;
219
219
  /**
220
220
  * 房间Id
221
221
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quickvo-sdk-js",
3
3
  "description": "提供快捷接入单对单、单对多、群体会议、舞台会议等音视频功能。",
4
- "version": "0.2.2",
4
+ "version": "0.2.3",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -1,33 +0,0 @@
1
- interface PrAsyncQueueItem {
2
- key: string;
3
- func: () => Promise<any>;
4
- resolve: (value: unknown) => any;
5
- reject: (reason?: any) => any;
6
- timeout: number;
7
- }
8
- interface Options {
9
- key?: string;
10
- timeout?: number;
11
- }
12
- export declare class PrAsyncQueue {
13
- #private;
14
- queue: PrAsyncQueueItem[];
15
- timer: number;
16
- activeIndex: number;
17
- activePromise: PrAsyncQueueItem | undefined;
18
- options: {
19
- timeout: number;
20
- };
21
- constructor(options?: Options);
22
- /**
23
- * 添加
24
- * @param func 待执行函数
25
- * @returns 待执行函数结果
26
- */
27
- add: (func: () => Promise<any>, options?: Options) => Promise<unknown>;
28
- /**
29
- * 清除全部事件
30
- */
31
- clear: () => void;
32
- }
33
- export {};
@@ -1,60 +0,0 @@
1
- import { K_mediaType } from '../enums/mediaType';
2
- import { Streams } from '../types';
3
- import { AudioMediaStreamContext } from './mediaStreamsContext/AudioMediaStreamContext';
4
- import { VideoMediaStreamContext } from './mediaStreamsContext/VideoMediaStreamContext';
5
- import { RoomBase } from './RoomBase';
6
- export declare class MediaStreams extends RoomBase {
7
- audioMediaStreamContextMap: Map<string, AudioMediaStreamContext>;
8
- videoMediaStreamContextMap: Map<string, VideoMediaStreamContext>;
9
- mediaDevices: MediaDeviceInfo[];
10
- constructor();
11
- /**
12
- * 获取key
13
- */
14
- getUserMediaKey: (userId: string, mediaType: K_mediaType) => string;
15
- /**
16
- * 判断用户媒体类型
17
- */
18
- getUserMediaKind: (mediaType: K_mediaType) => "audio" | "video";
19
- /**
20
- * 设置媒体参数
21
- */
22
- setConstraints: (userId: string, mediaType: K_mediaType, constraints: MediaTrackConstraints) => Promise<void>;
23
- /**
24
- * 初始化用户媒体上下文
25
- */
26
- initUserMediaStreamContext: (userId: string, mediaType: K_mediaType, stream: MediaStream) => Promise<void>;
27
- /**
28
- * 获取某个用户的某个数据流
29
- */
30
- getUserStream: (userId: string, mediaType: K_mediaType) => Promise<MediaStream>;
31
- /**
32
- * 获取某个用户的全部数据流
33
- */
34
- getUserStreams: (userId: string) => Promise<Streams>;
35
- /**
36
- * 删除用户媒体流上下文
37
- */
38
- removeUserMediaStreamContext: (userId: string, mediaType: K_mediaType) => void;
39
- /**
40
- * 删除某个用户的某个数据流
41
- */
42
- removeUserStreams: (userId: string, mediaTypes?: K_mediaType[]) => Promise<void>;
43
- /**
44
- * 清除所有媒体流使用
45
- */
46
- clearUserStreams: () => Promise<void>;
47
- /**
48
- * 停止媒体流
49
- */
50
- stopStream: (stream: MediaStream) => Promise<void>;
51
- /**
52
- * 获取可用音频输出媒体设备
53
- */
54
- getEnumerateAudioOutputDevices: () => Promise<MediaDeviceInfo[]>;
55
- /**
56
- * 设置音频输出设备
57
- */
58
- setAudioOutputDevice: (deviceId: string) => void;
59
- getAudioOutputDevice: () => string;
60
- }