@hysc/meeting 5.0.117 → 5.0.120
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 +428 -0
- package/{umd → esm/boom-meeting/src}/BMChat/BMChatVM.d.ts +3 -1
- package/{umd → esm/boom-meeting/src}/BMRoom/BMRoomVM.d.ts +42 -9
- package/{umd → esm/boom-meeting/src}/BMStream/BMStreamModel.d.ts +64 -21
- package/{umd → esm/boom-meeting/src}/BMStream/BMStreamModelVM.d.ts +78 -53
- package/{umd → esm/boom-meeting/src}/BMUser/BMUser.d.ts +8 -5
- package/{umd → esm/boom-meeting/src}/BMUser/BMUserVM.d.ts +58 -12
- package/esm/boom-meeting/src/audioPlay/AudioPlay.d.ts +31 -0
- package/{umd/src/BMRoom → esm/boom-meeting/src/handleEvent}/attachEvents.d.ts +23 -9
- package/esm/boom-meeting/src/handleEvent/brtcNetEvent.d.ts +9 -0
- package/esm/boom-meeting/src/handleEvent/customMessageEvent.d.ts +2 -0
- package/esm/boom-meeting/src/handleEvent/handleParticipantEvent.d.ts +24 -0
- package/esm/boom-meeting/src/handleEvent/handleRoomEvent.d.ts +20 -0
- package/esm/boom-meeting/src/handleEvent/messageEvent.d.ts +5 -0
- package/esm/boom-meeting/src/handleEvent/pullUser.d.ts +7 -0
- package/esm/boom-meeting/src/handleEvent/roomErrEvent.d.ts +9 -0
- package/esm/boom-meeting/src/handleEvent/streamEvent.d.ts +22 -0
- package/{umd → esm/boom-meeting/src}/type/customStats.d.ts +6 -0
- package/{umd → esm/boom-meeting/src}/type/stream.d.ts +0 -2
- package/esm/index.js +8 -40401
- package/esm/src/BMChat/BMChatVM.d.ts +3 -3
- package/esm/src/BMChat/BMMessageInfo.d.ts +31 -31
- package/esm/src/BMRoom/BMLiveVM.d.ts +35 -35
- package/esm/src/BMRoom/BMRoom.d.ts +705 -705
- package/esm/src/BMRoom/BMRoomInfo.d.ts +215 -215
- package/esm/src/BMStream/BMSpeaker.d.ts +26 -26
- package/esm/src/BMStream/BMStreamModel.d.ts +4 -5
- package/esm/src/BMStream/BMStreamModelVM.d.ts +4 -4
- package/esm/src/BMStream/getHTMLMediaStreamOptions.d.ts +35 -35
- package/esm/src/BMStream/sortStream.d.ts +30 -30
- package/esm/src/BMUser/BMUser.d.ts +1 -1
- package/esm/src/BMUser/BMUserVM.d.ts +4 -4
- package/esm/src/SingletonQueue/SingletonQueue.d.ts +26 -26
- package/esm/src/bjy-common/function/execute.d.ts +9 -9
- package/esm/src/bjy-common/function/isNative.d.ts +1 -1
- package/esm/src/bjy-common/function/nextTick.d.ts +2 -2
- package/esm/src/bjy-common/function/toString.d.ts +1 -1
- package/esm/src/bjy-common/util/constant.d.ts +50 -50
- package/esm/src/bjy-common/util/is.d.ts +49 -49
- package/esm/src/bjy-common/util/string.d.ts +102 -102
- package/esm/src/constants.d.ts +129 -129
- 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 +3 -2
- package/esm/src/handleEvent/handleParticipantEvent.d.ts +2 -2
- package/esm/src/index.d.ts +2 -4
- package/esm/src/logger/logger.d.ts +86 -86
- package/esm/src/type/stream.d.ts +4 -1
- package/esm/src/util/Pqueue.d.ts +62 -62
- package/esm/src/util/Thread.d.ts +12 -12
- package/esm/src/util/constant.d.ts +67 -67
- package/esm/src/util/emitter.d.ts +43 -43
- package/esm/src/util/sortUtils.d.ts +10 -10
- package/esm/src/util/util.d.ts +78 -78
- package/esm/utils/BoomError.d.ts +19 -0
- package/esm/utils/ErrorTypes.d.ts +139 -0
- package/esm/utils/index.d.ts +9 -0
- package/package.json +7 -8
- package/umd/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +2 -1
- package/umd/boom-meeting/src/audioPlay/AudioPlay.d.ts +1 -1
- package/umd/index.js +2 -2
- package/umd/src/BMChat/BMChatVM.d.ts +4 -3
- package/umd/src/BMRoom/BMRoom.d.ts +9 -0
- package/umd/src/BMRoom/BMRoomInfo.d.ts +9 -7
- package/umd/src/BMRoom/BMRoomVM.d.ts +16 -1
- package/umd/src/BMStream/BMSpeaker.d.ts +2 -20
- package/umd/src/BMStream/BMStreamModel.d.ts +61 -15
- package/umd/src/BMStream/BMStreamModelVM.d.ts +63 -56
- package/umd/src/BMUser/BMUser.d.ts +3 -3
- package/umd/src/BMUser/BMUserVM.d.ts +54 -17
- package/umd/src/audioPlay/AudioPlay.d.ts +31 -0
- package/umd/src/constants.d.ts +35 -18
- package/umd/src/handleEvent/attachEvents.d.ts +47 -0
- package/umd/src/handleEvent/brtcNetEvent.d.ts +9 -0
- package/umd/src/handleEvent/customMessageEvent.d.ts +2 -0
- package/umd/src/handleEvent/handleParticipantEvent.d.ts +24 -0
- package/umd/src/handleEvent/handleRoomEvent.d.ts +20 -0
- package/umd/src/handleEvent/messageEvent.d.ts +5 -0
- package/umd/src/handleEvent/pullUser.d.ts +7 -0
- package/umd/src/handleEvent/roomErrEvent.d.ts +9 -0
- package/umd/src/handleEvent/streamEvent.d.ts +22 -0
- package/umd/src/type/customStats.d.ts +5 -0
- package/umd/src/type/stream.d.ts +1 -6
- package/umd/src/util/Pqueue.d.ts +1 -0
- package/umd/src/util/Stutter.d.ts +1 -1
- package/umd/src/util/devices.d.ts +1 -1
- package/umd/src/util/emitter.d.ts +28 -4
- package/umd/src/util/request.d.ts +1 -1
- package/umd/src/util/util.d.ts +2 -1
- package/esm/index.js.map +0 -7
- package/umd/BMChat/BMMessageInfo.d.ts +0 -31
- package/umd/BMRoom/BMLiveVM.d.ts +0 -35
- package/umd/BMRoom/BMRoom.d.ts +0 -638
- package/umd/BMRoom/BMRoomInfo.d.ts +0 -189
- package/umd/BMRoom/attachEvents.d.ts +0 -27
- package/umd/BMStream/BMSpeaker.d.ts +0 -44
- package/umd/BMStream/getHTMLMediaStreamOptions.d.ts +0 -35
- package/umd/bjy-common/function/execute.d.ts +0 -9
- package/umd/bjy-common/function/isNative.d.ts +0 -1
- package/umd/bjy-common/function/nextTick.d.ts +0 -2
- package/umd/bjy-common/function/toString.d.ts +0 -1
- package/umd/bjy-common/util/constant.d.ts +0 -50
- package/umd/bjy-common/util/is.d.ts +0 -49
- package/umd/bjy-common/util/string.d.ts +0 -102
- package/umd/boom-meeting/src/BMChat/BMMessageInfo.d.ts +0 -31
- package/umd/boom-meeting/src/BMRoom/BMLiveVM.d.ts +0 -35
- package/umd/boom-meeting/src/BMRoom/BMRoom.d.ts +0 -699
- package/umd/boom-meeting/src/BMRoom/BMRoomInfo.d.ts +0 -215
- package/umd/boom-meeting/src/BMRoom/attachEvents.d.ts +0 -34
- package/umd/boom-meeting/src/BMStream/BMSpeaker.d.ts +0 -26
- package/umd/boom-meeting/src/BMStream/getHTMLMediaStreamOptions.d.ts +0 -35
- package/umd/boom-meeting/src/EventHandler.d.ts +0 -20
- package/umd/boom-meeting/src/bjy-common/function/execute.d.ts +0 -9
- package/umd/boom-meeting/src/bjy-common/function/isNative.d.ts +0 -1
- package/umd/boom-meeting/src/bjy-common/function/nextTick.d.ts +0 -2
- package/umd/boom-meeting/src/bjy-common/function/toString.d.ts +0 -1
- package/umd/boom-meeting/src/bjy-common/util/constant.d.ts +0 -50
- package/umd/boom-meeting/src/bjy-common/util/is.d.ts +0 -49
- package/umd/boom-meeting/src/bjy-common/util/string.d.ts +0 -102
- package/umd/boom-meeting/src/constants.d.ts +0 -129
- package/umd/boom-meeting/src/error/RTCError.d.ts +0 -20
- package/umd/boom-meeting/src/error/errorType.d.ts +0 -96
- package/umd/boom-meeting/src/logger/logger.d.ts +0 -86
- package/umd/boom-meeting/src/util/Pqueue.d.ts +0 -62
- package/umd/boom-meeting/src/util/constant.d.ts +0 -67
- package/umd/boom-meeting/src/util/emitter.d.ts +0 -43
- package/umd/boom-meeting/src/util/sortUtils.d.ts +0 -10
- package/umd/boom-meeting/src/util/util.d.ts +0 -78
- package/umd/constants.d.ts +0 -107
- package/umd/error/RTCError.d.ts +0 -20
- package/umd/error/errorType.d.ts +0 -96
- package/umd/index.d.ts +0 -2
- package/umd/index.js.map +0 -1
- package/umd/logger/logger.d.ts +0 -86
- package/umd/src/EventHandler.d.ts +0 -20
- package/umd/util/Pqueue.d.ts +0 -61
- package/umd/util/constant.d.ts +0 -67
- package/umd/util/emitter.d.ts +0 -18
- package/umd/util/sortUtils.d.ts +0 -10
- package/umd/util/util.d.ts +0 -76
- /package/{umd → esm/boom-meeting/src}/BMRoom/RoomEvent.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/function/debounce.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/function/getErrorMessage.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/function/isDef.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/function/isUndef.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/function/throttling.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/function/toNumber.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/type/api.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/type/options.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/type/type.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/CustomEvent.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/Emitter.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/NextTask.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/Sleep.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/Timer.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/array.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/browser.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/holder.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/keypath.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/logger.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/network.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/object.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/bjy-common/util/os.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/error/errorMap.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/type/index.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/type/user.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/PackLoss.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/Privileges.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/ReportCollector.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/Stutter.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/base64.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/checkPermissions.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/checkSystemRequirements.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/devices.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/formatUserId.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/is.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/peerToPeerProbe.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/request.d.ts +0 -0
- /package/{umd → esm/boom-meeting/src}/util/roomUtils.d.ts +0 -0
- /package/umd/{boom-meeting/src → src}/BMStream/sortStream.d.ts +0 -0
- /package/umd/{boom-meeting/src → src}/SingletonQueue/SingletonQueue.d.ts +0 -0
- /package/umd/{boom-meeting/src → src}/util/Thread.d.ts +0 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { SingleStream, SubscribeOptions } from
|
|
2
|
-
import BMUser from
|
|
3
|
-
import { BehaviorSubject, Subject } from
|
|
1
|
+
import { SingleStream, SubscribeOptions } from "../type";
|
|
2
|
+
import BMUser from "../BMUser/BMUser";
|
|
3
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
|
4
|
+
import { Player } from "@hysc/core/esm";
|
|
5
|
+
import BMStreamModelVM from "./BMStreamModelVM";
|
|
6
|
+
import { BloudStreamState } from "../handleEvent/attachEvents";
|
|
7
|
+
import type { StreamCustomInfo } from '@hysc/bloud';
|
|
4
8
|
/**
|
|
5
9
|
* @name: BMStreamModel
|
|
6
10
|
* @author: yangliye
|
|
@@ -16,9 +20,23 @@ export interface ConnectErrorMessage {
|
|
|
16
20
|
stream: BMStreamModel;
|
|
17
21
|
isLocal: boolean;
|
|
18
22
|
}
|
|
23
|
+
export interface NoPlayerContainer {
|
|
24
|
+
type: 'share' | 'normal';
|
|
25
|
+
container: 'small' | 'big';
|
|
26
|
+
id: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 播放器状态
|
|
30
|
+
*/
|
|
31
|
+
declare enum PlayerState {
|
|
32
|
+
NO_CONTAINER = 0,
|
|
33
|
+
NO_PLAYING = 1,
|
|
34
|
+
PLAYING = 2
|
|
35
|
+
}
|
|
19
36
|
export default class BMStreamModel {
|
|
20
37
|
private user;
|
|
21
38
|
private _stream;
|
|
39
|
+
bloudStream: BloudStreamState | undefined;
|
|
22
40
|
/**
|
|
23
41
|
* 流类型
|
|
24
42
|
*/
|
|
@@ -47,6 +65,11 @@ export default class BMStreamModel {
|
|
|
47
65
|
isInBigObserve: Subject<boolean>;
|
|
48
66
|
_hasPulled: boolean;
|
|
49
67
|
playerId: string;
|
|
68
|
+
/**
|
|
69
|
+
* 手动拉流配置, 默认是false, 如果是走手动拉流,设置成true,说明拉他的流
|
|
70
|
+
* shouldPull 是否应该拉
|
|
71
|
+
*/
|
|
72
|
+
shouldPull: boolean;
|
|
50
73
|
get hasPulled(): boolean;
|
|
51
74
|
set hasPulled(value: boolean);
|
|
52
75
|
/**
|
|
@@ -60,8 +83,8 @@ export default class BMStreamModel {
|
|
|
60
83
|
*/
|
|
61
84
|
pulledStreamGoal: StreamType;
|
|
62
85
|
bigPlayerId: string;
|
|
63
|
-
|
|
64
|
-
|
|
86
|
+
player: Player | undefined | null;
|
|
87
|
+
isPlayingBig: boolean;
|
|
65
88
|
/**
|
|
66
89
|
* 是否静音了扬声器,brtc不会处理业务上静音的逻辑,所以需要自己处理
|
|
67
90
|
* 如果静音了,就把所有的流都重新静音播放一遍
|
|
@@ -84,8 +107,9 @@ export default class BMStreamModel {
|
|
|
84
107
|
handleSpeakerChange(): void;
|
|
85
108
|
/**
|
|
86
109
|
* 排序数字
|
|
110
|
+
* 窗口的排序使用二进制运算进行了优化,为了提高运行速度牺牲了一部分代码可读性
|
|
87
111
|
*/
|
|
88
|
-
|
|
112
|
+
sortNum: number;
|
|
89
113
|
get isToupingma(): boolean;
|
|
90
114
|
get isMixer(): boolean;
|
|
91
115
|
get isSignal(): boolean;
|
|
@@ -126,14 +150,24 @@ export default class BMStreamModel {
|
|
|
126
150
|
* 更新当前streamModel中的流
|
|
127
151
|
* @param stream
|
|
128
152
|
* @param needReProcess
|
|
153
|
+
* @param bmStreamVm
|
|
129
154
|
*/
|
|
130
|
-
updateStream(stream: SingleStream | undefined, needReProcess
|
|
155
|
+
updateStream(stream: SingleStream | undefined, needReProcess: boolean | undefined, bmStreamVm: BMStreamModelVM): void;
|
|
156
|
+
/**
|
|
157
|
+
* 更新bloud的stream,设置流状态
|
|
158
|
+
* @param streamState
|
|
159
|
+
* @param bmStreamVM
|
|
160
|
+
* @param forceSearch
|
|
161
|
+
*/
|
|
162
|
+
updateBloudStream(streamState: BloudStreamState | undefined, bmStreamVM: BMStreamModelVM, forceSearch?: boolean): void;
|
|
163
|
+
updateBloudCustomInfo(customInfo: StreamCustomInfo): void;
|
|
131
164
|
private onPlayerStateChange;
|
|
132
165
|
handleStreamConnectError: () => void;
|
|
133
166
|
/**
|
|
134
167
|
* 获取当前的streamId
|
|
135
168
|
*/
|
|
136
169
|
get streamId(): string;
|
|
170
|
+
get bStreamId(): string;
|
|
137
171
|
/**
|
|
138
172
|
* 获取当前窗口绑定的用户id
|
|
139
173
|
*/
|
|
@@ -149,7 +183,8 @@ export default class BMStreamModel {
|
|
|
149
183
|
/**
|
|
150
184
|
* 是否是屏幕共享的流
|
|
151
185
|
*/
|
|
152
|
-
get isShare(): boolean
|
|
186
|
+
get isShare(): boolean;
|
|
187
|
+
get isWeb(): boolean;
|
|
153
188
|
/**
|
|
154
189
|
* 当前音频是否开启
|
|
155
190
|
*/
|
|
@@ -158,6 +193,8 @@ export default class BMStreamModel {
|
|
|
158
193
|
* 当前视频是否开启
|
|
159
194
|
*/
|
|
160
195
|
get videoEnable(): boolean;
|
|
196
|
+
private get brtcPlayerId();
|
|
197
|
+
private get selfPlayerId();
|
|
161
198
|
/**
|
|
162
199
|
* 获取当前流绑定的用户昵称
|
|
163
200
|
*/
|
|
@@ -186,22 +223,19 @@ export default class BMStreamModel {
|
|
|
186
223
|
emitBindElement: any;
|
|
187
224
|
emitBindBigElement: any;
|
|
188
225
|
/**
|
|
189
|
-
*
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* 判断当前是不是正在小窗口播放
|
|
226
|
+
* 当前是不是正在播放
|
|
227
|
+
* @param containerId sdk绑定播放器容器id
|
|
228
|
+
* @param playerContainerId 播放器创建的容器id
|
|
194
229
|
*/
|
|
195
|
-
|
|
230
|
+
currentIsPlaying: (containerId: string) => PlayerState;
|
|
196
231
|
/**
|
|
197
232
|
* 播放当前流
|
|
198
233
|
*/
|
|
199
|
-
play:
|
|
234
|
+
play: () => Promise<void>;
|
|
200
235
|
/**
|
|
201
236
|
* 在大窗口播放该流的时候调用这个方法
|
|
202
|
-
* @param mute 是否静音 默认true
|
|
203
237
|
*/
|
|
204
|
-
playInBig:
|
|
238
|
+
playInBig: () => Promise<void>;
|
|
205
239
|
private initBigPlayer;
|
|
206
240
|
/**
|
|
207
241
|
* 停止播放当前流
|
|
@@ -226,7 +260,7 @@ export default class BMStreamModel {
|
|
|
226
260
|
*
|
|
227
261
|
* @returns
|
|
228
262
|
*/
|
|
229
|
-
resume():
|
|
263
|
+
resume(): void;
|
|
230
264
|
/**
|
|
231
265
|
* 是否有音频流
|
|
232
266
|
*/
|
|
@@ -240,13 +274,16 @@ export default class BMStreamModel {
|
|
|
240
274
|
* @param user
|
|
241
275
|
*/
|
|
242
276
|
updateUser(user: BMUser): void;
|
|
243
|
-
updateSortNum(): void;
|
|
277
|
+
updateSortNum(force?: boolean): void;
|
|
278
|
+
setSortNum(sortNum: number, force: boolean): void;
|
|
279
|
+
getSortNum(): number;
|
|
244
280
|
/**
|
|
245
281
|
* 启动音频音量检测
|
|
246
282
|
*/
|
|
247
|
-
collectAudioLevel()
|
|
283
|
+
collectAudioLevel: () => void;
|
|
248
284
|
private handleAudioLevel;
|
|
249
|
-
|
|
285
|
+
checkSmallVideo(): void;
|
|
286
|
+
checkBigVideo: any;
|
|
250
287
|
/**
|
|
251
288
|
* 播放黑窗处理,主要是做一个容错处理,又可能这股流拉下来或者存在订阅就出现问题的情况
|
|
252
289
|
* 播放时黑窗的,这个时候需要,检测,然后重新拉流
|
|
@@ -258,5 +295,11 @@ export default class BMStreamModel {
|
|
|
258
295
|
*/
|
|
259
296
|
subscribeStream(): void;
|
|
260
297
|
unSubscribeStream(): void;
|
|
298
|
+
checkStreamIsPlaying: any;
|
|
299
|
+
/**
|
|
300
|
+
* 取消流的播放
|
|
301
|
+
* @param type big: 大窗口 small: 小窗口 all: 全部
|
|
302
|
+
*/
|
|
303
|
+
unAttach(type: 'big' | 'small' | 'all'): void;
|
|
261
304
|
}
|
|
262
305
|
export {};
|
|
@@ -14,56 +14,52 @@
|
|
|
14
14
|
* 共享屏幕用户做了特殊处理,因为web端共享屏幕和移动端共享屏幕处理逻辑不一样
|
|
15
15
|
*/
|
|
16
16
|
/// <reference types="node" />
|
|
17
|
-
import BMStreamModel from
|
|
18
|
-
import BMUser from
|
|
19
|
-
import { SingleLocalStream, SingleRemoteStream, SingleStream } from
|
|
20
|
-
import BMRoom from
|
|
21
|
-
import { BehaviorSubject, Subject } from
|
|
22
|
-
import {
|
|
23
|
-
import
|
|
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 { BoomError } from "@hysc/utils";
|
|
23
|
+
import { Device } from "@hysc/core/esm/BoomAdapter/type/value";
|
|
24
|
+
import BMSpeaker from "./BMSpeaker";
|
|
24
25
|
import { ShareMediaOptions } from "@hysc/core/esm/BoomCore/BCClient/BCClient";
|
|
25
|
-
import { getHTMLMediaStreamOptions,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* stream-removed 的时候删除
|
|
31
|
-
* mute/unmute-video/audio 的时候更新流
|
|
32
|
-
* 当用户进来的时候,去查看这个流对象,如果流存在,就给这个人添加流
|
|
33
|
-
*
|
|
34
|
-
*/
|
|
35
|
-
export declare const BRTCStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
|
|
36
|
-
export declare const BRTCShareStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
|
|
26
|
+
import { getHTMLMediaStreamOptions, getMediaStreamInfo, Result } from "./getHTMLMediaStreamOptions";
|
|
27
|
+
import { BloudStream } from "@hysc/core";
|
|
28
|
+
import type { StreamCustomInfo } from '@hysc/bloud';
|
|
29
|
+
import { BloudStreamEventState } from "../handleEvent/attachEvents";
|
|
30
|
+
export declare function transShareScreen2User(userId: string): string;
|
|
37
31
|
export default class BMStreamModelVM {
|
|
38
32
|
streamModels: Map<string, BMStreamModel>;
|
|
39
|
-
sendStreamModels: BMStreamModel[];
|
|
40
33
|
/**
|
|
41
34
|
* 因为投屏码用户进来以后,他是不在小窗口展示的,所以要把投屏的用户过滤掉给业务的展示
|
|
42
35
|
*/
|
|
43
36
|
streamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
|
|
44
37
|
shareStreamModels: Map<string, BMStreamModel>;
|
|
45
38
|
shareStreamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
|
|
39
|
+
localStreamErrorWatcher: Subject<string>;
|
|
46
40
|
localModel: BMStreamModel | null;
|
|
47
|
-
|
|
48
|
-
bloudStream:
|
|
49
|
-
audioStream: SingleLocalStream | undefined;
|
|
41
|
+
room: BMRoom | null;
|
|
42
|
+
bloudStream: BloudStream | null;
|
|
50
43
|
brtcStream: SingleLocalStream | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
|
|
46
|
+
*/
|
|
47
|
+
videoStream: SingleLocalStream | null;
|
|
48
|
+
audioStream: SingleLocalStream | null;
|
|
49
|
+
audioStats: boolean;
|
|
50
|
+
videoStats: boolean;
|
|
51
51
|
/**
|
|
52
52
|
* 本地是否在屏幕共享
|
|
53
53
|
*/
|
|
54
54
|
localIsShare: boolean;
|
|
55
|
+
isShareWatcher: Subject<boolean>;
|
|
55
56
|
_speaker_enable: boolean;
|
|
56
57
|
speakerEnableWatcher: BehaviorSubject<boolean>;
|
|
57
58
|
/**
|
|
58
59
|
* 混流
|
|
59
60
|
*/
|
|
60
61
|
mixStreamModelWatcher: BehaviorSubject<BMStreamModel | null>;
|
|
61
|
-
isShareWatcher: Subject<boolean>;
|
|
62
62
|
canvasTimer: NodeJS.Timeout | null;
|
|
63
|
-
/**
|
|
64
|
-
* 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
|
|
65
|
-
*/
|
|
66
|
-
videoStream: SingleLocalStream | null;
|
|
67
63
|
private _recorder;
|
|
68
64
|
private _isRecording;
|
|
69
65
|
private _slicingRecord;
|
|
@@ -72,6 +68,25 @@ export default class BMStreamModelVM {
|
|
|
72
68
|
private _speakerDetector;
|
|
73
69
|
private _speakers;
|
|
74
70
|
speakerWatcher: BehaviorSubject<BMUser | null>;
|
|
71
|
+
/**
|
|
72
|
+
* 窗口没有播放容器的错误处理
|
|
73
|
+
*/
|
|
74
|
+
noContainerWatcher: Subject<BMStreamModel>;
|
|
75
|
+
/**
|
|
76
|
+
* 窗口没有大窗口播放容器的错误处理
|
|
77
|
+
*/
|
|
78
|
+
noBigContainerWatcher: Subject<BMStreamModel>;
|
|
79
|
+
localStreamConnectErrorWatcher: Subject<BoomError>;
|
|
80
|
+
/**
|
|
81
|
+
* 共享屏幕相关错误
|
|
82
|
+
* 包括,共享客户端错误
|
|
83
|
+
* 共享屏幕流错误
|
|
84
|
+
*/
|
|
85
|
+
localShareError: Subject<BoomError>;
|
|
86
|
+
/**
|
|
87
|
+
* 共享屏幕流是单独处理的逻辑,不是先创建streamModel然后在去查流,而是先去查流,在创建streamModel
|
|
88
|
+
*/
|
|
89
|
+
shareBloudStateMap: Map<string, BloudStreamEventState>;
|
|
75
90
|
constructor();
|
|
76
91
|
private static filterStreamModels;
|
|
77
92
|
initWithRoom(room: BMRoom): this;
|
|
@@ -94,6 +109,7 @@ export default class BMStreamModelVM {
|
|
|
94
109
|
addStreamModel(streamModel: BMStreamModel): void;
|
|
95
110
|
addShareStreamModel(streamModel: BMStreamModel): void;
|
|
96
111
|
removeStreamModel(streamModel: BMStreamModel): void;
|
|
112
|
+
removeShareStreamModelByUId(uid: string): void;
|
|
97
113
|
removeShareStreamModel(streamModel: BMStreamModel): void;
|
|
98
114
|
/**`
|
|
99
115
|
* 通过用户id删除streamModel
|
|
@@ -108,7 +124,7 @@ export default class BMStreamModelVM {
|
|
|
108
124
|
* @returns
|
|
109
125
|
*/
|
|
110
126
|
remoteStreamUnpublished(stream: SingleRemoteStream): BMStreamModel | undefined;
|
|
111
|
-
sortStreamModels():
|
|
127
|
+
sortStreamModels(): BMStreamModel[];
|
|
112
128
|
updateStreamModel(streamModel: BMStreamModel, stream: SingleStream): void;
|
|
113
129
|
updateShareStreamModel(streamModel: BMStreamModel, stream: SingleStream): void;
|
|
114
130
|
/**
|
|
@@ -116,7 +132,11 @@ export default class BMStreamModelVM {
|
|
|
116
132
|
* @param status true:开,false:关
|
|
117
133
|
* @param videoTrack 开启美颜之后,需要传递这个参数,携带美颜之后的videoTrack
|
|
118
134
|
*/
|
|
119
|
-
setLocalVideoEnable(status: boolean, videoTrack?: MediaStreamTrack): Promise<
|
|
135
|
+
setLocalVideoEnable(status: boolean, videoTrack?: MediaStreamTrack): Promise<undefined>;
|
|
136
|
+
/**
|
|
137
|
+
* brtc流更新状态失败,这个时候重新推流
|
|
138
|
+
*/
|
|
139
|
+
handleStreamUpdateFailed(): Promise<void>;
|
|
120
140
|
/**
|
|
121
141
|
* 开关本地麦克风
|
|
122
142
|
* @param status true:开,false:关
|
|
@@ -128,33 +148,41 @@ export default class BMStreamModelVM {
|
|
|
128
148
|
* @param audio
|
|
129
149
|
* @param video
|
|
130
150
|
*/
|
|
131
|
-
joinWithAudioAndAudio(audio: boolean, video: boolean): Promise<
|
|
151
|
+
joinWithAudioAndAudio(audio: boolean, video: boolean): Promise<void>;
|
|
132
152
|
/**
|
|
133
153
|
* 切换扬声器
|
|
134
154
|
* @param device
|
|
155
|
+
* @param force
|
|
135
156
|
*/
|
|
136
|
-
changeSpeaker(device: Device): Promise<void>;
|
|
157
|
+
changeSpeaker(device: Device, force?: boolean): Promise<void>;
|
|
137
158
|
/**
|
|
138
159
|
* 设置单个流的扬声器
|
|
139
160
|
* @param streamModel
|
|
140
161
|
*/
|
|
141
162
|
changeSingleStreamSpeaker(streamModel: BMStreamModel): Promise<void>;
|
|
142
|
-
changeAudioInput(device: Device): Promise<
|
|
143
|
-
changeVideoInput(device: Device): Promise<
|
|
163
|
+
changeAudioInput(device: Device): Promise<boolean | undefined>;
|
|
164
|
+
changeVideoInput(device: Device): Promise<boolean | undefined>;
|
|
144
165
|
/**
|
|
145
166
|
* 是否静音扬声器
|
|
146
167
|
* @param enable
|
|
147
168
|
*/
|
|
148
169
|
muteSpeaker(enable: boolean): Promise<undefined>;
|
|
170
|
+
/**
|
|
171
|
+
* 创建本地音频流
|
|
172
|
+
*/
|
|
173
|
+
createLocalAudioStream(): Promise<void>;
|
|
149
174
|
/**
|
|
150
175
|
* 创建流并且发布
|
|
151
176
|
* @param audio 是否发布音频流
|
|
152
177
|
* @param video 是否发布视频流
|
|
153
178
|
* @param localModel 本地的streamModel
|
|
179
|
+
* @param videoTrack
|
|
154
180
|
* @private
|
|
155
181
|
*/
|
|
156
182
|
private createStreamAndPublish;
|
|
157
|
-
|
|
183
|
+
publishBloudStream(audio: boolean, video: boolean): Promise<void>;
|
|
184
|
+
muteHandler(type: 'video' | 'audio'): void;
|
|
185
|
+
unpublishStream(): Promise<void>;
|
|
158
186
|
/**
|
|
159
187
|
* 更改音视频状态或者取消发布
|
|
160
188
|
* @param type 更改类型
|
|
@@ -163,23 +191,10 @@ export default class BMStreamModelVM {
|
|
|
163
191
|
* @private
|
|
164
192
|
*/
|
|
165
193
|
private muteOrUnpublishStream;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
* @param customShare
|
|
171
|
-
* @param opts.audio 是否开启音频
|
|
172
|
-
* @param opts.source_name Electron 下窗口名称
|
|
173
|
-
* @param opts.width 共享屏幕宽度
|
|
174
|
-
* @param opts.height 共享屏幕高度
|
|
175
|
-
* @param opts.contentHint 视频的contentHint 可选值: '' | 'motion' | 'detail' | 'text'
|
|
176
|
-
*/
|
|
177
|
-
toggleShareScreen(enable: boolean, opts: any, customShare?: Result): Promise<unknown>;
|
|
178
|
-
setShareScreenContentHint(contentHint: '' | 'motion' | 'detail' | 'text'): Promise<void>;
|
|
179
|
-
/**
|
|
180
|
-
* 排序变化之后的处理逻辑
|
|
181
|
-
*/
|
|
182
|
-
updateSort: any;
|
|
194
|
+
toggleShareScreen(enable: boolean, opts: any, customShare?: Result): Promise<boolean>;
|
|
195
|
+
setShareScreenContentHint(contentHint: '' | 'motion' | 'detail' | 'text'): void;
|
|
196
|
+
updateModelSort: any;
|
|
197
|
+
handleNoContainer: (info: NoPlayerContainer) => void;
|
|
183
198
|
/**
|
|
184
199
|
* 创建canvas,目的是为了捕获空track流,给brtc使用
|
|
185
200
|
*/
|
|
@@ -204,7 +219,7 @@ export default class BMStreamModelVM {
|
|
|
204
219
|
* 添加流对象到录制器,用于音频轨道录制
|
|
205
220
|
* @param stream
|
|
206
221
|
*/
|
|
207
|
-
addToRecorder(stream:
|
|
222
|
+
addToRecorder(stream: SingleStream): void;
|
|
208
223
|
/**
|
|
209
224
|
* 从录制器中删除流对象
|
|
210
225
|
* @param stream
|
|
@@ -225,11 +240,21 @@ export default class BMStreamModelVM {
|
|
|
225
240
|
startSpeakerDetector(): void;
|
|
226
241
|
addToDetector(speaker: BMSpeaker): void;
|
|
227
242
|
removeFromDetector(speakerId: string): void;
|
|
243
|
+
clearDetector(): void;
|
|
228
244
|
shareCustomMedia(enable: boolean, shareOptions: ShareMediaOptions): Promise<undefined>;
|
|
229
245
|
/**
|
|
230
246
|
* 根据videoElement 获取内部流数据
|
|
231
247
|
*/
|
|
232
248
|
getHTMLMediaStream: typeof getHTMLMediaStreamOptions;
|
|
233
249
|
getMediaStream: typeof getMediaStreamInfo;
|
|
250
|
+
/**
|
|
251
|
+
* 更新流信息 会给服务端发送updateStream信令,会收到updateStream的广播
|
|
252
|
+
*/
|
|
253
|
+
updateBloudStreamCustomStats(uid: string, streamId: string, streamInfo: StreamCustomInfo): Promise<any> | undefined;
|
|
254
|
+
/**
|
|
255
|
+
* 布局发生变化之后去调用一下这个方法去检测所有流的播放状态
|
|
256
|
+
* @param {string} status tag 用于区分是什么状态下调用的
|
|
257
|
+
*/
|
|
258
|
+
checkStreamStats(status: string): void;
|
|
234
259
|
clearCache(): void;
|
|
235
260
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import BMStreamModel from '../BMStream/BMStreamModel';
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
3
|
import BCUser from '@hysc/core/esm/BoomAdapter/User/User';
|
|
4
|
-
import BMRoom from
|
|
5
|
-
declare type Operation = 'none' | 'getMaster' | 'getManager' | 'removeMaster' | 'getGuest' | 'removeGuest' | 'removeManager' | 'changeNickName' | 'speakerEnable' | 'changeShare' | 'updateUser' | 'raiseHandsVideo' | 'raiseHandsAudio' | 'audienceEnableSpeaking' | 'inBackground';
|
|
4
|
+
import BMRoom from '../BMRoom/BMRoom';
|
|
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,6 +70,7 @@ 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
|
* 是不是普通参会者
|
|
@@ -78,6 +80,7 @@ export default class BMUser {
|
|
|
78
80
|
* 如果改用户是移动端, 该值用于判断这个用户是否在后台
|
|
79
81
|
*/
|
|
80
82
|
inBackground: boolean;
|
|
83
|
+
raiseHandTime: number;
|
|
81
84
|
/**
|
|
82
85
|
* 是不是web端入会
|
|
83
86
|
*/
|
|
@@ -147,7 +150,7 @@ export default class BMUser {
|
|
|
147
150
|
/**
|
|
148
151
|
* 更新当前用户的排序
|
|
149
152
|
*/
|
|
150
|
-
updateSortNum(): void;
|
|
151
|
-
setSortNum(sortNum: number): void;
|
|
153
|
+
updateSortNum(force?: boolean, shouldDelay?: boolean): void;
|
|
154
|
+
setSortNum(sortNum: number, force: boolean, shouldDelay: boolean): void;
|
|
152
155
|
}
|
|
153
156
|
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
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
|
-
import { BehaviorSubject } from
|
|
5
|
+
import { BehaviorSubject } from "rxjs";
|
|
6
6
|
import { UpdateMasterType } from '../type';
|
|
7
|
+
import { UserSortType } from "../util/emitter";
|
|
7
8
|
/**
|
|
8
9
|
* 往业务端返回的时候,需要把这些用户过滤掉
|
|
9
10
|
*/
|
|
@@ -13,21 +14,30 @@ export interface ChangeIsGuest {
|
|
|
13
14
|
preIsGuest: boolean;
|
|
14
15
|
isGuest: boolean;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* bloud 一页用户拉取数量
|
|
19
|
+
*/
|
|
20
|
+
export declare const BLOUD_PAGE_SIZE = 500;
|
|
21
|
+
/**
|
|
22
|
+
* 嘉宾及以上身份用户
|
|
23
|
+
*/
|
|
24
|
+
export declare const PERMISSION_NOT_COMMON = "RWPSAVMO,RWPSAVM,RWPSAV";
|
|
16
25
|
export default class BMUserVM {
|
|
17
26
|
userList: Map<string, BMUser>;
|
|
18
27
|
audiencesList: Map<string, BMUser>;
|
|
19
28
|
signalList: Map<string, BMUser>;
|
|
20
29
|
commonUserList: Map<string, BMUser>;
|
|
21
30
|
boomCore: BoomCore;
|
|
22
|
-
room: BMRoom
|
|
31
|
+
room: BMRoom;
|
|
23
32
|
userListWatcher: BehaviorSubject<BMUser[]>;
|
|
24
33
|
audiencesListWatcher: BehaviorSubject<BMUser[]>;
|
|
25
34
|
commonUserListWatcher: BehaviorSubject<BMUser[]>;
|
|
26
35
|
signalListWatcher: BehaviorSubject<BMUser[]>;
|
|
27
36
|
masterUserWatcher: BehaviorSubject<BMUser | null>;
|
|
37
|
+
getForceUserWatcher: BehaviorSubject<boolean>;
|
|
28
38
|
localUser: BMUser;
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
commTimer: number;
|
|
40
|
+
constructor(boomCore: BoomCore, localUser: BMUser, room: BMRoom);
|
|
31
41
|
handleUserRoleChange(info: ChangeIsGuest): Promise<void>;
|
|
32
42
|
/**
|
|
33
43
|
* 添加用户, 并返回已添加的用户对象
|
|
@@ -38,7 +48,7 @@ export default class BMUserVM {
|
|
|
38
48
|
* 移除用户
|
|
39
49
|
* @param userId 用户id
|
|
40
50
|
*/
|
|
41
|
-
removeUser(userId: string):
|
|
51
|
+
removeUser(userId: string): boolean;
|
|
42
52
|
/**
|
|
43
53
|
* 获取用户视频开启状态
|
|
44
54
|
* @param userId 用户id
|
|
@@ -57,7 +67,7 @@ export default class BMUserVM {
|
|
|
57
67
|
/**
|
|
58
68
|
* 检测当前用户是否有主持人权限
|
|
59
69
|
*/
|
|
60
|
-
checkLocalHasMaster():
|
|
70
|
+
checkLocalHasMaster(): boolean;
|
|
61
71
|
/**
|
|
62
72
|
* 检测目标用户是否有主持人权限
|
|
63
73
|
*/
|
|
@@ -67,11 +77,13 @@ export default class BMUserVM {
|
|
|
67
77
|
* @param {string} userId
|
|
68
78
|
*/
|
|
69
79
|
getUser(userId: string): BMUser | undefined;
|
|
70
|
-
getAllUsers(pageIndex: number, allUsers: Map<string, BCUser
|
|
80
|
+
getAllUsers(pageIndex: number, allUsers: Map<string, BCUser>, permission?: string, useNew?: boolean): Promise<void>;
|
|
71
81
|
/**
|
|
72
82
|
* 刚加入房间时初始化人数
|
|
73
83
|
*/
|
|
74
84
|
initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
|
|
85
|
+
addBcUsersMap(users: Map<string, BCUser>, forceGetStream?: boolean): void;
|
|
86
|
+
addBCUser: (bcUser: BCUser, forceGetStream?: boolean) => BMUser | null;
|
|
75
87
|
/**
|
|
76
88
|
* 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
|
|
77
89
|
* @param userId
|
|
@@ -83,7 +95,7 @@ export default class BMUserVM {
|
|
|
83
95
|
* 联席主持人设置嘉宾的操作
|
|
84
96
|
* @param userId
|
|
85
97
|
*/
|
|
86
|
-
managerChangeToGuest(userId: string):
|
|
98
|
+
managerChangeToGuest(userId: string): BMUser | undefined;
|
|
87
99
|
/**
|
|
88
100
|
* 改变联席主持人,返回设置为联席主持人的bmuser对象
|
|
89
101
|
* @param userId
|
|
@@ -97,6 +109,7 @@ export default class BMUserVM {
|
|
|
97
109
|
*/
|
|
98
110
|
getLocalUser(): BMUser;
|
|
99
111
|
updateUser(bmUser: BMUser, bcUser: BCUser): void;
|
|
112
|
+
updateLocalUserPermission(permission: string): void;
|
|
100
113
|
/**
|
|
101
114
|
* bcUser变成BMUser
|
|
102
115
|
* @param bcUser
|
|
@@ -111,12 +124,24 @@ export default class BMUserVM {
|
|
|
111
124
|
/**
|
|
112
125
|
* 排序变化之后的处理逻辑
|
|
113
126
|
*/
|
|
114
|
-
|
|
127
|
+
updateAllSort: () => void;
|
|
128
|
+
updateSortByType: (userType: UserSortType) => void;
|
|
129
|
+
updateUserSort: any;
|
|
130
|
+
updateCommonUserSort: any;
|
|
131
|
+
updateDelayCommonUserSort: any;
|
|
132
|
+
updateAudienceUserSort: () => void;
|
|
133
|
+
updateSignalUserSort: () => void;
|
|
115
134
|
/**
|
|
116
135
|
* 初始化所有的用户
|
|
117
|
-
* @param total
|
|
118
136
|
*/
|
|
119
|
-
initUsers(
|
|
137
|
+
initUsers(): Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* 把bloud用户转化为当前的BMUser 和创建对应的BMStreamModel
|
|
140
|
+
* @param page
|
|
141
|
+
* @param permission
|
|
142
|
+
* @param useNew 是否使用getUsersList
|
|
143
|
+
*/
|
|
144
|
+
transBloudUsers: (page: number, permission?: string, useNew?: boolean, failedNum?: number) => Promise<void>;
|
|
120
145
|
/**
|
|
121
146
|
* 本地嘉宾用户降级为普通参会者之后要取消拉流
|
|
122
147
|
*/
|
|
@@ -126,6 +151,27 @@ export default class BMUserVM {
|
|
|
126
151
|
userList: BMUser[];
|
|
127
152
|
total: number;
|
|
128
153
|
}>;
|
|
154
|
+
getUsersList(page: number, pageSize: number, permission?: string, waitRoom?: boolean): Promise<{
|
|
155
|
+
userList: BMUser[];
|
|
156
|
+
total: number;
|
|
157
|
+
pageIndex: number;
|
|
158
|
+
}>;
|
|
129
159
|
getTotalUserNumber(): Promise<number>;
|
|
130
160
|
clearUsers(): void;
|
|
161
|
+
/**
|
|
162
|
+
* 参会者列表搜索(嘉宾及以上才能搜索)
|
|
163
|
+
* @param searchTxt 搜索文本
|
|
164
|
+
* @param pageSize 一页几个
|
|
165
|
+
* @param waitRoom 是否是等候室用户
|
|
166
|
+
*/
|
|
167
|
+
searchUsers(searchTxt: string, pageSize: number): Promise<{
|
|
168
|
+
userList: BMUser[];
|
|
169
|
+
commonUserList: BMUser[];
|
|
170
|
+
}>;
|
|
171
|
+
/**
|
|
172
|
+
* 查找等候室用户
|
|
173
|
+
* @param searchTxt
|
|
174
|
+
* @param pageSize
|
|
175
|
+
*/
|
|
176
|
+
searchWaitRoomUsers(searchTxt: string, pageSize: number): Promise<BMUser[]>;
|
|
131
177
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name: AudioPlay.ts
|
|
3
|
+
* @author: yangliye
|
|
4
|
+
* @date: 2023-06-08 16:35
|
|
5
|
+
* @description:AudioPlay.ts
|
|
6
|
+
* @update: 2023-06-08 16:35
|
|
7
|
+
*/
|
|
8
|
+
import { SingleRemoteStream, SingleStream } from "../type";
|
|
9
|
+
import { AudioPlayer } from '@hysc/core';
|
|
10
|
+
import BMRoom from "../BMRoom/BMRoom";
|
|
11
|
+
import { Subject } from "rxjs";
|
|
12
|
+
export default class AudioPlay {
|
|
13
|
+
playMap: WeakSet<SingleStream>;
|
|
14
|
+
playerMap: Map<string, AudioPlayer>;
|
|
15
|
+
container: HTMLDivElement | undefined;
|
|
16
|
+
muted: boolean;
|
|
17
|
+
room: BMRoom;
|
|
18
|
+
playStateChangeWatcher: Subject<AudioPlayer>;
|
|
19
|
+
deviceId?: string;
|
|
20
|
+
constructor(containerId: string, room: BMRoom);
|
|
21
|
+
addStream(stream: SingleRemoteStream, force?: boolean): void;
|
|
22
|
+
removeStream(stream: SingleStream): void;
|
|
23
|
+
removeStreamByUid(uid: string): void;
|
|
24
|
+
play(stream: SingleRemoteStream): Promise<void>;
|
|
25
|
+
mute(mute: boolean): void;
|
|
26
|
+
setVolume(streamId: string, volume: number): void;
|
|
27
|
+
setDevice(deviceId: string, force?: boolean): Promise<void>;
|
|
28
|
+
addPlayerEvent(player: AudioPlayer): void;
|
|
29
|
+
clear(): void;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
}
|