@vtx/player 1.2.13 → 1.3.0

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.
@@ -173,7 +173,8 @@ var HistoryPlayer = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
173
173
  localStorage.setItem('accessToken', token);
174
174
 
175
175
  case 5:
176
- player = new _player["default"]({
176
+ _context.next = 7;
177
+ return new _player["default"]({
177
178
  url: url,
178
179
  devicePort: devicePort,
179
180
  deviceIp: deviceIp,
@@ -188,6 +189,9 @@ var HistoryPlayer = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
188
189
  endTime: endTime,
189
190
  type: type
190
191
  });
192
+
193
+ case 7:
194
+ player = _context.sent;
191
195
  playerRef.current = player;
192
196
  player.onTimeUpdate(function (currentTime, speed) {
193
197
  if (!state.loading) {
@@ -198,7 +202,7 @@ var HistoryPlayer = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
198
202
  });
199
203
  }
200
204
  });
201
- _context.next = 10;
205
+ _context.next = 12;
202
206
  return setState({
203
207
  loading: true,
204
208
  error: false,
@@ -207,7 +211,7 @@ var HistoryPlayer = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
207
211
  }
208
212
  });
209
213
 
210
- case 10:
214
+ case 12:
211
215
  player.playBack().then(function () {
212
216
  return setState({
213
217
  play: true,
@@ -223,7 +227,7 @@ var HistoryPlayer = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
223
227
  });
224
228
  });
225
229
 
226
- case 11:
230
+ case 13:
227
231
  case "end":
228
232
  return _context.stop();
