@zegocloud/zego-uikit-prebuilt 1.7.1 → 1.7.2
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/package.json +1 -1
- package/zego-uikit-prebuilt.js +1 -1
package/package.json
CHANGED
package/zego-uikit-prebuilt.js
CHANGED
|
@@ -2113,7 +2113,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2113
2113
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2114
2114
|
|
|
2115
2115
|
"use strict";
|
|
2116
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ZegoCloudRTCCore\": function() { return /* binding */ ZegoCloudRTCCore; }\n/* harmony export */ });\n/* harmony import */ var _tools_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tools/util */ \"./src/sdk/modules/tools/util.ts\");\n/* harmony import */ var zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zego-express-engine-webrtc */ \"./node_modules/zego-express-engine-webrtc/ZegoExpressWebRTC.js\");\n/* harmony import */ var zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../model */ \"./src/sdk/model/index.ts\");\n/* harmony import */ var _tools_UserListManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tools/UserListManager */ \"./src/sdk/modules/tools/UserListManager.ts\");\n/* harmony import */ var _tools_ZimManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tools/ZimManager */ \"./src/sdk/modules/tools/ZimManager.ts\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\n\n\n\nvar ZegoCloudRTCCore = /** @class */ (function () {\n function ZegoCloudRTCCore() {\n var _this = this;\n this._zimManager = null;\n this.zegoSuperBoardView = undefined;\n this.status = {\n loginRsp: false,\n videoRefuse: undefined,\n audioRefuse: undefined,\n };\n this.remoteStreamMap = {};\n this.waitingHandlerStreams = { add: [], delete: [] };\n this._config = {\n // @ts-ignore\n container: undefined,\n preJoinViewConfig: {\n title: \"Join Room\",\n invitationLink: window.location.href, // 邀请链接,空则不显示,默认空\n },\n showPreJoinView: true,\n turnOnMicrophoneWhenJoining: true,\n turnOnCameraWhenJoining: true,\n showMyCameraToggleButton: true,\n showMyMicrophoneToggleButton: true,\n showAudioVideoSettingsButton: true,\n showTextChat: true,\n showUserList: true,\n lowerLeftNotification: {\n showUserJoinAndLeave: true,\n showTextChat: true, // 是否显示未读消息,默认显示\n },\n branding: {\n logoURL: \"\",\n },\n showLeavingView: true,\n maxUsers: 0,\n layout: \"Auto\",\n showNonVideoUser: true,\n showOnlyAudioUser: false,\n useFrontFacingCamera: true,\n onJoinRoom: function () { },\n onLeaveRoom: function () { },\n onUserJoin: function (user) { },\n onUserLeave: function (user) { },\n onUserAvatarSetter: function (user) { },\n sharedLinks: [],\n showScreenSharingButton: true,\n scenario: {\n mode: _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.OneONoneCall,\n config: { role: _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host, liveStreamingMode: undefined }, // 对应场景专有配置\n },\n facingMode: \"user\",\n joinRoomCallback: function () { },\n leaveRoomCallback: function () { },\n userUpdateCallback: function () { },\n showLayoutButton: true,\n showPinButton: true,\n whiteboardConfig: {\n showAddImageButton: false,\n showCreateAndCloseButton: true,\n },\n videoResolutionList: [],\n plugins: {},\n autoLeaveRoomWhenOnlySelfInRoom: false,\n showRoomTimer: false,\n videoCodec: \"H264\", //视频编解码器\n };\n this._currentPage = \"BrowserCheckPage\";\n this.extraInfoKey = \"extra_info\";\n this._roomExtraInfo = {\n live_status: {\n v: 0,\n u: \"xxx\",\n r: 0,\n },\n };\n this.NetworkStatusTimer = null;\n this._originConfig = {};\n this.onRemoteMediaUpdateCallBack = function (updateType, streamList) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.mainStreamUpdate(updateType, streamList)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.zum.screenStreamUpdate(updateType, streamList)];\n case 2:\n _a.sent();\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n this.subscribeScreenStreamCallBack &&\n this.subscribeScreenStreamCallBack(__spreadArray([], this.zum.remoteScreenStreamList, true));\n return [2 /*return*/];\n }\n });\n }); };\n }\n // static _soundMeter: SoundMeter;\n ZegoCloudRTCCore.getInstance = function (kitToken) {\n var config = (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.getConfig)(kitToken);\n if (!ZegoCloudRTCCore._instance && config) {\n ZegoCloudRTCCore._instance = new ZegoCloudRTCCore();\n ZegoCloudRTCCore._instance._expressConfig = config;\n // ZegoCloudRTCCore._soundMeter = new SoundMeter();\n ZegoCloudRTCCore._zg = new zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1__.ZegoExpressEngine(ZegoCloudRTCCore._instance._expressConfig.appID, \"wss://webliveroom\" +\n ZegoCloudRTCCore._instance._expressConfig.appID +\n \"-api.zegocloud.com/ws\");\n ZegoCloudRTCCore._instance.zum = new _tools_UserListManager__WEBPACK_IMPORTED_MODULE_3__.ZegoCloudUserListManager(ZegoCloudRTCCore._zg);\n }\n return ZegoCloudRTCCore._instance;\n };\n Object.defineProperty(ZegoCloudRTCCore.prototype, \"isCDNLive\", {\n get: function () {\n var _a, _b;\n return (((_a = this._config.scenario) === null || _a === void 0 ? void 0 : _a.mode) === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.LiveStreaming &&\n ((_b = this._config.scenario.config) === null || _b === void 0 ? void 0 : _b.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience &&\n this._config.scenario.config.liveStreamingMode ===\n _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.LiveStreaming);\n },\n enumerable: false,\n configurable: true\n });\n ZegoCloudRTCCore.prototype.addPlugins = function (plugins) {\n this._config.plugins = plugins;\n if (plugins.ZIM && this._expressConfig.token) {\n this.initZIM(plugins.ZIM);\n }\n };\n Object.defineProperty(ZegoCloudRTCCore.prototype, \"originConfig\", {\n get: function () {\n return this._originConfig;\n },\n set: function (config) {\n var _a;\n if (config.container) {\n this._originConfig[\"cw\"] =\n config.container.clientWidth / document.body.clientWidth;\n this._originConfig[\"ch\"] =\n config.container.clientHeight / document.body.clientHeight;\n }\n if (config.showPreJoinView !== undefined) {\n this._originConfig[\"spj\"] = config.showPreJoinView ? 1 : 0;\n }\n if (config.turnOnMicrophoneWhenJoining !== undefined) {\n this._originConfig[\"tmwj\"] = config.turnOnMicrophoneWhenJoining ? 1 : 0;\n }\n if (config.turnOnCameraWhenJoining !== undefined) {\n this._originConfig[\"tcwj\"] = config.turnOnCameraWhenJoining ? 1 : 0;\n }\n if (config.showMyMicrophoneToggleButton !== undefined) {\n this._originConfig[\"smtb\"] = config.showMyMicrophoneToggleButton ? 1 : 0;\n }\n if (config.showMyCameraToggleButton !== undefined) {\n this._originConfig[\"sctb\"] = config.showMyCameraToggleButton ? 1 : 0;\n }\n if (config.showAudioVideoSettingsButton !== undefined) {\n this._originConfig[\"savsb\"] = config.showAudioVideoSettingsButton ? 1 : 0;\n }\n if (config.showTextChat !== undefined) {\n this._originConfig[\"stc\"] = config.showTextChat ? 1 : 0;\n }\n if (config.showUserList !== undefined) {\n this._originConfig[\"sul\"] = config.showUserList ? 1 : 0;\n }\n if (config.showLeavingView !== undefined) {\n this._originConfig[\"slv\"] = config.showLeavingView ? 1 : 0;\n }\n if (config.maxUsers !== undefined) {\n this._originConfig[\"mu\"] = config.maxUsers ? 1 : 0;\n }\n if (config.layout !== undefined) {\n this._originConfig[\"lo\"] = config.layout;\n }\n if (config.showScreenSharingButton !== undefined) {\n this._originConfig[\"sssb\"] = config.showScreenSharingButton ? 1 : 0;\n }\n if (this._config.plugins.ZegoSuperBoardManager !== undefined) {\n this._originConfig[\"swbb\"] = 1;\n }\n if (this._config.plugins.ZIM !== undefined) {\n this._originConfig[\"uc\"] = 1;\n }\n if (((_a = config.scenario) === null || _a === void 0 ? void 0 : _a.mode) !== undefined) {\n this._originConfig[\"sm\"] = config.scenario.mode;\n }\n if (config.lowerLeftNotification !== undefined) {\n this._originConfig[\"lln\"] = config.lowerLeftNotification ? 1 : 0;\n }\n if (config.showNonVideoUser !== undefined) {\n this._originConfig[\"snvu\"] = config.showNonVideoUser ? 1 : 0;\n }\n if (config.showOnlyAudioUser !== undefined) {\n this._originConfig[\"snau\"] = config.showOnlyAudioUser ? 1 : 0;\n }\n if (config.onJoinRoom !== undefined) {\n this._originConfig[\"ojr\"] = 1;\n }\n if (config.onLeaveRoom !== undefined) {\n this._originConfig[\"olr\"] = 1;\n }\n if (config.onLiveStart !== undefined) {\n this._originConfig[\"ols\"] = 1;\n }\n if (config.onLiveEnd !== undefined) {\n this._originConfig[\"ole\"] = 1;\n }\n this._originConfig[\"url\"] =\n window.location.origin + window.location.pathname;\n },\n enumerable: false,\n configurable: true\n });\n ZegoCloudRTCCore.prototype.setConfig = function (config) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n this.originConfig = __assign({}, config);\n if (config.scenario &&\n config.scenario.mode === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.LiveStreaming) {\n if (config.showNonVideoUser === true) {\n console.error(\"【ZEGOCLOUD】 showNonVideoUser have be false scenario.mode is LiveStreaming!!\");\n return false;\n }\n config.videoCodec = \"H264\";\n config.showNonVideoUser = false;\n config.showOnlyAudioUser = true;\n config.autoLeaveRoomWhenOnlySelfInRoom = false;\n if (config.scenario.config &&\n config.scenario.config.role === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host) {\n if (config.turnOnMicrophoneWhenJoining === false &&\n config.turnOnCameraWhenJoining === false &&\n config.showMyCameraToggleButton === false &&\n config.showAudioVideoSettingsButton === false) {\n console.error(\"【ZEGOCLOUD】 Host could turn on at least one of the camera and the microphone!!\");\n return false;\n }\n }\n else if (config.scenario.config &&\n config.scenario.config.role === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience) {\n if (config.turnOnMicrophoneWhenJoining === true ||\n config.turnOnCameraWhenJoining === true ||\n config.showMyCameraToggleButton === true ||\n config.showMyMicrophoneToggleButton === true ||\n config.showAudioVideoSettingsButton === true ||\n config.showScreenSharingButton === true ||\n config.useFrontFacingCamera === true ||\n (!!config.layout && config.layout !== \"Grid\")) {\n console.error(\"【ZEGOCLOUD】 Audience cannot configure camera and microphone related params\");\n return false;\n }\n }\n if (!config.maxUsers) {\n config.maxUsers = 0;\n }\n if (config.scenario.config &&\n config.scenario.config.role === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience) {\n config.turnOnMicrophoneWhenJoining = false;\n config.turnOnCameraWhenJoining = false;\n config.showMyCameraToggleButton = false;\n config.showMyMicrophoneToggleButton = false;\n config.showAudioVideoSettingsButton = false;\n config.showScreenSharingButton = false;\n config.useFrontFacingCamera = false;\n config.useFrontFacingCamera = false;\n config.showUserList =\n config.showUserList === undefined ? false : config.showUserList;\n config.showPinButton = false;\n config.showLayoutButton = false;\n config.layout = \"Grid\";\n config.lowerLeftNotification = {\n showTextChat: false,\n showUserJoinAndLeave: false,\n };\n }\n }\n if (config.scenario &&\n config.scenario.mode === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.OneONoneCall) {\n if (!config.maxUsers) {\n config.maxUsers = 0;\n }\n config.showLayoutButton = false;\n config.showPinButton = false;\n config.showTurnOffRemoteCameraButton = false;\n config.showTurnOffRemoteMicrophoneButton = false;\n config.showRemoveUserButton = false;\n }\n if (config.scenario && config.scenario.mode === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.GroupCall) {\n if (!config.maxUsers) {\n config.maxUsers = 0;\n }\n }\n if (config.scenario &&\n ((_b = (_a = config.scenario) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience) {\n config.showPinButton = false;\n config.showTurnOffRemoteCameraButton = false;\n config.showTurnOffRemoteMicrophoneButton = false;\n config.showRemoveUserButton = false;\n }\n if (((_d = (_c = config === null || config === void 0 ? void 0 : config.scenario) === null || _c === void 0 ? void 0 : _c.config) === null || _d === void 0 ? void 0 : _d.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Cohost) {\n config.showRemoveUserButton = false;\n }\n config.facingMode &&\n (config.useFrontFacingCamera = config.facingMode === \"user\");\n config.joinRoomCallback && (config.onJoinRoom = config.joinRoomCallback);\n config.leaveRoomCallback && (config.onLeaveRoom = config.leaveRoomCallback);\n if (config.userUpdateCallback) {\n config.onUserJoin = function (users) {\n config.userUpdateCallback && config.userUpdateCallback(\"ADD\", users);\n };\n config.onUserLeave = function (users) {\n config.userUpdateCallback && config.userUpdateCallback(\"DELETE\", users);\n };\n }\n if (config.preJoinViewConfig && config.preJoinViewConfig.invitationLink) {\n config.sharedLinks = [\n {\n name: \"Share the link\",\n url: config.preJoinViewConfig.invitationLink,\n },\n ];\n }\n if (config.videoResolutionDefault) {\n if (!config.videoResolutionList) {\n config.videoResolutionList = [];\n }\n (_e = config.videoResolutionList) === null || _e === void 0 ? void 0 : _e.unshift(config.videoResolutionDefault);\n }\n if (config.videoResolutionList && config.videoResolutionList.length > 0) {\n var list = Array.from(new Set(config.videoResolutionList)).filter(function (s) {\n return (s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._180P ||\n s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._360P ||\n s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._480P ||\n s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._720P);\n });\n config.videoResolutionList =\n list.length > 0 ? list : [_model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._360P];\n }\n else {\n config.videoResolutionList = [_model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._360P];\n }\n config.preJoinViewConfig &&\n (config.preJoinViewConfig = __assign(__assign({}, this._config.preJoinViewConfig), config.preJoinViewConfig));\n config.scenario &&\n // @ts-ignore\n (config.scenario.config = __assign(__assign({}, (_f = this._config.scenario) === null || _f === void 0 ? void 0 : _f.config), (config.scenario.config || {})));\n config.whiteboardConfig &&\n (config.whiteboardConfig = __assign(__assign({}, this._config.whiteboardConfig), config.whiteboardConfig));\n this._config = __assign(__assign({}, this._config), config);\n this.zum.scenario =\n ((_g = this._config.scenario) === null || _g === void 0 ? void 0 : _g.mode) || _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.OneONoneCall;\n this.zum.role = ((_j = (_h = this._config.scenario) === null || _h === void 0 ? void 0 : _h.config) === null || _j === void 0 ? void 0 : _j.role) || _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host;\n this.zum.liveStreamingMode = this.getLiveStreamingMode((_l = (_k = this._config.scenario) === null || _k === void 0 ? void 0 : _k.config) === null || _l === void 0 ? void 0 : _l.liveStreamingMode);\n this.zum.showOnlyAudioUser = !!this._config.showOnlyAudioUser;\n this.zum.setShowNonVideo(!!this._config.showNonVideoUser);\n if (!this._config.turnOnCameraWhenJoining &&\n !this._config.showMyCameraToggleButton) {\n this.status.videoRefuse = true;\n }\n if (config.console) {\n var logLevel = \"debug\";\n if (config.console === \"Info\") {\n logLevel = \"warn\";\n }\n else if (config.console === \"Warning\") {\n logLevel = \"warn\";\n }\n else if (config.console === \"Error\") {\n logLevel = \"warn\";\n }\n else if (config.console === \"None\") {\n logLevel = \"disable\";\n }\n ZegoCloudRTCCore._zg.setLogConfig({\n logLevel: logLevel,\n });\n }\n return true;\n };\n // 兼容处理LiveStreamingMode\n ZegoCloudRTCCore.prototype.getLiveStreamingMode = function (mode) {\n if (mode === \"StandardLive\" || mode === \"LiveStreaming\")\n return _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.LiveStreaming;\n if (mode === \"PremiumLive\" || mode === \"InteractiveLiveStreaming\")\n return _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.InteractiveLiveStreaming;\n return _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.RealTimeLive;\n };\n ZegoCloudRTCCore.prototype.checkWebRTC = function () {\n return __awaiter(this, void 0, void 0, function () {\n var webRTC, H264, VP8;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.isCDNLive) return [3 /*break*/, 6];\n return [4 /*yield*/, ZegoCloudRTCCore._zg.checkSystemRequirements(\"webRTC\")];\n case 1:\n webRTC = _a.sent();\n if (!(this._config.videoCodec === \"H264\")) return [3 /*break*/, 3];\n return [4 /*yield*/, ZegoCloudRTCCore._zg.checkSystemRequirements(\"H264\")];\n case 2:\n H264 = _a.sent();\n return [2 /*return*/, !!webRTC.result && !!H264.result];\n case 3:\n if (!(this._config.videoCodec === \"VP8\")) return [3 /*break*/, 5];\n return [4 /*yield*/, ZegoCloudRTCCore._zg.checkSystemRequirements(\"VP8\")];\n case 4:\n VP8 = _a.sent();\n return [2 /*return*/, !!webRTC.result && !!VP8.result];\n case 5: return [2 /*return*/, !!webRTC.result];\n case 6: return [2 /*return*/, true];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setPin = function (userID, pined, stopUpdateUser) {\n this.zum.setPin(userID, pined);\n if (!stopUpdateUser) {\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n }\n };\n ZegoCloudRTCCore.prototype.setMaxScreenNum = function (num, stopUpdateUser) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.setMaxScreenNum(num)];\n case 1:\n _a.sent();\n if (!stopUpdateUser) {\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n }\n return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setSidebarLayOut = function (enable, stopUpdateUser) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.setSidebarLayOut(enable)];\n case 1:\n _a.sent();\n if (!stopUpdateUser) {\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n }\n return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setShowNonVideo = function (enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.setShowNonVideo(enable)];\n case 1:\n _a.sent();\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setCurrentPage = function (page) {\n this._currentPage = page;\n };\n ZegoCloudRTCCore.prototype.getCameras = function () {\n return ZegoCloudRTCCore._zg.getCameras();\n };\n ZegoCloudRTCCore.prototype.useVideoDevice = function (localStream, deviceID) {\n return ZegoCloudRTCCore._zg.useVideoDevice(localStream, deviceID);\n };\n ZegoCloudRTCCore.prototype.getMicrophones = function () {\n return ZegoCloudRTCCore._zg.getMicrophones();\n };\n ZegoCloudRTCCore.prototype.getSpeakers = function () {\n return ZegoCloudRTCCore._zg.getSpeakers();\n };\n ZegoCloudRTCCore.prototype.setVolume = function (media, volume) {\n media.volume = volume;\n };\n ZegoCloudRTCCore.prototype.createStream = function (source) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.createStream(source)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.createAndPublishWhiteboard = function (parentDom, name) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.zegoSuperBoard.setToolType(1);\n this.zegoSuperBoard.setBrushColor(\"#333333\");\n this.zegoSuperBoard.setBrushSize(6);\n this.zegoSuperBoard.setFontItalic(false);\n this.zegoSuperBoard.setFontBold(false);\n this.zegoSuperBoard.setFontSize(24);\n return [4 /*yield*/, this.zegoSuperBoard.createWhiteboardView({\n name: name,\n perPageWidth: 1480.3,\n perPageHeight: 758.5,\n pageCount: 5, // 白板页数\n })];\n case 1:\n _a.sent();\n // this.zegoSuperBoard.setBrushColor(\"#F64326\"); not working to set default color\n return [2 /*return*/, this.zegoSuperBoard.getSuperBoardView()];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setWhiteboardToolType = function (type, fontSize, color) {\n return __awaiter(this, void 0, void 0, function () {\n var zegoSuperBoardSubView;\n return __generator(this, function (_a) {\n if (type === 512) {\n zegoSuperBoardSubView = this.zegoSuperBoard\n .getSuperBoardView()\n .getCurrentSuperBoardSubView();\n zegoSuperBoardSubView && zegoSuperBoardSubView.clearCurrentPage();\n }\n else {\n this.zegoSuperBoard.setToolType(type);\n if ([1, 4, 8, 16].includes(type)) {\n fontSize && this.zegoSuperBoard.setBrushSize(fontSize);\n color && this.zegoSuperBoard.setBrushColor(color);\n }\n }\n return [2 /*return*/];\n });\n });\n };\n ZegoCloudRTCCore.prototype.setWhiteboardFont = function (font, fontSize, color) {\n if (font === \"BOLD\") {\n this.zegoSuperBoard.setFontBold(true);\n }\n else if (font === \"NO_BOLD\") {\n this.zegoSuperBoard.setFontBold(false);\n }\n else if (font === \"ITALIC\") {\n this.zegoSuperBoard.setFontItalic(true);\n }\n else if (font === \"NO_ITALIC\") {\n this.zegoSuperBoard.setFontItalic(false);\n }\n fontSize && this.zegoSuperBoard.setFontSize(fontSize);\n color && this.zegoSuperBoard.setBrushColor(color);\n };\n ZegoCloudRTCCore.prototype.setVideoConfig = function (media, constraints) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.setVideoConfig(media, constraints)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.stopPublishingStream = function (streamID) {\n return ZegoCloudRTCCore._zg.stopPublishingStream(streamID);\n };\n ZegoCloudRTCCore.prototype.destroyStream = function (stream) {\n ZegoCloudRTCCore._zg.destroyStream(stream);\n };\n ZegoCloudRTCCore.prototype.destroyAndStopPublishWhiteboard = function () {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var uniqueID, result, i;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n uniqueID = (_b = (_a = this.zegoSuperBoard\n .getSuperBoardView()) === null || _a === void 0 ? void 0 : _a.getCurrentSuperBoardSubView()) === null || _b === void 0 ? void 0 : _b.getModel().uniqueID;\n if (uniqueID) {\n this.zegoSuperBoard.destroySuperBoardSubView(uniqueID);\n }\n return [4 /*yield*/, this.zegoSuperBoard.querySuperBoardSubViewList()];\n case 1:\n result = _c.sent();\n i = 0;\n _c.label = 2;\n case 2:\n if (!(i < result.length)) return [3 /*break*/, 5];\n return [4 /*yield*/, this.zegoSuperBoard.destroySuperBoardSubView(result[i].uniqueID)];\n case 3:\n _c.sent();\n _c.label = 4;\n case 4:\n i++;\n return [3 /*break*/, 2];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.useCameraDevice = function (media, deviceID) {\n return ZegoCloudRTCCore._zg.useVideoDevice(media, deviceID);\n };\n ZegoCloudRTCCore.prototype.useMicrophoneDevice = function (media, deviceID) {\n return ZegoCloudRTCCore._zg.useAudioDevice(media, deviceID);\n };\n ZegoCloudRTCCore.prototype.useSpeakerDevice = function (media, deviceID) {\n return __awaiter(this, void 0, void 0, function () {\n var res, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!media.srcObject) {\n return [2 /*return*/, Promise.resolve({ errorCode: -1 })];\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, ZegoCloudRTCCore._zg.useAudioOutputDevice(media, deviceID)];\n case 2:\n res = _a.sent();\n return [2 /*return*/, { errorCode: res ? 0 : -1 }];\n case 3:\n error_1 = _a.sent();\n return [2 /*return*/, { errorCode: -1 }];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.enableVideoCaptureDevice = function (localStream, enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.enableVideoCaptureDevice(localStream, enable)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.mutePublishStreamVideo = function (localStream, enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.mutePublishStreamVideo(localStream, enable)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.mutePublishStreamAudio = function (localStream, enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.mutePublishStreamAudio(localStream, enable)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.muteMicrophone = function (enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.muteMicrophone(enable)];\n });\n });\n };\n Object.defineProperty(ZegoCloudRTCCore.prototype, \"roomExtraInfo\", {\n get: function () {\n return this._roomExtraInfo;\n },\n set: function (value) {\n var _this = this;\n if (this._currentPage === \"Room\") {\n this._roomExtraInfo = value;\n this.zum.setLiveStates(this._roomExtraInfo.live_status);\n if (this._config.onLiveStart && this._roomExtraInfo.live_status === \"1\") {\n this._config.onLiveStart({\n userID: this._expressConfig.userID,\n userName: this._expressConfig.userID,\n });\n }\n else if (this._config.onLiveEnd &&\n this._roomExtraInfo.live_status === \"0\") {\n this._config.onLiveEnd({\n userID: this._expressConfig.userID,\n userName: this._expressConfig.userID,\n });\n }\n this.onRoomLiveStateUpdateCallBack &&\n this.onRoomLiveStateUpdateCallBack(this._roomExtraInfo.live_status);\n }\n else if (this._currentPage === \"BrowserCheckPage\" ||\n this._currentPage === \"RejoinRoom\") {\n setTimeout(function () {\n _this.roomExtraInfo = value;\n }, 1000);\n }\n },\n enumerable: false,\n configurable: true\n });\n ZegoCloudRTCCore.prototype.setLive = function (status) {\n return __awaiter(this, void 0, void 0, function () {\n var setRoomExtraInfo, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n setRoomExtraInfo = __assign(__assign({}, this._roomExtraInfo), {\n live_status: status === \"live\" ? \"1\" : \"0\",\n });\n return [4 /*yield*/, ZegoCloudRTCCore._zg.setRoomExtraInfo(ZegoCloudRTCCore._instance._expressConfig.roomID, \"extra_info\", JSON.stringify(setRoomExtraInfo))];\n case 1:\n res = _a.sent();\n res.errorCode === 0 && (this.roomExtraInfo = setRoomExtraInfo);\n return [2 /*return*/, res.errorCode === 0];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.enterRoom = function () {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // 已经登陆过不再登录\n if (this.status.loginRsp)\n return [2 /*return*/, Promise.resolve(0)];\n if ((_a = this._config.plugins) === null || _a === void 0 ? void 0 : _a.ZegoSuperBoardManager) {\n this.zegoSuperBoard =\n this._config.plugins.ZegoSuperBoardManager.getInstance();\n this.zegoSuperBoard.init(ZegoCloudRTCCore._zg, {\n isTestEnv: false,\n parentDomID: \"ZegoCloudWhiteboardContainer\",\n appID: this._expressConfig.appID,\n userID: this._expressConfig.userID,\n token: this._expressConfig.token, // 登录房间需要用于验证身份的 Token\n });\n this.zegoSuperBoard.setWhiteboardBackgroundColor(\"#ffffff\");\n }\n ZegoCloudRTCCore._zg.off(\"roomExtraInfoUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomStreamUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteCameraStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteMicStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"playerStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomUserUpdate\");\n ZegoCloudRTCCore._zg.off(\"IMRecvBroadcastMessage\");\n ZegoCloudRTCCore._zg.off(\"roomStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publisherStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publishQualityUpdate\");\n ZegoCloudRTCCore._zg.off(\"soundLevelUpdate\");\n ZegoCloudRTCCore._zg.off(\"IMRecvCustomCommand\");\n if (this.zegoSuperBoard) {\n // 监听远端新增白板\n this.zegoSuperBoard.off(\"remoteSuperBoardSubViewAdded\");\n // 监听远端销毁白板\n this.zegoSuperBoard.off(\"remoteSuperBoardSubViewRemoved\");\n }\n ZegoCloudRTCCore._zg.on(\"roomStreamUpdate\", function (roomID, updateType, streamList, extendedData) { return __awaiter(_this, void 0, void 0, function () {\n var willDelete_1;\n return __generator(this, function (_a) {\n if (updateType === \"ADD\") {\n this.waitingHandlerStreams.add = __spreadArray(__spreadArray([], this.waitingHandlerStreams.add, true), streamList, true);\n this.waitingHandlerStreams.delete =\n this.waitingHandlerStreams.delete.filter(function (stream) {\n if (streamList.some(function (add_stream) { return add_stream.streamID === stream.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n });\n }\n else {\n willDelete_1 = [];\n // 新增流中,删除下线的流\n this.waitingHandlerStreams.add =\n this.waitingHandlerStreams.add.filter(function (stream) {\n if (streamList.some(function (delete_stream) {\n if (delete_stream.streamID === stream.streamID) {\n willDelete_1.push(delete_stream.streamID);\n return true;\n }\n else {\n return false;\n }\n })) {\n return false;\n }\n else {\n return true;\n }\n });\n // 删除流中,去除上次要新增的\n streamList = streamList.filter(function (s) {\n if (willDelete_1.some(function (wd) { return wd === s.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n });\n this.waitingHandlerStreams.delete = __spreadArray(__spreadArray([], this.waitingHandlerStreams.delete, true), streamList, true);\n }\n return [2 /*return*/];\n });\n }); });\n ZegoCloudRTCCore._zg.on(\"roomExtraInfoUpdate\", function (roomID, roomExtraInfoList) {\n roomExtraInfoList.forEach(function (info) {\n if (info.key === _this.extraInfoKey) {\n _this.roomExtraInfo = JSON.parse(info.value);\n }\n });\n });\n ZegoCloudRTCCore._zg.on(\"remoteCameraStatusUpdate\", function (streamID, status) {\n if (_this.remoteStreamMap[streamID]) {\n _this.remoteStreamMap[streamID].cameraStatus = status;\n _this.onRemoteMediaUpdateCallBack &&\n _this.onRemoteMediaUpdateCallBack(\"UPDATE\", [\n _this.remoteStreamMap[streamID],\n ]);\n }\n });\n ZegoCloudRTCCore._zg.on(\"remoteMicStatusUpdate\", function (streamID, status) {\n if (_this.remoteStreamMap[streamID]) {\n _this.remoteStreamMap[streamID].micStatus = status;\n _this.onRemoteMediaUpdateCallBack &&\n _this.onRemoteMediaUpdateCallBack(\"UPDATE\", [\n _this.remoteStreamMap[streamID],\n ]);\n }\n });\n ZegoCloudRTCCore._zg.on(\"playerStateUpdate\", function (streamInfo) {\n console.warn(\"【ZEGOCLOUD】\", streamInfo);\n if (_this.remoteStreamMap[streamInfo.streamID]) {\n _this.remoteStreamMap[streamInfo.streamID].state = streamInfo.state;\n _this.onRemoteMediaUpdateCallBack &&\n _this.onRemoteMediaUpdateCallBack(\"UPDATE\", [\n _this.remoteStreamMap[streamInfo.streamID],\n ]);\n }\n if (streamInfo.errorCode === 1104038) {\n _this.coreErrorCallback(_model__WEBPACK_IMPORTED_MODULE_2__.CoreError.notSupportStandardLive, streamInfo.extendedData);\n }\n });\n ZegoCloudRTCCore._zg.on(\"roomUserUpdate\", function (roomID, updateType, userList) {\n console.warn(\"【ZEGOCLOUD】roomUserUpdate\", updateType, userList, _this.onRemoteUserUpdateCallBack);\n if (_this.onRemoteUserUpdateCallBack) {\n _this.onRemoteUserUpdateCallBack(roomID, updateType, userList);\n }\n else {\n setTimeout(function () {\n _this.onRemoteUserUpdateCallBack &&\n _this.onRemoteUserUpdateCallBack(roomID, updateType, userList);\n }, 1000);\n }\n });\n ZegoCloudRTCCore._zg.on(\"IMRecvBroadcastMessage\", function (roomID, chatData) {\n _this.onRoomMessageUpdateCallBack &&\n _this.onRoomMessageUpdateCallBack(roomID, chatData);\n });\n // 房间内自定义消息\n ZegoCloudRTCCore._zg.on(\"IMRecvCustomCommand\", function (roomID, fromUser, command) {\n var commandData = JSON.parse(command);\n console.warn(\"IMRecvCustomCommand\", commandData);\n if (Object.keys(commandData).includes(\"zego_remove_user\") &&\n commandData[\"zego_remove_user\"].includes(_this._expressConfig.userID)) {\n // 被移除房间的通知\n // 通知UI层leaveRoom\n _this.onKickedOutRoomCallback && _this.onKickedOutRoomCallback();\n }\n if (Object.keys(commandData).includes(\"zego_turn_camera_off\") &&\n commandData[\"zego_turn_camera_off\"] === _this._expressConfig.userID) {\n // 通知UI层关闭摄像头\n _this.onChangeYourDeviceStatusCallback &&\n _this.onChangeYourDeviceStatusCallback(\"Camera\", \"CLOSE\", fromUser);\n }\n if (Object.keys(commandData).includes(\"zego_turn_microphone_off\") &&\n commandData[\"zego_turn_microphone_off\"] === _this._expressConfig.userID) {\n // 通知UI层关闭麦克风\n _this.onChangeYourDeviceStatusCallback &&\n _this.onChangeYourDeviceStatusCallback(\"Microphone\", \"CLOSE\", fromUser);\n }\n });\n ZegoCloudRTCCore._zg.on(\"publisherStateUpdate\", function (streamInfo) {\n var state = \"DISCONNECTED\";\n if (streamInfo.state === \"PUBLISHING\") {\n state = \"CONNECTED\";\n }\n else if (streamInfo.state === \"NO_PUBLISH\") {\n state = \"DISCONNECTED\";\n }\n else if (streamInfo.state === \"PUBLISH_REQUESTING\") {\n state = \"CONNECTING\";\n }\n _this.onNetworkStatusCallBack &&\n _this.onNetworkStatusCallBack(ZegoCloudRTCCore._instance._expressConfig.roomID, \"STREAM\", state);\n });\n ZegoCloudRTCCore._zg.on(\"playQualityUpdate\", function (streamID, stats) {\n _this.onNetworkStatusQualityCallBack &&\n _this.onNetworkStatusQualityCallBack(streamID, Math.max(stats.video.videoQuality, stats.audio.audioQuality));\n });\n ZegoCloudRTCCore._zg.on(\"publishQualityUpdate\", function (streamID, stats) {\n _this.onNetworkStatusQualityCallBack &&\n _this.onNetworkStatusQualityCallBack(streamID, Math.max(stats.video.videoQuality, stats.audio.audioQuality));\n });\n ZegoCloudRTCCore._zg.on(\"soundLevelUpdate\", function (soundLevelList) {\n _this.onSoundLevelUpdateCallBack &&\n _this.onSoundLevelUpdateCallBack(soundLevelList);\n });\n ZegoCloudRTCCore._zg.on(\"screenSharingEnded\", function (stream) {\n _this.onScreenSharingEndedCallBack &&\n _this.onScreenSharingEndedCallBack(stream);\n });\n if (this.zegoSuperBoard) {\n // 监听远端新增白板\n this.zegoSuperBoard.on(\"remoteSuperBoardSubViewAdded\", function (uniqueID) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zegoSuperBoard.querySuperBoardSubViewList()];\n case 1:\n _a.sent();\n this.zegoSuperBoard.setToolType(1);\n this.zegoSuperBoard.setBrushColor(\"#333333\");\n this.zegoSuperBoard.setBrushSize(6);\n this.zegoSuperBoard.setFontItalic(false);\n this.zegoSuperBoard.setFontBold(false);\n this.zegoSuperBoard.setFontSize(24);\n this.zegoSuperBoardView = this.zegoSuperBoard.getSuperBoardView();\n return [2 /*return*/];\n }\n });\n }); });\n // 监听远端销毁白板\n this.zegoSuperBoard.on(\"remoteSuperBoardSubViewRemoved\", function (uniqueID) {\n _this.zegoSuperBoardView = null;\n });\n }\n if (this.isCDNLive) {\n ZegoCloudRTCCore._zg.on(\"streamExtraInfoUpdate\", function (roomID, streamList) {\n if (roomID === _this._expressConfig.roomID) {\n console.warn(\"streamExtraInfoUpdate\", streamList);\n _this.streamExtraInfoUpdateCallBack(streamList);\n }\n });\n }\n return [4 /*yield*/, new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var result, user;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ZegoCloudRTCCore._zg.on(\"roomStateUpdate\", function (roomID, state, errorCode, extendedData) {\n _this.onNetworkStatusCallBack &&\n _this.onNetworkStatusCallBack(roomID, \"ROOM\", state);\n if (state === \"CONNECTED\" || state === \"DISCONNECTED\") {\n _this.status.loginRsp = errorCode === 0;\n res(errorCode);\n }\n });\n return [4 /*yield*/, ZegoCloudRTCCore._zg.loginRoom(ZegoCloudRTCCore._instance._expressConfig.roomID, ZegoCloudRTCCore._instance._expressConfig.token, {\n userID: ZegoCloudRTCCore._instance._expressConfig.userID,\n userName: ZegoCloudRTCCore._instance._expressConfig.userName,\n }, {\n userUpdate: true,\n maxMemberCount: ZegoCloudRTCCore._instance._config.maxUsers,\n })];\n case 1:\n _a.sent();\n if (!this.zegoSuperBoard) return [3 /*break*/, 3];\n this.zegoSuperBoard.setToolType(1);\n this.zegoSuperBoard.setBrushColor(\"#333333\");\n this.zegoSuperBoard.setBrushSize(6);\n this.zegoSuperBoard.setFontItalic(false);\n this.zegoSuperBoard.setFontBold(false);\n this.zegoSuperBoard.setFontSize(24);\n return [4 /*yield*/, this.zegoSuperBoard.querySuperBoardSubViewList()];\n case 2:\n result = _a.sent();\n result.length > 0 &&\n (this.zegoSuperBoardView = this.zegoSuperBoard.getSuperBoardView());\n _a.label = 3;\n case 3:\n user = {\n userID: ZegoCloudRTCCore._instance._expressConfig.userID,\n userName: ZegoCloudRTCCore._instance._expressConfig.userName,\n setUserAvatar: function (avatar) {\n if (avatar && typeof avatar === \"string\") {\n _this._expressConfig.avatar = avatar;\n }\n },\n };\n this._config.onUserAvatarSetter &&\n this._config.onUserAvatarSetter([user]);\n // @ts-ignore 日志上报\n ZegoCloudRTCCore._zg.logger.error(\"zu.jr \" + JSON.stringify(this.originConfig));\n return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n resp = _b.sent();\n ZegoCloudRTCCore._zg.setSoundLevelDelegate(true, 300);\n this.streamUpdateTimer(this.waitingHandlerStreams);\n return [2 /*return*/, resp];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.streamUpdateTimer = function (_waitingHandlerStreams) {\n return __awaiter(this, void 0, void 0, function () {\n var _streamList, i, streamInfo, extraInfo, stream, error_2, i, streamInfo, nextWaitingHandlerStreams;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.status.loginRsp) {\n console.warn(\"【ZEGOCLOUD】logoutRoom,stop streamUpdateTimer\");\n return [2 /*return*/];\n }\n if (!(this._currentPage === \"Room\")) return [3 /*break*/, 15];\n _streamList = [];\n if (!(_waitingHandlerStreams.add.length > 0)) return [3 /*break*/, 9];\n i = 0;\n _a.label = 1;\n case 1:\n if (!(i < _waitingHandlerStreams.add.length)) return [3 /*break*/, 8];\n streamInfo = _waitingHandlerStreams.add[i];\n _a.label = 2;\n case 2:\n _a.trys.push([2, 6, , 7]);\n if (!this.isCDNLive) return [3 /*break*/, 3];\n if (!streamInfo.urlsFLV) {\n this.coreErrorCallback(_model__WEBPACK_IMPORTED_MODULE_2__.CoreError.notSupportCDNLive, \"urlsFLV is empty\");\n }\n extraInfo = JSON.parse(streamInfo.extraInfo);\n this.remoteStreamMap[streamInfo.streamID] = {\n fromUser: streamInfo.user,\n media: undefined,\n micStatus: extraInfo.isMicrophoneOn ? \"OPEN\" : \"MUTE\",\n cameraStatus: extraInfo.isCameraOn ? \"OPEN\" : \"MUTE\",\n state: \"PLAYING\",\n streamID: streamInfo.streamID,\n urlsHttpsFLV: (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.changeCDNUrlOrigin)(streamInfo.urlsHttpsFLV || streamInfo.urlsFLV),\n urlsHttpsHLS: (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.changeCDNUrlOrigin)(streamInfo.urlsHttpsHLS || streamInfo.urlsHLS),\n hasAudio: extraInfo.hasAudio,\n hasVideo: extraInfo.hasVideo,\n };\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, this.zum.startPullStream(streamInfo.user.userID, streamInfo.streamID)];\n case 4:\n stream = _a.sent();\n this.remoteStreamMap[streamInfo.streamID] = {\n fromUser: streamInfo.user,\n media: stream,\n micStatus: stream && stream.getAudioTracks().length > 0\n ? \"OPEN\"\n : \"MUTE\",\n cameraStatus: stream && stream.getVideoTracks().length > 0\n ? \"OPEN\"\n : \"MUTE\",\n state: \"PLAYING\",\n streamID: streamInfo.streamID,\n };\n _a.label = 5;\n case 5:\n _streamList.push(this.remoteStreamMap[streamInfo.streamID]);\n return [3 /*break*/, 7];\n case 6:\n error_2 = _a.sent();\n console.warn(\"【ZEGOCLOUD】startPlayingStream error:\", error_2);\n // 未开通L3服务\n if ((error_2 === null || error_2 === void 0 ? void 0 : error_2.errorCode) === 110438) {\n this.coreErrorCallback(_model__WEBPACK_IMPORTED_MODULE_2__.CoreError.notSupportStandardLive, error_2 === null || error_2 === void 0 ? void 0 : error_2.extendedData);\n }\n return [3 /*break*/, 7];\n case 7:\n i++;\n return [3 /*break*/, 1];\n case 8:\n this.onRemoteMediaUpdateCallBack &&\n _streamList.length > 0 &&\n this.onRemoteMediaUpdateCallBack(\"ADD\", _streamList);\n _a.label = 9;\n case 9:\n if (!(_waitingHandlerStreams.delete.length > 0)) return [3 /*break*/, 14];\n _streamList = [];\n i = 0;\n _a.label = 10;\n case 10:\n if (!(i < _waitingHandlerStreams.delete.length)) return [3 /*break*/, 13];\n streamInfo = _waitingHandlerStreams.delete[i];\n this.remoteStreamMap[streamInfo.streamID] &&\n _streamList.push(this.remoteStreamMap[streamInfo.streamID]);\n return [4 /*yield*/, this.zum.stopPullStream(streamInfo.user.userID, streamInfo.streamID)];\n case 11:\n _a.sent();\n delete this.remoteStreamMap[streamInfo.streamID];\n _a.label = 12;\n case 12:\n i++;\n return [3 /*break*/, 10];\n case 13:\n this.onRemoteMediaUpdateCallBack &&\n _streamList.length > 0 &&\n this.onRemoteMediaUpdateCallBack(\"DELETE\", _streamList);\n _a.label = 14;\n case 14:\n if (this.zegoSuperBoardView !== undefined) {\n this.subscribeWhiteBoardCallBack(this.zegoSuperBoardView);\n this.zegoSuperBoardView = undefined;\n }\n nextWaitingHandlerStreams = {\n add: this.waitingHandlerStreams.add.filter(function (realTime_item) {\n if (_waitingHandlerStreams.add.some(function (handing_item) { return handing_item.streamID === realTime_item.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n }),\n delete: this.waitingHandlerStreams.delete.filter(function (realTime_item) {\n if (_waitingHandlerStreams.delete.some(function (handing_item) { return handing_item.streamID === realTime_item.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n }),\n };\n this.waitingHandlerStreams = nextWaitingHandlerStreams;\n setTimeout(function () {\n _this.streamUpdateTimer(_this.waitingHandlerStreams);\n }, 700);\n return [3 /*break*/, 16];\n case 15:\n if (this._currentPage === \"BrowserCheckPage\" ||\n this._currentPage === \"RejoinRoom\") {\n setTimeout(function () {\n _this.streamUpdateTimer(_waitingHandlerStreams);\n }, 1000);\n }\n _a.label = 16;\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.publishLocalStream = function (media, streamType, extraInfo) {\n if (!media)\n return false;\n var streamID = (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.generateStreamID)(this._expressConfig.userID, this._expressConfig.roomID, streamType);\n var publishOption;\n if (extraInfo) {\n publishOption = {\n extraInfo: extraInfo,\n };\n }\n var res = ZegoCloudRTCCore._zg.startPublishingStream(streamID, media, __assign(__assign({}, publishOption), { videoCodec: this._config.videoCodec }));\n return res && streamID;\n };\n ZegoCloudRTCCore.prototype.replaceTrack = function (media, mediaStreamTrack) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.replaceTrack(media, mediaStreamTrack)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.subscribeUserList = function (callback) {\n this.subscribeUserListCallBack = callback;\n };\n ZegoCloudRTCCore.prototype.subscribeScreenStream = function (callback) {\n this.subscribeScreenStreamCallBack = callback;\n };\n ZegoCloudRTCCore.prototype.subscribeWhiteBoard = function (callback) {\n this.subscribeWhiteBoardCallBack = callback;\n };\n ZegoCloudRTCCore.prototype.onNetworkStatusQuality = function (func) {\n this.onNetworkStatusQualityCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onRemoteUserUpdate = function (func) {\n var _this = this;\n this.onRemoteUserUpdateCallBack = function (roomID, updateType, users) { return __awaiter(_this, void 0, void 0, function () {\n var newUserList;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this._currentPage === \"BrowserCheckPage\" ||\n this._currentPage === \"RejoinRoom\")) return [3 /*break*/, 1];\n setTimeout(function () {\n _this.onRemoteUserUpdateCallBack(roomID, updateType, users);\n }, 1000);\n return [3 /*break*/, 3];\n case 1:\n if (!(this._currentPage === \"Room\")) return [3 /*break*/, 3];\n // 本地数据管理\n return [4 /*yield*/, this.zum.userUpdate(roomID, updateType, users)];\n case 2:\n // 本地数据管理\n _a.sent();\n // 人员进出通知\n func(roomID, updateType, users, this.zum.remoteUserList);\n newUserList = users.map(function (user) {\n user.setUserAvatar = function (avatar) {\n if (avatar && typeof avatar === \"string\") {\n _this.zum.updateUserInfo(user.userID, \"avatar\", avatar);\n }\n };\n return user;\n });\n if (updateType === \"ADD\") {\n this._config.onUserAvatarSetter &&\n this._config.onUserAvatarSetter(newUserList);\n this._config.onUserJoin && this._config.onUserJoin(users);\n }\n else {\n this._config.onUserLeave && this._config.onUserLeave(users);\n }\n // 页面渲染\n setTimeout(function () {\n console.warn(\"【ZEGOCLOUD】roomUserUpdate\", __spreadArray([], _this.zum.remoteUserList, true), __spreadArray([], _this.zum.remoteUserList, true).length);\n _this.subscribeUserListCallBack &&\n _this.subscribeUserListCallBack(__spreadArray([], _this.zum.remoteUserList, true));\n }, 0);\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n };\n ZegoCloudRTCCore.prototype.onSoundLevelUpdate = function (func) {\n this.onSoundLevelUpdateCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onRoomLiveStateUpdate = function (func) {\n this.onRoomLiveStateUpdateCallBack = func;\n };\n ZegoCloudRTCCore.prototype.sendRoomMessage = function (message) {\n return ZegoCloudRTCCore._zg.sendBroadcastMessage(ZegoCloudRTCCore._instance._expressConfig.roomID, message);\n };\n ZegoCloudRTCCore.prototype.onRoomMessageUpdate = function (func) {\n this.onRoomMessageUpdateCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onScreenSharingEnded = function (func) {\n this.onScreenSharingEndedCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onNetworkStatus = function (func) {\n var _this = this;\n this.onNetworkStatusCallBack = function (roomID, type, status) {\n if (status === \"CONNECTING\") {\n !_this.NetworkStatusTimer &&\n (_this.NetworkStatusTimer = setTimeout(function () {\n func(roomID, type, \"DISCONNECTED\");\n }, 60000));\n }\n else {\n if (_this.NetworkStatusTimer) {\n clearTimeout(_this.NetworkStatusTimer);\n _this.NetworkStatusTimer = null;\n }\n }\n func(roomID, type, status);\n };\n };\n ZegoCloudRTCCore.prototype.streamExtraInfoUpdateCallBack = function (streamList) {\n var _this = this;\n // 流附加消息解析\n streamList.forEach(function (stream) {\n var extraInfo = JSON.parse(stream.extraInfo);\n console.warn(\"extraInfo\", extraInfo);\n if (extraInfo.isCameraOn !== undefined) {\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"cameraStatus\", extraInfo.isCameraOn ? \"OPEN\" : \"MUTE\");\n }\n if (extraInfo.isMicrophoneOn !== undefined) {\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"micStatus\", extraInfo.isMicrophoneOn ? \"OPEN\" : \"MUTE\");\n }\n extraInfo.hasVideo !== undefined &&\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"hasVideo\", !!extraInfo.hasVideo);\n extraInfo.hasAudio !== undefined &&\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"hasAudio\", !!extraInfo.hasAudio);\n });\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n this.subscribeScreenStreamCallBack &&\n this.subscribeScreenStreamCallBack(__spreadArray([], this.zum.remoteScreenStreamList, true));\n };\n ZegoCloudRTCCore.prototype.onCoreError = function (func) {\n this.coreErrorCallback = func;\n };\n ZegoCloudRTCCore.prototype.leaveRoom = function () {\n var _this = this;\n if (!this.status.loginRsp)\n return;\n ZegoCloudRTCCore._zg.off(\"streamExtraInfoUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomExtraInfoUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomStreamUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteCameraStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteMicStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"playerStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomUserUpdate\");\n ZegoCloudRTCCore._zg.off(\"IMRecvBroadcastMessage\");\n ZegoCloudRTCCore._zg.off(\"roomStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publisherStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publishQualityUpdate\");\n ZegoCloudRTCCore._zg.off(\"soundLevelUpdate\");\n ZegoCloudRTCCore._zg.off(\"screenSharingEnded\");\n ZegoCloudRTCCore._zg.off(\"IMRecvCustomCommand\");\n ZegoCloudRTCCore._zg.setSoundLevelDelegate(false);\n this.onNetworkStatusCallBack = function () { };\n this.onRemoteMediaUpdateCallBack = function (updateType, streamList) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.mainStreamUpdate(updateType, streamList)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.zum.screenStreamUpdate(updateType, streamList)];\n case 2:\n _a.sent();\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n this.subscribeScreenStreamCallBack &&\n this.subscribeScreenStreamCallBack(__spreadArray([], this.zum.remoteScreenStreamList, true));\n return [2 /*return*/];\n }\n });\n }); };\n this.onRemoteUserUpdateCallBack = function () { };\n this.onRoomMessageUpdateCallBack = function () { };\n this.onRoomLiveStateUpdateCallBack = function () { };\n this.subscribeUserListCallBack = function () { };\n this.zum.reset();\n for (var key in this.remoteStreamMap) {\n ZegoCloudRTCCore._zg.stopPlayingStream(key);\n }\n this.remoteStreamMap = {};\n this.waitingHandlerStreams = { add: [], delete: [] };\n ZegoCloudRTCCore._zg.logoutRoom();\n this.status.loginRsp = false;\n };\n ZegoCloudRTCCore.prototype.setStreamExtraInfo = function (streamID, extraInfo) {\n return ZegoCloudRTCCore._zg.setStreamExtraInfo(streamID, extraInfo);\n };\n ZegoCloudRTCCore.prototype.initZIM = function (ZIM) {\n var _this = this;\n if (this._zimManager)\n return;\n this._zimManager = new _tools_ZimManager__WEBPACK_IMPORTED_MODULE_4__.ZimManager(ZIM, this._expressConfig);\n // 更新roomID\n this._zimManager.onUpdateRoomID(function (roomID) {\n _this._expressConfig.roomID = roomID;\n });\n };\n // 发送房间自定义消息\n ZegoCloudRTCCore.prototype.sendInRoomCommand = function (message, userID) {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, ZegoCloudRTCCore._zg.sendCustomCommand(this._expressConfig.roomID, message, this.zum.remoteUserList.length > 500 ? [] : [userID])];\n case 1:\n res = _a.sent();\n if (res.errorCode === 0) {\n return [2 /*return*/, true];\n }\n else {\n console.error(\"【ZEGOCLOUD】sendInRoomCommand error:\", res.errorCode);\n return [2 /*return*/, false];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n // 踢人\n ZegoCloudRTCCore.prototype.removeMember = function (userID) {\n this.sendInRoomCommand(JSON.stringify({ zego_remove_user: [userID] }), userID);\n };\n //关闭摄像头麦克风\n ZegoCloudRTCCore.prototype.turnRemoteCameraOff = function (userID) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.sendInRoomCommand(JSON.stringify({ zego_turn_camera_off: userID }), userID)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.turnRemoteMicrophoneOff = function (userID) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.sendInRoomCommand(JSON.stringify({ zego_turn_microphone_off: userID }), userID)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.onKickedOutRoom = function (func) {\n func && (this.onKickedOutRoomCallback = func);\n };\n ZegoCloudRTCCore.prototype.onChangeYourDeviceStatus = function (func) {\n func && (this.onChangeYourDeviceStatusCallback = func);\n };\n return ZegoCloudRTCCore;\n}());\n\n\n\n//# sourceURL=webpack://zegocloud_client_sdk_web/./src/sdk/modules/index.ts?");
|
|
2116
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ZegoCloudRTCCore\": function() { return /* binding */ ZegoCloudRTCCore; }\n/* harmony export */ });\n/* harmony import */ var _tools_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tools/util */ \"./src/sdk/modules/tools/util.ts\");\n/* harmony import */ var zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zego-express-engine-webrtc */ \"./node_modules/zego-express-engine-webrtc/ZegoExpressWebRTC.js\");\n/* harmony import */ var zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../model */ \"./src/sdk/model/index.ts\");\n/* harmony import */ var _tools_UserListManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tools/UserListManager */ \"./src/sdk/modules/tools/UserListManager.ts\");\n/* harmony import */ var _tools_ZimManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tools/ZimManager */ \"./src/sdk/modules/tools/ZimManager.ts\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\n\n\n\nvar ZegoCloudRTCCore = /** @class */ (function () {\n function ZegoCloudRTCCore() {\n var _this = this;\n this._zimManager = null;\n this.zegoSuperBoardView = undefined;\n this.status = {\n loginRsp: false,\n videoRefuse: undefined,\n audioRefuse: undefined,\n };\n this.remoteStreamMap = {};\n this.waitingHandlerStreams = { add: [], delete: [] };\n this._config = {\n // @ts-ignore\n container: undefined,\n preJoinViewConfig: {\n title: \"Join Room\",\n invitationLink: window.location.href, // 邀请链接,空则不显示,默认空\n },\n showPreJoinView: true,\n turnOnMicrophoneWhenJoining: true,\n turnOnCameraWhenJoining: true,\n showMyCameraToggleButton: true,\n showMyMicrophoneToggleButton: true,\n showAudioVideoSettingsButton: true,\n showTextChat: true,\n showUserList: true,\n lowerLeftNotification: {\n showUserJoinAndLeave: true,\n showTextChat: true, // 是否显示未读消息,默认显示\n },\n branding: {\n logoURL: \"\",\n },\n showLeavingView: true,\n maxUsers: 0,\n layout: \"Auto\",\n showNonVideoUser: true,\n showOnlyAudioUser: false,\n useFrontFacingCamera: true,\n onJoinRoom: function () { },\n onLeaveRoom: function () { },\n onUserJoin: function (user) { },\n onUserLeave: function (user) { },\n onUserAvatarSetter: function (user) { },\n sharedLinks: [],\n showScreenSharingButton: true,\n scenario: {\n mode: _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.OneONoneCall,\n config: { role: _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host, liveStreamingMode: undefined }, // 对应场景专有配置\n },\n facingMode: \"user\",\n joinRoomCallback: function () { },\n leaveRoomCallback: function () { },\n userUpdateCallback: function () { },\n showLayoutButton: true,\n showPinButton: true,\n whiteboardConfig: {\n showAddImageButton: false,\n showCreateAndCloseButton: true,\n },\n videoResolutionList: [],\n plugins: {},\n autoLeaveRoomWhenOnlySelfInRoom: false,\n showRoomTimer: false,\n videoCodec: \"H264\", //视频编解码器\n };\n this._currentPage = \"BrowserCheckPage\";\n this.extraInfoKey = \"extra_info\";\n this._roomExtraInfo = {\n live_status: \"0\",\n };\n this.NetworkStatusTimer = null;\n this.hostSetterTimer = null;\n this._originConfig = {};\n this.onRemoteMediaUpdateCallBack = function (updateType, streamList) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.mainStreamUpdate(updateType, streamList)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.zum.screenStreamUpdate(updateType, streamList)];\n case 2:\n _a.sent();\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n this.subscribeScreenStreamCallBack &&\n this.subscribeScreenStreamCallBack(__spreadArray([], this.zum.remoteScreenStreamList, true));\n return [2 /*return*/];\n }\n });\n }); };\n }\n // static _soundMeter: SoundMeter;\n ZegoCloudRTCCore.getInstance = function (kitToken) {\n var config = (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.getConfig)(kitToken);\n if (!ZegoCloudRTCCore._instance && config) {\n ZegoCloudRTCCore._instance = new ZegoCloudRTCCore();\n ZegoCloudRTCCore._instance._expressConfig = config;\n // ZegoCloudRTCCore._soundMeter = new SoundMeter();\n ZegoCloudRTCCore._zg = new zego_express_engine_webrtc__WEBPACK_IMPORTED_MODULE_1__.ZegoExpressEngine(ZegoCloudRTCCore._instance._expressConfig.appID, \"wss://webliveroom\" +\n ZegoCloudRTCCore._instance._expressConfig.appID +\n \"-api.zegocloud.com/ws\");\n ZegoCloudRTCCore._instance.zum = new _tools_UserListManager__WEBPACK_IMPORTED_MODULE_3__.ZegoCloudUserListManager(ZegoCloudRTCCore._zg);\n }\n return ZegoCloudRTCCore._instance;\n };\n Object.defineProperty(ZegoCloudRTCCore.prototype, \"isCDNLive\", {\n get: function () {\n var _a, _b;\n return (((_a = this._config.scenario) === null || _a === void 0 ? void 0 : _a.mode) === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.LiveStreaming &&\n ((_b = this._config.scenario.config) === null || _b === void 0 ? void 0 : _b.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience &&\n this._config.scenario.config.liveStreamingMode ===\n _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.LiveStreaming);\n },\n enumerable: false,\n configurable: true\n });\n ZegoCloudRTCCore.prototype.addPlugins = function (plugins) {\n this._config.plugins = plugins;\n if (plugins.ZIM && this._expressConfig.token) {\n this.initZIM(plugins.ZIM);\n }\n };\n Object.defineProperty(ZegoCloudRTCCore.prototype, \"originConfig\", {\n get: function () {\n return this._originConfig;\n },\n set: function (config) {\n var _a;\n if (config.container) {\n this._originConfig[\"cw\"] =\n config.container.clientWidth / document.body.clientWidth;\n this._originConfig[\"ch\"] =\n config.container.clientHeight / document.body.clientHeight;\n }\n if (config.showPreJoinView !== undefined) {\n this._originConfig[\"spj\"] = config.showPreJoinView ? 1 : 0;\n }\n if (config.turnOnMicrophoneWhenJoining !== undefined) {\n this._originConfig[\"tmwj\"] = config.turnOnMicrophoneWhenJoining ? 1 : 0;\n }\n if (config.turnOnCameraWhenJoining !== undefined) {\n this._originConfig[\"tcwj\"] = config.turnOnCameraWhenJoining ? 1 : 0;\n }\n if (config.showMyMicrophoneToggleButton !== undefined) {\n this._originConfig[\"smtb\"] = config.showMyMicrophoneToggleButton ? 1 : 0;\n }\n if (config.showMyCameraToggleButton !== undefined) {\n this._originConfig[\"sctb\"] = config.showMyCameraToggleButton ? 1 : 0;\n }\n if (config.showAudioVideoSettingsButton !== undefined) {\n this._originConfig[\"savsb\"] = config.showAudioVideoSettingsButton ? 1 : 0;\n }\n if (config.showTextChat !== undefined) {\n this._originConfig[\"stc\"] = config.showTextChat ? 1 : 0;\n }\n if (config.showUserList !== undefined) {\n this._originConfig[\"sul\"] = config.showUserList ? 1 : 0;\n }\n if (config.showLeavingView !== undefined) {\n this._originConfig[\"slv\"] = config.showLeavingView ? 1 : 0;\n }\n if (config.maxUsers !== undefined) {\n this._originConfig[\"mu\"] = config.maxUsers ? 1 : 0;\n }\n if (config.layout !== undefined) {\n this._originConfig[\"lo\"] = config.layout;\n }\n if (config.showScreenSharingButton !== undefined) {\n this._originConfig[\"sssb\"] = config.showScreenSharingButton ? 1 : 0;\n }\n if (this._config.plugins.ZegoSuperBoardManager !== undefined) {\n this._originConfig[\"swbb\"] = 1;\n }\n if (this._config.plugins.ZIM !== undefined) {\n this._originConfig[\"uc\"] = 1;\n }\n if (((_a = config.scenario) === null || _a === void 0 ? void 0 : _a.mode) !== undefined) {\n this._originConfig[\"sm\"] = config.scenario.mode;\n }\n if (config.lowerLeftNotification !== undefined) {\n this._originConfig[\"lln\"] = config.lowerLeftNotification ? 1 : 0;\n }\n if (config.showNonVideoUser !== undefined) {\n this._originConfig[\"snvu\"] = config.showNonVideoUser ? 1 : 0;\n }\n if (config.showOnlyAudioUser !== undefined) {\n this._originConfig[\"snau\"] = config.showOnlyAudioUser ? 1 : 0;\n }\n if (config.onJoinRoom !== undefined) {\n this._originConfig[\"ojr\"] = 1;\n }\n if (config.onLeaveRoom !== undefined) {\n this._originConfig[\"olr\"] = 1;\n }\n if (config.onLiveStart !== undefined) {\n this._originConfig[\"ols\"] = 1;\n }\n if (config.onLiveEnd !== undefined) {\n this._originConfig[\"ole\"] = 1;\n }\n this._originConfig[\"url\"] =\n window.location.origin + window.location.pathname;\n },\n enumerable: false,\n configurable: true\n });\n ZegoCloudRTCCore.prototype.setConfig = function (config) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n this.originConfig = __assign({}, config);\n if (config.scenario &&\n config.scenario.mode === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.LiveStreaming) {\n if (config.showNonVideoUser === true) {\n console.error(\"【ZEGOCLOUD】 showNonVideoUser have be false scenario.mode is LiveStreaming!!\");\n return false;\n }\n config.videoCodec = \"H264\";\n config.showNonVideoUser = false;\n config.showOnlyAudioUser = true;\n config.autoLeaveRoomWhenOnlySelfInRoom = false;\n if (config.scenario.config &&\n config.scenario.config.role === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host) {\n if (config.turnOnMicrophoneWhenJoining === false &&\n config.turnOnCameraWhenJoining === false &&\n config.showMyCameraToggleButton === false &&\n config.showAudioVideoSettingsButton === false) {\n console.error(\"【ZEGOCLOUD】 Host could turn on at least one of the camera and the microphone!!\");\n return false;\n }\n }\n else if (config.scenario.config &&\n config.scenario.config.role === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience) {\n if (config.turnOnMicrophoneWhenJoining === true ||\n config.turnOnCameraWhenJoining === true ||\n config.showMyCameraToggleButton === true ||\n config.showMyMicrophoneToggleButton === true ||\n config.showAudioVideoSettingsButton === true ||\n config.showScreenSharingButton === true ||\n config.useFrontFacingCamera === true ||\n (!!config.layout && config.layout !== \"Grid\")) {\n console.error(\"【ZEGOCLOUD】 Audience cannot configure camera and microphone related params\");\n return false;\n }\n }\n if (!config.maxUsers) {\n config.maxUsers = 0;\n }\n if (config.scenario.config &&\n config.scenario.config.role === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience) {\n config.turnOnMicrophoneWhenJoining = false;\n config.turnOnCameraWhenJoining = false;\n config.showMyCameraToggleButton = false;\n config.showMyMicrophoneToggleButton = false;\n config.showAudioVideoSettingsButton = false;\n config.showScreenSharingButton = false;\n config.useFrontFacingCamera = false;\n config.useFrontFacingCamera = false;\n config.showUserList =\n config.showUserList === undefined ? false : config.showUserList;\n config.showPinButton = false;\n config.showLayoutButton = false;\n config.layout = \"Grid\";\n config.lowerLeftNotification = {\n showTextChat: false,\n showUserJoinAndLeave: false,\n };\n }\n }\n if (config.scenario &&\n config.scenario.mode === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.OneONoneCall) {\n if (!config.maxUsers) {\n config.maxUsers = 0;\n }\n config.showLayoutButton = false;\n config.showPinButton = false;\n config.showTurnOffRemoteCameraButton = false;\n config.showTurnOffRemoteMicrophoneButton = false;\n config.showRemoveUserButton = false;\n }\n if (config.scenario && config.scenario.mode === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.GroupCall) {\n if (!config.maxUsers) {\n config.maxUsers = 0;\n }\n }\n if (config.scenario &&\n ((_b = (_a = config.scenario) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Audience) {\n config.showPinButton = false;\n config.showTurnOffRemoteCameraButton = false;\n config.showTurnOffRemoteMicrophoneButton = false;\n config.showRemoveUserButton = false;\n }\n if (((_d = (_c = config === null || config === void 0 ? void 0 : config.scenario) === null || _c === void 0 ? void 0 : _c.config) === null || _d === void 0 ? void 0 : _d.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Cohost) {\n config.showRemoveUserButton = false;\n }\n config.facingMode &&\n (config.useFrontFacingCamera = config.facingMode === \"user\");\n config.joinRoomCallback && (config.onJoinRoom = config.joinRoomCallback);\n config.leaveRoomCallback && (config.onLeaveRoom = config.leaveRoomCallback);\n if (config.userUpdateCallback) {\n config.onUserJoin = function (users) {\n config.userUpdateCallback && config.userUpdateCallback(\"ADD\", users);\n };\n config.onUserLeave = function (users) {\n config.userUpdateCallback && config.userUpdateCallback(\"DELETE\", users);\n };\n }\n if (config.preJoinViewConfig && config.preJoinViewConfig.invitationLink) {\n config.sharedLinks = [\n {\n name: \"Share the link\",\n url: config.preJoinViewConfig.invitationLink,\n },\n ];\n }\n if (config.videoResolutionDefault) {\n if (!config.videoResolutionList) {\n config.videoResolutionList = [];\n }\n (_e = config.videoResolutionList) === null || _e === void 0 ? void 0 : _e.unshift(config.videoResolutionDefault);\n }\n if (config.videoResolutionList && config.videoResolutionList.length > 0) {\n var list = Array.from(new Set(config.videoResolutionList)).filter(function (s) {\n return (s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._180P ||\n s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._360P ||\n s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._480P ||\n s === _model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._720P);\n });\n config.videoResolutionList =\n list.length > 0 ? list : [_model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._360P];\n }\n else {\n config.videoResolutionList = [_model__WEBPACK_IMPORTED_MODULE_2__.VideoResolution._360P];\n }\n config.preJoinViewConfig &&\n (config.preJoinViewConfig = __assign(__assign({}, this._config.preJoinViewConfig), config.preJoinViewConfig));\n config.scenario &&\n // @ts-ignore\n (config.scenario.config = __assign(__assign({}, (_f = this._config.scenario) === null || _f === void 0 ? void 0 : _f.config), (config.scenario.config || {})));\n config.whiteboardConfig &&\n (config.whiteboardConfig = __assign(__assign({}, this._config.whiteboardConfig), config.whiteboardConfig));\n this._config = __assign(__assign({}, this._config), config);\n this.zum.scenario =\n ((_g = this._config.scenario) === null || _g === void 0 ? void 0 : _g.mode) || _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.OneONoneCall;\n this.zum.role = ((_j = (_h = this._config.scenario) === null || _h === void 0 ? void 0 : _h.config) === null || _j === void 0 ? void 0 : _j.role) || _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host;\n this.zum.liveStreamingMode = this.getLiveStreamingMode((_l = (_k = this._config.scenario) === null || _k === void 0 ? void 0 : _k.config) === null || _l === void 0 ? void 0 : _l.liveStreamingMode);\n this.zum.showOnlyAudioUser = !!this._config.showOnlyAudioUser;\n this.zum.setShowNonVideo(!!this._config.showNonVideoUser);\n if (!this._config.turnOnCameraWhenJoining &&\n !this._config.showMyCameraToggleButton) {\n this.status.videoRefuse = true;\n }\n if (config.console) {\n var logLevel = \"debug\";\n if (config.console === \"Info\") {\n logLevel = \"warn\";\n }\n else if (config.console === \"Warning\") {\n logLevel = \"warn\";\n }\n else if (config.console === \"Error\") {\n logLevel = \"warn\";\n }\n else if (config.console === \"None\") {\n logLevel = \"disable\";\n }\n ZegoCloudRTCCore._zg.setLogConfig({\n logLevel: logLevel,\n });\n }\n return true;\n };\n // 兼容处理LiveStreamingMode\n ZegoCloudRTCCore.prototype.getLiveStreamingMode = function (mode) {\n if (mode === \"StandardLive\" || mode === \"LiveStreaming\")\n return _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.LiveStreaming;\n if (mode === \"PremiumLive\" || mode === \"InteractiveLiveStreaming\")\n return _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.InteractiveLiveStreaming;\n return _model__WEBPACK_IMPORTED_MODULE_2__.LiveStreamingMode.RealTimeLive;\n };\n ZegoCloudRTCCore.prototype.checkWebRTC = function () {\n return __awaiter(this, void 0, void 0, function () {\n var webRTC, H264, VP8;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.isCDNLive) return [3 /*break*/, 6];\n return [4 /*yield*/, ZegoCloudRTCCore._zg.checkSystemRequirements(\"webRTC\")];\n case 1:\n webRTC = _a.sent();\n if (!(this._config.videoCodec === \"H264\")) return [3 /*break*/, 3];\n return [4 /*yield*/, ZegoCloudRTCCore._zg.checkSystemRequirements(\"H264\")];\n case 2:\n H264 = _a.sent();\n return [2 /*return*/, !!webRTC.result && !!H264.result];\n case 3:\n if (!(this._config.videoCodec === \"VP8\")) return [3 /*break*/, 5];\n return [4 /*yield*/, ZegoCloudRTCCore._zg.checkSystemRequirements(\"VP8\")];\n case 4:\n VP8 = _a.sent();\n return [2 /*return*/, !!webRTC.result && !!VP8.result];\n case 5: return [2 /*return*/, !!webRTC.result];\n case 6: return [2 /*return*/, true];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setPin = function (userID, pined, stopUpdateUser) {\n this.zum.setPin(userID, pined);\n if (!stopUpdateUser) {\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n }\n };\n ZegoCloudRTCCore.prototype.setMaxScreenNum = function (num, stopUpdateUser) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.setMaxScreenNum(num)];\n case 1:\n _a.sent();\n if (!stopUpdateUser) {\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n }\n return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setSidebarLayOut = function (enable, stopUpdateUser) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.setSidebarLayOut(enable)];\n case 1:\n _a.sent();\n if (!stopUpdateUser) {\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n }\n return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setShowNonVideo = function (enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.setShowNonVideo(enable)];\n case 1:\n _a.sent();\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setCurrentPage = function (page) {\n this._currentPage = page;\n };\n ZegoCloudRTCCore.prototype.getCameras = function () {\n return ZegoCloudRTCCore._zg.getCameras();\n };\n ZegoCloudRTCCore.prototype.useVideoDevice = function (localStream, deviceID) {\n return ZegoCloudRTCCore._zg.useVideoDevice(localStream, deviceID);\n };\n ZegoCloudRTCCore.prototype.getMicrophones = function () {\n return ZegoCloudRTCCore._zg.getMicrophones();\n };\n ZegoCloudRTCCore.prototype.getSpeakers = function () {\n return ZegoCloudRTCCore._zg.getSpeakers();\n };\n ZegoCloudRTCCore.prototype.setVolume = function (media, volume) {\n media.volume = volume;\n };\n ZegoCloudRTCCore.prototype.createStream = function (source) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.createStream(source)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.createAndPublishWhiteboard = function (parentDom, name) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.zegoSuperBoard.setToolType(1);\n this.zegoSuperBoard.setBrushColor(\"#333333\");\n this.zegoSuperBoard.setBrushSize(6);\n this.zegoSuperBoard.setFontItalic(false);\n this.zegoSuperBoard.setFontBold(false);\n this.zegoSuperBoard.setFontSize(24);\n return [4 /*yield*/, this.zegoSuperBoard.createWhiteboardView({\n name: name,\n perPageWidth: 1480.3,\n perPageHeight: 758.5,\n pageCount: 5, // 白板页数\n })];\n case 1:\n _a.sent();\n // this.zegoSuperBoard.setBrushColor(\"#F64326\"); not working to set default color\n return [2 /*return*/, this.zegoSuperBoard.getSuperBoardView()];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.setWhiteboardToolType = function (type, fontSize, color) {\n return __awaiter(this, void 0, void 0, function () {\n var zegoSuperBoardSubView;\n return __generator(this, function (_a) {\n if (type === 512) {\n zegoSuperBoardSubView = this.zegoSuperBoard\n .getSuperBoardView()\n .getCurrentSuperBoardSubView();\n zegoSuperBoardSubView && zegoSuperBoardSubView.clearCurrentPage();\n }\n else {\n this.zegoSuperBoard.setToolType(type);\n if ([1, 4, 8, 16].includes(type)) {\n fontSize && this.zegoSuperBoard.setBrushSize(fontSize);\n color && this.zegoSuperBoard.setBrushColor(color);\n }\n }\n return [2 /*return*/];\n });\n });\n };\n ZegoCloudRTCCore.prototype.setWhiteboardFont = function (font, fontSize, color) {\n if (font === \"BOLD\") {\n this.zegoSuperBoard.setFontBold(true);\n }\n else if (font === \"NO_BOLD\") {\n this.zegoSuperBoard.setFontBold(false);\n }\n else if (font === \"ITALIC\") {\n this.zegoSuperBoard.setFontItalic(true);\n }\n else if (font === \"NO_ITALIC\") {\n this.zegoSuperBoard.setFontItalic(false);\n }\n fontSize && this.zegoSuperBoard.setFontSize(fontSize);\n color && this.zegoSuperBoard.setBrushColor(color);\n };\n ZegoCloudRTCCore.prototype.setVideoConfig = function (media, constraints) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.setVideoConfig(media, constraints)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.stopPublishingStream = function (streamID) {\n return ZegoCloudRTCCore._zg.stopPublishingStream(streamID);\n };\n ZegoCloudRTCCore.prototype.destroyStream = function (stream) {\n ZegoCloudRTCCore._zg.destroyStream(stream);\n };\n ZegoCloudRTCCore.prototype.destroyAndStopPublishWhiteboard = function () {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var uniqueID, result, i;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n uniqueID = (_b = (_a = this.zegoSuperBoard\n .getSuperBoardView()) === null || _a === void 0 ? void 0 : _a.getCurrentSuperBoardSubView()) === null || _b === void 0 ? void 0 : _b.getModel().uniqueID;\n if (uniqueID) {\n this.zegoSuperBoard.destroySuperBoardSubView(uniqueID);\n }\n return [4 /*yield*/, this.zegoSuperBoard.querySuperBoardSubViewList()];\n case 1:\n result = _c.sent();\n i = 0;\n _c.label = 2;\n case 2:\n if (!(i < result.length)) return [3 /*break*/, 5];\n return [4 /*yield*/, this.zegoSuperBoard.destroySuperBoardSubView(result[i].uniqueID)];\n case 3:\n _c.sent();\n _c.label = 4;\n case 4:\n i++;\n return [3 /*break*/, 2];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.useCameraDevice = function (media, deviceID) {\n return ZegoCloudRTCCore._zg.useVideoDevice(media, deviceID);\n };\n ZegoCloudRTCCore.prototype.useMicrophoneDevice = function (media, deviceID) {\n return ZegoCloudRTCCore._zg.useAudioDevice(media, deviceID);\n };\n ZegoCloudRTCCore.prototype.useSpeakerDevice = function (media, deviceID) {\n return __awaiter(this, void 0, void 0, function () {\n var res, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!media.srcObject) {\n return [2 /*return*/, Promise.resolve({ errorCode: -1 })];\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, ZegoCloudRTCCore._zg.useAudioOutputDevice(media, deviceID)];\n case 2:\n res = _a.sent();\n return [2 /*return*/, { errorCode: res ? 0 : -1 }];\n case 3:\n error_1 = _a.sent();\n return [2 /*return*/, { errorCode: -1 }];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.enableVideoCaptureDevice = function (localStream, enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.enableVideoCaptureDevice(localStream, enable)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.mutePublishStreamVideo = function (localStream, enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.mutePublishStreamVideo(localStream, enable)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.mutePublishStreamAudio = function (localStream, enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.mutePublishStreamAudio(localStream, enable)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.muteMicrophone = function (enable) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.muteMicrophone(enable)];\n });\n });\n };\n Object.defineProperty(ZegoCloudRTCCore.prototype, \"roomExtraInfo\", {\n get: function () {\n return this._roomExtraInfo;\n },\n set: function (value) {\n var _this = this;\n var _a, _b;\n if (this._currentPage === \"Room\") {\n this._roomExtraInfo = value;\n this.zum.setLiveStates(this._roomExtraInfo.live_status);\n if (this._config.onLiveStart && this._roomExtraInfo.live_status === \"1\") {\n this._config.onLiveStart({\n userID: this._expressConfig.userID,\n userName: this._expressConfig.userID,\n });\n }\n else if (this._config.onLiveEnd &&\n this._roomExtraInfo.live_status === \"0\") {\n this._config.onLiveEnd({\n userID: this._expressConfig.userID,\n userName: this._expressConfig.userID,\n });\n }\n this.onRoomLiveStateUpdateCallBack &&\n this.onRoomLiveStateUpdateCallBack(this._roomExtraInfo.live_status);\n // 直播时设置房间属性host\n if (this.hostSetterTimer) {\n clearTimeout(this.hostSetterTimer);\n this.hostSetterTimer = null;\n }\n if (((_a = this._config.scenario) === null || _a === void 0 ? void 0 : _a.mode) === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.LiveStreaming &&\n ((_b = this._config.scenario.config) === null || _b === void 0 ? void 0 : _b.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host &&\n !this._roomExtraInfo.host) {\n var setRoomExtraInfo = __assign(__assign({}, this._roomExtraInfo), {\n host: this._expressConfig.userID,\n });\n ZegoCloudRTCCore._zg.setRoomExtraInfo(ZegoCloudRTCCore._instance._expressConfig.roomID, \"extra_info\", JSON.stringify(setRoomExtraInfo));\n this._roomExtraInfo = setRoomExtraInfo;\n }\n }\n else if (this._currentPage === \"BrowserCheckPage\" ||\n this._currentPage === \"RejoinRoom\") {\n setTimeout(function () {\n _this.roomExtraInfo = value;\n }, 1000);\n }\n },\n enumerable: false,\n configurable: true\n });\n ZegoCloudRTCCore.prototype.setLive = function (status) {\n return __awaiter(this, void 0, void 0, function () {\n var setRoomExtraInfo, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n setRoomExtraInfo = __assign(__assign({}, this._roomExtraInfo), {\n live_status: status === \"live\" ? \"1\" : \"0\",\n });\n return [4 /*yield*/, ZegoCloudRTCCore._zg.setRoomExtraInfo(ZegoCloudRTCCore._instance._expressConfig.roomID, \"extra_info\", JSON.stringify(setRoomExtraInfo))];\n case 1:\n res = _a.sent();\n res.errorCode === 0 && (this.roomExtraInfo = setRoomExtraInfo);\n return [2 /*return*/, res.errorCode === 0];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.enterRoom = function () {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // 已经登陆过不再登录\n if (this.status.loginRsp)\n return [2 /*return*/, Promise.resolve(0)];\n if ((_a = this._config.plugins) === null || _a === void 0 ? void 0 : _a.ZegoSuperBoardManager) {\n this.zegoSuperBoard =\n this._config.plugins.ZegoSuperBoardManager.getInstance();\n this.zegoSuperBoard.init(ZegoCloudRTCCore._zg, {\n isTestEnv: false,\n parentDomID: \"ZegoCloudWhiteboardContainer\",\n appID: this._expressConfig.appID,\n userID: this._expressConfig.userID,\n token: this._expressConfig.token, // 登录房间需要用于验证身份的 Token\n });\n this.zegoSuperBoard.setWhiteboardBackgroundColor(\"#ffffff\");\n }\n ZegoCloudRTCCore._zg.off(\"roomExtraInfoUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomStreamUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteCameraStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteMicStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"playerStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomUserUpdate\");\n ZegoCloudRTCCore._zg.off(\"IMRecvBroadcastMessage\");\n ZegoCloudRTCCore._zg.off(\"roomStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publisherStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publishQualityUpdate\");\n ZegoCloudRTCCore._zg.off(\"soundLevelUpdate\");\n ZegoCloudRTCCore._zg.off(\"IMRecvCustomCommand\");\n if (this.zegoSuperBoard) {\n // 监听远端新增白板\n this.zegoSuperBoard.off(\"remoteSuperBoardSubViewAdded\");\n // 监听远端销毁白板\n this.zegoSuperBoard.off(\"remoteSuperBoardSubViewRemoved\");\n }\n ZegoCloudRTCCore._zg.on(\"roomStreamUpdate\", function (roomID, updateType, streamList, extendedData) { return __awaiter(_this, void 0, void 0, function () {\n var willDelete_1;\n return __generator(this, function (_a) {\n if (updateType === \"ADD\") {\n this.waitingHandlerStreams.add = __spreadArray(__spreadArray([], this.waitingHandlerStreams.add, true), streamList, true);\n this.waitingHandlerStreams.delete =\n this.waitingHandlerStreams.delete.filter(function (stream) {\n if (streamList.some(function (add_stream) { return add_stream.streamID === stream.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n });\n }\n else {\n willDelete_1 = [];\n // 新增流中,删除下线的流\n this.waitingHandlerStreams.add =\n this.waitingHandlerStreams.add.filter(function (stream) {\n if (streamList.some(function (delete_stream) {\n if (delete_stream.streamID === stream.streamID) {\n willDelete_1.push(delete_stream.streamID);\n return true;\n }\n else {\n return false;\n }\n })) {\n return false;\n }\n else {\n return true;\n }\n });\n // 删除流中,去除上次要新增的\n streamList = streamList.filter(function (s) {\n if (willDelete_1.some(function (wd) { return wd === s.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n });\n this.waitingHandlerStreams.delete = __spreadArray(__spreadArray([], this.waitingHandlerStreams.delete, true), streamList, true);\n }\n return [2 /*return*/];\n });\n }); });\n ZegoCloudRTCCore._zg.on(\"roomExtraInfoUpdate\", function (roomID, roomExtraInfoList) {\n roomExtraInfoList.forEach(function (info) {\n if (info.key === _this.extraInfoKey) {\n _this.roomExtraInfo = JSON.parse(info.value);\n console.warn(\"roomExtraInfo\", _this.roomExtraInfo);\n }\n });\n });\n ZegoCloudRTCCore._zg.on(\"remoteCameraStatusUpdate\", function (streamID, status) {\n if (_this.remoteStreamMap[streamID]) {\n _this.remoteStreamMap[streamID].cameraStatus = status;\n _this.onRemoteMediaUpdateCallBack &&\n _this.onRemoteMediaUpdateCallBack(\"UPDATE\", [\n _this.remoteStreamMap[streamID],\n ]);\n }\n });\n ZegoCloudRTCCore._zg.on(\"remoteMicStatusUpdate\", function (streamID, status) {\n if (_this.remoteStreamMap[streamID]) {\n _this.remoteStreamMap[streamID].micStatus = status;\n _this.onRemoteMediaUpdateCallBack &&\n _this.onRemoteMediaUpdateCallBack(\"UPDATE\", [\n _this.remoteStreamMap[streamID],\n ]);\n }\n });\n ZegoCloudRTCCore._zg.on(\"playerStateUpdate\", function (streamInfo) {\n console.warn(\"【ZEGOCLOUD】\", streamInfo);\n if (_this.remoteStreamMap[streamInfo.streamID]) {\n _this.remoteStreamMap[streamInfo.streamID].state = streamInfo.state;\n _this.onRemoteMediaUpdateCallBack &&\n _this.onRemoteMediaUpdateCallBack(\"UPDATE\", [\n _this.remoteStreamMap[streamInfo.streamID],\n ]);\n }\n if (streamInfo.errorCode === 1104038) {\n _this.coreErrorCallback(_model__WEBPACK_IMPORTED_MODULE_2__.CoreError.notSupportStandardLive, streamInfo.extendedData);\n }\n });\n ZegoCloudRTCCore._zg.on(\"roomUserUpdate\", function (roomID, updateType, userList) {\n console.warn(\"【ZEGOCLOUD】roomUserUpdate\", updateType, userList);\n if (_this.onRemoteUserUpdateCallBack) {\n _this.onRemoteUserUpdateCallBack(roomID, updateType, userList);\n }\n else {\n setTimeout(function () {\n _this.onRemoteUserUpdateCallBack &&\n _this.onRemoteUserUpdateCallBack(roomID, updateType, userList);\n }, 1000);\n }\n });\n ZegoCloudRTCCore._zg.on(\"IMRecvBroadcastMessage\", function (roomID, chatData) {\n _this.onRoomMessageUpdateCallBack &&\n _this.onRoomMessageUpdateCallBack(roomID, chatData);\n });\n // 房间内自定义消息\n ZegoCloudRTCCore._zg.on(\"IMRecvCustomCommand\", function (roomID, fromUser, command) {\n var commandData = JSON.parse(command);\n console.warn(\"IMRecvCustomCommand\", commandData);\n if (Object.keys(commandData).includes(\"zego_remove_user\") &&\n commandData[\"zego_remove_user\"].includes(_this._expressConfig.userID)) {\n // 被移除房间的通知\n // 通知UI层leaveRoom\n _this.onKickedOutRoomCallback && _this.onKickedOutRoomCallback();\n }\n if (Object.keys(commandData).includes(\"zego_turn_camera_off\") &&\n commandData[\"zego_turn_camera_off\"] === _this._expressConfig.userID) {\n // 通知UI层关闭摄像头\n _this.onChangeYourDeviceStatusCallback &&\n _this.onChangeYourDeviceStatusCallback(\"Camera\", \"CLOSE\", fromUser);\n }\n if (Object.keys(commandData).includes(\"zego_turn_microphone_off\") &&\n commandData[\"zego_turn_microphone_off\"] === _this._expressConfig.userID) {\n // 通知UI层关闭麦克风\n _this.onChangeYourDeviceStatusCallback &&\n _this.onChangeYourDeviceStatusCallback(\"Microphone\", \"CLOSE\", fromUser);\n }\n });\n ZegoCloudRTCCore._zg.on(\"publisherStateUpdate\", function (streamInfo) {\n var state = \"DISCONNECTED\";\n if (streamInfo.state === \"PUBLISHING\") {\n state = \"CONNECTED\";\n }\n else if (streamInfo.state === \"NO_PUBLISH\") {\n state = \"DISCONNECTED\";\n }\n else if (streamInfo.state === \"PUBLISH_REQUESTING\") {\n state = \"CONNECTING\";\n }\n _this.onNetworkStatusCallBack &&\n _this.onNetworkStatusCallBack(ZegoCloudRTCCore._instance._expressConfig.roomID, \"STREAM\", state);\n });\n ZegoCloudRTCCore._zg.on(\"playQualityUpdate\", function (streamID, stats) {\n _this.onNetworkStatusQualityCallBack &&\n _this.onNetworkStatusQualityCallBack(streamID, Math.max(stats.video.videoQuality, stats.audio.audioQuality));\n });\n ZegoCloudRTCCore._zg.on(\"publishQualityUpdate\", function (streamID, stats) {\n _this.onNetworkStatusQualityCallBack &&\n _this.onNetworkStatusQualityCallBack(streamID, Math.max(stats.video.videoQuality, stats.audio.audioQuality));\n });\n ZegoCloudRTCCore._zg.on(\"soundLevelUpdate\", function (soundLevelList) {\n _this.onSoundLevelUpdateCallBack &&\n _this.onSoundLevelUpdateCallBack(soundLevelList);\n });\n ZegoCloudRTCCore._zg.on(\"screenSharingEnded\", function (stream) {\n _this.onScreenSharingEndedCallBack &&\n _this.onScreenSharingEndedCallBack(stream);\n });\n if (this.zegoSuperBoard) {\n // 监听远端新增白板\n this.zegoSuperBoard.on(\"remoteSuperBoardSubViewAdded\", function (uniqueID) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zegoSuperBoard.querySuperBoardSubViewList()];\n case 1:\n _a.sent();\n this.zegoSuperBoard.setToolType(1);\n this.zegoSuperBoard.setBrushColor(\"#333333\");\n this.zegoSuperBoard.setBrushSize(6);\n this.zegoSuperBoard.setFontItalic(false);\n this.zegoSuperBoard.setFontBold(false);\n this.zegoSuperBoard.setFontSize(24);\n this.zegoSuperBoardView = this.zegoSuperBoard.getSuperBoardView();\n return [2 /*return*/];\n }\n });\n }); });\n // 监听远端销毁白板\n this.zegoSuperBoard.on(\"remoteSuperBoardSubViewRemoved\", function (uniqueID) {\n _this.zegoSuperBoardView = null;\n });\n }\n if (this.isCDNLive) {\n ZegoCloudRTCCore._zg.on(\"streamExtraInfoUpdate\", function (roomID, streamList) {\n if (roomID === _this._expressConfig.roomID) {\n console.warn(\"streamExtraInfoUpdate\", streamList);\n _this.streamExtraInfoUpdateCallBack(streamList);\n }\n });\n }\n return [4 /*yield*/, new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var result, user;\n var _this = this;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n ZegoCloudRTCCore._zg.on(\"roomStateUpdate\", function (roomID, state, errorCode, extendedData) {\n _this.onNetworkStatusCallBack &&\n _this.onNetworkStatusCallBack(roomID, \"ROOM\", state);\n if (state === \"CONNECTED\" || state === \"DISCONNECTED\") {\n _this.status.loginRsp = errorCode === 0;\n res(errorCode);\n }\n console.warn(\"extendedData\", extendedData);\n });\n return [4 /*yield*/, ZegoCloudRTCCore._zg.loginRoom(ZegoCloudRTCCore._instance._expressConfig.roomID, ZegoCloudRTCCore._instance._expressConfig.token, {\n userID: ZegoCloudRTCCore._instance._expressConfig.userID,\n userName: ZegoCloudRTCCore._instance._expressConfig.userName,\n }, {\n userUpdate: true,\n maxMemberCount: ZegoCloudRTCCore._instance._config.maxUsers,\n })];\n case 1:\n _c.sent();\n if (((_a = this._config.scenario) === null || _a === void 0 ? void 0 : _a.mode) === _model__WEBPACK_IMPORTED_MODULE_2__.ScenarioModel.LiveStreaming &&\n ((_b = this._config.scenario.config) === null || _b === void 0 ? void 0 : _b.role) === _model__WEBPACK_IMPORTED_MODULE_2__.LiveRole.Host &&\n this.roomExtraInfo.host === undefined) {\n this.hostSetterTimer = setTimeout(function () {\n if (!_this.roomExtraInfo.host) {\n var setRoomExtraInfo = __assign(__assign({}, _this.roomExtraInfo), {\n host: _this._expressConfig.userID,\n });\n ZegoCloudRTCCore._zg.setRoomExtraInfo(ZegoCloudRTCCore._instance._expressConfig.roomID, \"extra_info\", JSON.stringify(setRoomExtraInfo));\n _this._roomExtraInfo = setRoomExtraInfo;\n }\n }, 1000);\n }\n if (!this.zegoSuperBoard) return [3 /*break*/, 3];\n this.zegoSuperBoard.setToolType(1);\n this.zegoSuperBoard.setBrushColor(\"#333333\");\n this.zegoSuperBoard.setBrushSize(6);\n this.zegoSuperBoard.setFontItalic(false);\n this.zegoSuperBoard.setFontBold(false);\n this.zegoSuperBoard.setFontSize(24);\n return [4 /*yield*/, this.zegoSuperBoard.querySuperBoardSubViewList()];\n case 2:\n result = _c.sent();\n result.length > 0 &&\n (this.zegoSuperBoardView = this.zegoSuperBoard.getSuperBoardView());\n _c.label = 3;\n case 3:\n user = {\n userID: ZegoCloudRTCCore._instance._expressConfig.userID,\n userName: ZegoCloudRTCCore._instance._expressConfig.userName,\n setUserAvatar: function (avatar) {\n if (avatar && typeof avatar === \"string\") {\n _this._expressConfig.avatar = avatar;\n }\n },\n };\n this._config.onUserAvatarSetter &&\n this._config.onUserAvatarSetter([user]);\n // @ts-ignore 日志上报\n ZegoCloudRTCCore._zg.logger.error(\"zu.jr \" + JSON.stringify(this.originConfig));\n return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n resp = _b.sent();\n ZegoCloudRTCCore._zg.setSoundLevelDelegate(true, 300);\n this.streamUpdateTimer(this.waitingHandlerStreams);\n return [2 /*return*/, resp];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.streamUpdateTimer = function (_waitingHandlerStreams) {\n return __awaiter(this, void 0, void 0, function () {\n var _streamList, i, streamInfo, extraInfo, stream, error_2, i, streamInfo, nextWaitingHandlerStreams;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.status.loginRsp) {\n console.warn(\"【ZEGOCLOUD】logoutRoom,stop streamUpdateTimer\");\n return [2 /*return*/];\n }\n if (!(this._currentPage === \"Room\")) return [3 /*break*/, 15];\n _streamList = [];\n if (!(_waitingHandlerStreams.add.length > 0)) return [3 /*break*/, 9];\n i = 0;\n _a.label = 1;\n case 1:\n if (!(i < _waitingHandlerStreams.add.length)) return [3 /*break*/, 8];\n streamInfo = _waitingHandlerStreams.add[i];\n _a.label = 2;\n case 2:\n _a.trys.push([2, 6, , 7]);\n if (!this.isCDNLive) return [3 /*break*/, 3];\n if (!streamInfo.urlsFLV) {\n this.coreErrorCallback(_model__WEBPACK_IMPORTED_MODULE_2__.CoreError.notSupportCDNLive, \"urlsFLV is empty\");\n }\n extraInfo = JSON.parse(streamInfo.extraInfo);\n this.remoteStreamMap[streamInfo.streamID] = {\n fromUser: streamInfo.user,\n media: undefined,\n micStatus: extraInfo.isMicrophoneOn ? \"OPEN\" : \"MUTE\",\n cameraStatus: extraInfo.isCameraOn ? \"OPEN\" : \"MUTE\",\n state: \"PLAYING\",\n streamID: streamInfo.streamID,\n urlsHttpsFLV: (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.changeCDNUrlOrigin)(streamInfo.urlsHttpsFLV || streamInfo.urlsFLV),\n urlsHttpsHLS: (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.changeCDNUrlOrigin)(streamInfo.urlsHttpsHLS || streamInfo.urlsHLS),\n hasAudio: extraInfo.hasAudio,\n hasVideo: extraInfo.hasVideo,\n };\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, this.zum.startPullStream(streamInfo.user.userID, streamInfo.streamID)];\n case 4:\n stream = _a.sent();\n this.remoteStreamMap[streamInfo.streamID] = {\n fromUser: streamInfo.user,\n media: stream,\n micStatus: stream && stream.getAudioTracks().length > 0\n ? \"OPEN\"\n : \"MUTE\",\n cameraStatus: stream && stream.getVideoTracks().length > 0\n ? \"OPEN\"\n : \"MUTE\",\n state: \"PLAYING\",\n streamID: streamInfo.streamID,\n };\n _a.label = 5;\n case 5:\n _streamList.push(this.remoteStreamMap[streamInfo.streamID]);\n return [3 /*break*/, 7];\n case 6:\n error_2 = _a.sent();\n console.warn(\"【ZEGOCLOUD】startPlayingStream error:\", error_2);\n // 未开通L3服务\n if ((error_2 === null || error_2 === void 0 ? void 0 : error_2.errorCode) === 110438) {\n this.coreErrorCallback(_model__WEBPACK_IMPORTED_MODULE_2__.CoreError.notSupportStandardLive, error_2 === null || error_2 === void 0 ? void 0 : error_2.extendedData);\n }\n return [3 /*break*/, 7];\n case 7:\n i++;\n return [3 /*break*/, 1];\n case 8:\n this.onRemoteMediaUpdateCallBack &&\n _streamList.length > 0 &&\n this.onRemoteMediaUpdateCallBack(\"ADD\", _streamList);\n _a.label = 9;\n case 9:\n if (!(_waitingHandlerStreams.delete.length > 0)) return [3 /*break*/, 14];\n _streamList = [];\n i = 0;\n _a.label = 10;\n case 10:\n if (!(i < _waitingHandlerStreams.delete.length)) return [3 /*break*/, 13];\n streamInfo = _waitingHandlerStreams.delete[i];\n this.remoteStreamMap[streamInfo.streamID] &&\n _streamList.push(this.remoteStreamMap[streamInfo.streamID]);\n return [4 /*yield*/, this.zum.stopPullStream(streamInfo.user.userID, streamInfo.streamID)];\n case 11:\n _a.sent();\n delete this.remoteStreamMap[streamInfo.streamID];\n _a.label = 12;\n case 12:\n i++;\n return [3 /*break*/, 10];\n case 13:\n this.onRemoteMediaUpdateCallBack &&\n _streamList.length > 0 &&\n this.onRemoteMediaUpdateCallBack(\"DELETE\", _streamList);\n _a.label = 14;\n case 14:\n if (this.zegoSuperBoardView !== undefined) {\n this.subscribeWhiteBoardCallBack(this.zegoSuperBoardView);\n this.zegoSuperBoardView = undefined;\n }\n nextWaitingHandlerStreams = {\n add: this.waitingHandlerStreams.add.filter(function (realTime_item) {\n if (_waitingHandlerStreams.add.some(function (handing_item) { return handing_item.streamID === realTime_item.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n }),\n delete: this.waitingHandlerStreams.delete.filter(function (realTime_item) {\n if (_waitingHandlerStreams.delete.some(function (handing_item) { return handing_item.streamID === realTime_item.streamID; })) {\n return false;\n }\n else {\n return true;\n }\n }),\n };\n this.waitingHandlerStreams = nextWaitingHandlerStreams;\n setTimeout(function () {\n _this.streamUpdateTimer(_this.waitingHandlerStreams);\n }, 700);\n return [3 /*break*/, 16];\n case 15:\n if (this._currentPage === \"BrowserCheckPage\" ||\n this._currentPage === \"RejoinRoom\") {\n setTimeout(function () {\n _this.streamUpdateTimer(_waitingHandlerStreams);\n }, 1000);\n }\n _a.label = 16;\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.publishLocalStream = function (media, streamType, extraInfo) {\n if (!media)\n return false;\n var streamID = (0,_tools_util__WEBPACK_IMPORTED_MODULE_0__.generateStreamID)(this._expressConfig.userID, this._expressConfig.roomID, streamType);\n var publishOption;\n if (extraInfo) {\n publishOption = {\n extraInfo: extraInfo,\n };\n }\n var res = ZegoCloudRTCCore._zg.startPublishingStream(streamID, media, __assign(__assign({}, publishOption), { videoCodec: this._config.videoCodec }));\n return res && streamID;\n };\n ZegoCloudRTCCore.prototype.replaceTrack = function (media, mediaStreamTrack) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, ZegoCloudRTCCore._zg.replaceTrack(media, mediaStreamTrack)];\n });\n });\n };\n ZegoCloudRTCCore.prototype.subscribeUserList = function (callback) {\n this.subscribeUserListCallBack = callback;\n };\n ZegoCloudRTCCore.prototype.subscribeScreenStream = function (callback) {\n this.subscribeScreenStreamCallBack = callback;\n };\n ZegoCloudRTCCore.prototype.subscribeWhiteBoard = function (callback) {\n this.subscribeWhiteBoardCallBack = callback;\n };\n ZegoCloudRTCCore.prototype.onNetworkStatusQuality = function (func) {\n this.onNetworkStatusQualityCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onRemoteUserUpdate = function (func) {\n var _this = this;\n this.onRemoteUserUpdateCallBack = function (roomID, updateType, users) { return __awaiter(_this, void 0, void 0, function () {\n var newUserList;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this._currentPage === \"BrowserCheckPage\" ||\n this._currentPage === \"RejoinRoom\")) return [3 /*break*/, 1];\n setTimeout(function () {\n _this.onRemoteUserUpdateCallBack(roomID, updateType, users);\n }, 1000);\n return [3 /*break*/, 3];\n case 1:\n if (!(this._currentPage === \"Room\")) return [3 /*break*/, 3];\n // 本地数据管理\n return [4 /*yield*/, this.zum.userUpdate(roomID, updateType, users)];\n case 2:\n // 本地数据管理\n _a.sent();\n // 人员进出通知\n func(roomID, updateType, users, this.zum.remoteUserList);\n newUserList = users.map(function (user) {\n user.setUserAvatar = function (avatar) {\n if (avatar && typeof avatar === \"string\") {\n _this.zum.updateUserInfo(user.userID, \"avatar\", avatar);\n }\n };\n return user;\n });\n if (updateType === \"ADD\") {\n this._config.onUserAvatarSetter &&\n this._config.onUserAvatarSetter(newUserList);\n this._config.onUserJoin && this._config.onUserJoin(users);\n }\n else {\n this._config.onUserLeave && this._config.onUserLeave(users);\n }\n // 页面渲染\n setTimeout(function () {\n console.warn(\"【ZEGOCLOUD】roomUserUpdate\", __spreadArray([], _this.zum.remoteUserList, true), __spreadArray([], _this.zum.remoteUserList, true).length);\n _this.subscribeUserListCallBack &&\n _this.subscribeUserListCallBack(__spreadArray([], _this.zum.remoteUserList, true));\n }, 0);\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n };\n ZegoCloudRTCCore.prototype.onSoundLevelUpdate = function (func) {\n this.onSoundLevelUpdateCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onRoomLiveStateUpdate = function (func) {\n this.onRoomLiveStateUpdateCallBack = func;\n };\n ZegoCloudRTCCore.prototype.sendRoomMessage = function (message) {\n return ZegoCloudRTCCore._zg.sendBroadcastMessage(ZegoCloudRTCCore._instance._expressConfig.roomID, message);\n };\n ZegoCloudRTCCore.prototype.onRoomMessageUpdate = function (func) {\n this.onRoomMessageUpdateCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onScreenSharingEnded = function (func) {\n this.onScreenSharingEndedCallBack = func;\n };\n ZegoCloudRTCCore.prototype.onNetworkStatus = function (func) {\n var _this = this;\n this.onNetworkStatusCallBack = function (roomID, type, status) {\n if (status === \"CONNECTING\") {\n !_this.NetworkStatusTimer &&\n (_this.NetworkStatusTimer = setTimeout(function () {\n func(roomID, type, \"DISCONNECTED\");\n }, 60000));\n }\n else {\n if (_this.NetworkStatusTimer) {\n clearTimeout(_this.NetworkStatusTimer);\n _this.NetworkStatusTimer = null;\n }\n }\n func(roomID, type, status);\n };\n };\n ZegoCloudRTCCore.prototype.streamExtraInfoUpdateCallBack = function (streamList) {\n var _this = this;\n // 流附加消息解析\n streamList.forEach(function (stream) {\n var extraInfo = JSON.parse(stream.extraInfo);\n console.warn(\"extraInfo\", extraInfo);\n if (extraInfo.isCameraOn !== undefined) {\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"cameraStatus\", extraInfo.isCameraOn ? \"OPEN\" : \"MUTE\");\n }\n if (extraInfo.isMicrophoneOn !== undefined) {\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"micStatus\", extraInfo.isMicrophoneOn ? \"OPEN\" : \"MUTE\");\n }\n extraInfo.hasVideo !== undefined &&\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"hasVideo\", !!extraInfo.hasVideo);\n extraInfo.hasAudio !== undefined &&\n _this.zum.updateStreamInfo(stream.user.userID, stream.streamID, \"hasAudio\", !!extraInfo.hasAudio);\n });\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n this.subscribeScreenStreamCallBack &&\n this.subscribeScreenStreamCallBack(__spreadArray([], this.zum.remoteScreenStreamList, true));\n };\n ZegoCloudRTCCore.prototype.onCoreError = function (func) {\n this.coreErrorCallback = func;\n };\n ZegoCloudRTCCore.prototype.leaveRoom = function () {\n var _this = this;\n var _a;\n if (!this.status.loginRsp)\n return;\n ZegoCloudRTCCore._zg.off(\"streamExtraInfoUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomExtraInfoUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomStreamUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteCameraStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"remoteMicStatusUpdate\");\n ZegoCloudRTCCore._zg.off(\"playerStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"roomUserUpdate\");\n ZegoCloudRTCCore._zg.off(\"IMRecvBroadcastMessage\");\n ZegoCloudRTCCore._zg.off(\"roomStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publisherStateUpdate\");\n ZegoCloudRTCCore._zg.off(\"publishQualityUpdate\");\n ZegoCloudRTCCore._zg.off(\"soundLevelUpdate\");\n ZegoCloudRTCCore._zg.off(\"screenSharingEnded\");\n ZegoCloudRTCCore._zg.off(\"IMRecvCustomCommand\");\n ZegoCloudRTCCore._zg.setSoundLevelDelegate(false);\n this.onNetworkStatusCallBack = function () { };\n this.onRemoteMediaUpdateCallBack = function (updateType, streamList) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.zum.mainStreamUpdate(updateType, streamList)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.zum.screenStreamUpdate(updateType, streamList)];\n case 2:\n _a.sent();\n this.subscribeUserListCallBack &&\n this.subscribeUserListCallBack(__spreadArray([], this.zum.remoteUserList, true));\n this.subscribeScreenStreamCallBack &&\n this.subscribeScreenStreamCallBack(__spreadArray([], this.zum.remoteScreenStreamList, true));\n return [2 /*return*/];\n }\n });\n }); };\n this.onRemoteUserUpdateCallBack = function () { };\n this.onRoomMessageUpdateCallBack = function () { };\n this.onRoomLiveStateUpdateCallBack = function () { };\n this.subscribeUserListCallBack = function () { };\n this.zum.reset();\n for (var key in this.remoteStreamMap) {\n ZegoCloudRTCCore._zg.stopPlayingStream(key);\n }\n this.remoteStreamMap = {};\n this.waitingHandlerStreams = { add: [], delete: [] };\n if (((_a = this.roomExtraInfo) === null || _a === void 0 ? void 0 : _a.host) === this._expressConfig.userID) {\n // host离开房间,清除房间属性host\n var setRoomExtraInfo = __assign(__assign({}, this._roomExtraInfo), {\n host: \"\",\n });\n ZegoCloudRTCCore._zg.setRoomExtraInfo(ZegoCloudRTCCore._instance._expressConfig.roomID, \"extra_info\", JSON.stringify(setRoomExtraInfo));\n this._roomExtraInfo = setRoomExtraInfo;\n }\n ZegoCloudRTCCore._zg.logoutRoom();\n this.status.loginRsp = false;\n };\n ZegoCloudRTCCore.prototype.setStreamExtraInfo = function (streamID, extraInfo) {\n return ZegoCloudRTCCore._zg.setStreamExtraInfo(streamID, extraInfo);\n };\n ZegoCloudRTCCore.prototype.initZIM = function (ZIM) {\n var _this = this;\n if (this._zimManager)\n return;\n this._zimManager = new _tools_ZimManager__WEBPACK_IMPORTED_MODULE_4__.ZimManager(ZIM, this._expressConfig);\n // 更新roomID\n this._zimManager.onUpdateRoomID(function (roomID) {\n _this._expressConfig.roomID = roomID;\n });\n };\n // 发送房间自定义消息\n ZegoCloudRTCCore.prototype.sendInRoomCommand = function (message, userID) {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, ZegoCloudRTCCore._zg.sendCustomCommand(this._expressConfig.roomID, message, this.zum.remoteUserList.length > 500 ? [] : [userID])];\n case 1:\n res = _a.sent();\n if (res.errorCode === 0) {\n return [2 /*return*/, true];\n }\n else {\n console.error(\"【ZEGOCLOUD】sendInRoomCommand error:\", res.errorCode);\n return [2 /*return*/, false];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n // 踢人\n ZegoCloudRTCCore.prototype.removeMember = function (userID) {\n this.sendInRoomCommand(JSON.stringify({ zego_remove_user: [userID] }), userID);\n };\n //关闭摄像头麦克风\n ZegoCloudRTCCore.prototype.turnRemoteCameraOff = function (userID) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.sendInRoomCommand(JSON.stringify({ zego_turn_camera_off: userID }), userID)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.turnRemoteMicrophoneOff = function (userID) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.sendInRoomCommand(JSON.stringify({ zego_turn_microphone_off: userID }), userID)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n ZegoCloudRTCCore.prototype.onKickedOutRoom = function (func) {\n func && (this.onKickedOutRoomCallback = func);\n };\n ZegoCloudRTCCore.prototype.onChangeYourDeviceStatus = function (func) {\n func && (this.onChangeYourDeviceStatusCallback = func);\n };\n return ZegoCloudRTCCore;\n}());\n\n\n\n//# sourceURL=webpack://zegocloud_client_sdk_web/./src/sdk/modules/index.ts?");
|
|
2117
2117
|
|
|
2118
2118
|
/***/ }),
|
|
2119
2119
|
|