@vtx/player 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/lib/api/fetch.js +75 -51
  2. package/lib/api/fetch.js.map +1 -1
  3. package/lib/api/index.js +70 -20
  4. package/lib/api/index.js.map +1 -1
  5. package/lib/api/types.d.ts +7 -6
  6. package/lib/bill-player/index.js +111 -59
  7. package/lib/bill-player/index.js.map +1 -1
  8. package/lib/bill-player/style/css.js +9 -0
  9. package/lib/bill-player/style/css.js.map +1 -1
  10. package/lib/bill-player/style/index.js +9 -0
  11. package/lib/bill-player/style/index.js.map +1 -1
  12. package/lib/components/set-tag-video/index.js +34 -6
  13. package/lib/components/set-tag-video/index.js.map +1 -1
  14. package/lib/components/set-tag-video/style/css.js.map +1 -1
  15. package/lib/components/set-tag-video/style/index.js.map +1 -1
  16. package/lib/components/split-screen/index.d.ts +1 -1
  17. package/lib/components/split-screen/index.js +14 -3
  18. package/lib/components/split-screen/index.js.map +1 -1
  19. package/lib/components/split-screen/style/css.js.map +1 -1
  20. package/lib/components/split-screen/style/index.js.map +1 -1
  21. package/lib/components/tag-video/index.js +38 -10
  22. package/lib/components/tag-video/index.js.map +1 -1
  23. package/lib/components/tag-video/style/css.js.map +1 -1
  24. package/lib/components/tag-video/style/index.js.map +1 -1
  25. package/lib/components/video-scale/index.d.ts +1 -1
  26. package/lib/components/video-scale/index.js +9 -2
  27. package/lib/components/video-scale/index.js.map +1 -1
  28. package/lib/components/video-scale/style/css.js.map +1 -1
  29. package/lib/components/video-scale/style/index.js.map +1 -1
  30. package/lib/context/index.js +4 -0
  31. package/lib/context/index.js.map +1 -1
  32. package/lib/controls/index.d.ts +3 -3
  33. package/lib/controls/index.js +97 -33
  34. package/lib/controls/index.js.map +1 -1
  35. package/lib/controls/style/css.js +5 -0
  36. package/lib/controls/style/css.js.map +1 -1
  37. package/lib/controls/style/index.js +5 -0
  38. package/lib/controls/style/index.js.map +1 -1
  39. package/lib/history-control/index.d.ts +2 -2
  40. package/lib/history-control/index.js +114 -57
  41. package/lib/history-control/index.js.map +1 -1
  42. package/lib/history-control/style/css.js +6 -0
  43. package/lib/history-control/style/css.js.map +1 -1
  44. package/lib/history-control/style/index.js +6 -0
  45. package/lib/history-control/style/index.js.map +1 -1
  46. package/lib/history-control-v2/components/grid-item/index.js +75 -35
  47. package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
  48. package/lib/history-control-v2/components/panel/index.js +110 -39
  49. package/lib/history-control-v2/components/panel/index.js.map +1 -1
  50. package/lib/history-control-v2/context.js +2 -0
  51. package/lib/history-control-v2/context.js.map +1 -1
  52. package/lib/history-control-v2/index.d.ts +5 -5
  53. package/lib/history-control-v2/index.js +169 -102
  54. package/lib/history-control-v2/index.js.map +1 -1
  55. package/lib/history-control-v2/interface.d.ts +3 -3
  56. package/lib/history-control-v2/style/css.js +10 -0
  57. package/lib/history-control-v2/style/css.js.map +1 -1
  58. package/lib/history-control-v2/style/index.js +10 -0
  59. package/lib/history-control-v2/style/index.js.map +1 -1
  60. package/lib/history-control-v2/utils.d.ts +1 -1
  61. package/lib/history-control-v2/utils.js +23 -1
  62. package/lib/history-control-v2/utils.js.map +1 -1
  63. package/lib/history-player/index.d.ts +1 -1
  64. package/lib/history-player/index.js +118 -73
  65. package/lib/history-player/index.js.map +1 -1
  66. package/lib/history-player/style/css.js +3 -0
  67. package/lib/history-player/style/css.js.map +1 -1
  68. package/lib/history-player/style/index.js +3 -0
  69. package/lib/history-player/style/index.js.map +1 -1
  70. package/lib/hooks/useSettings.js +6 -1
  71. package/lib/hooks/useSettings.js.map +1 -1
  72. package/lib/icons/index.js +171 -23
  73. package/lib/icons/index.js.map +1 -1
  74. package/lib/index.js +10 -0
  75. package/lib/index.js.map +1 -1
  76. package/lib/live-channel-player/index.js +67 -31
  77. package/lib/live-channel-player/index.js.map +1 -1
  78. package/lib/live-channel-player/style/css.js +1 -0
  79. package/lib/live-channel-player/style/css.js.map +1 -1
  80. package/lib/live-channel-player/style/index.js +1 -0
  81. package/lib/live-channel-player/style/index.js.map +1 -1
  82. package/lib/live-control/index.d.ts +2 -2
  83. package/lib/live-control/index.js +84 -32
  84. package/lib/live-control/index.js.map +1 -1
  85. package/lib/live-control/style/css.js +4 -0
  86. package/lib/live-control/style/css.js.map +1 -1
  87. package/lib/live-control/style/index.js +4 -0
  88. package/lib/live-control/style/index.js.map +1 -1
  89. package/lib/live-control-v2/index.d.ts +3 -3
  90. package/lib/live-control-v2/index.js +155 -60
  91. package/lib/live-control-v2/index.js.map +1 -1
  92. package/lib/live-control-v2/style/css.js +7 -0
  93. package/lib/live-control-v2/style/css.js.map +1 -1
  94. package/lib/live-control-v2/style/index.js +7 -0
  95. package/lib/live-control-v2/style/index.js.map +1 -1
  96. package/lib/live-player/index.d.ts +11 -2
  97. package/lib/live-player/index.js +71 -34
  98. package/lib/live-player/index.js.map +1 -1
  99. package/lib/live-player/style/css.js +2 -0
  100. package/lib/live-player/style/css.js.map +1 -1
  101. package/lib/live-player/style/index.js +2 -0
  102. package/lib/live-player/style/index.js.map +1 -1
  103. package/lib/player/index.d.ts +2 -1
  104. package/lib/player/index.js +131 -49
  105. package/lib/player/index.js.map +1 -1
  106. package/lib/typings/h5player.d.ts +1 -0
  107. package/lib/utils/index.d.ts +3 -3
  108. package/lib/utils/index.js +86 -16
  109. package/lib/utils/index.js.map +1 -1
  110. package/package.json +1 -1
