@hysc/meeting 4.0.2 → 4.0.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.
- package/esm/boom-core/src/BoomCore/BCClient/clientEventType.d.ts +11 -8
- package/esm/boom-meeting/src/BMChat/BMChatVM.d.ts +2 -1
- package/esm/boom-meeting/src/BMRoom/BMRoomInfo.d.ts +213 -0
- package/esm/boom-meeting/src/BMRoom/BMRoomVM.d.ts +302 -0
- package/esm/boom-meeting/src/BMRoom/attachEvents.d.ts +9 -2
- package/esm/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +254 -0
- package/esm/boom-meeting/src/BMUser/BMUser.d.ts +12 -3
- package/esm/boom-meeting/src/BMUser/BMUserVM.d.ts +15 -11
- package/esm/boom-meeting/src/bjy-common/function/getErrorMessage.d.ts +1 -0
- package/esm/boom-meeting/src/constants.d.ts +38 -8
- package/esm/boom-meeting/src/error/RTCError.d.ts +20 -0
- package/esm/boom-meeting/src/error/errorType.d.ts +96 -0
- package/esm/boom-meeting/src/handleEvent/attachEvents.d.ts +35 -0
- package/esm/boom-meeting/src/handleEvent/handleParticipantEvent.d.ts +19 -0
- package/esm/boom-meeting/src/handleEvent/handleRoomEvent.d.ts +12 -0
- package/esm/boom-meeting/src/logger/logger.d.ts +86 -0
- package/esm/boom-meeting/src/util/Pqueue.d.ts +61 -0
- package/esm/boom-meeting/src/util/constant.d.ts +67 -0
- package/esm/boom-meeting/src/util/emitter.d.ts +4 -2
- package/esm/index.js +2 -2
- package/esm/index.js.map +3 -3
- package/esm/src/BMChat/BMChatVM.d.ts +25 -25
- package/esm/src/BMChat/BMMessageInfo.d.ts +31 -31
- package/esm/src/BMRoom/BMLiveVM.d.ts +35 -35
- package/esm/src/BMRoom/BMRoomInfo.d.ts +213 -213
- package/esm/src/BMRoom/BMRoomVM.d.ts +302 -302
- package/esm/src/BMRoom/attachEvents.d.ts +34 -34
- package/esm/src/BMStream/BMStreamModelVM.d.ts +254 -254
- package/esm/src/BMUser/BMUser.d.ts +156 -156
- package/esm/src/BMUser/BMUserVM.d.ts +141 -141
- package/esm/src/bjy-common/function/getErrorMessage.d.ts +1 -1
- package/esm/src/constants.d.ts +113 -113
- package/esm/src/error/RTCError.d.ts +20 -20
- package/esm/src/error/errorType.d.ts +96 -96
- package/esm/src/handleEvent/attachEvents.d.ts +35 -0
- package/esm/src/handleEvent/handleParticipantEvent.d.ts +19 -0
- package/esm/src/handleEvent/handleRoomEvent.d.ts +12 -0
- package/esm/src/logger/logger.d.ts +86 -86
- package/esm/src/util/Pqueue.d.ts +61 -61
- package/esm/src/util/constant.d.ts +67 -67
- package/esm/src/util/emitter.d.ts +20 -20
- package/esm/utils/BoomError.d.ts +21 -0
- package/esm/utils/ErrorTypes.d.ts +99 -0
- package/esm/utils/index.d.ts +9 -0
- package/package.json +4 -4
- package/umd/boom-core/src/BoomCore/BCClient/clientEventType.d.ts +11 -8
- package/umd/boom-meeting/src/BMChat/BMChatVM.d.ts +2 -1
- package/umd/boom-meeting/src/BMRoom/BMRoomInfo.d.ts +213 -0
- package/umd/boom-meeting/src/BMRoom/BMRoomVM.d.ts +302 -0
- package/umd/boom-meeting/src/BMRoom/attachEvents.d.ts +9 -2
- package/umd/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +254 -0
- package/umd/boom-meeting/src/BMUser/BMUser.d.ts +12 -3
- package/umd/boom-meeting/src/BMUser/BMUserVM.d.ts +15 -11
- package/umd/boom-meeting/src/bjy-common/function/getErrorMessage.d.ts +1 -0
- package/umd/boom-meeting/src/constants.d.ts +38 -8
- package/umd/boom-meeting/src/error/RTCError.d.ts +20 -0
- package/umd/boom-meeting/src/error/errorType.d.ts +96 -0
- package/umd/boom-meeting/src/handleEvent/attachEvents.d.ts +35 -0
- package/umd/boom-meeting/src/handleEvent/handleParticipantEvent.d.ts +19 -0
- package/umd/boom-meeting/src/handleEvent/handleRoomEvent.d.ts +12 -0
- package/umd/boom-meeting/src/logger/logger.d.ts +86 -0
- package/umd/boom-meeting/src/util/Pqueue.d.ts +61 -0
- package/umd/boom-meeting/src/util/constant.d.ts +67 -0
- package/umd/boom-meeting/src/util/emitter.d.ts +4 -2
- package/umd/index.js +2 -2
- package/umd/utils/BoomError.d.ts +21 -0
- package/umd/utils/ErrorTypes.d.ts +99 -0
- package/umd/utils/index.d.ts +9 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name: BMStreamModelVM
|
|
3
|
+
* @author: yangliye
|
|
4
|
+
* @date: 2022-04-27 15:25
|
|
5
|
+
* @description:BMStreamModelVM
|
|
6
|
+
* @update: 2022-04-27 15:25
|
|
7
|
+
* @description
|
|
8
|
+
* 这个模块的功能是去管理展示窗口的处理逻辑,主要包括创建streamModel,更新streamModel(主要是流相关信息的更新,和用户更新)
|
|
9
|
+
* 创建streamModel的操作:
|
|
10
|
+
* 初始化整个流程是根据bloud的用户来创建的
|
|
11
|
+
* 然后在根据brtc里面流的信息来更新对应的streamModel
|
|
12
|
+
* bloud的用户和brtc的流信息是根据uid来进行关联。
|
|
13
|
+
*
|
|
14
|
+
* 共享屏幕用户做了特殊处理,因为web端共享屏幕和移动端共享屏幕处理逻辑不一样
|
|
15
|
+
*/
|
|
16
|
+
/// <reference types="node" />
|
|
17
|
+
import BMStreamModel, { NoPlayerContainer } from "./BMStreamModel";
|
|
18
|
+
import BMUser from '../BMUser/BMUser';
|
|
19
|
+
import { SingleLocalStream, SingleRemoteStream, SingleStream } from '../type';
|
|
20
|
+
import BMRoom from '../BMRoom/BMRoom';
|
|
21
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
22
|
+
import { Device } from '@hysc/core/esm/BoomAdapter/type/value';
|
|
23
|
+
import BMSpeaker from './BMSpeaker';
|
|
24
|
+
import { ShareMediaOptions } from "@hysc/core/esm/BoomCore/BCClient/BCClient";
|
|
25
|
+
import { getHTMLMediaStreamOptions, Result, getMediaStreamInfo } from "./getHTMLMediaStreamOptions";
|
|
26
|
+
export declare function transShareScreen2User(userId: string): string;
|
|
27
|
+
export declare const pubFailedStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
|
|
28
|
+
/**
|
|
29
|
+
* 全量的brtc流记录,把所有brtc用户推的流都做记录
|
|
30
|
+
* stream-added 的时候添加
|
|
31
|
+
* stream-removed 的时候删除
|
|
32
|
+
* mute/unmute-video/audio 的时候更新流
|
|
33
|
+
* 当用户进来的时候,去查看这个流对象,如果流存在,就给这个人添加流
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
export declare const BRTCStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
|
|
37
|
+
export declare const BRTCShareStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
|
|
38
|
+
export default class BMStreamModelVM {
|
|
39
|
+
streamModels: Map<string, BMStreamModel>;
|
|
40
|
+
/**
|
|
41
|
+
* 因为投屏码用户进来以后,他是不在小窗口展示的,所以要把投屏的用户过滤掉给业务的展示
|
|
42
|
+
*/
|
|
43
|
+
streamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
|
|
44
|
+
shareStreamModels: Map<string, BMStreamModel>;
|
|
45
|
+
shareStreamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
|
|
46
|
+
localStreamErrorWatcher: Subject<string>;
|
|
47
|
+
localModel: BMStreamModel | null;
|
|
48
|
+
private room;
|
|
49
|
+
bloudStream: any;
|
|
50
|
+
audioStream: SingleLocalStream | undefined;
|
|
51
|
+
brtcStream: SingleLocalStream | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* 本地是否在屏幕共享
|
|
54
|
+
*/
|
|
55
|
+
localIsShare: boolean;
|
|
56
|
+
_speaker_enable: boolean;
|
|
57
|
+
speakerEnableWatcher: BehaviorSubject<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* 混流
|
|
60
|
+
*/
|
|
61
|
+
mixStreamModelWatcher: BehaviorSubject<BMStreamModel | null>;
|
|
62
|
+
isShareWatcher: Subject<boolean>;
|
|
63
|
+
canvasTimer: NodeJS.Timeout | null;
|
|
64
|
+
/**
|
|
65
|
+
* 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
|
|
66
|
+
*/
|
|
67
|
+
videoStream: SingleLocalStream | null;
|
|
68
|
+
private _recorder;
|
|
69
|
+
private _isRecording;
|
|
70
|
+
private _slicingRecord;
|
|
71
|
+
isRecordingWatcher: BehaviorSubject<boolean>;
|
|
72
|
+
private _speaker;
|
|
73
|
+
private _speakerDetector;
|
|
74
|
+
private _speakers;
|
|
75
|
+
speakerWatcher: BehaviorSubject<BMUser | null>;
|
|
76
|
+
/**
|
|
77
|
+
* 窗口没有播放容器的错误处理
|
|
78
|
+
*/
|
|
79
|
+
noContainerWatcher: Subject<BMStreamModel>;
|
|
80
|
+
/**
|
|
81
|
+
* 窗口没有大窗口播放容器的错误处理
|
|
82
|
+
*/
|
|
83
|
+
noBigContainerWatcher: Subject<BMStreamModel>;
|
|
84
|
+
constructor();
|
|
85
|
+
private static filterStreamModels;
|
|
86
|
+
initWithRoom(room: BMRoom): this;
|
|
87
|
+
/**
|
|
88
|
+
* 设置扬声器是否打开
|
|
89
|
+
* @param enable
|
|
90
|
+
* @private
|
|
91
|
+
*/
|
|
92
|
+
private setSpeakerEnable;
|
|
93
|
+
getStreamModels(): Array<BMStreamModel>;
|
|
94
|
+
/**
|
|
95
|
+
* 获取streamModel
|
|
96
|
+
* @param userId 用户Id
|
|
97
|
+
* @returns
|
|
98
|
+
*/
|
|
99
|
+
getStreamModelByUId(userId: string): BMStreamModel | undefined;
|
|
100
|
+
getShareStreamModelByUId(userId: string): BMStreamModel | undefined;
|
|
101
|
+
getLocalStreamModel(): BMStreamModel | null;
|
|
102
|
+
createStreamModel(user: BMUser, stream?: SingleStream): BMStreamModel;
|
|
103
|
+
addStreamModel(streamModel: BMStreamModel): void;
|
|
104
|
+
addShareStreamModel(streamModel: BMStreamModel): void;
|
|
105
|
+
removeStreamModel(streamModel: BMStreamModel): void;
|
|
106
|
+
removeShareStreamModel(streamModel: BMStreamModel): void;
|
|
107
|
+
/**`
|
|
108
|
+
* 通过用户id删除streamModel
|
|
109
|
+
* @param userId
|
|
110
|
+
* @returns
|
|
111
|
+
*/
|
|
112
|
+
removeStreamModelByUId(userId: string): BMStreamModel | undefined;
|
|
113
|
+
remoteStreamPublished(stream: SingleRemoteStream): void;
|
|
114
|
+
/**
|
|
115
|
+
* 有人取消流触发,有人取消流之后brtc底层会把流销毁掉,除了流Id和userId,其他的信息都不稳定能取到
|
|
116
|
+
* @param stream
|
|
117
|
+
* @returns
|
|
118
|
+
*/
|
|
119
|
+
remoteStreamUnpublished(stream: SingleRemoteStream): BMStreamModel | undefined;
|
|
120
|
+
sortStreamModels(): BMStreamModel[];
|
|
121
|
+
updateStreamModel(streamModel: BMStreamModel, stream: SingleStream): void;
|
|
122
|
+
updateShareStreamModel(streamModel: BMStreamModel, stream: SingleStream): void;
|
|
123
|
+
/**
|
|
124
|
+
* 开关本地摄像头
|
|
125
|
+
* @param status true:开,false:关
|
|
126
|
+
* @param videoTrack 开启美颜之后,需要传递这个参数,携带美颜之后的videoTrack
|
|
127
|
+
*/
|
|
128
|
+
setLocalVideoEnable(status: boolean, videoTrack?: MediaStreamTrack): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* 开关本地麦克风
|
|
131
|
+
* @param status true:开,false:关
|
|
132
|
+
*/
|
|
133
|
+
setLocalAudioEnable(status: boolean): Promise<undefined>;
|
|
134
|
+
/**
|
|
135
|
+
* 该方法只是在入会的时候,同时开启音频和视频的时候使用,其他时候禁止使用该方法
|
|
136
|
+
* 切换音频和视频状态请使用 setLocalAudioEnable 和 setLocalVideoEnable
|
|
137
|
+
* @param audio
|
|
138
|
+
* @param video
|
|
139
|
+
*/
|
|
140
|
+
joinWithAudioAndAudio(audio: boolean, video: boolean): Promise<undefined>;
|
|
141
|
+
/**
|
|
142
|
+
* 切换扬声器
|
|
143
|
+
* @param device
|
|
144
|
+
*/
|
|
145
|
+
changeSpeaker(device: Device): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* 设置单个流的扬声器
|
|
148
|
+
* @param streamModel
|
|
149
|
+
*/
|
|
150
|
+
changeSingleStreamSpeaker(streamModel: BMStreamModel): Promise<void>;
|
|
151
|
+
changeAudioInput(device: Device): Promise<void>;
|
|
152
|
+
changeVideoInput(device: Device): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* 是否静音扬声器
|
|
155
|
+
* @param enable
|
|
156
|
+
*/
|
|
157
|
+
muteSpeaker(enable: boolean): Promise<undefined>;
|
|
158
|
+
/**
|
|
159
|
+
* 创建流并且发布
|
|
160
|
+
* @param audio 是否发布音频流
|
|
161
|
+
* @param video 是否发布视频流
|
|
162
|
+
* @param localModel 本地的streamModel
|
|
163
|
+
* @param videoTrack
|
|
164
|
+
* @private
|
|
165
|
+
*/
|
|
166
|
+
private createStreamAndPublish;
|
|
167
|
+
muteHandler(type: 'video' | 'audio'): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* 更改音视频状态或者取消发布
|
|
170
|
+
* @param type 更改类型
|
|
171
|
+
* @param mute 是否取消发布
|
|
172
|
+
* @param localModel 本地的streamModel
|
|
173
|
+
* @private
|
|
174
|
+
*/
|
|
175
|
+
private muteOrUnpublishStream;
|
|
176
|
+
/**
|
|
177
|
+
* 是否开启屏幕共享
|
|
178
|
+
* @param enable
|
|
179
|
+
* @param opts 开启屏幕共享参数
|
|
180
|
+
* @param customShare
|
|
181
|
+
* @param opts.audio 是否开启音频
|
|
182
|
+
* @param opts.source_name Electron 下窗口名称
|
|
183
|
+
* @param opts.width 共享屏幕宽度
|
|
184
|
+
* @param opts.height 共享屏幕高度
|
|
185
|
+
* @param opts.contentHint 视频的contentHint 可选值: '' | 'motion' | 'detail' | 'text'
|
|
186
|
+
*/
|
|
187
|
+
toggleShareScreen(enable: boolean, opts: any, customShare?: Result): Promise<boolean>;
|
|
188
|
+
setShareScreenContentHint(contentHint: '' | 'motion' | 'detail' | 'text'): Promise<void>;
|
|
189
|
+
/**
|
|
190
|
+
* 排序变化之后的处理逻辑
|
|
191
|
+
*/
|
|
192
|
+
updateUserSort: any;
|
|
193
|
+
updateModelSort: any;
|
|
194
|
+
handleNoContainer: (info: NoPlayerContainer) => void;
|
|
195
|
+
/**
|
|
196
|
+
* 创建canvas,目的是为了捕获空track流,给brtc使用
|
|
197
|
+
*/
|
|
198
|
+
createCanvas(): void;
|
|
199
|
+
private canvasDisplay;
|
|
200
|
+
private static getCanvasStream;
|
|
201
|
+
private createVideoStream;
|
|
202
|
+
/**
|
|
203
|
+
* 启动录制
|
|
204
|
+
* @param {String} opts.filename - 录制文件名
|
|
205
|
+
* @param {Object} opts.capture - 采集属性
|
|
206
|
+
* @param {Number} opts.capture.width - 宽度
|
|
207
|
+
* @param {Number} opts.capture.height - 高度
|
|
208
|
+
* @param {Number} opts.capture.fps - 帧率
|
|
209
|
+
* @param {Number} opts.record - 编码属性
|
|
210
|
+
* @param {Number} opts.record.bitrate - 编码码率
|
|
211
|
+
* @param {String|undefined} opts.record.format - 编码格式
|
|
212
|
+
* @return {boolean}
|
|
213
|
+
*/
|
|
214
|
+
startRecord(opts: any): Promise<boolean | undefined>;
|
|
215
|
+
/**
|
|
216
|
+
* 添加流对象到录制器,用于音频轨道录制
|
|
217
|
+
* @param stream
|
|
218
|
+
*/
|
|
219
|
+
addToRecorder(stream: any): void;
|
|
220
|
+
/**
|
|
221
|
+
* 从录制器中删除流对象
|
|
222
|
+
* @param stream
|
|
223
|
+
*/
|
|
224
|
+
removeFromRecorder(stream: any): void;
|
|
225
|
+
/**
|
|
226
|
+
* 停止录制
|
|
227
|
+
*/
|
|
228
|
+
stopRecord(): Promise<void>;
|
|
229
|
+
/**
|
|
230
|
+
* 启用下一个录制分片
|
|
231
|
+
* @param filename - 下一分片文件名
|
|
232
|
+
*/
|
|
233
|
+
sliceRecord(filename: string): Promise<boolean | undefined>;
|
|
234
|
+
/**
|
|
235
|
+
* 启动说话人检测器
|
|
236
|
+
*/
|
|
237
|
+
startSpeakerDetector(): void;
|
|
238
|
+
addToDetector(speaker: BMSpeaker): void;
|
|
239
|
+
removeFromDetector(speakerId: string): void;
|
|
240
|
+
shareCustomMedia(enable: boolean, shareOptions: ShareMediaOptions): Promise<undefined>;
|
|
241
|
+
/**
|
|
242
|
+
* 根据videoElement 获取内部流数据
|
|
243
|
+
*/
|
|
244
|
+
getHTMLMediaStream: typeof getHTMLMediaStreamOptions;
|
|
245
|
+
getMediaStream: typeof getMediaStreamInfo;
|
|
246
|
+
/**
|
|
247
|
+
* brtc断网重连之后,不知道在断网期间有那些用户取消了推流,
|
|
248
|
+
* 然后如果是brtc的ws没重连上,然后自己走的重新入会重连的话,就会导致
|
|
249
|
+
* 可能存在本地的流有一部分可能是不存在的流了,这个方法就是在重连入会之后
|
|
250
|
+
* 把所有远端流清空
|
|
251
|
+
*/
|
|
252
|
+
resetAllRemoteStream(): void;
|
|
253
|
+
clearCache(): void;
|
|
254
|
+
}
|
|
@@ -2,7 +2,7 @@ import BMStreamModel from '../BMStream/BMStreamModel';
|
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
3
|
import BCUser from '@hysc/core/esm/BoomAdapter/User/User';
|
|
4
4
|
import BMRoom from '../BMRoom/BMRoom';
|
|
5
|
-
declare type Operation = 'none' | 'getMaster' | 'getManager' | 'removeMaster' | 'getGuest' | 'removeGuest' | 'removeManager' | 'changeNickName' | 'speakerEnable' | 'changeShare' | 'updateUser' | 'raiseHandsVideo' | 'raiseHandsAudio' | 'audienceEnableSpeaking';
|
|
5
|
+
export declare type Operation = 'none' | 'getMaster' | 'getManager' | 'removeMaster' | 'getGuest' | 'removeGuest' | 'removeManager' | 'changeNickName' | 'speakerEnable' | 'changeShare' | 'updateUser' | 'raiseHandsVideo' | 'raiseHandsAudio' | 'audienceEnableSpeaking' | 'inBackground' | 'raiseHand';
|
|
6
6
|
interface IUserActionWatcher {
|
|
7
7
|
operation: Operation;
|
|
8
8
|
user: BMUser;
|
|
@@ -19,7 +19,7 @@ interface UserInfo {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
export interface RaiseHandInfo {
|
|
22
|
-
status: 'raiseHandsAudio' | 'raiseHandsVideo';
|
|
22
|
+
status: 'raiseHandsAudio' | 'raiseHandsVideo' | 'raiseHand';
|
|
23
23
|
user: BMUser;
|
|
24
24
|
}
|
|
25
25
|
export default class BMUser {
|
|
@@ -57,6 +57,7 @@ export default class BMUser {
|
|
|
57
57
|
* 'changeShare': 是否在屏幕共享
|
|
58
58
|
* 'raiseHandsVideo': 是否视频举手
|
|
59
59
|
* 'raiseHandsAudio': 是否音频举手
|
|
60
|
+
* 'raiseHand':单纯的举手
|
|
60
61
|
* @property {BMUser} user
|
|
61
62
|
*/
|
|
62
63
|
watcher: BehaviorSubject<IUserActionWatcher>;
|
|
@@ -69,11 +70,17 @@ export default class BMUser {
|
|
|
69
70
|
*/
|
|
70
71
|
raiseVideoHands: boolean;
|
|
71
72
|
raiseAudioHands: boolean;
|
|
73
|
+
raiseHand: boolean;
|
|
72
74
|
isAudience: boolean;
|
|
73
75
|
/**
|
|
74
76
|
* 是不是普通参会者
|
|
75
77
|
*/
|
|
76
78
|
isCommonUser: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* 如果改用户是移动端, 该值用于判断这个用户是否在后台
|
|
81
|
+
*/
|
|
82
|
+
inBackground: boolean;
|
|
83
|
+
raiseHandTime: number;
|
|
77
84
|
/**
|
|
78
85
|
* 是不是web端入会
|
|
79
86
|
*/
|
|
@@ -81,6 +88,7 @@ export default class BMUser {
|
|
|
81
88
|
constructor(user: any, isLocal?: boolean);
|
|
82
89
|
setup(userId: string, userinfo: UserInfo, nickname: string): void;
|
|
83
90
|
getMainStreamModel(): BMStreamModel | undefined;
|
|
91
|
+
get nickname(): string;
|
|
84
92
|
getShareStreamModel(): BMStreamModel | undefined;
|
|
85
93
|
/**
|
|
86
94
|
* 获取用户麦克风开启状态
|
|
@@ -142,6 +150,7 @@ export default class BMUser {
|
|
|
142
150
|
/**
|
|
143
151
|
* 更新当前用户的排序
|
|
144
152
|
*/
|
|
145
|
-
updateSortNum(): void;
|
|
153
|
+
updateSortNum(force?: boolean): void;
|
|
154
|
+
setSortNum(sortNum: number, force: boolean): void;
|
|
146
155
|
}
|
|
147
156
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import BoomCore from '@hysc/core/esm';
|
|
2
|
-
import BMUser from
|
|
2
|
+
import BMUser from "./BMUser";
|
|
3
3
|
import BCUser from '@hysc/core/esm/BoomAdapter/User/User';
|
|
4
4
|
import BMRoom from '../BMRoom/BMRoom';
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
@@ -38,13 +38,7 @@ export default class BMUserVM {
|
|
|
38
38
|
* 移除用户
|
|
39
39
|
* @param userId 用户id
|
|
40
40
|
*/
|
|
41
|
-
removeUser(userId: string):
|
|
42
|
-
/**
|
|
43
|
-
* 是否在userList找到该用户,返回true or false
|
|
44
|
-
* @param bcUser bcUser对象
|
|
45
|
-
* @returns
|
|
46
|
-
*/
|
|
47
|
-
findUser(bcUser: BCUser): boolean;
|
|
41
|
+
removeUser(userId: string): boolean;
|
|
48
42
|
/**
|
|
49
43
|
* 获取用户视频开启状态
|
|
50
44
|
* @param userId 用户id
|
|
@@ -73,10 +67,11 @@ export default class BMUserVM {
|
|
|
73
67
|
* @param {string} userId
|
|
74
68
|
*/
|
|
75
69
|
getUser(userId: string): BMUser | undefined;
|
|
70
|
+
getAllUsers(pageIndex: number, allUsers: Map<string, BCUser>): Promise<void>;
|
|
76
71
|
/**
|
|
77
72
|
* 刚加入房间时初始化人数
|
|
78
73
|
*/
|
|
79
|
-
initUserList(
|
|
74
|
+
initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
|
|
80
75
|
/**
|
|
81
76
|
* 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
|
|
82
77
|
* @param userId
|
|
@@ -88,7 +83,7 @@ export default class BMUserVM {
|
|
|
88
83
|
* 联席主持人设置嘉宾的操作
|
|
89
84
|
* @param userId
|
|
90
85
|
*/
|
|
91
|
-
managerChangeToGuest(userId: string):
|
|
86
|
+
managerChangeToGuest(userId: string): BMUser | undefined;
|
|
92
87
|
/**
|
|
93
88
|
* 改变联席主持人,返回设置为联席主持人的bmuser对象
|
|
94
89
|
* @param userId
|
|
@@ -101,8 +96,8 @@ export default class BMUserVM {
|
|
|
101
96
|
* 获取我自己
|
|
102
97
|
*/
|
|
103
98
|
getLocalUser(): BMUser;
|
|
104
|
-
updateSelf(bcUser: BCUser): void;
|
|
105
99
|
updateUser(bmUser: BMUser, bcUser: BCUser): void;
|
|
100
|
+
updateLocalUserPermission(permission: string): void;
|
|
106
101
|
/**
|
|
107
102
|
* bcUser变成BMUser
|
|
108
103
|
* @param bcUser
|
|
@@ -134,4 +129,13 @@ export default class BMUserVM {
|
|
|
134
129
|
}>;
|
|
135
130
|
getTotalUserNumber(): Promise<number>;
|
|
136
131
|
clearUsers(): void;
|
|
132
|
+
/**
|
|
133
|
+
* 参会者列表搜索(嘉宾及以上才能搜索)
|
|
134
|
+
* @param searchTxt 搜索文本
|
|
135
|
+
* @param pageSize 一页几个
|
|
136
|
+
*/
|
|
137
|
+
searchUsers(searchTxt: string, pageSize: number): Promise<{
|
|
138
|
+
userList: BMUser[];
|
|
139
|
+
commonUserList: BMUser[];
|
|
140
|
+
}>;
|
|
137
141
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getErrorMessage(error: any): string;
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* @update: 2022-04-27 10:39
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* 标品排序规则
|
|
10
10
|
*/
|
|
11
|
-
export declare enum
|
|
11
|
+
export declare enum MODEL_SORT_ENUM_STAND {
|
|
12
12
|
SCREEN = 0,
|
|
13
13
|
MASTER = 1,
|
|
14
14
|
LOCAL = 2,
|
|
@@ -16,13 +16,41 @@ export declare enum MODEL_SORT_ENUM {
|
|
|
16
16
|
MANAGER_AUDIO = 4,
|
|
17
17
|
MANAGER_VIDEO = 5,
|
|
18
18
|
MANAGER = 6,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
RAISE_HAND = 7,
|
|
20
|
+
RAISE_AUDIO = 8,
|
|
21
|
+
RAISE_VIDEO = 9,
|
|
22
|
+
GUEST_AUDIO_VIDEO = 10,
|
|
23
|
+
GUEST_AUDIO = 11,
|
|
24
|
+
GUEST_VIDEO = 12,
|
|
25
|
+
SIGNAL = 13,
|
|
26
|
+
COMMONUSER_AUDIO_VIDEO = 14,
|
|
27
|
+
COMMONUSER_AUDIO = 15,
|
|
28
|
+
COMMONUSER_VIDEO = 16,
|
|
29
|
+
OTHER = 17
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 中移排序规则
|
|
33
|
+
*/
|
|
34
|
+
export declare enum MODEL_SORT_ENUM_ZY {
|
|
35
|
+
SCREEN = 0,
|
|
36
|
+
RAISE_AUDIO = 1,
|
|
37
|
+
RAISE_VIDEO = 2,
|
|
38
|
+
LOCAL = 3,
|
|
39
|
+
MASTER_AUDIO_VIDEO = 4,
|
|
40
|
+
MANAGER_AUDIO_VIDEO = 5,
|
|
41
|
+
AUDIO_VIDEO = 6,
|
|
42
|
+
MASTER_AUDIO = 7,
|
|
43
|
+
MANAGER_AUDIO = 8,
|
|
44
|
+
AUDIO = 9,
|
|
45
|
+
MASTER_VIDEO = 10,
|
|
46
|
+
MANAGER_VIDEO = 11,
|
|
24
47
|
VIDEO = 12,
|
|
25
|
-
|
|
48
|
+
MASTER = 13,
|
|
49
|
+
MANAGER = 14,
|
|
50
|
+
GUEST = 15,
|
|
51
|
+
COMMON_USER = 16,
|
|
52
|
+
SIGNAL = 17,
|
|
53
|
+
OTHER = 18
|
|
26
54
|
}
|
|
27
55
|
export declare enum STREAM_TYPE {
|
|
28
56
|
/**
|
|
@@ -81,3 +109,5 @@ export declare const UNSUBSCRIBE_STREAM = "unsubscribe-stream";
|
|
|
81
109
|
*/
|
|
82
110
|
export declare const CHANG_IS_GUEST = "change-is-guest";
|
|
83
111
|
export declare const BIND_BIG_ELEMENT = "bind-big-element";
|
|
112
|
+
export declare const NO_CONTAINER = "no-container";
|
|
113
|
+
export declare const MODEL_SORT_NUM_CHANGE = "model-sort-num-change";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default class BoomError extends Error {
|
|
2
|
+
static instanceOf(error: any): boolean;
|
|
3
|
+
private BoomErrorFlag;
|
|
4
|
+
private code;
|
|
5
|
+
private eName?;
|
|
6
|
+
private error;
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
* @param code
|
|
10
|
+
* @param name
|
|
11
|
+
* @param message
|
|
12
|
+
*/
|
|
13
|
+
constructor(code: number, message?: any, error?: any, name?: string);
|
|
14
|
+
/**
|
|
15
|
+
* 获取错误码
|
|
16
|
+
*
|
|
17
|
+
* @returns 错误码
|
|
18
|
+
*/
|
|
19
|
+
getCode(): number;
|
|
20
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 本地一般错误
|
|
3
|
+
*/
|
|
4
|
+
export declare const LOCAL_ERROR = 1000;
|
|
5
|
+
/**
|
|
6
|
+
* 无效参数
|
|
7
|
+
*/
|
|
8
|
+
export declare const INVALID_PARAMETER = 1001;
|
|
9
|
+
/**
|
|
10
|
+
* 非法操作
|
|
11
|
+
*/
|
|
12
|
+
export declare const INVALID_OPERATION = 1002;
|
|
13
|
+
/**
|
|
14
|
+
* 不支持
|
|
15
|
+
*/
|
|
16
|
+
export declare const NOT_SUPPORTED = 1003;
|
|
17
|
+
/**
|
|
18
|
+
* 没有权限
|
|
19
|
+
*/
|
|
20
|
+
export declare const PERMISSION_DENY = 1010;
|
|
21
|
+
/**
|
|
22
|
+
* 没有推送音频权限
|
|
23
|
+
*/
|
|
24
|
+
export declare const PERMISSION_DENY_AUDIO = 1011;
|
|
25
|
+
/**
|
|
26
|
+
* 没有推送视频权限
|
|
27
|
+
*/
|
|
28
|
+
export declare const PERMISSION_DENY_VIDEO = 1012;
|
|
29
|
+
/**
|
|
30
|
+
* 进入频道失败
|
|
31
|
+
*/
|
|
32
|
+
export declare const JOIN_CHANNEL_ERROR = 4000;
|
|
33
|
+
/**
|
|
34
|
+
* 信令通道建立失败
|
|
35
|
+
*/
|
|
36
|
+
export declare const SIGNAL_SETUP_FAILED = 4001;
|
|
37
|
+
/**
|
|
38
|
+
* 信令通道错误
|
|
39
|
+
*/
|
|
40
|
+
export declare const SIGNAL_ERROR = 4002;
|
|
41
|
+
/**
|
|
42
|
+
* ICE Tansport 连接错误
|
|
43
|
+
*/
|
|
44
|
+
export declare const ICE_TRANSPORT_ERROR = 4003;
|
|
45
|
+
/**
|
|
46
|
+
* 创建 sdp offer 失败
|
|
47
|
+
*/
|
|
48
|
+
export declare const CREATE_OFFER_FAILED = 4004;
|
|
49
|
+
/**
|
|
50
|
+
* 端被踢出
|
|
51
|
+
*/
|
|
52
|
+
export declare const CLIENT_BANNED = 4005;
|
|
53
|
+
/**
|
|
54
|
+
* 媒体传输超时
|
|
55
|
+
*/
|
|
56
|
+
export declare const MEDIA_SERVER_TIMEOUT = 4006;
|
|
57
|
+
/**
|
|
58
|
+
* 订阅远端流超时
|
|
59
|
+
*/
|
|
60
|
+
export declare const SUBSCRIPTION_TIMEOUT = 4007;
|
|
61
|
+
/**
|
|
62
|
+
* 推流错误
|
|
63
|
+
*/
|
|
64
|
+
export declare const MEDIA_PUBLISH_ERROR = 4008;
|
|
65
|
+
/**
|
|
66
|
+
* 用户被踢出
|
|
67
|
+
*/
|
|
68
|
+
export declare const USER_KICKED = 4009;
|
|
69
|
+
/**
|
|
70
|
+
* 订阅重试的过程中出现 stream 已被销毁
|
|
71
|
+
*/
|
|
72
|
+
export declare const MEDIA_SUBSCRIPTION_RETRY_NULL_ERROR = 4010;
|
|
73
|
+
/**
|
|
74
|
+
* HTTP 请求失败
|
|
75
|
+
*/
|
|
76
|
+
export declare const FETCH_ERROR = 5000;
|
|
77
|
+
/**
|
|
78
|
+
* userSig 校验失败
|
|
79
|
+
*/
|
|
80
|
+
export declare const USER_SIG_ERROR = 5001;
|
|
81
|
+
/**
|
|
82
|
+
* token 过期
|
|
83
|
+
*/
|
|
84
|
+
export declare const TOKEN_EXPIRE_ERROR = 5002;
|
|
85
|
+
/**
|
|
86
|
+
* 房间关闭
|
|
87
|
+
*/
|
|
88
|
+
export declare const ROOM_CLOSED_ERROR = 5003;
|
|
89
|
+
/**
|
|
90
|
+
* 未知错误
|
|
91
|
+
*/
|
|
92
|
+
export declare const UNKNOWN = 9000;
|
|
93
|
+
/**
|
|
94
|
+
* 用户不存在
|
|
95
|
+
*/
|
|
96
|
+
export declare const USER_NOT_EXIT = 9001;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import BoomCore from '@hysc/core';
|
|
2
|
+
import BMStreamModelVM from "../BMStream/BMStreamModelVM";
|
|
3
|
+
import BMRoom from '../BMRoom/BMRoom';
|
|
4
|
+
import { SingleRemoteStream } from '../type';
|
|
5
|
+
import BMUserVM from "../BMUser/BMUserVM";
|
|
6
|
+
import BMChatVM from '../BMChat/BMChatVM';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import BMStreamModel from "../BMStream/BMStreamModel";
|
|
9
|
+
import { BCEvent } from "@hysc/core/src/BoomCore/BCClient/clientEventType";
|
|
10
|
+
/**
|
|
11
|
+
* 收到消息信令的集合
|
|
12
|
+
*/
|
|
13
|
+
export declare enum MessageType {
|
|
14
|
+
/**
|
|
15
|
+
* 初始化watcher用
|
|
16
|
+
*/
|
|
17
|
+
INIT = "init",
|
|
18
|
+
/**
|
|
19
|
+
* 收到远端控制本地摄像头的消息
|
|
20
|
+
*/
|
|
21
|
+
VIDEO_FORCE_CHANGE = "video-force-change",
|
|
22
|
+
/**
|
|
23
|
+
* 收到远端控制本地麦克风的消息
|
|
24
|
+
*/
|
|
25
|
+
AUDIO_FORCE_CHANGE = "audio-force-change"
|
|
26
|
+
}
|
|
27
|
+
export declare function getStreamFromBrtcStreamMap(remoteStream: SingleRemoteStream): import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default | undefined;
|
|
28
|
+
export declare function attachBRTCEvent(boomCore: BoomCore, bmStreamVm: BMStreamModelVM, userVM: BMUserVM): void;
|
|
29
|
+
declare type Observes = {
|
|
30
|
+
[K in BCEvent]: BehaviorSubject<any>;
|
|
31
|
+
};
|
|
32
|
+
export declare function addBrtcNetEvent(bcClient: BoomCore): void;
|
|
33
|
+
export declare function attachEvents(boomCore: BoomCore, userVM: BMUserVM, bmStreamVm: BMStreamModelVM, chatVM: BMChatVM, bmRoom: BMRoom): Observes;
|
|
34
|
+
export declare function checkStreamIsNormal(streamModel: BMStreamModel | undefined): void;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name: EventHandler
|
|
3
|
+
* @author: yangliye
|
|
4
|
+
* @date: 2023-04-04 10:14
|
|
5
|
+
* @description:EventHandler
|
|
6
|
+
* @update: 2023-04-04 10:14
|
|
7
|
+
*/
|
|
8
|
+
import BMUserVM from "../BMUser/BMUserVM";
|
|
9
|
+
import BMRoom from "../BMRoom/BMRoom";
|
|
10
|
+
import BMStreamModelVM from "../BMStream/BMStreamModelVM";
|
|
11
|
+
import BCClient from "@hysc/core";
|
|
12
|
+
import BMChatVM from "../BMChat/BMChatVM";
|
|
13
|
+
import BoomCore from "@hysc/core";
|
|
14
|
+
import BCUser from "@hysc/core/esm/BoomAdapter/User/User";
|
|
15
|
+
import BMUser from "../BMUser/BMUser";
|
|
16
|
+
export declare function handleParticipantJoin(data: any, userVM: BMUserVM, bmStreamVm: BMStreamModelVM, boomCore: BoomCore, chatVM: BMChatVM, observes: any): Promise<void>;
|
|
17
|
+
export declare function handleParticipantLeft(data: any, userVM: BMUserVM, bmRoom: BMRoom, observes: any, bmStreamVm: BMStreamModelVM, boomCore: BCClient, chatVM: BMChatVM): void;
|
|
18
|
+
export declare function updateBMUser(allUsers: Map<string, BCUser>, bmUser: BMUser, userVm: BMUserVM): void;
|
|
19
|
+
export declare const handleUserRejoined: any;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name: handleRoomEvent
|
|
3
|
+
* @author: yangliye
|
|
4
|
+
* @date: 2023-04-25 15:16
|
|
5
|
+
* @description:handleRoomEvent
|
|
6
|
+
* @update: 2023-04-25 15:16
|
|
7
|
+
*/
|
|
8
|
+
import BMRoom from "../BMRoom/BMRoom";
|
|
9
|
+
import BMUserVM from "../BMUser/BMUserVM";
|
|
10
|
+
import BMStreamModelVM from "../BMStream/BMStreamModelVM";
|
|
11
|
+
export declare function handleInitRoomInfo(data: any, bmRoom: BMRoom): Promise<void>;
|
|
12
|
+
export declare function handleRoomSync(data: any, bmRoom: BMRoom, userVm: BMUserVM, bmStreamVm: BMStreamModelVM): Promise<void>;
|