quickvo-sdk-js 0.2.2 → 0.2.4

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.
@@ -39,9 +39,9 @@ export declare class CallsWebSocket {
39
39
  /**
40
40
  * 触发广播事件
41
41
  * @param event 事件名称
42
- * @param data 事件响应值
42
+ * @param result 事件响应值
43
43
  */
44
- emitNotify: (event: K_notifyName, data: any) => Promise<void>;
44
+ emitNotify: (event: K_notifyName, result: SendMessageRevolve) => Promise<void>;
45
45
  /**
46
46
  * 添加广播
47
47
  * @param notify
@@ -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,104 @@
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
+ emitNotifyUpdateUsersStreams: (notifys: Array<{
14
+ userId: string;
15
+ updateStreams: { [key in K_mediaType]?: boolean; };
16
+ }>) => Promise<void>;
17
+ /**
18
+ * 初始化用户媒体上下文
19
+ */
20
+ initUserMediaStreamContext: (userId: string, mediaType: K_mediaType, stream: MediaStream) => Promise<void>;
21
+ /**
22
+ * 获取用户媒体流上下文
23
+ */
24
+ getUserMediaStreamContext: (userId: string, mediaType: K_mediaType) => AudioMediaContext | VideoMediaContext | undefined;
25
+ /**
26
+ * 获取用户音频媒体流上下文
27
+ */
28
+ getUserAudioMediaStreamContext: (userId: string, mediaType: "microphoneCamera_audio" | "screenSharing_audio") => AudioMediaContext;
29
+ /**
30
+ * 删除用户媒体流上下文
31
+ */
32
+ removeUserMediaStreamContext: (userId: string, mediaType: K_mediaType) => void;
33
+ /**
34
+ * 获取某个用户的某个数据流
35
+ */
36
+ getUserStream: (userId: string, mediaType: K_mediaType) => MediaStream;
37
+ /**
38
+ * 获取某个用户的某些数据流
39
+ */
40
+ getUserStreams: (userId: string, mediaTypes?: K_mediaType[]) => Streams;
41
+ /**
42
+ * 删除某个用户的某些数据流
43
+ */
44
+ removeUserStreams: (userId: string, mediaTypes?: K_mediaType[]) => Promise<void>;
45
+ /**
46
+ * 清除所有媒体流使用
47
+ */
48
+ clearUserStreams: () => Promise<void>;
49
+ /**
50
+ * 设置轨道媒体参数
51
+ */
52
+ setMediaTrackConstraints: (mediaType: K_mediaType, constraints: MediaTrackConstraints) => Promise<void>;
53
+ /**
54
+ * 改变本地流
55
+ * @param mediaType MediaType
56
+ * @param active 激活状态
57
+ * @example quickvo.setLocalStream('microphoneCamera_audio', false)
58
+ * @returns Promise<Streams>
59
+ */
60
+ changeLocalStream: (mediaType: K_mediaType) => Promise<void>;
61
+ /**
62
+ * 获取正在使用的媒体设备ID
63
+ * @param mediaDeviceKind 设备类型 "audioinput" | "audiooutput" | "videoinput"
64
+ * @returns deviceId 设备ID
65
+ */
66
+ getMediaDeviceKind: (mediaDeviceKind: MediaDeviceKind) => string | undefined;
67
+ /**
68
+ * 替换发射器媒体流
69
+ */
70
+ replaceSenderStream: (mediaType: K_mediaType, stream: MediaStream) => Promise<void>;
71
+ /**
72
+ * 设置正在使用的媒体设备
73
+ * @param mediaDeviceKind 设备类型 "audioinput" | "audiooutput" | "videoinput"
74
+ * @param deviceId 设备ID
75
+ */
76
+ setMediaDeviceKind: (mediaDeviceKind: MediaDeviceKind, deviceId: string) => Promise<void>;
77
+ /**
78
+ * 设置音频输出设备
79
+ * @param deviceId 设备ID
80
+ * @returns
81
+ */
82
+ setAudioOutputDevice: (deviceId: string) => Promise<void>;
83
+ /**
84
+ * 获取可用设备
85
+ * @param mediaDeviceKind 设备类型 "audioinput" | "audiooutput" | "videoinput"
86
+ * @returns MediaDeviceInfo[]
87
+ */
88
+ getEnumerateDevices: (mediaDeviceKind: MediaDeviceKind) => Promise<MediaDeviceInfo[]>;
89
+ /**
90
+ * 获取可用音频输入设备
91
+ * @returns MediaDeviceInfo[]
92
+ */
93
+ getEnumerateAudioinputDevices: () => Promise<MediaDeviceInfo[]>;
94
+ /**
95
+ * 获取可用音频输出设备
96
+ * @returns MediaDeviceInfo[]
97
+ */
98
+ getEnumerateAudioOutputDevices: () => Promise<MediaDeviceInfo[]>;
99
+ /**
100
+ * 获取可用视频输入设备
101
+ * @returns MediaDeviceInfo[]
102
+ */
103
+ getEnumerateVideoinputDevices: () => Promise<MediaDeviceInfo[]>;
104
+ }
@@ -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
  */
@@ -111,7 +105,13 @@ export declare class RoomUsers extends MediaStreams {
111
105
  */
112
106
  updateUsers: (users: RoomUser[]) => Promise<void>;
113
107
  /**
114
- * 广播用户变化
108
+ * 广播用户状态变化
109
+ * 当某个用户发送了变化则通过该回调进行通知
110
+ */
111
+ emitNotifyUpdateUser: (userId: string) => Promise<void>;
112
+ /**
113
+ * 广播全部用户状态变变化
114
+ * 只要房间任意一个用户变化 都会通过该回调返回一个完整的用户列表
115
115
  */
116
116
  emitNotifyUpdateUsers: () => Promise<void>;
117
117
  }
@@ -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,6 +1,7 @@
1
- export declare class VideoMediaStreamContext {
1
+ export declare class VideoMediaContext {
2
+ kind: "video";
2
3
  stream: MediaStream;
3
- constructor(stream: MediaStream);
4
+ constructor(track: MediaStreamTrack);
4
5
  /**
5
6
  * 停止
6
7
  */
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.4",
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
- }