@@ -4,29 +4,53 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
+
7
8
  var _jsxRuntime = require("react/jsx-runtime");
9
+
8
10
  var _react = require("react");
11
+
9
12
  var _api = require("../api");
13
+
10
14
  var _splitScreen = _interopRequireDefault(require("../components/split-screen"));
15
+
11
16
  var _videoScale = _interopRequireDefault(require("../components/video-scale"));
17
+
12
18
  var _controls = require("../controls");
13
- var _utils = require("../utils");
19
+
14
20
  var _icons = require("../icons");
21
+
15
22
  var _livePlayer = _interopRequireDefault(require("../live-player"));
23
+
24
+ var _utils = require("../utils");
25
+
16
26
  var _icons2 = require("@ant-design/icons");
27
+
17
28
  var _ahooks = require("ahooks");
29
+
18
30
  var _space = _interopRequireDefault(require("antd/lib/space"));
31
+
19
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
+
20
34
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
35
+
21
36
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
37
+
22
38
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
39
+
23
40
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
41
+
24
42
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
43
+
25
44
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
45
+
26
46
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
28
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
47
+
48
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
49
+
50
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
51
+
29
52
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
53
+
30
54
  var DEFAULT_GRID = 4;
31
55
  var DEFAULT_ACTIVE = 0;
