@hysc/meeting 10.0.33 → 10.0.35

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/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
+ import * as lodash_es from 'lodash-es';
1
2
  import * as _hysc_brtc from '@hysc/brtc';
2
3
  import { LocalStream, RemoteStream, Device, SubscribeOptions, VideoProfile, AudioHint, StreamCodecOption } from '@hysc/brtc';
3
- import * as lodash_es from 'lodash-es';
4
- import BCClient, { BCUser, ShareMediaOptions, Player, AudioPlayer } from '@hysc/core';
4
+ import BCClient, { ShareMediaOptions, Player, BCUser, AudioPlayer } from '@hysc/core';
5
5
  import { BehaviorSubject, Subject } from 'rxjs';
6
6
  import { BoomError } from '@hysc/utils';
7
7
  export { Logger } from '@hysc/utils';
@@ -119,209 +119,6 @@ declare function getMediaStreamInfo(mediaStream: MediaStream, videoInfo: {
119
119
  height: number;
120
120
  } | null;
121
121
 
122
- /**
123
- * @name: SingletonQueue
124
- * @author: yangliye
125
- * @date: 2023-05-18 09:47
126
- * @description:SingletonQueue
127
- * @update: 2023-05-18 09:47
128
- */
129
- declare type CallBack = (arg: Map<string, PullItem>, ...args: any) => void;
130
- declare type PullItem = {
131
- id: string;
132
- isScreen: boolean;
133
- isWeb?: boolean;
134
- force?: boolean;
135
- };
136
- declare class SingletonQueue {
137
- private static instance;
138
- private _callback;
139
- private pullMap;
140
- constructor();
141
- addUsers(userIds: PullItem[]): void;
142
- removeUsers(userId: PullItem[]): void;
143
- restart(): void;
144
- setQueueProcessor(callback: CallBack): void;
145
- removeQueueProcessor(): void;
146
- }
147
-
148
- /**
149
- * @name: emitter
150
- * @author: yangliye
151
- * @date: 2022-05-24 15:15
152
- * @description:emitter
153
- * @update: 2022-05-24 15:15
154
- */
155
-
156
- declare type UserSortType = {
157
- isCommon: boolean;
158
- isAudience: boolean;
159
- shouldDelay: boolean;
160
- };
161
-
162
- interface ChangeIsGuest {
163
- user: BMUser;
164
- preIsGuest: boolean;
165
- isGuest: boolean;
166
- }
167
- declare class BMUserVM {
168
- userList: Map<string, BMUser>;
169
- audiencesList: Map<string, BMUser>;
170
- signalList: Map<string, BMUser>;
171
- commonUserList: Map<string, BMUser>;
172
- boomCore: BCClient;
173
- room: BMRoom;
174
- userListWatcher: BehaviorSubject<BMUser[]>;
175
- audiencesListWatcher: BehaviorSubject<BMUser[]>;
176
- commonUserListWatcher: BehaviorSubject<BMUser[]>;
177
- signalListWatcher: BehaviorSubject<BMUser[]>;
178
- masterUserWatcher: BehaviorSubject<BMUser | null>;
179
- getForceUserWatcher: BehaviorSubject<boolean>;
180
- localUser: BMUser;
181
- commTimer: number;
182
- constructor(boomCore: BCClient, localUser: BMUser, room: BMRoom);
183
- handleUserRoleChange(info: ChangeIsGuest): Promise<void>;
184
- /**
185
- * 添加用户, 并返回已添加的用户对象
186
- * @param bcUser bcUser对象
187
- */
188
- addUser(bcUser: BCUser): BMUser;
189
- /**
190
- * 移除用户
191
- * @param userId 用户id
192
- */
193
- removeUser(userId: string): boolean;
194
- /**
195
- * 获取用户视频开启状态
196
- * @param userId 用户id
197
- */
198
- videoEnable(userId: string): boolean;
199
- /**
200
- * 获取用户音频开启状态
201
- * @param userId
202
- */
203
- audioEnable(userId: string): boolean;
204
- /**
205
- * 检测用户是不是主持人
206
- * @param {string} userId 用户id
207
- */
208
- checkIsMaster(userId: any): boolean;
209
- /**
210
- * 检测当前用户是否有主持人权限
211
- */
212
- checkLocalHasMaster(): boolean;
213
- /**
214
- * 检测目标用户是否有主持人权限
215
- */
216
- checkUserHasMaster(userId: string): boolean;
217
- /**
218
- * 根据用户id获取user对象
219
- * @param {string} userId
220
- */
221
- getUser(userId: string): BMUser | undefined;
222
- getAllUsers(pageIndex: number, allUsers: Map<string, BCUser>, permission?: string, useNew?: boolean): Promise<void>;
223
- /**
224
- * 刚加入房间时初始化人数
225
- */
226
- initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
227
- addBcUsersMap(users: Map<string, BCUser>, forceGetStream?: boolean, updateSort?: boolean): void;
228
- addBCUser: (bcUser: BCUser, forceGetStream?: boolean, updateSort?: boolean) => BMUser | undefined;
229
- /**
230
- * 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
231
- * @param userId
232
- * @param oldMasterId
233
- * @param isKeep
234
- */
235
- updateMaster(userId: string, oldMasterId: string, isKeep: boolean): UpdateMasterType;
236
- /**
237
- * 联席主持人设置嘉宾的操作
238
- * @param userId
239
- */
240
- managerChangeToGuest(userId: string): BMUser | undefined;
241
- /**
242
- * 改变联席主持人,返回设置为联席主持人的bmuser对象
243
- * @param userId
244
- * @param status true:设置成联席主持人 false:取消联席主持人身份
245
- * @param hasS
246
- * @returns
247
- */
248
- updateManager(userId: string, status: boolean, hasS?: boolean): BMUser;
249
- /**
250
- * 获取我自己
251
- */
252
- getLocalUser(): BMUser;
253
- updateUser(bmUser: BMUser, bcUser: BCUser): void;
254
- updateLocalUserPermission(permission: string): void;
255
- /**
256
- * bcUser变成BMUser
257
- * @param bcUser
258
- * @returns
259
- */
260
- toBMUser(bcUser: BCUser): BMUser;
261
- private sortUsers;
262
- private sortAudiences;
263
- private sortCommonUsers;
264
- private sortSignalUsers;
265
- private static filterUsers;
266
- /**
267
- * 排序变化之后的处理逻辑
268
- */
269
- updateAllSort: () => void;
270
- updateSortByType: (userType: UserSortType) => void;
271
- updateUserSort: lodash_es.DebouncedFunc<() => void>;
272
- updateCommonUserSort: lodash_es.DebouncedFunc<() => void>;
273
- updateDelayCommonUserSort: lodash_es.DebouncedFunc<() => void>;
274
- updateAudienceUserSort: lodash_es.DebouncedFunc<() => void>;
275
- updateSignalUserSort: () => void;
276
- /**
277
- * 初始化所有的用户
278
- */
279
- initUsers(): Promise<void>;
280
- /**
281
- * 把bloud用户转化为当前的BMUser 和创建对应的BMStreamModel
282
- * @param page
283
- * @param permission
284
- * @param useNew 是否使用getUsersList
285
- */
286
- transBloudUsers: (page: number, permission?: string, useNew?: boolean, failedNum?: number) => Promise<void>;
287
- /**
288
- * 本地嘉宾用户降级为普通参会者之后要取消拉流
289
- */
290
- handleUnSubCommonUser(): void;
291
- handleCommonUserChange(): void;
292
- getUsers(page: number, pageSize: number, permission?: string, mode?: 'map' | 'array'): Promise<{
293
- userList: Map<string, BMUser>;
294
- total: number;
295
- } | {
296
- userList: BMUser[];
297
- total: number;
298
- }>;
299
- getUsersList(page: number, pageSize: number, permission?: string, waitRoom?: boolean): Promise<{
300
- userList: BMUser[];
301
- total: number;
302
- pageIndex: number;
303
- }>;
304
- getTotalUserNumber(): Promise<number>;
305
- clearUsers(): void;
306
- /**
307
- * 参会者列表搜索(嘉宾及以上才能搜索)
308
- * @param searchTxt 搜索文本
309
- * @param pageSize 一页几个
310
- * @param waitRoom 是否是等候室用户
311
- */
312
- searchUsers(searchTxt: string, pageSize: number): Promise<{
313
- userList: BMUser[];
314
- commonUserList: BMUser[];
315
- audienceList: BMUser[];
316
- }>;
317
- /**
318
- * 查找等候室用户
319
- * @param searchTxt
320
- * @param pageSize
321
- */
322
- searchWaitRoomUsers(searchTxt: string, pageSize: number): Promise<BMUser[]>;
323
- }
324
-
325
122
  declare class BMChatVM {
326
123
  messageList: Array<BMMessageInfo>;
327
124
  boomCore: BCClient;
@@ -1049,6 +846,183 @@ declare class BMUser {
1049
846
  setSortNum(sortNum: number, force: boolean, shouldDelay: boolean): void;
1050
847
  }
1051
848
 
849
+ /**
850
+ * @name: emitter
851
+ * @author: yangliye
852
+ * @date: 2022-05-24 15:15
853
+ * @description:emitter
854
+ * @update: 2022-05-24 15:15
855
+ */
856
+
857
+ declare type UserSortType = {
858
+ isCommon: boolean;
859
+ isAudience: boolean;
860
+ shouldDelay: boolean;
861
+ };
862
+
863
+ interface ChangeIsGuest {
864
+ user: BMUser;
865
+ preIsGuest: boolean;
866
+ isGuest: boolean;
867
+ }
868
+ declare class BMUserVM {
869
+ userList: Map<string, BMUser>;
870
+ audiencesList: Map<string, BMUser>;
871
+ signalList: Map<string, BMUser>;
872
+ commonUserList: Map<string, BMUser>;
873
+ boomCore: BCClient;
874
+ room: BMRoom;
875
+ userListWatcher: BehaviorSubject<BMUser[]>;
876
+ audiencesListWatcher: BehaviorSubject<BMUser[]>;
877
+ commonUserListWatcher: BehaviorSubject<BMUser[]>;
878
+ signalListWatcher: BehaviorSubject<BMUser[]>;
879
+ masterUserWatcher: BehaviorSubject<BMUser | null>;
880
+ getForceUserWatcher: BehaviorSubject<boolean>;
881
+ localUser: BMUser;
882
+ commTimer: number;
883
+ constructor(boomCore: BCClient, localUser: BMUser, room: BMRoom);
884
+ handleUserRoleChange(info: ChangeIsGuest): Promise<void>;
885
+ /**
886
+ * 添加用户, 并返回已添加的用户对象
887
+ * @param bcUser bcUser对象
888
+ */
889
+ addUser(bcUser: BCUser): BMUser;
890
+ /**
891
+ * 移除用户
892
+ * @param userId 用户id
893
+ */
894
+ removeUser(userId: string): boolean;
895
+ /**
896
+ * 获取用户视频开启状态
897
+ * @param userId 用户id
898
+ */
899
+ videoEnable(userId: string): boolean;
900
+ /**
901
+ * 获取用户音频开启状态
902
+ * @param userId
903
+ */
904
+ audioEnable(userId: string): boolean;
905
+ /**
906
+ * 检测用户是不是主持人
907
+ * @param {string} userId 用户id
908
+ */
909
+ checkIsMaster(userId: any): boolean;
910
+ /**
911
+ * 检测当前用户是否有主持人权限
912
+ */
913
+ checkLocalHasMaster(): boolean;
914
+ /**
915
+ * 检测目标用户是否有主持人权限
916
+ */
917
+ checkUserHasMaster(userId: string): boolean;
918
+ /**
919
+ * 根据用户id获取user对象
920
+ * @param {string} userId
921
+ */
922
+ getUser(userId: string): BMUser | undefined;
923
+ getAllUsers(pageIndex: number, allUsers: Map<string, BCUser>, permission?: string, useNew?: boolean): Promise<void>;
924
+ /**
925
+ * 刚加入房间时初始化人数
926
+ */
927
+ initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
928
+ addBcUsersMap(users: Map<string, BCUser>, forceGetStream?: boolean, updateSort?: boolean): void;
929
+ addBCUser: (bcUser: BCUser, forceGetStream?: boolean, updateSort?: boolean) => BMUser | undefined;
930
+ /**
931
+ * 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
932
+ * @param userId
933
+ * @param oldMasterId
934
+ * @param isKeep
935
+ */
936
+ updateMaster(userId: string, oldMasterId: string, isKeep: boolean): UpdateMasterType;
937
+ /**
938
+ * 联席主持人设置嘉宾的操作
939
+ * @param userId
940
+ */
941
+ managerChangeToGuest(userId: string): BMUser | undefined;
942
+ /**
943
+ * 改变联席主持人,返回设置为联席主持人的bmuser对象
944
+ * @param userId
945
+ * @param status true:设置成联席主持人 false:取消联席主持人身份
946
+ * @param hasS
947
+ * @returns
948
+ */
949
+ updateManager(userId: string, status: boolean, hasS?: boolean): BMUser;
950
+ /**
951
+ * 获取我自己
952
+ */
953
+ getLocalUser(): BMUser;
954
+ updateUser(bmUser: BMUser, bcUser: BCUser): void;
955
+ updateLocalUserPermission(permission: string): void;
956
+ /**
957
+ * bcUser变成BMUser
958
+ * @param bcUser
959
+ * @returns
960
+ */
961
+ toBMUser(bcUser: BCUser): BMUser;
962
+ private sortUsers;
963
+ private sortAudiences;
964
+ private sortCommonUsers;
965
+ private sortSignalUsers;
966
+ private static filterUsers;
967
+ /**
968
+ * 排序变化之后的处理逻辑
969
+ */
970
+ updateAllSort: () => void;
971
+ updateSortByType: (userType: UserSortType) => void;
972
+ updateUserSort: lodash_es.DebouncedFunc<() => void>;
973
+ updateCommonUserSort: lodash_es.DebouncedFunc<() => void>;
974
+ updateDelayCommonUserSort: lodash_es.DebouncedFunc<() => void>;
975
+ updateAudienceUserSort: lodash_es.DebouncedFunc<() => void>;
976
+ updateSignalUserSort: () => void;
977
+ /**
978
+ * 初始化所有的用户
979
+ */
980
+ initUsers(): Promise<void>;
981
+ /**
982
+ * 把bloud用户转化为当前的BMUser 和创建对应的BMStreamModel
983
+ * @param page
984
+ * @param permission
985
+ * @param useNew 是否使用getUsersList
986
+ */
987
+ transBloudUsers: (page: number, permission?: string, useNew?: boolean, failedNum?: number) => Promise<void>;
988
+ /**
989
+ * 本地嘉宾用户降级为普通参会者之后要取消拉流
990
+ */
991
+ handleUnSubCommonUser(): void;
992
+ handleCommonUserChange(): void;
993
+ getUsers(page: number, pageSize: number, permission?: string, mode?: 'map' | 'array'): Promise<{
994
+ userList: Map<string, BMUser>;
995
+ total: number;
996
+ } | {
997
+ userList: BMUser[];
998
+ total: number;
999
+ }>;
1000
+ getUsersList(page: number, pageSize: number, permission?: string, waitRoom?: boolean): Promise<{
1001
+ userList: BMUser[];
1002
+ total: number;
1003
+ pageIndex: number;
1004
+ }>;
1005
+ getTotalUserNumber(): Promise<number>;
1006
+ clearUsers(): void;
1007
+ /**
1008
+ * 参会者列表搜索(嘉宾及以上才能搜索)
1009
+ * @param searchTxt 搜索文本
1010
+ * @param pageSize 一页几个
1011
+ * @param waitRoom 是否是等候室用户
1012
+ */
1013
+ searchUsers(searchTxt: string, pageSize: number): Promise<{
1014
+ userList: BMUser[];
1015
+ commonUserList: BMUser[];
1016
+ audienceList: BMUser[];
1017
+ }>;
1018
+ /**
1019
+ * 查找等候室用户
1020
+ * @param searchTxt
1021
+ * @param pageSize
1022
+ */
1023
+ searchWaitRoomUsers(searchTxt: string, pageSize: number): Promise<BMUser[]>;
1024
+ }
1025
+
1052
1026
  /**
1053
1027
  * @name: BMRoomInfo
1054
1028
  * @author: yangliye
@@ -1588,6 +1562,23 @@ declare class BMRoomVM {
1588
1562
  resp2ChangeRemoteAudioProfile(status: boolean, uid: string): Promise<any>;
1589
1563
  }
1590
1564
 
1565
+ /**
1566
+ * @name: SingletonQueue
1567
+ * @author: yangliye
1568
+ * @date: 2023-05-18 09:47
1569
+ * @description:SingletonQueue
1570
+ * @update: 2023-05-18 09:47
1571
+ */
1572
+
1573
+ declare class SingletonQueue {
1574
+ room: BMRoom;
1575
+ pullMap: Map<string, PullItem>;
1576
+ constructor(room: BMRoom);
1577
+ addUser(pullInfo: PullItem): void;
1578
+ removeUser(pullInfo: PullItem): void;
1579
+ restart(): void;
1580
+ }
1581
+
1591
1582
  /**
1592
1583
  * @name: BMLiveVM.ts
1593
1584
  * @author: yangliye
@@ -1652,6 +1643,12 @@ declare class AudioPlay {
1652
1643
  destroy(): void;
1653
1644
  }
1654
1645
 
1646
+ declare type PullItem = {
1647
+ id: string;
1648
+ isScreen: boolean;
1649
+ isWeb?: boolean;
1650
+ force?: boolean;
1651
+ };
1655
1652
  interface BMRoomProps {
1656
1653
  initDevices: boolean;
1657
1654
  }
@@ -1824,14 +1821,7 @@ declare class BMRoom {
1824
1821
  /**
1825
1822
  * 初始化输入设备
1826
1823
  */
1827
- initDevices(): Promise<{
1828
- videoDevices: Device[];
1829
- audioDevices: Device[];
1830
- audioOutputDevices: Device[];
1831
- selectVideoDevice: Device | null;
1832
- selectAudioDevice: Device | null;
1833
- selectAudioOutputDevice: Device | null;
1834
- }>;
1824
+ initDevices(): Promise<any>;
1835
1825
  /**
1836
1826
  * 筛选出默认选中的设备,如果没有,选择第一个
1837
1827
  * @param devices
@@ -1840,7 +1830,7 @@ declare class BMRoom {
1840
1830
  /**
1841
1831
  * 处理用户设备变化之后的逻辑
1842
1832
  */
1843
- handleMediaDevicesChange: lodash_es.DebouncedFunc<(event: any) => Promise<void>>;
1833
+ handleMediaDevicesChange: () => Promise<void>;
1844
1834
  setSelectAudioDevice(device: Device): void;
1845
1835
  setSelectVideoDevice(device: Device): void;
1846
1836
  setSelectSpeakerDevice(device: Device): void;
@@ -2349,9 +2339,13 @@ declare class BMRoom {
2349
2339
  * 重拉远端流
2350
2340
  */
2351
2341
  handleResetOtherStreamStatus(): void;
2342
+ /**
2343
+ * 处理断网重连之后对流的处理
2344
+ * @param pullItems
2345
+ */
2346
+ restartPullUsers(pullItems: Map<string, PullItem>): void;
2352
2347
  addUser2Queue(pullItem: PullItem): Promise<void>;
2353
- processUser: (uIds: Map<string, PullItem>) => Promise<void>;
2354
- queueProcessor: lodash_es.DebouncedFunc<(uIds: Map<string, PullItem>) => Promise<void>>;
2348
+ processUser: (uId: PullItem, failed?: number) => Promise<void>;
2355
2349
  queryBrtcStreams(uids: string[]): Promise<_hysc_brtc.RemoteStream[]>;
2356
2350
  handleAddStreams(streams: SingleRemoteStream[]): void;
2357
2351
  getForceUser(forceId: string): Promise<void>;
@@ -2359,4 +2353,4 @@ declare class BMRoom {
2359
2353
  getVersion(): string;
2360
2354
  }
2361
2355
 
2362
- export { BMRoom as default };
2356
+ export { BMStreamModel, BMUser, BMRoom as default };