229
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","HistoryPlayer","forwardRef","props","ref","url","deviceId","deviceIp","devicePort","channelNum","deviceCode","streamType","type","enableAgent","width","height","captureName","controlBottom","startTime","endTime","onTimeChange","screenshot","showInfo","info","extraButton","controlVisible","undefined","totalTime","moment","diff","containerRef","useRef","wrapRef","controlsRef","playerRef","useFullscreen","isFullscreen","toggleFullscreen","useSetState","play","error","loading","id","guidGenerator","volume","currentTime","progress","controls","state","setState","useImperativeHandle","seekTo","time","player","current","useEffect","container","API","getToken","token","localStorage","setItem","Player","live","onTimeUpdate","speed","Math","floor","playBack","destroy","add","format","TimeFormat","params","handleCapture","capture","stopPropagation","handleFullScreen","resize","handleSlider","handlePause","pause","handleResume","resume","_jsxs","Object","assign","className","style","children","_jsx","LoadingState","InfoPanel","bottom","opacity","PauseIcon","onClick","PlayIcon","secondsToTime","Slider","disabled","tipFormatter","onChange","Space","size","align","VolumeControl","defaultValue","SpeedControl","CaptureIcon","ExitFullScreenIcon","FullScreenIcon","displayName"],"sources":["history-player/index.js"],"sourcesContent":["var __awaiter = (this && this.__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};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { InfoPanel, LoadingState, SpeedControl, VolumeControl } from '../controls';\nimport API from '../icc/api';\nimport { CaptureIcon, ExitFullScreenIcon, FullScreenIcon, PauseIcon, PlayIcon } from '../icons';\nimport Player from '../player';\nimport { TimeFormat, guidGenerator, secondsToTime } from '../utils';\nimport { useFullscreen, useSetState } from 'ahooks';\n// import { Slider, Space } from 'antd';\nimport Slider from 'antd/lib/slider';\nimport Space from 'antd/lib/space';\nimport moment from 'moment';\nexport const HistoryPlayer = forwardRef((props, ref) => {\n const { url, deviceId, deviceIp, devicePort, channelNum, deviceCode, streamType, type, enableAgent, width = '100%', height = '100%', captureName, controlBottom = 0, startTime, endTime, onTimeChange, screenshot, showInfo = false, info = [], extraButton, controlVisible = undefined, } = props;\n const totalTime = moment(endTime).diff(moment(startTime), 'seconds');\n const containerRef = useRef(null);\n const wrapRef = useRef(null);\n const controlsRef = useRef(null);\n const playerRef = useRef();\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const [state, setState] = useSetState({\n play: false,\n error: false,\n loading: false,\n id: 'vtx_hk_player_' + guidGenerator(),\n volume: 0,\n currentTime: 0,\n progress: 0,\n controls: {\n progress: true,\n },\n });\n useImperativeHandle(ref, () => {\n return {\n seekTo: (time) => {\n const player = playerRef.current;\n if (player) {\n const currentTime = moment(time).diff(moment(startTime), 'seconds');\n return player.seekTo(currentTime);\n }\n else {\n return Promise.reject();\n }\n },\n };\n });\n useEffect(() => {\n const container = containerRef.current;\n if (!url || !container)\n return;\n let player = null;\n (() => __awaiter(void 0, void 0, void 0, function* () {\n // 如果是icc_ws类型,需要获取token\n if (type === 'icc_ws') {\n const token = yield API.getToken({\n deviceId,\n });\n localStorage.setItem('accessToken', token);\n }\n player = new Player({\n url,\n devicePort,\n deviceIp,\n channelNum,\n deviceCode,\n deviceId,\n streamType,\n enableAgent,\n container,\n live: false,\n startTime,\n endTime,\n type,\n });\n playerRef.current = player;\n player.onTimeUpdate((currentTime, speed) => {\n if (!state.loading) {\n setState({\n currentTime: Math.floor(currentTime),\n progress: Math.floor((currentTime / totalTime) * 100),\n speed,\n });\n }\n });\n yield setState({\n loading: true,\n error: false,\n controls: { progress: player.type === 'hk_ws' || player.type === 'hkcar_ws' },\n });\n player\n .playBack()\n .then(() => setState({ play: true, error: false }))\n .catch(() => setState({ error: true }))\n .finally(() => setState({ loading: false }));\n }))();\n return () => {\n player.destroy();\n setState({ error: false, loading: false, play: false });\n };\n }, [url, startTime, endTime]);\n useEffect(() => {\n if (!state.loading) {\n onTimeChange &&\n onTimeChange(state.currentTime > 0\n ? moment(startTime)\n .add(state.currentTime, 'seconds')\n .format(TimeFormat.params)\n : '', state.speed);\n }\n }, [state.currentTime, state.speed]);\n /** 截图方法 */\n const handleCapture = (e) => {\n const player = playerRef.current;\n player && player.capture(captureName, screenshot);\n e.stopPropagation();\n };\n /** 全屏方法 */\n const handleFullScreen = (e) => {\n toggleFullscreen();\n const player = playerRef.current;\n player && player.resize();\n e.stopPropagation();\n };\n /** 进度条控制器 */\n const handleSlider = (value) => {\n const currentTime = Math.floor((totalTime * value) / 100);\n const player = playerRef.current;\n setState({ progress: value });\n player === null || player === void 0 ? void 0 : player.seekTo(currentTime);\n };\n /** 暂停方法 */\n const handlePause = () => {\n const player = playerRef.current;\n player === null || player === void 0 ? void 0 : player.pause(() => {\n setState({ play: false });\n });\n };\n /** 恢复播放方法 */\n const handleResume = () => {\n const player = playerRef.current;\n player === null || player === void 0 ? void 0 : player.resume(() => {\n setState({ play: true });\n });\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-history-player\", ref: wrapRef, style: { width, height } }, { children: [_jsx(\"div\", { ref: containerRef, style: { height: '100%', width: '100%' }, id: state.id }), state.loading && _jsx(LoadingState, {}), _jsx(InfoPanel, { showInfo: showInfo, info: info }), _jsxs(\"div\", Object.assign({ className: \"controls\", ref: controlsRef, style: { bottom: controlBottom, opacity: controlVisible ? 1 : undefined } }, { children: [state.play ? (_jsx(PauseIcon, { onClick: handlePause })) : (_jsx(PlayIcon, { onClick: handleResume })), _jsxs(\"div\", Object.assign({ className: \"time\" }, { children: [_jsx(\"span\", Object.assign({ className: \"current\" }, { children: secondsToTime(state.currentTime) })), _jsxs(\"span\", Object.assign({ className: \"total\" }, { children: [\"/\", secondsToTime(totalTime)] }))] })), _jsx(\"div\", Object.assign({ className: \"slider\" }, { children: _jsx(Slider, { disabled: !state.controls.progress, tipFormatter: null, onChange: handleSlider, value: state.progress }) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(VolumeControl, { player: playerRef.current, defaultValue: 0, container: controlsRef.current }), _jsx(SpeedControl, { player: playerRef.current, container: controlsRef.current }), !!screenshot && _jsx(CaptureIcon, { onClick: handleCapture }), extraButton ? extraButton : null, isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: handleFullScreen })) : (_jsx(FullScreenIcon, { onClick: handleFullScreen }))] }))] }))] })));\n});\nHistoryPlayer.displayName = 'HistoryPlayer';\nexport default HistoryPlayer;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","HistoryPlayer","forwardRef","props","ref","url","deviceId","deviceIp","devicePort","channelNum","deviceCode","streamType","type","enableAgent","width","height","captureName","controlBottom","startTime","endTime","onTimeChange","screenshot","showInfo","info","extraButton","controlVisible","undefined","totalTime","moment","diff","containerRef","useRef","wrapRef","controlsRef","playerRef","useFullscreen","isFullscreen","toggleFullscreen","useSetState","play","error","loading","id","guidGenerator","volume","currentTime","progress","controls","state","setState","useImperativeHandle","seekTo","time","player","current","useEffect","container","API","getToken","token","localStorage","setItem","Player","live","onTimeUpdate","speed","Math","floor","playBack","destroy","add","format","TimeFormat","params","handleCapture","capture","stopPropagation","handleFullScreen","resize","handleSlider","handlePause","pause","handleResume","resume","_jsxs","Object","assign","className","style","children","_jsx","LoadingState","InfoPanel","bottom","opacity","PauseIcon","onClick","PlayIcon","secondsToTime","Slider","disabled","tipFormatter","onChange","Space","size","align","VolumeControl","defaultValue","SpeedControl","CaptureIcon","ExitFullScreenIcon","FullScreenIcon","displayName"],"sources":["history-player/index.js"],"sourcesContent":["var __awaiter = (this && this.__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};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { InfoPanel, LoadingState, SpeedControl, VolumeControl } from '../controls';\nimport API from '../icc/api';\nimport { CaptureIcon, ExitFullScreenIcon, FullScreenIcon, PauseIcon, PlayIcon } from '../icons';\nimport Player from '../player';\nimport { TimeFormat, guidGenerator, secondsToTime } from '../utils';\nimport { useFullscreen, useSetState } from 'ahooks';\n// import { Slider, Space } from 'antd';\nimport Slider from 'antd/lib/slider';\nimport Space from 'antd/lib/space';\nimport moment from 'moment';\nexport const HistoryPlayer = forwardRef((props, ref) => {\n const { url, deviceId, deviceIp, devicePort, channelNum, deviceCode, streamType, type, enableAgent, width = '100%', height = '100%', captureName, controlBottom = 0, startTime, endTime, onTimeChange, screenshot, showInfo = false, info = [], extraButton, controlVisible = undefined, } = props;\n const totalTime = moment(endTime).diff(moment(startTime), 'seconds');\n const containerRef = useRef(null);\n const wrapRef = useRef(null);\n const controlsRef = useRef(null);\n const playerRef = useRef();\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const [state, setState] = useSetState({\n play: false,\n error: false,\n loading: false,\n id: 'vtx_hk_player_' + guidGenerator(),\n volume: 0,\n currentTime: 0,\n progress: 0,\n controls: {\n progress: true,\n },\n });\n useImperativeHandle(ref, () => {\n return {\n seekTo: (time) => {\n const player = playerRef.current;\n if (player) {\n const currentTime = moment(time).diff(moment(startTime), 'seconds');\n return player.seekTo(currentTime);\n }\n else {\n return Promise.reject();\n }\n },\n };\n });\n useEffect(() => {\n const container = containerRef.current;\n if (!url || !container)\n return;\n let player = null;\n (() => __awaiter(void 0, void 0, void 0, function* () {\n // 如果是icc_ws类型,需要获取token\n if (type === 'icc_ws') {\n const token = yield API.getToken({\n deviceId,\n });\n localStorage.setItem('accessToken', token);\n }\n player = yield new Player({\n url,\n devicePort,\n deviceIp,\n channelNum,\n deviceCode,\n deviceId,\n streamType,\n enableAgent,\n container,\n live: false,\n startTime,\n endTime,\n type,\n });\n playerRef.current = player;\n player.onTimeUpdate((currentTime, speed) => {\n if (!state.loading) {\n setState({\n currentTime: Math.floor(currentTime),\n progress: Math.floor((currentTime / totalTime) * 100),\n speed,\n });\n }\n });\n yield setState({\n loading: true,\n error: false,\n controls: { progress: player.type === 'hk_ws' || player.type === 'hkcar_ws' },\n });\n player\n .playBack()\n .then(() => setState({ play: true, error: false }))\n .catch(() => setState({ error: true }))\n .finally(() => setState({ loading: false }));\n }))();\n return () => {\n player.destroy();\n setState({ error: false, loading: false, play: false });\n };\n }, [url, startTime, endTime]);\n useEffect(() => {\n if (!state.loading) {\n onTimeChange &&\n onTimeChange(state.currentTime > 0\n ? moment(startTime)\n .add(state.currentTime, 'seconds')\n .format(TimeFormat.params)\n : '', state.speed);\n }\n }, [state.currentTime, state.speed]);\n /** 截图方法 */\n const handleCapture = (e) => {\n const player = playerRef.current;\n player && player.capture(captureName, screenshot);\n e.stopPropagation();\n };\n /** 全屏方法 */\n const handleFullScreen = (e) => {\n toggleFullscreen();\n const player = playerRef.current;\n player && player.resize();\n e.stopPropagation();\n };\n /** 进度条控制器 */\n const handleSlider = (value) => {\n const currentTime = Math.floor((totalTime * value) / 100);\n const player = playerRef.current;\n setState({ progress: value });\n player === null || player === void 0 ? void 0 : player.seekTo(currentTime);\n };\n /** 暂停方法 */\n const handlePause = () => {\n const player = playerRef.current;\n player === null || player === void 0 ? void 0 : player.pause(() => {\n setState({ play: false });\n });\n };\n /** 恢复播放方法 */\n const handleResume = () => {\n const player = playerRef.current;\n player === null || player === void 0 ? void 0 : player.resume(() => {\n setState({ play: true });\n });\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-history-player\", ref: wrapRef, style: { width, height } }, { children: [_jsx(\"div\", { ref: containerRef, style: { height: '100%', width: '100%' }, id: state.id }), state.loading && _jsx(LoadingState, {}), _jsx(InfoPanel, { showInfo: showInfo, info: info }), _jsxs(\"div\", Object.assign({ className: \"controls\", ref: controlsRef, style: { bottom: controlBottom, opacity: controlVisible ? 1 : undefined } }, { children: [state.play ? (_jsx(PauseIcon, { onClick: handlePause })) : (_jsx(PlayIcon, { onClick: handleResume })), _jsxs(\"div\", Object.assign({ className: \"time\" }, { children: [_jsx(\"span\", Object.assign({ className: \"current\" }, { children: secondsToTime(state.currentTime) })), _jsxs(\"span\", Object.assign({ className: \"total\" }, { children: [\"/\", secondsToTime(totalTime)] }))] })), _jsx(\"div\", Object.assign({ className: \"slider\" }, { children: _jsx(Slider, { disabled: !state.controls.progress, tipFormatter: null, onChange: handleSlider, value: state.progress }) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(VolumeControl, { player: playerRef.current, defaultValue: 0, container: controlsRef.current }), _jsx(SpeedControl, { player: playerRef.current, container: controlsRef.current }), !!screenshot && _jsx(CaptureIcon, { onClick: handleCapture }), extraButton ? extraButton : null, isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: handleFullScreen })) : (_jsx(FullScreenIcon, { onClick: handleFullScreen }))] }))] }))] })));\n});\nHistoryPlayer.displayName = 'HistoryPlayer';\nexport default HistoryPlayer;\n"],"mappings":"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"}
@@ -30,7 +30,9 @@ var PlayerManager = /*#__PURE__*/function () {
30
30
  function PlayerManager(opt) {
31
31
  _classCallCheck(this, PlayerManager);
32
32
 
33
- // 播放器所在的容器ID
33
+ var _a, _b; // 播放器所在的容器ID
34
+
35
+
34
36
  this.el = opt.el; // 实时预览播放器
35
37
 
36
38
  this.realPlayer = null; // 录像回放播放器
@@ -38,16 +40,17 @@ var PlayerManager = /*#__PURE__*/function () {
38
40
  this.recordPlayer = null;
39
41
  this.player = null; // 实时预览还是录像回放播放器
40
42
 
41
- this.type = "real"; // 窗口的数量
43
+ this.type = 'real'; // 窗口的数量
42
44
 
43
45
  this.playNum = 1; // 当前选中的窗口的索引
44
46
 
45
47
  this.playIndex = 0; // 当前选中窗口正在播放视频的通道
46
48
 
47
- this.currentChannelId = ""; // 索引对应窗口,保存当日录像信息
49
+ this.currentChannelId = ''; // 索引对应窗口,保存当日录像信息
50
+
51
+ this.recordList = []; // 如果是http协议,只需使用ip,不需要端口
48
52
 
49
- this.recordList = [];
50
- this.serverIp = opt.ip;
53
+ this.serverIp = location.protocol === 'http:' ? (_b = (_a = opt.ip) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b[0] : opt.ip;
51
54
  this.init(opt);
52
55
  }
53
56
 
@@ -55,11 +58,11 @@ var PlayerManager = /*#__PURE__*/function () {
55
58
  key: "init",
56
59
  value: function init(opt) {
57
60
  switch (opt.type) {
58
- case "real":
61
+ case 'real':
59
62
  this.initRealPlayer(opt);
60
63
  break;
61
64
 
62
- case "record":
65
+ case 'record':
63
66
  this.initRecordPlayer(opt);
64
67
  break;
65
68
  }
@@ -76,7 +79,7 @@ var PlayerManager = /*#__PURE__*/function () {
76
79
  }
77
80
 
78
81
  this.playNum = opt.num;
79
- this.type = "real";
82
+ this.type = 'real';
80
83
  this.realPlayer = new WSPlayerConstructor({
81
84
  el: this.el,
82
85
  type: 'real',
@@ -119,7 +122,7 @@ var PlayerManager = /*#__PURE__*/function () {
119
122
  }
120
123
 
121
124
  this.playNum = opt.num;
122
- this.type = "record";
125
+ this.type = 'record';
123
126
  this.recordPlayer = new WSPlayerConstructor({
124
127
  el: this.el,
125
128
  type: 'record',
@@ -272,18 +275,18 @@ var PlayerManager = /*#__PURE__*/function () {
272
275
  value: function __receiveMessageFromWSPlayer(method, data) {
273
276
  switch (method) {
274
277
  // ------------- 公共事件 ---------------------
275
- case "selectWindowChanged":
278
+ case 'selectWindowChanged':
276
279
  // 选中的窗口发生改变
277
280
  this.currentChannelId = data.channelId;
278
281
  this.playIndex = data.playIndex;
279
282
  break;
280
283
 
281
- case "windowNumChanged":
284
+ case 'windowNumChanged':
282
285
  // 播放器显示的路数发生改变
283
286
  this.playNum = data;
284
287
  break;
285
288
 
286
- case "closeVideo":
289
+ case 'closeVideo':
287
290
  // 视频关闭
288
291
  // 点击关闭按钮引发的视频关闭进行提示
289
292
  // 切换视频引发的视频关闭不进行提示
@@ -293,11 +296,11 @@ var PlayerManager = /*#__PURE__*/function () {
293
296
 
294
297
  break;
295
298
 
296
- case "statusChanged":
299
+ case 'statusChanged':
297
300
  // 视频状态发生改变
298
301
  break;
299
302
 
300
- case "errorInfo":
303
+ case 'errorInfo':
301
304
  // 错误信息提示
302
305
  // data = {
303
306
  // errorCode: xxx,
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerManager.js","names":["WSPlayerConstructor","WSPlayer","PlayerManager","opt","el","realPlayer","recordPlayer","player","type","playNum","playIndex","currentChannelId","recordList","serverIp","ip","init","initRealPlayer","initRecordPlayer","num","config","maxNum","showControl","receiveMessageFromWSPlayer","__receiveMessageFromWSPlayer","bind","getRealRtsp","API","getRealmonitor","getTalkRtsp","pztEl","initPanTilt","setPtzDirection","setPtzCamera","controlSitPosition","getRecords","getRecordRtspByTime","getRecordRtspByFile","playRealVideo","channelList","streamType","windowIndex","getRecordList","pause","play","speed","playSpeed","index","close","setFullScreen","playerAdapter","setPlayerAdapter","number","setPlayerNum","setSelectIndex","time","jumpPlayByTime","method","data","channelId","changeVideoFlag","console","log","selectIndex"],"sources":["icc/PlayerManager.js"],"sourcesContent":["// WSPlayer 已经注册到window\nimport API from \"./api\";\nlet WSPlayerConstructor = WSPlayer;\nif (WSPlayer === null || WSPlayer === void 0 ? void 0 : WSPlayer.WSPlayer) {\n WSPlayerConstructor = WSPlayer.WSPlayer;\n}\n/**\n * WSPlayer是核心组件\n * API 封装了接口\n */\nclass PlayerManager {\n constructor(opt) {\n // 播放器所在的容器ID\n this.el = opt.el;\n // 实时预览播放器\n this.realPlayer = null;\n // 录像回放播放器\n this.recordPlayer = null;\n this.player = null;\n // 实时预览还是录像回放播放器\n this.type = \"real\";\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = \"\";\n // 索引对应窗口,保存当日录像信息\n this.recordList = [];\n this.serverIp = opt.ip;\n this.init(opt);\n }\n init(opt) {\n switch (opt.type) {\n case \"real\":\n this.initRealPlayer(opt);\n break;\n case \"record\":\n this.initRecordPlayer(opt);\n break;\n }\n }\n /**\n * 初始化实时预览播放器\n */\n initRealPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = \"real\";\n this.realPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'real',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl, // 默认是否显示工具栏\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRealRtsp: API.getRealmonitor,\n getTalkRtsp: API.getTalkRtsp, // 获取对讲rtsp接口\n });\n this.player = this.realPlayer;\n // 初始化云台控制组件\n if (opt.pztEl) {\n this.realPlayer.initPanTilt({\n // 云台控制容器的id\n el: opt.pztEl,\n // 云台区域控制接口\n setPtzDirection: API.setPtzDirection,\n // 云台镜头控制接口\n setPtzCamera: API.setPtzCamera,\n // 云台三维定位接口\n controlSitPosition: API.controlSitPosition\n });\n }\n }\n /**\n * 初始化录像回放播放器\n */\n initRecordPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = \"record\";\n this.recordPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'record',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl, // 默认是否显示工具栏\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRecords: API.getRecords,\n getRecordRtspByTime: API.getRecordRtspByTime,\n getRecordRtspByFile: API.getRecordRtspByFile, // 根据文件形式获取录像rtsp接口\n });\n this.player = this.recordPlayer;\n }\n /**\n * 播放实时预览视频\n * @param opt.channelList: {Array<Object>} 必填,通道列表\n * @param opt.streamType: {Number|String} 选填,码流类型,不填默认播放辅码流1,若不存在辅码流1,则自动切换到主码流 1-主码流 2-辅码流1 3-辅码流2\n * @param opt.windowIndex: {Number} 选填,指定从哪个窗口开始播放。不填默认从选中的窗口开始播放\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于预览,必填\n // isOnline: true, // {Boolean} 是否在线,非在线无法播放 -- 用于预览,必填\n // deviceCode: deviceCode, // {String} 设备编码 -- 用于对讲,对讲必填,无对讲功能可不填\n // deviceType: deviceType, // {String} 设备类型 -- 用于对讲,对讲必填,无对讲功能可不填\n // channelSeq: channelSeq, // {String|Number} 通道序号 -- 用于对讲,对讲必填,无对讲功能可不填\n // cameraType: cameraType, // {String|Number} 摄像头类型 -- 用于云台,云台必填,无云台功能可不填\n // capability: capability, // {String} 能力集 -- 用于云台,选填\n // }]\n playRealVideo(opt) {\n this.realPlayer && this.realPlayer.playRealVideo(opt.channelList, opt.streamType, opt.windowIndex);\n }\n /**\n * 播放录像回放\n * @param opt.channelList {Array<Object>} 通道集合 必填\n * @param opt.startTime {String|Number} 开始时间 必选 timestamp到秒\n * @param opt.endTime {String|Number} 结束时间 必选 timestamp到秒\n * @param opt.recordSource {String|Number} 录像来源 必选 2表示设备录像 3表示中心录像\n * @param opt.streamType {String|Number} 码流类型 可选\n * @param opt.recordType {String|Number} 录像类型 可选\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于回放,必填\n // }]\n playRecordVideo(opt) {\n this.recordPlayer && this.recordPlayer.getRecordList(opt);\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.recordPlayer && this.recordPlayer.pause();\n }\n /**\n * 录像暂停后播放\n * 只有暂停后的录像调用才有效\n */\n play() {\n this.recordPlayer && this.recordPlayer.play();\n }\n /**\n * 倍速播放\n * @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率\n */\n playSpeed(speed) {\n this.recordPlayer && this.recordPlayer.playSpeed(speed);\n }\n /**\n * 关闭播放器\n * @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器\n */\n close(index) {\n this.player && this.player.close(index);\n }\n /**\n * 设置全屏\n */\n setFullScreen() {\n this.player.setFullScreen();\n }\n /**\n * 设置窗口自适应还是拉伸\n * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸\n */\n setPlayerAdapter(playerAdapter) {\n this.player.setPlayerAdapter(playerAdapter);\n }\n /**\n * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数\n * @param {number} number\n */\n setPlayerNum(number) {\n this.player.setPlayerNum(number);\n }\n /**\n * 设置选中的播放器的索引\n * @param {number} index\n */\n setSelectIndex(index) {\n this.player.setSelectIndex(index);\n }\n /**\n * 录像跳转播放\n * @param {string} time HH:mm:ss格式\n */\n jumpPlayByTime(time) {\n this.player.jumpPlayByTime(time);\n }\n // ----------------- 播放器事件 ------------------------\n __receiveMessageFromWSPlayer(method, data) {\n switch (method) {\n // ------------- 公共事件 ---------------------\n case \"selectWindowChanged\": // 选中的窗口发生改变\n this.currentChannelId = data.channelId;\n this.playIndex = data.playIndex;\n break;\n case \"windowNumChanged\": // 播放器显示的路数发生改变\n this.playNum = data;\n break;\n case \"closeVideo\": // 视频关闭\n // 点击关闭按钮引发的视频关闭进行提示\n // 切换视频引发的视频关闭不进行提示\n if (!data.changeVideoFlag) {\n console.log(`窗口${data.selectIndex}的视频已关闭`);\n }\n break;\n case \"statusChanged\": // 视频状态发生改变\n break;\n case \"errorInfo\": // 错误信息提示\n // data = {\n // errorCode: xxx,\n // errorMsg: \"\",\n // channelList: [],\n // }\n break;\n }\n }\n}\nexport default PlayerManager;\n"],"mappings":"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"}
1
+ {"version":3,"file":"PlayerManager.js","names":["WSPlayerConstructor","WSPlayer","PlayerManager","opt","_a","_b","el","realPlayer","recordPlayer","player","type","playNum","playIndex","currentChannelId","recordList","serverIp","location","protocol","ip","split","init","initRealPlayer","initRecordPlayer","num","config","maxNum","showControl","receiveMessageFromWSPlayer","__receiveMessageFromWSPlayer","bind","getRealRtsp","API","getRealmonitor","getTalkRtsp","pztEl","initPanTilt","setPtzDirection","setPtzCamera","controlSitPosition","getRecords","getRecordRtspByTime","getRecordRtspByFile","playRealVideo","channelList","streamType","windowIndex","getRecordList","pause","play","speed","playSpeed","index","close","setFullScreen","playerAdapter","setPlayerAdapter","number","setPlayerNum","setSelectIndex","time","jumpPlayByTime","method","data","channelId","changeVideoFlag","console","log","selectIndex"],"sources":["icc/PlayerManager.js"],"sourcesContent":["// WSPlayer 已经注册到window\nimport API from './api';\nlet WSPlayerConstructor = WSPlayer;\nif (WSPlayer === null || WSPlayer === void 0 ? void 0 : WSPlayer.WSPlayer) {\n WSPlayerConstructor = WSPlayer.WSPlayer;\n}\n/**\n * WSPlayer是核心组件\n * API 封装了接口\n */\nclass PlayerManager {\n constructor(opt) {\n var _a, _b;\n // 播放器所在的容器ID\n this.el = opt.el;\n // 实时预览播放器\n this.realPlayer = null;\n // 录像回放播放器\n this.recordPlayer = null;\n this.player = null;\n // 实时预览还是录像回放播放器\n this.type = 'real';\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = '';\n // 索引对应窗口,保存当日录像信息\n this.recordList = [];\n // 如果是http协议,只需使用ip,不需要端口\n this.serverIp = location.protocol === 'http:' ? (_b = (_a = opt.ip) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b[0] : opt.ip;\n this.init(opt);\n }\n init(opt) {\n switch (opt.type) {\n case 'real':\n this.initRealPlayer(opt);\n break;\n case 'record':\n this.initRecordPlayer(opt);\n break;\n }\n }\n /**\n * 初始化实时预览播放器\n */\n initRealPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = 'real';\n this.realPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'real',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl, // 默认是否显示工具栏\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRealRtsp: API.getRealmonitor,\n getTalkRtsp: API.getTalkRtsp, // 获取对讲rtsp接口\n });\n this.player = this.realPlayer;\n // 初始化云台控制组件\n if (opt.pztEl) {\n this.realPlayer.initPanTilt({\n // 云台控制容器的id\n el: opt.pztEl,\n // 云台区域控制接口\n setPtzDirection: API.setPtzDirection,\n // 云台镜头控制接口\n setPtzCamera: API.setPtzCamera,\n // 云台三维定位接口\n controlSitPosition: API.controlSitPosition,\n });\n }\n }\n /**\n * 初始化录像回放播放器\n */\n initRecordPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = 'record';\n this.recordPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'record',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl, // 默认是否显示工具栏\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRecords: API.getRecords,\n getRecordRtspByTime: API.getRecordRtspByTime,\n getRecordRtspByFile: API.getRecordRtspByFile, // 根据文件形式获取录像rtsp接口\n });\n this.player = this.recordPlayer;\n }\n /**\n * 播放实时预览视频\n * @param opt.channelList: {Array<Object>} 必填,通道列表\n * @param opt.streamType: {Number|String} 选填,码流类型,不填默认播放辅码流1,若不存在辅码流1,则自动切换到主码流 1-主码流 2-辅码流1 3-辅码流2\n * @param opt.windowIndex: {Number} 选填,指定从哪个窗口开始播放。不填默认从选中的窗口开始播放\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于预览,必填\n // isOnline: true, // {Boolean} 是否在线,非在线无法播放 -- 用于预览,必填\n // deviceCode: deviceCode, // {String} 设备编码 -- 用于对讲,对讲必填,无对讲功能可不填\n // deviceType: deviceType, // {String} 设备类型 -- 用于对讲,对讲必填,无对讲功能可不填\n // channelSeq: channelSeq, // {String|Number} 通道序号 -- 用于对讲,对讲必填,无对讲功能可不填\n // cameraType: cameraType, // {String|Number} 摄像头类型 -- 用于云台,云台必填,无云台功能可不填\n // capability: capability, // {String} 能力集 -- 用于云台,选填\n // }]\n playRealVideo(opt) {\n this.realPlayer &&\n this.realPlayer.playRealVideo(opt.channelList, opt.streamType, opt.windowIndex);\n }\n /**\n * 播放录像回放\n * @param opt.channelList {Array<Object>} 通道集合 必填\n * @param opt.startTime {String|Number} 开始时间 必选 timestamp到秒\n * @param opt.endTime {String|Number} 结束时间 必选 timestamp到秒\n * @param opt.recordSource {String|Number} 录像来源 必选 2表示设备录像 3表示中心录像\n * @param opt.streamType {String|Number} 码流类型 可选\n * @param opt.recordType {String|Number} 录像类型 可选\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于回放,必填\n // }]\n playRecordVideo(opt) {\n this.recordPlayer && this.recordPlayer.getRecordList(opt);\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.recordPlayer && this.recordPlayer.pause();\n }\n /**\n * 录像暂停后播放\n * 只有暂停后的录像调用才有效\n */\n play() {\n this.recordPlayer && this.recordPlayer.play();\n }\n /**\n * 倍速播放\n * @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率\n */\n playSpeed(speed) {\n this.recordPlayer && this.recordPlayer.playSpeed(speed);\n }\n /**\n * 关闭播放器\n * @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器\n */\n close(index) {\n this.player && this.player.close(index);\n }\n /**\n * 设置全屏\n */\n setFullScreen() {\n this.player.setFullScreen();\n }\n /**\n * 设置窗口自适应还是拉伸\n * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸\n */\n setPlayerAdapter(playerAdapter) {\n this.player.setPlayerAdapter(playerAdapter);\n }\n /**\n * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数\n * @param {number} number\n */\n setPlayerNum(number) {\n this.player.setPlayerNum(number);\n }\n /**\n * 设置选中的播放器的索引\n * @param {number} index\n */\n setSelectIndex(index) {\n this.player.setSelectIndex(index);\n }\n /**\n * 录像跳转播放\n * @param {string} time HH:mm:ss格式\n */\n jumpPlayByTime(time) {\n this.player.jumpPlayByTime(time);\n }\n // ----------------- 播放器事件 ------------------------\n __receiveMessageFromWSPlayer(method, data) {\n switch (method) {\n // ------------- 公共事件 ---------------------\n case 'selectWindowChanged': // 选中的窗口发生改变\n this.currentChannelId = data.channelId;\n this.playIndex = data.playIndex;\n break;\n case 'windowNumChanged': // 播放器显示的路数发生改变\n this.playNum = data;\n break;\n case 'closeVideo': // 视频关闭\n // 点击关闭按钮引发的视频关闭进行提示\n // 切换视频引发的视频关闭不进行提示\n if (!data.changeVideoFlag) {\n console.log(`窗口${data.selectIndex}的视频已关闭`);\n }\n break;\n case 'statusChanged': // 视频状态发生改变\n break;\n case 'errorInfo': // 错误信息提示\n // data = {\n // errorCode: xxx,\n // errorMsg: \"\",\n // channelList: [],\n // }\n break;\n }\n }\n}\nexport default PlayerManager;\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import React, { ReactElement } from 'react';
2
2
  import { ISplitScreenGrid } from '../components/split-screen';
3
+ import { IVideoScaleValue } from '../components/video-scale';
3
4
  export declare type LiveControlV2Handle = {
4
5
  /** 设置窗口 */
5
6
  setGrid: (grid: ISplitScreenGrid) => void;
@@ -31,8 +32,9 @@ interface LiveControlV2Props {
31
32
  height?: number | string;
32
33
  /** 轮询频率 */
33
34
  polling?: number | undefined;
35
+ scale?: IVideoScaleValue;
34
36
  /** 是否可以切屏 */
35
- gridChange: boolean;
37
+ gridChange?: boolean;
36
38
  /** 底部操作栏额外元素 */
37
39
  extraDom?: ReactElement | undefined;
38
40
  }
@@ -73,14 +73,15 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
73
73
  extraDom = props.extraDom,
74
74
  _props$gridChange = props.gridChange,
75
75
  gridChange = _props$gridChange === void 0 ? true : _props$gridChange,
76
- onScreenshot = props.onScreenshot;
76
+ onScreenshot = props.onScreenshot,
77
+ scale = props.scale;
77
78
 
78
79
  var _useSetState = (0, _ahooks.useSetState)({
79
80
  expand: true,
80
81
  grid: DEFAULT_GRID,
81
82
  activeIndex: DEFAULT_ACTIVE,
82
83
  channels: DEFAULT_CHANNELS,
83
- scale: '100%'
84
+ scale: scale || '100%'
84
85
  }),
85
86
  _useSetState2 = _slicedToArray(_useSetState, 2),
86
87
  state = _useSetState2[0],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","Array","fill","channelNum","LiveControlV2","forwardRef","props","ref","height","width","onExpandChange","onPlayingChannelChange","onVideoClose","onVideoCloseAll","onCloseVideoInRotation","extraDom","gridChange","onScreenshot","useSetState","expand","grid","activeIndex","channels","scale","state","setState","playRefs","useRef","wrapRef","latestGrid","useFullscreen","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","adapt","getGrid","length","i","Number","push","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","filter","handleExpand","slice","map","item","resizeAll","updateScale","timer","setTimeout","Object","values","forEach","player","resize","clearTimeout","closeVideo","currChannels","getGridItems","items","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","name","deviceName","channelName","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","deviceIp","devicePort","captureName","deviceId","deviceCode","streamType","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","len"],"sources":["live-control-v2/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport SplitScreen from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { getUrlParam } from '../utils';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState, useSize } from 'ahooks';\nimport Space from 'antd/lib/space';\nconst DEFAULT_GRID = 4;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(25).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControlV2 = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onPlayingChannelChange, onVideoClose, onVideoCloseAll, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: '100%',\n });\n const playRefs = useRef({});\n const wrapRef = useRef(null);\n const latestGrid = useRef(DEFAULT_GRID);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n // useInterval(() => {\n // // 是否有视频正在播放\n // const hasVideo = channelRef.current.some((item) => item.channelNum);\n // if (polling && hasVideo) {\n // updateChannels(DEFAULT_CHANNELS);\n // const timer = setTimeout(() => {\n // setState({\n // channels: channelRef.current,\n // });\n // clearTimeout(timer);\n // }, 0);\n // }\n // }, polling);\n useImperativeHandle(ref, () => {\n return {\n setGrid: (grid) => {\n updateGrid(grid);\n },\n load: (channel) => {\n const index = channelRef.current.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...channelRef.current];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);\n channelRef.current = newChannels;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels, init = true, adapt = false) => {\n let grid = latestGrid.current;\n let newChannels = [], activeIndex = state.activeIndex;\n // 每次清空已经在播放的视频\n if (init) {\n adapt && (grid = getGrid(channels.length));\n for (let i = 0; i < Number(grid); i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n }\n else {\n // 不清空,找寻空闲窗口播放\n newChannels = [...channelRef.current];\n for (let i = 0; i < channels.length; i++) {\n newChannels[activeIndex] = channels[i] || { channelNum: '' };\n const index = getActiveIndex(newChannels, latestGrid.current, activeIndex);\n // 如果相等,说明没有空闲窗口\n if (index === activeIndex) {\n break;\n }\n activeIndex = index;\n }\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels, activeIndex });\n },\n unLoad: (channelId) => {\n const index = channelRef.current.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...channelRef.current];\n newChannels[index] = { channelNum: '' };\n updateChannels(newChannels);\n }\n },\n unLoadAll: handleCloseAll,\n };\n });\n useEffect(() => {\n if (onPlayingChannelChange) {\n onPlayingChannelChange(state.channels.filter((c) => !!c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({\n activeIndex: DEFAULT_ACTIVE,\n });\n updateChannels(DEFAULT_CHANNELS);\n onVideoCloseAll();\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const updateGrid = (grid) => {\n let newChannels = [...channelRef.current];\n if (grid > newChannels.length) {\n newChannels = DEFAULT_CHANNELS.slice(0, grid).map((item, index) => {\n return newChannels[index] ? newChannels[index] : item;\n });\n }\n else {\n newChannels = newChannels.slice(0, grid);\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels });\n // 重置视频大小\n resizeAll();\n };\n const updateScale = (scale) => {\n setState({ scale });\n // 重置视频大小\n resizeAll();\n };\n // 重置所有视频大小\n const resizeAll = () => {\n const timer = setTimeout(() => {\n Object.values(playRefs.current).forEach((player) => {\n player && player.resize();\n });\n clearTimeout(timer);\n }, 100);\n };\n const updateChannels = (channels) => {\n channelRef.current = channels;\n setState({ channels });\n };\n // 关闭视频\n const closeVideo = (i) => {\n const currChannels = [...channelRef.current];\n const newChannels = [...channelRef.current];\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n onVideoClose && onVideoClose(currChannels[i], newChannels);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(latestGrid.current); i++) {\n const element = (_jsx(GridItem, { ref: (ref) => {\n playRefs.current[i] = ref;\n }, active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: channelRef.current[i] || { channelNum: '' }, onClose: () => {\n // 如果正在轮播\n if (onCloseVideoInRotation) {\n onCloseVideoInRotation(() => closeVideo(i));\n return;\n }\n closeVideo(i);\n }, scale: state.scale, onScreenshot: onScreenshot }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-control-v2\", ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsxs(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: [onExpandChange && (_jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) }))), extraDom ? extraDom : null] })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), gridChange ? (_jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => updateGrid(grid) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) }))) : (_jsxs(\"div\", Object.assign({ className: 'grid-change-disable' }, { children: [_jsx(GridIcon, { disabled: !gridChange }), _jsx(DownOutlined, { className: \"arrow\" })] }))), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => updateScale(scale) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(OccupyingScreenIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen }))] }))] }))] })));\n});\nLiveControlV2.displayName = 'LiveControlV2';\nconst GridItem = forwardRef((props, ref) => {\n const { active, onClick, channel, onClose, onScreenshot, scale } = props;\n const empty = !channel.channelNum;\n const { data, loading } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n const [{ width, height }, setState] = useSetState({\n width: '100%',\n height: '100%',\n });\n const gridItemRef = useRef(null);\n const gridItemSize = useSize(gridItemRef);\n useEffect(() => {\n if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {\n switch (scale) {\n case '100%':\n setState({\n width: '100%',\n height: gridItemSize.height - 26,\n });\n break;\n case '4*3':\n if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 4) * 3,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 3) * 4,\n height: '100%',\n });\n }\n break;\n case '16*9':\n if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 16) * 9,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 9) * 16,\n height: '100%',\n });\n }\n break;\n }\n }\n }, [gridItemSize, scale]);\n const handlePtzType = (type) => {\n const types = {\n 1: 'all',\n 2: 'onlyFocus',\n 3: 'onlyRotate',\n 4: 'none',\n };\n return types[type];\n };\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''} ${loading ? '' : 'emptyImg'}`, onClick: onClick, ref: gridItemRef }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(\"div\", Object.assign({ style: { width, height } }, { children: _jsx(VtxLivePlayer, { ref: ref, url: data.url, type: (data === null || data === void 0 ? void 0 : data.player) || '', deviceIp: data.deviceIp, devicePort: data.devicePort, captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, deviceCode: data.deviceCode, streamType: data.streamType, showInfo: channel.showInfo, info: channel.info, screenshot: onScreenshot, cloudParams: {\n query: {\n channelNum: data.channelNum,\n deviceId: data.deviceId,\n tenantId: getUrlParam('tenantId'),\n },\n type: handlePtzType(data.ptzType),\n } }) })) }))] })) })));\n});\nGridItem.displayName = 'grid-item';\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, Number(grid));\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nconst grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];\n/**\n * 获取布局\n * @param len 通道数量\n */\nconst getGrid = (len) => {\n let grid;\n for (let i = 0; i < grids.length; i++) {\n if (grids[i] - len >= 0) {\n grid = grids[i];\n break;\n }\n }\n return grid > 25 ? 25 : grid;\n};\nexport default LiveControlV2;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","Array","fill","channelNum","LiveControlV2","forwardRef","props","ref","height","width","onExpandChange","onPlayingChannelChange","onVideoClose","onVideoCloseAll","onCloseVideoInRotation","extraDom","gridChange","onScreenshot","scale","useSetState","expand","grid","activeIndex","channels","state","setState","playRefs","useRef","wrapRef","latestGrid","useFullscreen","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","adapt","getGrid","length","i","Number","push","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","filter","handleExpand","slice","map","item","resizeAll","updateScale","timer","setTimeout","Object","values","forEach","player","resize","clearTimeout","closeVideo","currChannels","getGridItems","items","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","name","deviceName","channelName","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","deviceIp","devicePort","captureName","deviceId","deviceCode","streamType","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","len"],"sources":["live-control-v2/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport SplitScreen from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { getUrlParam } from '../utils';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState, useSize } from 'ahooks';\nimport Space from 'antd/lib/space';\nconst DEFAULT_GRID = 4;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(25).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControlV2 = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onPlayingChannelChange, onVideoClose, onVideoCloseAll, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, scale, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: scale || '100%',\n });\n const playRefs = useRef({});\n const wrapRef = useRef(null);\n const latestGrid = useRef(DEFAULT_GRID);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n // useInterval(() => {\n // // 是否有视频正在播放\n // const hasVideo = channelRef.current.some((item) => item.channelNum);\n // if (polling && hasVideo) {\n // updateChannels(DEFAULT_CHANNELS);\n // const timer = setTimeout(() => {\n // setState({\n // channels: channelRef.current,\n // });\n // clearTimeout(timer);\n // }, 0);\n // }\n // }, polling);\n useImperativeHandle(ref, () => {\n return {\n setGrid: (grid) => {\n updateGrid(grid);\n },\n load: (channel) => {\n const index = channelRef.current.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...channelRef.current];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);\n channelRef.current = newChannels;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels, init = true, adapt = false) => {\n let grid = latestGrid.current;\n let newChannels = [], activeIndex = state.activeIndex;\n // 每次清空已经在播放的视频\n if (init) {\n adapt && (grid = getGrid(channels.length));\n for (let i = 0; i < Number(grid); i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n }\n else {\n // 不清空,找寻空闲窗口播放\n newChannels = [...channelRef.current];\n for (let i = 0; i < channels.length; i++) {\n newChannels[activeIndex] = channels[i] || { channelNum: '' };\n const index = getActiveIndex(newChannels, latestGrid.current, activeIndex);\n // 如果相等,说明没有空闲窗口\n if (index === activeIndex) {\n break;\n }\n activeIndex = index;\n }\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels, activeIndex });\n },\n unLoad: (channelId) => {\n const index = channelRef.current.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...channelRef.current];\n newChannels[index] = { channelNum: '' };\n updateChannels(newChannels);\n }\n },\n unLoadAll: handleCloseAll,\n };\n });\n useEffect(() => {\n if (onPlayingChannelChange) {\n onPlayingChannelChange(state.channels.filter((c) => !!c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({\n activeIndex: DEFAULT_ACTIVE,\n });\n updateChannels(DEFAULT_CHANNELS);\n onVideoCloseAll();\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const updateGrid = (grid) => {\n let newChannels = [...channelRef.current];\n if (grid > newChannels.length) {\n newChannels = DEFAULT_CHANNELS.slice(0, grid).map((item, index) => {\n return newChannels[index] ? newChannels[index] : item;\n });\n }\n else {\n newChannels = newChannels.slice(0, grid);\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels });\n // 重置视频大小\n resizeAll();\n };\n const updateScale = (scale) => {\n setState({ scale });\n // 重置视频大小\n resizeAll();\n };\n // 重置所有视频大小\n const resizeAll = () => {\n const timer = setTimeout(() => {\n Object.values(playRefs.current).forEach((player) => {\n player && player.resize();\n });\n clearTimeout(timer);\n }, 100);\n };\n const updateChannels = (channels) => {\n channelRef.current = channels;\n setState({ channels });\n };\n // 关闭视频\n const closeVideo = (i) => {\n const currChannels = [...channelRef.current];\n const newChannels = [...channelRef.current];\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n onVideoClose && onVideoClose(currChannels[i], newChannels);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(latestGrid.current); i++) {\n const element = (_jsx(GridItem, { ref: (ref) => {\n playRefs.current[i] = ref;\n }, active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: channelRef.current[i] || { channelNum: '' }, onClose: () => {\n // 如果正在轮播\n if (onCloseVideoInRotation) {\n onCloseVideoInRotation(() => closeVideo(i));\n return;\n }\n closeVideo(i);\n }, scale: state.scale, onScreenshot: onScreenshot }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-control-v2\", ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsxs(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: [onExpandChange && (_jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) }))), extraDom ? extraDom : null] })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), gridChange ? (_jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => updateGrid(grid) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) }))) : (_jsxs(\"div\", Object.assign({ className: 'grid-change-disable' }, { children: [_jsx(GridIcon, { disabled: !gridChange }), _jsx(DownOutlined, { className: \"arrow\" })] }))), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => updateScale(scale) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(OccupyingScreenIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen }))] }))] }))] })));\n});\nLiveControlV2.displayName = 'LiveControlV2';\nconst GridItem = forwardRef((props, ref) => {\n const { active, onClick, channel, onClose, onScreenshot, scale } = props;\n const empty = !channel.channelNum;\n const { data, loading } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n const [{ width, height }, setState] = useSetState({\n width: '100%',\n height: '100%',\n });\n const gridItemRef = useRef(null);\n const gridItemSize = useSize(gridItemRef);\n useEffect(() => {\n if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {\n switch (scale) {\n case '100%':\n setState({\n width: '100%',\n height: gridItemSize.height - 26,\n });\n break;\n case '4*3':\n if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 4) * 3,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 3) * 4,\n height: '100%',\n });\n }\n break;\n case '16*9':\n if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 16) * 9,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 9) * 16,\n height: '100%',\n });\n }\n break;\n }\n }\n }, [gridItemSize, scale]);\n const handlePtzType = (type) => {\n const types = {\n 1: 'all',\n 2: 'onlyFocus',\n 3: 'onlyRotate',\n 4: 'none',\n };\n return types[type];\n };\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''} ${loading ? '' : 'emptyImg'}`, onClick: onClick, ref: gridItemRef }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(\"div\", Object.assign({ style: { width, height } }, { children: _jsx(VtxLivePlayer, { ref: ref, url: data.url, type: (data === null || data === void 0 ? void 0 : data.player) || '', deviceIp: data.deviceIp, devicePort: data.devicePort, captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, deviceCode: data.deviceCode, streamType: data.streamType, showInfo: channel.showInfo, info: channel.info, screenshot: onScreenshot, cloudParams: {\n query: {\n channelNum: data.channelNum,\n deviceId: data.deviceId,\n tenantId: getUrlParam('tenantId'),\n },\n type: handlePtzType(data.ptzType),\n } }) })) }))] })) })));\n});\nGridItem.displayName = 'grid-item';\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, Number(grid));\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nconst grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];\n/**\n * 获取布局\n * @param len 通道数量\n */\nconst getGrid = (len) => {\n let grid;\n for (let i = 0; i < grids.length; i++) {\n if (grids[i] - len >= 0) {\n grid = grids[i];\n break;\n }\n }\n return grid > 25 ? 25 : grid;\n};\nexport default LiveControlV2;\n"],"mappings":"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"}
@@ -157,7 +157,8 @@ var LivePlayer = function LivePlayer(props, selfRef) {
157
157
  localStorage.setItem('accessToken', token);
158
158
 
159
159
  case 5:
160
- player = new _player["default"]({
160
+ _context.next = 7;
161
+ return new _player["default"]({
161
162
  url: url,
162
163
  deviceIp: deviceIp,
163
164
  deviceId: deviceId,
@@ -169,6 +170,9 @@ var LivePlayer = function LivePlayer(props, selfRef) {
169
170
  container: container,
170
171
  type: type
171
172
  });
173
+
174
+ case 7:
175
+ player = _context.sent;
172
176
  playerRef.current = player;
173
177
  setState({
174
178
  loading: true,
@@ -186,10 +190,11 @@ var LivePlayer = function LivePlayer(props, selfRef) {
186
190
  })["finally"](function () {
187
191
  setState({
188
192
  loading: false
189
- }), loaded && loaded();
193
+ });
194
+ loaded && loaded();
190
195
  });
191
196
 
192
- case 9:
197
+ case 11:
193
198
  case "end":
194
199
  return _context.stop();
195
200
  }