32
56
  var DEFAULT_CHANNELS = Array(25).fill({
@@ -35,37 +59,42 @@ var DEFAULT_CHANNELS = Array(25).fill({
35
59
  /**
36
60
  * 实时分屏组件
37
61
  */
62
+
38
63
  var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
39
64
  var _props$height = props.height,
40
- height = _props$height === void 0 ? '100%' : _props$height,
41
- _props$width = props.width,
42
- width = _props$width === void 0 ? '100%' : _props$width,
43
- onExpandChange = props.onExpandChange,
44
- onPlayingChannelChange = props.onPlayingChannelChange,
45
- onVideoClose = props.onVideoClose,
46
- onCloseVideoInRotation = props.onCloseVideoInRotation,
47
- extraDom = props.extraDom,
48
- _props$gridChange = props.gridChange,
49
- gridChange = _props$gridChange === void 0 ? true : _props$gridChange,
50
- onScreenshot = props.onScreenshot;
65
+ height = _props$height === void 0 ? '100%' : _props$height,
66
+ _props$width = props.width,
67
+ width = _props$width === void 0 ? '100%' : _props$width,
68
+ onExpandChange = props.onExpandChange,
69
+ onPlayingChannelChange = props.onPlayingChannelChange,
70
+ onVideoClose = props.onVideoClose,
71
+ onCloseVideoInRotation = props.onCloseVideoInRotation,
72
+ extraDom = props.extraDom,
73
+ _props$gridChange = props.gridChange,
74
+ gridChange = _props$gridChange === void 0 ? true : _props$gridChange,
75
+ onScreenshot = props.onScreenshot;
76
+
51
77
  var _useSetState = (0, _ahooks.useSetState)({
52
- expand: true,
53
- grid: DEFAULT_GRID,
54
- activeIndex: DEFAULT_ACTIVE,
55
- channels: DEFAULT_CHANNELS,
56
- scale: '100%'
57
- }),
58
- _useSetState2 = _slicedToArray(_useSetState, 2),
59
- state = _useSetState2[0],
60
- setState = _useSetState2[1];
78
+ expand: true,
79
+ grid: DEFAULT_GRID,
80
+ activeIndex: DEFAULT_ACTIVE,
81
+ channels: DEFAULT_CHANNELS,
82
+ scale: '100%'
83
+ }),
84
+ _useSetState2 = _slicedToArray(_useSetState, 2),
85
+ state = _useSetState2[0],
86
+ setState = _useSetState2[1];
87
+
88
+ var playRefs = (0, _react.useRef)({});
61
89
  var wrapRef = (0, _react.useRef)(null);
62
90
  var latestGrid = (0, _react.useRef)(DEFAULT_GRID);
91
+
63
92
  var _useFullscreen = (0, _ahooks.useFullscreen)(wrapRef),
64
- _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
65
- isFullscreen = _useFullscreen2[0],
66
- toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
67
- var channelRef = (0, _react.useRef)(DEFAULT_CHANNELS);
68
- // 实时视频轮询
93
+ _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
94
+ isFullscreen = _useFullscreen2[0],
95
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
96
+
97
+ var channelRef = (0, _react.useRef)(DEFAULT_CHANNELS); // 实时视频轮询
69
98
  // useInterval(() => {
70
99
  // // 是否有视频正在播放
71
100
  // const hasVideo = channelRef.current.some((item) => item.channelNum);
@@ -79,6 +108,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
79
108
  // }, 0);
80
109
  // }
81
110
  // }, polling);
111
+
82
112
  (0, _react.useImperativeHandle)(ref, function () {
83
113
  return {
84
114
  setGrid: function setGrid(grid) {
@@ -88,6 +118,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
88
118
  var index = channelRef.current.findIndex(function (c) {
89
119
  return c.channelId && channel.channelId && c.channelId === channel.channelId;
90
120
  });
121
+
91
122
  if (~index) {
92
123
  setState({
93
124
  activeIndex: index
@@ -95,6 +126,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
95
126
  } else {
96
127
  // 播放该通道
97
128
  var newChannels = _toConsumableArray(channelRef.current);
129
+
98
130
  newChannels[state.activeIndex] = channel;
99
131
  var activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);
100
132
  channelRef.current = newChannels;
@@ -109,10 +141,11 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
109
141
  var adapt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
110
142
  var grid = latestGrid.current;
111
143
  var newChannels = [],
112
- activeIndex = state.activeIndex;
113
- // 每次清空已经在播放的视频
144
+ activeIndex = state.activeIndex; // 每次清空已经在播放的视频
145
+
114
146
  if (init) {
115
147
  adapt && (grid = getGrid(channels.length));
148
+
116
149
  for (var i = 0; i < Number(grid); i++) {
117
150
  newChannels.push(channels[i] ? channels[i] : {
118
151
  channelNum: ''
@@ -121,18 +154,21 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
121
154
  } else {
122
155
  // 不清空,找寻空闲窗口播放
123
156
  newChannels = _toConsumableArray(channelRef.current);
157
+
124
158
  for (var _i2 = 0; _i2 < channels.length; _i2++) {
125
159
  newChannels[activeIndex] = channels[_i2] || {
126
160
  channelNum: ''
127
161
  };
128
- var index = getActiveIndex(newChannels, latestGrid.current, activeIndex);
129
- // 如果相等,说明没有空闲窗口
162
+ var index = getActiveIndex(newChannels, latestGrid.current, activeIndex); // 如果相等,说明没有空闲窗口
163
+
130
164
  if (index === activeIndex) {
131
165
  break;
132
166
  }
167
+
133
168
  activeIndex = index;
134
169
  }
135
170
  }
171
+
136
172
  latestGrid.current = grid;
137
173
  channelRef.current = newChannels;
138
174
  setState({
@@ -145,9 +181,11 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
145
181
  var index = channelRef.current.findIndex(function (c) {
146
182
  return c.channelId === channelId;
147
183
  });
184
+
148
185
  if (~index) {
149
186
  // 卸载通道
150
187
  var newChannels = _toConsumableArray(channelRef.current);
188
+
151
189
  newChannels[index] = {
152
190
  channelNum: ''
153
191
  };
@@ -164,20 +202,24 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
164
202
  }));
165
203
  }
166
204
  }, [state.channels]);
205
+
167
206
  var handleCloseAll = function handleCloseAll() {
168
207
  setState({
169
208
  activeIndex: DEFAULT_ACTIVE
170
209
  });
171
210
  updateChannels(DEFAULT_CHANNELS);
172
211
  };
212
+
173
213
  var handleExpand = function handleExpand() {
174
214
  onExpandChange && onExpandChange(!state.expand);
175
215
  setState({
176
216
  expand: !state.expand
177
217
  });
178
218
  };
219
+
179
220
  var updateGrid = function updateGrid(grid) {
180
221
  var newChannels = _toConsumableArray(channelRef.current);
222
+
181
223
  if (grid > newChannels.length) {
182
224
  newChannels = DEFAULT_CHANNELS.slice(0, grid).map(function (item, index) {
183
225
  return newChannels[index] ? newChannels[index] : item;
@@ -185,32 +227,61 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
185
227
  } else {
186
228
  newChannels = newChannels.slice(0, grid);
187
229
  }
230
+
188
231
  latestGrid.current = grid;
189
232
  channelRef.current = newChannels;
190
233
  setState({
191
234
  grid: grid,
192
235
  channels: newChannels
193
- });
236
+ }); // 重置视频大小
237
+
238
+ resizeAll();
239
+ };
240
+
241
+ var updateScale = function updateScale(scale) {
242
+ setState({
243
+ scale: scale
244
+ }); // 重置视频大小
245
+
246
+ resizeAll();
247
+ }; // 重置所有视频大小
248
+
249
+
250
+ var resizeAll = function resizeAll() {
251
+ var timer = setTimeout(function () {
252
+ Object.values(playRefs.current).forEach(function (player) {
253
+ player && player.resize();
254
+ });
255
+ clearTimeout(timer);
256
+ }, 100);
194
257
  };
258
+
195
259
  var updateChannels = function updateChannels(channels) {
196
260
  channelRef.current = channels;
197
261
  setState({
198
262
  channels: channels
199
263
  });
200
- };
201
- // 关闭视频
264
+ }; // 关闭视频
265
+
266
+
202
267
  var closeVideo = function closeVideo(i) {
203
268
  var newChannels = _toConsumableArray(channelRef.current);
269
+
204
270
  onVideoClose && onVideoClose(newChannels[i]);
205
271
  newChannels[i] = {
206
272
  channelNum: ''
207
273
  };
208
274
  updateChannels(newChannels);
209
275
  };
276
+
210
277
  var getGridItems = function getGridItems() {
211
278
  var items = [];
279
+
212
280
  var _loop = function _loop(i) {
213
281
  var element = (0, _jsxRuntime.jsx)(GridItem, {
282
+ ref: function ref(_ref) {
283
+ playRefs.current[i] = _ref;
284
+ },
214
285
  active: state.activeIndex === i,
215
286
  onClick: function onClick() {
216
287
  return setState({
@@ -228,6 +299,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
228
299
  });
229
300
  return;
230
301
  }
302
+
231
303
  closeVideo(i);
232
304
  },
233
305
  scale: state.scale,
@@ -235,11 +307,14 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
235
307
  }, i);
236
308
  items.push(element);
237
309
  };
310
+
238
311
  for (var i = 0; i < Number(latestGrid.current); i++) {
239
312
  _loop(i);
240
313
  }
314
+
241
315
  return items;
242
316
  };
317
+
243
318
  return (0, _jsxRuntime.jsxs)("div", Object.assign({
244
319
  className: "vtx-live-control-v2",
245
320
  ref: wrapRef,
@@ -303,9 +378,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
303
378
  })), (0, _jsxRuntime.jsx)(_videoScale["default"], Object.assign({
304
379
  scale: state.scale,
305
380
  setScale: function setScale(scale) {
306
- return setState({
307
- scale: scale
308
- });
381
+ return updateScale(scale);
309
382
  }
310
383
  }, {
311
384
  children: (0, _jsxRuntime.jsxs)("div", Object.assign({
@@ -327,32 +400,36 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
327
400
  }));
328
401
  });
329
402
  LiveControlV2.displayName = 'LiveControlV2';
330
- var GridItem = function GridItem(props) {
403
+ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
331
404
  var active = props.active,
332
- onClick = props.onClick,
333
- channel = props.channel,
334
- onClose = props.onClose,
335
- onScreenshot = props.onScreenshot,
336
- scale = props.scale;
405
+ onClick = props.onClick,
406
+ channel = props.channel,
407
+ onClose = props.onClose,
408
+ onScreenshot = props.onScreenshot,
409
+ scale = props.scale;
337
410
  var empty = !channel.channelNum;
411
+
338
412
  var _useRequest = (0, _ahooks.useRequest)(function () {
339
- return (0, _api.getPreviewUrl)(channel);
340
- }, {
341
- ready: !!channel.channelNum,
342
- refreshDeps: [channel.channelNum]
343
- }),
344
- data = _useRequest.data,
345
- loading = _useRequest.loading;
413
+ return (0, _api.getPreviewUrl)(channel);
414
+ }, {
415
+ ready: !!channel.channelNum,
416
+ refreshDeps: [channel.channelNum]
417
+ }),
418
+ data = _useRequest.data,
419
+ loading = _useRequest.loading;
420
+
346
421
  var name = "".concat(data === null || data === void 0 ? void 0 : data.deviceName, "-").concat(data === null || data === void 0 ? void 0 : data.channelName);
422
+
347
423
  var _useSetState3 = (0, _ahooks.useSetState)({
348
- width: '100%',
349
- height: '100%'
350
- }),
351
- _useSetState4 = _slicedToArray(_useSetState3, 2),
352
- _useSetState4$ = _useSetState4[0],
353
- width = _useSetState4$.width,
354
- height = _useSetState4$.height,
355
- setState = _useSetState4[1];
424
+ width: '100%',
425
+ height: '100%'
426
+ }),
427
+ _useSetState4 = _slicedToArray(_useSetState3, 2),
428
+ _useSetState4$ = _useSetState4[0],
429
+ width = _useSetState4$.width,
430
+ height = _useSetState4$.height,
431
+ setState = _useSetState4[1];
432
+
356
433
  var gridItemRef = (0, _react.useRef)(null);
357
434
  var gridItemSize = (0, _ahooks.useSize)(gridItemRef);
358
435
  (0, _react.useEffect)(function () {
@@ -364,6 +441,7 @@ var GridItem = function GridItem(props) {
364
441
  height: gridItemSize.height - 26
365
442
  });
366
443
  break;
444
+
367
445
  case '4*3':
368
446
  if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {
369
447
  setState({
@@ -376,7 +454,9 @@ var GridItem = function GridItem(props) {
376
454
  height: '100%'
377
455
  });
378
456
  }
457
+
379
458
  break;
459
+
380
460
  case '16*9':
381
461
  if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {
382
462
  setState({
@@ -389,10 +469,12 @@ var GridItem = function GridItem(props) {
389
469
  height: '100%'
390
470
  });
391
471
  }
472
+
392
473
  break;
393
474
  }
394
475
  }
395
476
  }, [gridItemSize, scale]);
477
+
396
478
  var handlePtzType = function handlePtzType(type) {
397
479
  var types = {
398
480
  1: 'all',
@@ -402,6 +484,7 @@ var GridItem = function GridItem(props) {
402
484
  };
403
485
  return types[type];
404
486
  };
487
+
405
488
  return (0, _jsxRuntime.jsx)("div", Object.assign({
406
489
  className: "grid-item-container ".concat(active ? 'active' : '', " ").concat(loading ? '' : 'emptyImg'),
407
490
  onClick: onClick,
@@ -421,7 +504,9 @@ var GridItem = function GridItem(props) {
421
504
  }
422
505
  }, {
423
506
  children: (0, _jsxRuntime.jsx)(_livePlayer["default"], {
507
+ ref: ref,
424
508
  url: data.url,
509
+ type: (data === null || data === void 0 ? void 0 : data.player) || '',
425
510
  captureName: name,
426
511
  deviceId: data.deviceId,
427
512
  channelNum: data.channelNum,
@@ -441,7 +526,8 @@ var GridItem = function GridItem(props) {
441
526
  }))]
442
527
  })
443
528
  }));
444
- };
529
+ });
530
+ GridItem.displayName = 'grid-item';
445
531
  /**
446
532
  * 获取当前激活的网格
447
533
  * @param channels 现有通道数组
@@ -449,31 +535,40 @@ var GridItem = function GridItem(props) {
449
535
  * @param currentIndex 当前索引
450
536
  * @returns
451
537
  */
