@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.
Files changed (182) hide show
  1. package/esm/boom-core/src/BoomCore/BCClient/clientEventType.d.ts +428 -0
  2. package/{umd → esm/boom-meeting/src}/BMChat/BMChatVM.d.ts +3 -1
  3. package/{umd → esm/boom-meeting/src}/BMRoom/BMRoomVM.d.ts +42 -9
  4. package/{umd → esm/boom-meeting/src}/BMStream/BMStreamModel.d.ts +64 -21
  5. package/{umd → esm/boom-meeting/src}/BMStream/BMStreamModelVM.d.ts +78 -53
  6. package/{umd → esm/boom-meeting/src}/BMUser/BMUser.d.ts +8 -5
  7. package/{umd → esm/boom-meeting/src}/BMUser/BMUserVM.d.ts +58 -12
  8. package/esm/boom-meeting/src/audioPlay/AudioPlay.d.ts +31 -0
  9. package/{umd/src/BMRoom → esm/boom-meeting/src/handleEvent}/attachEvents.d.ts +23 -9
  10. package/esm/boom-meeting/src/handleEvent/brtcNetEvent.d.ts +9 -0
  11. package/esm/boom-meeting/src/handleEvent/customMessageEvent.d.ts +2 -0
  12. package/esm/boom-meeting/src/handleEvent/handleParticipantEvent.d.ts +24 -0
  13. package/esm/boom-meeting/src/handleEvent/handleRoomEvent.d.ts +20 -0
  14. package/esm/boom-meeting/src/handleEvent/messageEvent.d.ts +5 -0
  15. package/esm/boom-meeting/src/handleEvent/pullUser.d.ts +7 -0
  16. package/esm/boom-meeting/src/handleEvent/roomErrEvent.d.ts +9 -0
  17. package/esm/boom-meeting/src/handleEvent/streamEvent.d.ts +22 -0
  18. package/{umd → esm/boom-meeting/src}/type/customStats.d.ts +6 -0
  19. package/{umd → esm/boom-meeting/src}/type/stream.d.ts +0 -2
  20. package/esm/index.js +8 -40401
  21. package/esm/src/BMChat/BMChatVM.d.ts +3 -3
  22. package/esm/src/BMChat/BMMessageInfo.d.ts +31 -31
  23. package/esm/src/BMRoom/BMLiveVM.d.ts +35 -35
  24. package/esm/src/BMRoom/BMRoom.d.ts +705 -705
  25. package/esm/src/BMRoom/BMRoomInfo.d.ts +215 -215
  26. package/esm/src/BMStream/BMSpeaker.d.ts +26 -26
  27. package/esm/src/BMStream/BMStreamModel.d.ts +4 -5
  28. package/esm/src/BMStream/BMStreamModelVM.d.ts +4 -4
  29. package/esm/src/BMStream/getHTMLMediaStreamOptions.d.ts +35 -35
  30. package/esm/src/BMStream/sortStream.d.ts +30 -30
  31. package/esm/src/BMUser/BMUser.d.ts +1 -1
  32. package/esm/src/BMUser/BMUserVM.d.ts +4 -4
  33. package/esm/src/SingletonQueue/SingletonQueue.d.ts +26 -26
  34. package/esm/src/bjy-common/function/execute.d.ts +9 -9
  35. package/esm/src/bjy-common/function/isNative.d.ts +1 -1
  36. package/esm/src/bjy-common/function/nextTick.d.ts +2 -2
  37. package/esm/src/bjy-common/function/toString.d.ts +1 -1
  38. package/esm/src/bjy-common/util/constant.d.ts +50 -50
  39. package/esm/src/bjy-common/util/is.d.ts +49 -49
  40. package/esm/src/bjy-common/util/string.d.ts +102 -102
  41. package/esm/src/constants.d.ts +129 -129
  42. package/esm/src/error/RTCError.d.ts +20 -20
  43. package/esm/src/error/errorType.d.ts +96 -96
  44. package/esm/src/handleEvent/attachEvents.d.ts +3 -2
  45. package/esm/src/handleEvent/handleParticipantEvent.d.ts +2 -2
  46. package/esm/src/index.d.ts +2 -4
  47. package/esm/src/logger/logger.d.ts +86 -86
  48. package/esm/src/type/stream.d.ts +4 -1
  49. package/esm/src/util/Pqueue.d.ts +62 -62
  50. package/esm/src/util/Thread.d.ts +12 -12
  51. package/esm/src/util/constant.d.ts +67 -67
  52. package/esm/src/util/emitter.d.ts +43 -43
  53. package/esm/src/util/sortUtils.d.ts +10 -10
  54. package/esm/src/util/util.d.ts +78 -78
  55. package/esm/utils/BoomError.d.ts +19 -0
  56. package/esm/utils/ErrorTypes.d.ts +139 -0
  57. package/esm/utils/index.d.ts +9 -0
  58. package/package.json +7 -8
  59. package/umd/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +2 -1
  60. package/umd/boom-meeting/src/audioPlay/AudioPlay.d.ts +1 -1
  61. package/umd/index.js +2 -2
  62. package/umd/src/BMChat/BMChatVM.d.ts +4 -3
  63. package/umd/src/BMRoom/BMRoom.d.ts +9 -0
  64. package/umd/src/BMRoom/BMRoomInfo.d.ts +9 -7
  65. package/umd/src/BMRoom/BMRoomVM.d.ts +16 -1
  66. package/umd/src/BMStream/BMSpeaker.d.ts +2 -20
  67. package/umd/src/BMStream/BMStreamModel.d.ts +61 -15
  68. package/umd/src/BMStream/BMStreamModelVM.d.ts +63 -56
  69. package/umd/src/BMUser/BMUser.d.ts +3 -3
  70. package/umd/src/BMUser/BMUserVM.d.ts +54 -17
  71. package/umd/src/audioPlay/AudioPlay.d.ts +31 -0
  72. package/umd/src/constants.d.ts +35 -18
  73. package/umd/src/handleEvent/attachEvents.d.ts +47 -0
  74. package/umd/src/handleEvent/brtcNetEvent.d.ts +9 -0
  75. package/umd/src/handleEvent/customMessageEvent.d.ts +2 -0
  76. package/umd/src/handleEvent/handleParticipantEvent.d.ts +24 -0
  77. package/umd/src/handleEvent/handleRoomEvent.d.ts +20 -0
  78. package/umd/src/handleEvent/messageEvent.d.ts +5 -0
  79. package/umd/src/handleEvent/pullUser.d.ts +7 -0
  80. package/umd/src/handleEvent/roomErrEvent.d.ts +9 -0
  81. package/umd/src/handleEvent/streamEvent.d.ts +22 -0
  82. package/umd/src/type/customStats.d.ts +5 -0
  83. package/umd/src/type/stream.d.ts +1 -6
  84. package/umd/src/util/Pqueue.d.ts +1 -0
  85. package/umd/src/util/Stutter.d.ts +1 -1
  86. package/umd/src/util/devices.d.ts +1 -1
  87. package/umd/src/util/emitter.d.ts +28 -4
  88. package/umd/src/util/request.d.ts +1 -1
  89. package/umd/src/util/util.d.ts +2 -1
  90. package/esm/index.js.map +0 -7
  91. package/umd/BMChat/BMMessageInfo.d.ts +0 -31
  92. package/umd/BMRoom/BMLiveVM.d.ts +0 -35
  93. package/umd/BMRoom/BMRoom.d.ts +0 -638
  94. package/umd/BMRoom/BMRoomInfo.d.ts +0 -189
  95. package/umd/BMRoom/attachEvents.d.ts +0 -27
  96. package/umd/BMStream/BMSpeaker.d.ts +0 -44
  97. package/umd/BMStream/getHTMLMediaStreamOptions.d.ts +0 -35
  98. package/umd/bjy-common/function/execute.d.ts +0 -9
  99. package/umd/bjy-common/function/isNative.d.ts +0 -1
  100. package/umd/bjy-common/function/nextTick.d.ts +0 -2
  101. package/umd/bjy-common/function/toString.d.ts +0 -1
  102. package/umd/bjy-common/util/constant.d.ts +0 -50
  103. package/umd/bjy-common/util/is.d.ts +0 -49
  104. package/umd/bjy-common/util/string.d.ts +0 -102
  105. package/umd/boom-meeting/src/BMChat/BMMessageInfo.d.ts +0 -31
  106. package/umd/boom-meeting/src/BMRoom/BMLiveVM.d.ts +0 -35
  107. package/umd/boom-meeting/src/BMRoom/BMRoom.d.ts +0 -699
  108. package/umd/boom-meeting/src/BMRoom/BMRoomInfo.d.ts +0 -215
  109. package/umd/boom-meeting/src/BMRoom/attachEvents.d.ts +0 -34
  110. package/umd/boom-meeting/src/BMStream/BMSpeaker.d.ts +0 -26
  111. package/umd/boom-meeting/src/BMStream/getHTMLMediaStreamOptions.d.ts +0 -35
  112. package/umd/boom-meeting/src/EventHandler.d.ts +0 -20
  113. package/umd/boom-meeting/src/bjy-common/function/execute.d.ts +0 -9
  114. package/umd/boom-meeting/src/bjy-common/function/isNative.d.ts +0 -1
  115. package/umd/boom-meeting/src/bjy-common/function/nextTick.d.ts +0 -2
  116. package/umd/boom-meeting/src/bjy-common/function/toString.d.ts +0 -1
  117. package/umd/boom-meeting/src/bjy-common/util/constant.d.ts +0 -50
  118. package/umd/boom-meeting/src/bjy-common/util/is.d.ts +0 -49
  119. package/umd/boom-meeting/src/bjy-common/util/string.d.ts +0 -102
  120. package/umd/boom-meeting/src/constants.d.ts +0 -129
  121. package/umd/boom-meeting/src/error/RTCError.d.ts +0 -20
  122. package/umd/boom-meeting/src/error/errorType.d.ts +0 -96
  123. package/umd/boom-meeting/src/logger/logger.d.ts +0 -86
  124. package/umd/boom-meeting/src/util/Pqueue.d.ts +0 -62
  125. package/umd/boom-meeting/src/util/constant.d.ts +0 -67
  126. package/umd/boom-meeting/src/util/emitter.d.ts +0 -43
  127. package/umd/boom-meeting/src/util/sortUtils.d.ts +0 -10
  128. package/umd/boom-meeting/src/util/util.d.ts +0 -78
  129. package/umd/constants.d.ts +0 -107
  130. package/umd/error/RTCError.d.ts +0 -20
  131. package/umd/error/errorType.d.ts +0 -96
  132. package/umd/index.d.ts +0 -2
  133. package/umd/index.js.map +0 -1
  134. package/umd/logger/logger.d.ts +0 -86
  135. package/umd/src/EventHandler.d.ts +0 -20
  136. package/umd/util/Pqueue.d.ts +0 -61
  137. package/umd/util/constant.d.ts +0 -67
  138. package/umd/util/emitter.d.ts +0 -18
  139. package/umd/util/sortUtils.d.ts +0 -10
  140. package/umd/util/util.d.ts +0 -76
  141. /package/{umd → esm/boom-meeting/src}/BMRoom/RoomEvent.d.ts +0 -0
  142. /package/{umd → esm/boom-meeting/src}/bjy-common/function/debounce.d.ts +0 -0
  143. /package/{umd → esm/boom-meeting/src}/bjy-common/function/getErrorMessage.d.ts +0 -0
  144. /package/{umd → esm/boom-meeting/src}/bjy-common/function/isDef.d.ts +0 -0
  145. /package/{umd → esm/boom-meeting/src}/bjy-common/function/isUndef.d.ts +0 -0
  146. /package/{umd → esm/boom-meeting/src}/bjy-common/function/throttling.d.ts +0 -0
  147. /package/{umd → esm/boom-meeting/src}/bjy-common/function/toNumber.d.ts +0 -0
  148. /package/{umd → esm/boom-meeting/src}/bjy-common/type/api.d.ts +0 -0
  149. /package/{umd → esm/boom-meeting/src}/bjy-common/type/options.d.ts +0 -0
  150. /package/{umd → esm/boom-meeting/src}/bjy-common/type/type.d.ts +0 -0
  151. /package/{umd → esm/boom-meeting/src}/bjy-common/util/CustomEvent.d.ts +0 -0
  152. /package/{umd → esm/boom-meeting/src}/bjy-common/util/Emitter.d.ts +0 -0
  153. /package/{umd → esm/boom-meeting/src}/bjy-common/util/NextTask.d.ts +0 -0
  154. /package/{umd → esm/boom-meeting/src}/bjy-common/util/Sleep.d.ts +0 -0
  155. /package/{umd → esm/boom-meeting/src}/bjy-common/util/Timer.d.ts +0 -0
  156. /package/{umd → esm/boom-meeting/src}/bjy-common/util/array.d.ts +0 -0
  157. /package/{umd → esm/boom-meeting/src}/bjy-common/util/browser.d.ts +0 -0
  158. /package/{umd → esm/boom-meeting/src}/bjy-common/util/holder.d.ts +0 -0
  159. /package/{umd → esm/boom-meeting/src}/bjy-common/util/keypath.d.ts +0 -0
  160. /package/{umd → esm/boom-meeting/src}/bjy-common/util/logger.d.ts +0 -0
  161. /package/{umd → esm/boom-meeting/src}/bjy-common/util/network.d.ts +0 -0
  162. /package/{umd → esm/boom-meeting/src}/bjy-common/util/object.d.ts +0 -0
  163. /package/{umd → esm/boom-meeting/src}/bjy-common/util/os.d.ts +0 -0
  164. /package/{umd → esm/boom-meeting/src}/error/errorMap.d.ts +0 -0
  165. /package/{umd → esm/boom-meeting/src}/type/index.d.ts +0 -0
  166. /package/{umd → esm/boom-meeting/src}/type/user.d.ts +0 -0
  167. /package/{umd → esm/boom-meeting/src}/util/PackLoss.d.ts +0 -0
  168. /package/{umd → esm/boom-meeting/src}/util/Privileges.d.ts +0 -0
  169. /package/{umd → esm/boom-meeting/src}/util/ReportCollector.d.ts +0 -0
  170. /package/{umd → esm/boom-meeting/src}/util/Stutter.d.ts +0 -0
  171. /package/{umd → esm/boom-meeting/src}/util/base64.d.ts +0 -0
  172. /package/{umd → esm/boom-meeting/src}/util/checkPermissions.d.ts +0 -0
  173. /package/{umd → esm/boom-meeting/src}/util/checkSystemRequirements.d.ts +0 -0
  174. /package/{umd → esm/boom-meeting/src}/util/devices.d.ts +0 -0
  175. /package/{umd → esm/boom-meeting/src}/util/formatUserId.d.ts +0 -0
  176. /package/{umd → esm/boom-meeting/src}/util/is.d.ts +0 -0
  177. /package/{umd → esm/boom-meeting/src}/util/peerToPeerProbe.d.ts +0 -0
  178. /package/{umd → esm/boom-meeting/src}/util/request.d.ts +0 -0
  179. /package/{umd → esm/boom-meeting/src}/util/roomUtils.d.ts +0 -0
  180. /package/umd/{boom-meeting/src → src}/BMStream/sortStream.d.ts +0 -0
  181. /package/umd/{boom-meeting/src → src}/SingletonQueue/SingletonQueue.d.ts +0 -0
  182. /package/umd/{boom-meeting/src → src}/util/Thread.d.ts +0 -0