538
+
452
539
  var getActiveIndex = function getActiveIndex(channels, grid, currentIndex) {
453
540
  var currentChannels = channels.slice(0, Number(grid));
541
+
454
542
  for (var i = currentIndex + 1; i < currentChannels.length; i++) {
455
543
  if (!currentChannels[i].channelNum) return i;
456
544
  }
545
+
457
546
  for (var _i3 = 0; _i3 < currentIndex; _i3++) {
458
547
  if (!currentChannels[_i3].channelNum) return _i3;
459
548
  }
549
+
460
550
  return currentIndex;
461
551
  };
552
+
462
553
  var grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];
463
554
  /**
464
555
  * 获取布局
465
556
  * @param len 通道数量
466
557
  */
558
+
467
559
  var getGrid = function getGrid(len) {
468
560
  var grid;
561
+
469
562
  for (var i = 0; i < grids.length; i++) {
470
563
  if (grids[i] - len >= 0) {
471
564
  grid = grids[i];
472
565
  break;
473
566
  }
474
567
  }
568
+
475
569
  return grid > 25 ? 25 : grid;
476
570
  };
571
+
477
572
  var _default = LiveControlV2;
478
573
  exports["default"] = _default;
479
574
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_api","_splitScreen","_interopRequireDefault","_videoScale","_controls","_utils","_icons","_livePlayer","_icons2","_ahooks","_space","obj","__esModule","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","i","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","fill","channelNum","LiveControlV2","forwardRef","props","ref","_props$height","height","_props$width","width","onExpandChange","onPlayingChannelChange","onVideoClose","onCloseVideoInRotation","extraDom","_props$gridChange","gridChange","onScreenshot","_useSetState","useSetState","expand","grid","activeIndex","channels","scale","_useSetState2","state","setState","wrapRef","useRef","latestGrid","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","arguments","undefined","adapt","getGrid","Number","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","filter","handleExpand","map","item","closeVideo","getGridItems","items","_loop","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","concat","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","_useRequest","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","deviceName","channelName","_useSetState3","_useSetState4","_useSetState4$","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","captureName","deviceId","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","_default","exports"],"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 { getUrlParam } from '../utils';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\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, 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 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 };\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 const updateChannels = (channels) => {\n channelRef.current = channels;\n setState({ channels });\n };\n // 关闭视频\n const closeVideo = (i) => {\n const newChannels = [...channelRef.current];\n onVideoClose && onVideoClose(newChannels[i]);\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(latestGrid.current); i++) {\n const element = (_jsx(GridItem, { 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) => setState({ 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 = (props) => {\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, { url: data.url, captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, 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};\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","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","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","captureName","deviceId","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, 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 };\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 newChannels = [...channelRef.current];\n onVideoClose && onVideoClose(newChannels[i]);\n newChannels[i] = { channelNum: '' };\n updateChannels(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) || '', captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, 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,11 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  require("antd/lib/popover/style/css");
4
+
4
5
  require("antd/lib/space/style/css");
6
+
5
7
  require("antd/lib/tooltip/style/css");
8
+
6
9
  require("../../controls/style/css");
10
+
7
11
  require("../../live-player/style/css");
12
+
8
13
  require("../../components/split-screen/style/css");
14
+
9
15
  require("../../components/video-scale/style/css");
16
+
10
17
  require("./index.css");
11
18
  //# sourceMappingURL=css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":["require"],"sources":["live-control-v2/style/index.js"],"sourcesContent":["import 'antd/lib/popover/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/tooltip/style';\nimport '../../controls/style';\nimport '../../live-player/style';\nimport '../../components/split-screen/style';\nimport '../../components/video-scale/style';\nimport './index.less';\n"],"mappings":";;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA"}
1
+ {"version":3,"file":"css.js","names":[],"sources":["live-control-v2/style/index.js"],"sourcesContent":["import 'antd/lib/popover/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/tooltip/style';\nimport '../../controls/style';\nimport '../../live-player/style';\nimport '../../components/split-screen/style';\nimport '../../components/video-scale/style';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA"}