@@ -1,22 +1,23 @@
1
- import BoomCore from '@hysc/core/esm';
1
+ import BCClient from '@hysc/core';
2
2
  import BMMessageInfo from './BMMessageInfo';
3
3
  import { BehaviorSubject, Subject } from "rxjs";
4
4
  import BMUserVM from '../BMUser/BMUserVM';
5
5
  import BMRoom from '../BMRoom/BMRoom';
6
6
  export default class BMChatVM {
7
7
  messageList: Array<BMMessageInfo>;
8
- boomCore: BoomCore;
8
+ boomCore: BCClient;
9
9
  userVM: BMUserVM;
10
10
  bmRoom: BMRoom;
11
11
  messageListWatcher: BehaviorSubject<Array<BMMessageInfo>>;
12
12
  hasDangerMessageWatcher: Subject<boolean>;
13
- constructor(boomCore: BoomCore, userVM: BMUserVM, bmRoom: BMRoom);
13
+ constructor(boomCore: BCClient, userVM: BMUserVM, bmRoom: BMRoom);
14
14
  /**
15
15
  * 发送聊天消息
16
16
  * @param talkMsg 聊天信息
17
17
  */
18
18
  sendMessage(talkMsg: string, userId: string | undefined, lostNet: boolean): Promise<void>;
19
19
  addMessage(info: BMMessageInfo, isParticipantNotice: boolean): void;
20
+ notificationMessageList: any;
20
21
  updateMessageListWatcher(messageList: Array<BMMessageInfo>): void;
21
22
  /**
22
23
  * 获取历史消息
@@ -20,6 +20,7 @@ interface MediaPermission {
20
20
  camera: boolean;
21
21
  screen: boolean;
22
22
  }
23
+ export declare type VoiceMode = 'speech' | 'speech-recognition' | 'music' | '';
23
24
  export declare let _selfSortType: number;
24
25
  export declare let autoPlayAudio: boolean;
25
26
  export default class BMRoom {
@@ -78,6 +79,8 @@ export default class BMRoom {
78
79
  mediaPermission: MediaPermission;
79
80
  videoProfile: VideoProfile;
80
81
  audioProfile: AudioProfileInfo | null;
82
+ voiceMode: string;
83
+ setVoiceMode(mode: VoiceMode): void;
81
84
  /**
82
85
  * brtc断网重连要给端上事件响应,所有端上把流单独做处理的,需要在收到这个事件之后,重新处理所有的effect
83
86
  */
@@ -588,6 +591,12 @@ export default class BMRoom {
588
591
  */
589
592
  checkUserHasMaster(userId: string): boolean;
590
593
  changeNickName(userId: string, nickName: string): Promise<any>;
594
+ /**
595
+ * boom-web-sdk中,会存在缓存的情况
596
+ * 所以可能会出现设置已经不存在的窗口的值,去拉不存在的窗口的流
597
+ * 增加一层逻辑判断去处理该情况
598
+ */
599
+ streamModelExits(streamModel: BMStreamModel): boolean;
591
600
  handleQueueTask: (streamModel: BMStreamModel, noPlayChanged?: boolean) => Promise<void>;
592
601
  handleStreamTask(streamModel: BMStreamModel, noPlayChanged?: boolean): Promise<void>;
593
602
  /**
@@ -111,7 +111,7 @@ export default class BMRoomInfo {
111
111
  /**
112
112
  * 是否锁定
113
113
  */
114
- private lock;
114
+ lock: boolean;
115
115
  /**
116
116
  * 离开提示
117
117
  */
@@ -148,6 +148,8 @@ export default class BMRoomInfo {
148
148
  operationPermissionWatcher: Subject<OperationCustomStats>;
149
149
  chatNoticeWatcher: Subject<unknown>;
150
150
  totalUserWatcher: BehaviorSubject<number>;
151
+ totalWaitRoomUserWatcher: BehaviorSubject<number>;
152
+ isOpenWaitRoom: Subject<boolean>;
151
153
  constructor();
152
154
  get roomName(): string;
153
155
  /**
@@ -183,9 +185,9 @@ export default class BMRoomInfo {
183
185
  addRaiseHandUser(user: BMUser): void;
184
186
  /**
185
187
  * 取消音频举手处理
186
- * @param user
188
+ * @param userId
187
189
  */
188
- removeRaiseHandUser(user: BMUser): void;
190
+ removeRaiseHandUser(userId: string): void;
189
191
  /**
190
192
  * 视频申请处理
191
193
  * @param user
@@ -193,9 +195,9 @@ export default class BMRoomInfo {
193
195
  addVideoRaiseHandUser(user: BMUser): void;
194
196
  /**
195
197
  * 取消视频申请处理
196
- * @param user
198
+ * @param userId
197
199
  */
198
- removeVideoRaiseHandUser(user: BMUser): void;
200
+ removeVideoRaiseHandUser(userId: string): void;
199
201
  /**
200
202
  * 举手处理
201
203
  * @param user
@@ -203,9 +205,9 @@ export default class BMRoomInfo {
203
205
  addSimpleRaiseHandUser(user: BMUser): void;
204
206
  /**
205
207
  * 取消举手处理
206
- * @param user
208
+ * @param userId
207
209
  */
208
- removeSimpleRaiseHandUser(user: BMUser): void;
210
+ removeSimpleRaiseHandUser(userId: string): void;
209
211
  private setRaiseHandsWatcherValue;
210
212
  private setVideoRaiseHandsWatcherValue;
211
213
  private setSimpleRaiseHandsWatcherValue;
@@ -154,12 +154,27 @@ export default class BMRoomVM {
154
154
  * 发送聊天公告
155
155
  * @param notice
156
156
  */
157
- sendChatNotice(notice: string, richNotice: object): Promise<void>;
157
+ sendChatNotice(notice: string, richNotice: object, showTipNotice: boolean): Promise<void>;
158
158
  /**
159
159
  * 是否允许点赞
160
160
  * @param enable 0 不允许 1 允许
161
161
  */
162
162
  giveLikeEnable(enable: 0 | 1): Promise<void>;
163
+ /**
164
+ * 入会自动静音配置 0 关闭 1 开启自动静音 2 超过6个人入会自动静音
165
+ * @param enable
166
+ */
167
+ changeAutoMute(enable: 0 | 1 | 2): Promise<void>;
168
+ /**
169
+ * 允许成员接收进入/离开会议通知配置 0 关闭 1 开启自动静音
170
+ * @param enable
171
+ */
172
+ allUserReceiveJoinLeaveMessages(enable: 0 | 1): Promise<void>;
173
+ /**
174
+ * 成员入会时给主持人播放提示音配置 0 关闭 1 开启自动静音
175
+ * @param enable
176
+ */
177
+ userJoinMasterVoice(enable: 0 | 1): Promise<void>;
163
178
  /**
164
179
  * 观众点赞(走customMessage)
165
180
  * @param type 1:点赞, 2:送花, 3:爱心, 4: 鼓掌, 5: 喝彩
@@ -10,9 +10,8 @@ import { SingleStream } from '../type';
10
10
  * @date: 2022-06-07 11:41
11
11
  */
12
12
  export default class BMSpeaker {
13
- private _user;
14
- private _stream;
15
- private _emitter;
13
+ user: BMUser;
14
+ stream: SingleStream;
16
15
  constructor(user: BMUser, stream: SingleStream);
17
16
  /**
18
17
  * 获取对象 ID 标识,此处使用流 ID 标识
@@ -24,21 +23,4 @@ export default class BMSpeaker {
24
23
  * @returns
25
24
  */
26
25
  getUser(): BMUser;
27
- /**
28
- * 监听事件
29
- *
30
- * @param type 事件类型
31
- * @param fn 事件回调
32
- * @return 实例本身 {@link Client}
33
- */
34
- on(type: string, fn: Function): this;
35
- /**
36
- * 启动音频音量检测
37
- */
38
- collectAudioLevel: () => void;
39
- private handleAudioLevel;
40
- /**
41
- * 关闭音频音量检测
42
- */
43
- close: () => void;
44
26
  }
@@ -1,8 +1,11 @@
1
- import { SingleStream, SubscribeOptions } from "../type";
1
+ import { SingleStream } from "../type";
2
+ import { SubscribeOptions } from "@hysc/brtc";
2
3
  import BMUser from "../BMUser/BMUser";
3
- import { STREAM_SORT_NUM } from "../constants";
4
4
  import { BehaviorSubject, Subject } from "rxjs";
5
+ import { Player } from "@hysc/core";
5
6
  import BMStreamModelVM from "./BMStreamModelVM";
7
+ import { BloudStreamState } from "../handleEvent/attachEvents";
8
+ import type { StreamCustomInfo } from '@hysc/bloud';
6
9
  /**
7
10
  * @name: BMStreamModel
8
11
  * @author: yangliye
@@ -23,9 +26,18 @@ export interface NoPlayerContainer {
23
26
  container: 'small' | 'big';
24
27
  id: string;
25
28
  }
29
+ /**
30
+ * 播放器状态
31
+ */
32
+ declare enum PlayerState {
33
+ NO_CONTAINER = 0,
34
+ NO_PLAYING = 1,
35
+ PLAYING = 2
36
+ }
26
37
  export default class BMStreamModel {
27
38
  private user;
28
39
  private _stream;
40
+ bloudStream: BloudStreamState | undefined;
29
41
  /**
30
42
  * 流类型
31
43
  */
@@ -54,7 +66,11 @@ export default class BMStreamModel {
54
66
  isInBigObserve: Subject<boolean>;
55
67
  _hasPulled: boolean;
56
68
  playerId: string;
57
- sortNum: STREAM_SORT_NUM;
69
+ /**
70
+ * 手动拉流配置, 默认是false, 如果是走手动拉流,设置成true,说明拉他的流
71
+ * shouldPull 是否应该拉
72
+ */
73
+ shouldPull: boolean;
58
74
  get hasPulled(): boolean;
59
75
  set hasPulled(value: boolean);
60
76
  /**
@@ -68,8 +84,8 @@ export default class BMStreamModel {
68
84
  */
69
85
  pulledStreamGoal: StreamType;
70
86
  bigPlayerId: string;
71
- private player;
72
- private isPlayingBig;
87
+ player: Player | undefined | null;
88
+ isPlayingBig: boolean;
73
89
  /**
74
90
  * 是否静音了扬声器,brtc不会处理业务上静音的逻辑,所以需要自己处理
75
91
  * 如果静音了,就把所有的流都重新静音播放一遍
@@ -90,6 +106,11 @@ export default class BMStreamModel {
90
106
  get canShow(): boolean;
91
107
  changeMute(mute: boolean): void;
92
108
  handleSpeakerChange(): void;
109
+ /**
110
+ * 排序数字
111
+ * 窗口的排序使用二进制运算进行了优化,为了提高运行速度牺牲了一部分代码可读性
112
+ */
113
+ sortNum: number;
93
114
  get isToupingma(): boolean;
94
115
  get isMixer(): boolean;
95
116
  get isSignal(): boolean;
@@ -133,12 +154,21 @@ export default class BMStreamModel {
133
154
  * @param bmStreamVm
134
155
  */
135
156
  updateStream(stream: SingleStream | undefined, needReProcess: boolean | undefined, bmStreamVm: BMStreamModelVM): void;
157
+ /**
158
+ * 更新bloud的stream,设置流状态
159
+ * @param streamState
160
+ * @param bmStreamVM
161
+ * @param forceSearch
162
+ */
163
+ updateBloudStream(streamState: BloudStreamState | undefined, bmStreamVM: BMStreamModelVM, forceSearch?: boolean): void;
164
+ updateBloudCustomInfo(customInfo: StreamCustomInfo): void;
136
165
  private onPlayerStateChange;
137
166
  handleStreamConnectError: () => void;
138
167
  /**
139
168
  * 获取当前的streamId
140
169
  */
141
170
  get streamId(): string;
171
+ get bStreamId(): string;
142
172
  /**
143
173
  * 获取当前窗口绑定的用户id
144
174
  */
@@ -154,7 +184,8 @@ export default class BMStreamModel {
154
184
  /**
155
185
  * 是否是屏幕共享的流
156
186
  */
157
- get isShare(): boolean | undefined;
187
+ get isShare(): boolean;
188
+ get isWeb(): boolean;
158
189
  /**
159
190
  * 当前音频是否开启
160
191
  */
@@ -163,6 +194,8 @@ export default class BMStreamModel {
163
194
  * 当前视频是否开启
164
195
  */
165
196
  get videoEnable(): boolean;
197
+ private get brtcPlayerId();
198
+ private get selfPlayerId();
166
199
  /**
167
200
  * 获取当前流绑定的用户昵称
168
201
  */
@@ -180,7 +213,7 @@ export default class BMStreamModel {
180
213
  /**
181
214
  * 获取流的传输信息
182
215
  */
183
- getStats(): Promise<import("@hysc/core/esm/BoomAdapter/type/stats").RemoteStreamStats> | Promise<import("@hysc/core/esm/BoomAdapter/type/stats").LocalStreamStats> | undefined;
216
+ getStats(): Promise<import("@hysc/brtc").RemoteStreamStats> | Promise<import("@hysc/brtc").LocalStreamStats> | undefined;
184
217
  /**
185
218
  * BIND_ELEMENT 事件
186
219
  * @param eleId
@@ -190,15 +223,20 @@ export default class BMStreamModel {
190
223
  sendMessage2Room: any;
191
224
  emitBindElement: any;
192
225
  emitBindBigElement: any;
226
+ /**
227
+ * 当前是不是正在播放
228
+ * @param containerId sdk绑定播放器容器id
229
+ * @param playerContainerId 播放器创建的容器id
230
+ */
231
+ currentIsPlaying: (containerId: string) => PlayerState;
193
232
  /**
194
233
  * 播放当前流
195
234
  */
196
- play: any;
235
+ play: () => Promise<void>;
197
236
  /**
198
237
  * 在大窗口播放该流的时候调用这个方法
199
- * @param mute 是否静音 默认true
200
238
  */
201
- playInBig: any;
239
+ playInBig: () => Promise<void>;
202
240
  private initBigPlayer;
203
241
  /**
204
242
  * 停止播放当前流
@@ -223,7 +261,7 @@ export default class BMStreamModel {
223
261
  *
224
262
  * @returns
225
263
  */
226
- resume(): Promise<any> | undefined;
264
+ resume(): void;
227
265
  /**
228
266
  * 是否有音频流
229
267
  */
@@ -237,14 +275,16 @@ export default class BMStreamModel {
237
275
  * @param user
238
276
  */
239
277
  updateUser(user: BMUser): void;
240
- updateSortNum(): void;
241
- updateSort(): STREAM_SORT_NUM;
278
+ updateSortNum(force?: boolean): void;
279
+ setSortNum(sortNum: number, force: boolean): void;
280
+ getSortNum(): number;
242
281
  /**
243
282
  * 启动音频音量检测
244
283
  */
245
- collectAudioLevel(): void;
284
+ collectAudioLevel: () => void;
246
285
  private handleAudioLevel;
247
- checkVideo(): void;
286
+ checkSmallVideo(): void;
287
+ checkBigVideo: any;
248
288
  /**
249
289
  * 播放黑窗处理,主要是做一个容错处理,又可能这股流拉下来或者存在订阅就出现问题的情况
250
290
  * 播放时黑窗的,这个时候需要,检测,然后重新拉流
@@ -256,5 +296,11 @@ export default class BMStreamModel {
256
296
  */
257
297
  subscribeStream(): void;
258
298
  unSubscribeStream(): void;
299
+ checkStreamIsPlaying: any;
300
+ /**
301
+ * 取消流的播放
302
+ * @param type big: 大窗口 small: 小窗口 all: 全部
303
+ */
304
+ unAttach(type: 'big' | 'small' | 'all'): void;
259
305
  }
260
306
  export {};
@@ -15,26 +15,18 @@
15
15
  */
16
16
  /// <reference types="node" />
17
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";
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 type { Device } from "@hysc/brtc";
24
+ import BMSpeaker from "./BMSpeaker";
25
+ import { ShareMediaOptions } from "@hysc/core";
26
+ import { getHTMLMediaStreamOptions, getMediaStreamInfo, Result } from "./getHTMLMediaStreamOptions";
27
+ import type { StreamCustomInfo, BloudStream } from '@hysc/bloud';
28
+ import { BloudStreamEventState } from "../handleEvent/attachEvents";
26
29
  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
30
  export default class BMStreamModelVM {
39
31
  streamModels: Map<string, BMStreamModel>;
40
32
  /**
@@ -45,26 +37,28 @@ export default class BMStreamModelVM {
45
37
  shareStreamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
46
38
  localStreamErrorWatcher: Subject<string>;
47
39
  localModel: BMStreamModel | null;
48
- private room;
49
- bloudStream: any;
50
- audioStream: SingleLocalStream | undefined;
40
+ room: BMRoom | null;
41
+ bloudStream: BloudStream | null;
51
42
  brtcStream: SingleLocalStream | undefined;
43
+ /**
44
+ * 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
45
+ */
46
+ videoStream: SingleLocalStream | null;
47
+ audioStream: SingleLocalStream | null;
48
+ audioStats: boolean;
49
+ videoStats: boolean;
52
50
  /**
53
51
  * 本地是否在屏幕共享
54
52
  */
55
53
  localIsShare: boolean;
54
+ isShareWatcher: Subject<boolean>;
56
55
  _speaker_enable: boolean;
57
56
  speakerEnableWatcher: BehaviorSubject<boolean>;
58
57
  /**
59
58
  * 混流
60
59
  */
61
60
  mixStreamModelWatcher: BehaviorSubject<BMStreamModel | null>;
62
- isShareWatcher: Subject<boolean>;
63
61
  canvasTimer: NodeJS.Timeout | null;
64
- /**
65
- * 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
66
- */
67
- videoStream: SingleLocalStream | null;
68
62
  private _recorder;
69
63
  private _isRecording;
70
64
  private _slicingRecord;
@@ -81,6 +75,17 @@ export default class BMStreamModelVM {
81
75
  * 窗口没有大窗口播放容器的错误处理
82
76
  */
83
77
  noBigContainerWatcher: Subject<BMStreamModel>;
78
+ localStreamConnectErrorWatcher: Subject<BoomError>;
79
+ /**
80
+ * 共享屏幕相关错误
81
+ * 包括,共享客户端错误
82
+ * 共享屏幕流错误
83
+ */
84
+ localShareError: Subject<BoomError>;
85
+ /**
86
+ * 共享屏幕流是单独处理的逻辑,不是先创建streamModel然后在去查流,而是先去查流,在创建streamModel
87
+ */
88
+ shareBloudStateMap: Map<string, BloudStreamEventState>;
84
89
  constructor();
85
90
  private static filterStreamModels;
86
91
  initWithRoom(room: BMRoom): this;
@@ -103,6 +108,7 @@ export default class BMStreamModelVM {
103
108
  addStreamModel(streamModel: BMStreamModel): void;
104
109
  addShareStreamModel(streamModel: BMStreamModel): void;
105
110
  removeStreamModel(streamModel: BMStreamModel): void;
111
+ removeShareStreamModelByUId(uid: string): void;
106
112
  removeShareStreamModel(streamModel: BMStreamModel): void;
107
113
  /**`
108
114
  * 通过用户id删除streamModel
@@ -125,7 +131,11 @@ export default class BMStreamModelVM {
125
131
  * @param status true:开,false:关
126
132
  * @param videoTrack 开启美颜之后,需要传递这个参数,携带美颜之后的videoTrack
127
133
  */
128
- setLocalVideoEnable(status: boolean, videoTrack?: MediaStreamTrack): Promise<void>;
134
+ setLocalVideoEnable(status: boolean, videoTrack?: MediaStreamTrack): Promise<undefined>;
135
+ /**
136
+ * brtc流更新状态失败,这个时候重新推流
137
+ */
138
+ handleStreamUpdateFailed(): Promise<void>;
129
139
  /**
130
140
  * 开关本地麦克风
131
141
  * @param status true:开,false:关
@@ -137,33 +147,41 @@ export default class BMStreamModelVM {
137
147
  * @param audio
138
148
  * @param video
139
149
  */
140
- joinWithAudioAndAudio(audio: boolean, video: boolean): Promise<undefined>;
150
+ joinWithAudioAndAudio(audio: boolean, video: boolean): Promise<void>;
141
151
  /**
142
152
  * 切换扬声器
143
153
  * @param device
154
+ * @param force 是否需要强制更新
144
155
  */
145
- changeSpeaker(device: Device): Promise<void>;
156
+ changeSpeaker(device: Device, force?: boolean): Promise<void>;
146
157
  /**
147
158
  * 设置单个流的扬声器
148
159
  * @param streamModel
149
160
  */
150
161
  changeSingleStreamSpeaker(streamModel: BMStreamModel): Promise<void>;
151
- changeAudioInput(device: Device): Promise<void>;
152
- changeVideoInput(device: Device): Promise<void>;
162
+ changeAudioInput(device: Device): Promise<boolean | undefined>;
163
+ changeVideoInput(device: Device): Promise<boolean | undefined>;
153
164
  /**
154
165
  * 是否静音扬声器
155
166
  * @param enable
156
167
  */
157
168
  muteSpeaker(enable: boolean): Promise<undefined>;
169
+ /**
170
+ * 创建本地音频流
171
+ */
172
+ createLocalAudioStream(): Promise<void>;
158
173
  /**
159
174
  * 创建流并且发布
160
175
  * @param audio 是否发布音频流
161
176
  * @param video 是否发布视频流
162
177
  * @param localModel 本地的streamModel
178
+ * @param videoTrack
163
179
  * @private
164
180
  */
165
181
  private createStreamAndPublish;
166
- muteHandler(type: 'video' | 'audio'): Promise<void>;
182
+ publishBloudStream(audio: boolean, video: boolean): Promise<void>;
183
+ muteHandler(type: 'video' | 'audio'): void;
184
+ unpublishStream(): Promise<void>;
167
185
  /**
168
186
  * 更改音视频状态或者取消发布
169
187
  * @param type 更改类型
@@ -172,23 +190,9 @@ export default class BMStreamModelVM {
172
190
  * @private
173
191
  */
174
192
  private muteOrUnpublishStream;
175
- /**
176
- * 是否开启屏幕共享
177
- * @param enable
178
- * @param opts 开启屏幕共享参数
179
- * @param customShare
180
- * @param opts.audio 是否开启音频
181
- * @param opts.source_name Electron 下窗口名称
182
- * @param opts.width 共享屏幕宽度
183
- * @param opts.height 共享屏幕高度
184
- * @param opts.contentHint 视频的contentHint 可选值: '' | 'motion' | 'detail' | 'text'
185
- */
186
- toggleShareScreen(enable: boolean, opts: any, customShare?: Result): Promise<unknown>;
187
- setShareScreenContentHint(contentHint: '' | 'motion' | 'detail' | 'text'): Promise<void>;
188
- /**
189
- * 排序变化之后的处理逻辑
190
- */
191
- updateSort: any;
193
+ toggleShareScreen(enable: boolean, opts: any, customShare?: Result): Promise<boolean>;
194
+ setShareScreenContentHint(contentHint: '' | 'motion' | 'detail' | 'text'): void;
195
+ updateModelSort: any;
192
196
  handleNoContainer: (info: NoPlayerContainer) => void;
193
197
  /**
194
198
  * 创建canvas,目的是为了捕获空track流,给brtc使用
@@ -214,7 +218,7 @@ export default class BMStreamModelVM {
214
218
  * 添加流对象到录制器,用于音频轨道录制
215
219
  * @param stream
216
220
  */
217
- addToRecorder(stream: any): void;
221
+ addToRecorder(stream: SingleStream): void;
218
222
  /**
219
223
  * 从录制器中删除流对象
220
224
  * @param stream
@@ -235,6 +239,7 @@ export default class BMStreamModelVM {
235
239
  startSpeakerDetector(): void;
236
240
  addToDetector(speaker: BMSpeaker): void;
237
241
  removeFromDetector(speakerId: string): void;
242
+ clearDetector(): void;
238
243
  shareCustomMedia(enable: boolean, shareOptions: ShareMediaOptions): Promise<undefined>;
239
244
  /**
240
245
  * 根据videoElement 获取内部流数据
@@ -242,11 +247,13 @@ export default class BMStreamModelVM {
242
247
  getHTMLMediaStream: typeof getHTMLMediaStreamOptions;
243
248
  getMediaStream: typeof getMediaStreamInfo;
244
249
  /**
245
- * brtc断网重连之后,不知道在断网期间有那些用户取消了推流,
246
- * 然后如果是brtc的ws没重连上,然后自己走的重新入会重连的话,就会导致
247
- * 可能存在本地的流有一部分可能是不存在的流了,这个方法就是在重连入会之后
248
- * 把所有远端流清空
250
+ * 更新流信息 会给服务端发送updateStream信令,会收到updateStream的广播
251
+ */
252
+ updateBloudStreamCustomStats(uid: string, streamId: string, streamInfo: StreamCustomInfo): Promise<any> | undefined;
253
+ /**
254
+ * 布局发生变化之后去调用一下这个方法去检测所有流的播放状态
255
+ * @param {string} status tag 用于区分是什么状态下调用的
249
256
  */
250
- resetAllRemoteStream(): void;
257
+ checkStreamStats(status: string): void;
251
258
  clearCache(): void;
252
259
  }
@@ -1,6 +1,6 @@
1
1
  import BMStreamModel from '../BMStream/BMStreamModel';
2
2
  import { BehaviorSubject } from 'rxjs';
3
- import BCUser from '@hysc/core/esm/BoomAdapter/User/User';
3
+ import { BCUser } from "@hysc/core";
4
4
  import BMRoom from '../BMRoom/BMRoom';
5
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 {
@@ -150,7 +150,7 @@ export default class BMUser {
150
150
  /**
151
151
  * 更新当前用户的排序
152
152
  */
153
- updateSortNum(): void;
154
- setSortNum(sortNum: number): void;
153
+ updateSortNum(force?: boolean, shouldDelay?: boolean): void;
154
+ setSortNum(sortNum: number, force: boolean, shouldDelay: boolean): void;
155
155
  }
156
156
  export {};