@vtx/player 1.7.14 → 1.7.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/api/fetch.js +91 -62
- package/lib/api/fetch.js.map +1 -1
- package/lib/api/index.js +63 -18
- package/lib/api/index.js.map +1 -1
- package/lib/api/types.d.ts +5 -5
- package/lib/bd/PlayerManager.js +68 -38
- package/lib/bd/PlayerManager.js.map +1 -1
- package/lib/bill-player/index.d.ts +1 -1
- package/lib/bill-player/index.js +121 -66
- package/lib/bill-player/index.js.map +1 -1
- package/lib/bill-player/style/css.js +9 -0
- package/lib/bill-player/style/css.js.map +1 -1
- package/lib/bill-player/style/index.js +9 -0
- package/lib/bill-player/style/index.js.map +1 -1
- package/lib/bill-player/style/index.less +297 -297
- package/lib/components/set-tag-video/index.js +34 -6
- package/lib/components/set-tag-video/index.js.map +1 -1
- package/lib/components/set-tag-video/style/css.js.map +1 -1
- package/lib/components/set-tag-video/style/index.js.map +1 -1
- package/lib/components/set-tag-video/style/index.less +125 -125
- package/lib/components/split-screen/index.d.ts +1 -1
- package/lib/components/split-screen/index.js +14 -3
- package/lib/components/split-screen/index.js.map +1 -1
- package/lib/components/split-screen/style/css.js.map +1 -1
- package/lib/components/split-screen/style/index.js.map +1 -1
- package/lib/components/tag-video/index.js +38 -10
- package/lib/components/tag-video/index.js.map +1 -1
- package/lib/components/tag-video/style/css.js.map +1 -1
- package/lib/components/tag-video/style/index.js.map +1 -1
- package/lib/components/tag-video/style/index.less +69 -69
- package/lib/components/video-scale/index.d.ts +1 -1
- package/lib/components/video-scale/index.js +9 -2
- package/lib/components/video-scale/index.js.map +1 -1
- package/lib/components/video-scale/style/css.js.map +1 -1
- package/lib/components/video-scale/style/index.js.map +1 -1
- package/lib/context/index.js +4 -0
- package/lib/context/index.js.map +1 -1
- package/lib/controls/index.d.ts +11 -11
- package/lib/controls/index.js +99 -34
- package/lib/controls/index.js.map +1 -1
- package/lib/controls/style/css.js +5 -0
- package/lib/controls/style/css.js.map +1 -1
- package/lib/controls/style/index.js +5 -0
- package/lib/controls/style/index.js.map +1 -1
- package/lib/controls/style/index.less +188 -188
- package/lib/h264/PlayerManager.js +27 -18
- package/lib/h264/PlayerManager.js.map +1 -1
- package/lib/history-control/index.d.ts +2 -2
- package/lib/history-control/index.js +121 -61
- package/lib/history-control/index.js.map +1 -1
- package/lib/history-control/style/css.js +6 -0
- package/lib/history-control/style/css.js.map +1 -1
- package/lib/history-control/style/index.js +6 -0
- package/lib/history-control/style/index.js.map +1 -1
- package/lib/history-control/style/index.less +252 -252
- package/lib/history-control-v2/components/grid-item/index.js +79 -38
- package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
- package/lib/history-control-v2/components/panel/index.js +114 -44
- package/lib/history-control-v2/components/panel/index.js.map +1 -1
- package/lib/history-control-v2/context.js +2 -0
- package/lib/history-control-v2/context.js.map +1 -1
- package/lib/history-control-v2/index.d.ts +4 -4
- package/lib/history-control-v2/index.js +166 -97
- package/lib/history-control-v2/index.js.map +1 -1
- package/lib/history-control-v2/style/css.js +10 -0
- package/lib/history-control-v2/style/css.js.map +1 -1
- package/lib/history-control-v2/style/index.js +10 -0
- package/lib/history-control-v2/style/index.js.map +1 -1
- package/lib/history-control-v2/style/index.less +437 -437
- package/lib/history-control-v2/utils.js +21 -1
- package/lib/history-control-v2/utils.js.map +1 -1
- package/lib/history-player/index.d.ts +3 -3
- package/lib/history-player/index.js +210 -146
- package/lib/history-player/index.js.map +1 -1
- package/lib/history-player/style/css.js +3 -0
- package/lib/history-player/style/css.js.map +1 -1
- package/lib/history-player/style/index.js +3 -0
- package/lib/history-player/style/index.js.map +1 -1
- package/lib/history-player/style/index.less +102 -102
- package/lib/hooks/useSettings.js +6 -1
- package/lib/hooks/useSettings.js.map +1 -1
- package/lib/icc/PlayerManager.js +57 -26
- package/lib/icc/PlayerManager.js.map +1 -1
- package/lib/icc/api.d.ts +68 -0
- package/lib/icc/api.js +16 -2
- package/lib/icc/api.js.map +1 -1
- package/lib/icons/index.d.ts +36 -36
- package/lib/icons/index.js +171 -23
- package/lib/icons/index.js.map +1 -1
- package/lib/icons/index.less +32 -32
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -1
- package/lib/live-channel-player/index.d.ts +1 -1
- package/lib/live-channel-player/index.js +67 -31
- package/lib/live-channel-player/index.js.map +1 -1
- package/lib/live-channel-player/style/css.js +1 -0
- package/lib/live-channel-player/style/css.js.map +1 -1
- package/lib/live-channel-player/style/index.js +1 -0
- package/lib/live-channel-player/style/index.js.map +1 -1
- package/lib/live-control/index.d.ts +2 -2
- package/lib/live-control/index.js +86 -35
- package/lib/live-control/index.js.map +1 -1
- package/lib/live-control/style/css.js +4 -0
- package/lib/live-control/style/css.js.map +1 -1
- package/lib/live-control/style/index.js +4 -0
- package/lib/live-control/style/index.js.map +1 -1
- package/lib/live-control/style/index.less +99 -99
- package/lib/live-control-v2/index.d.ts +3 -3
- package/lib/live-control-v2/index.js +141 -108
- package/lib/live-control-v2/index.js.map +1 -1
- package/lib/live-control-v2/style/css.js +7 -0
- package/lib/live-control-v2/style/css.js.map +1 -1
- package/lib/live-control-v2/style/index.js +7 -0
- package/lib/live-control-v2/style/index.js.map +1 -1
- package/lib/live-control-v2/style/index.less +192 -192
- package/lib/live-player/index.js +136 -95
- package/lib/live-player/index.js.map +1 -1
- package/lib/live-player/style/css.js +2 -0
- package/lib/live-player/style/css.js.map +1 -1
- package/lib/live-player/style/index.js +2 -0
- package/lib/live-player/style/index.js.map +1 -1
- package/lib/live-player/style/index.less +75 -75
- package/lib/player/index.d.ts +1 -1
- package/lib/player/index.js +244 -79
- package/lib/player/index.js.map +1 -1
- package/lib/rsl/PlayerManager.js +64 -18
- package/lib/rsl/PlayerManager.js.map +1 -1
- package/lib/typings/@vtx/utils/index.d.ts +28 -28
- package/lib/typings/h5player.d.ts +146 -146
- package/lib/typings/webrtcplayer.d.ts +56 -56
- package/lib/typings/wsplayer.d.ts +99 -99
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +91 -12
- package/lib/utils/index.js.map +1 -1
- package/lib/vite-env.d.ts +1 -1
- package/lib/vtxHls/PlayerManager.js +20 -6
- package/lib/vtxHls/PlayerManager.js.map +1 -1
- package/lib/vtxHls/WhepManager.js +72 -9
- package/lib/vtxHls/WhepManager.js.map +1 -1
- package/lib/webrtc/PlayerManager.js +41 -28
- package/lib/webrtc/PlayerManager.js.map +1 -1
- package/package.json +125 -125
|
@@ -4,26 +4,47 @@ 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 _controls = require("../controls");
|
|
15
|
+
|
|
11
16
|
var _icons = require("../icons");
|
|
17
|
+
|
|
12
18
|
var _livePlayer = _interopRequireDefault(require("../live-player"));
|
|
19
|
+
|
|
13
20
|
var _ahooks = require("ahooks");
|
|
21
|
+
|
|
14
22
|
var _space = _interopRequireDefault(require("antd/lib/space"));
|
|
23
|
+
|
|
15
24
|
var _tooltip = _interopRequireDefault(require("antd/lib/tooltip"));
|
|
25
|
+
|
|
16
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
|
+
|
|
17
28
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
29
|
+
|
|
18
30
|
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."); }
|
|
31
|
+
|
|
19
32
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
33
|
+
|
|
20
34
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
35
|
+
|
|
21
36
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
37
|
+
|
|
22
38
|
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."); }
|
|
39
|
+
|
|
23
40
|
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); }
|
|
24
|
-
|
|
25
|
-
function
|
|
26
|
-
|
|
41
|
+
|
|
42
|
+
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; }
|
|
43
|
+
|
|
44
|
+
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; }
|
|
45
|
+
|
|
46
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
47
|
+
|
|
27
48
|
var DEFAULT_GRID = 2;
|
|
28
49
|
var DEFAULT_ACTIVE = 0;
|
|
29
50
|
var DEFAULT_CHANNELS = Array(9).fill({
|
|
@@ -32,37 +53,43 @@ var DEFAULT_CHANNELS = Array(9).fill({
|
|
|
32
53
|
/**
|
|
33
54
|
* 实时分屏组件
|
|
34
55
|
*/
|
|
56
|
+
|
|
35
57
|
var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
36
58
|
var _props$height = props.height,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
59
|
+
height = _props$height === void 0 ? '100%' : _props$height,
|
|
60
|
+
_props$width = props.width,
|
|
61
|
+
width = _props$width === void 0 ? '100%' : _props$width,
|
|
62
|
+
onExpandChange = props.onExpandChange,
|
|
63
|
+
onChannelChange = props.onChannelChange,
|
|
64
|
+
polling = props.polling,
|
|
65
|
+
_props$isDark = props.isDark,
|
|
66
|
+
isDark = _props$isDark === void 0 ? false : _props$isDark;
|
|
67
|
+
|
|
45
68
|
var _useSetState = (0, _ahooks.useSetState)({
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
69
|
+
expand: true,
|
|
70
|
+
grid: DEFAULT_GRID,
|
|
71
|
+
activeIndex: DEFAULT_ACTIVE,
|
|
72
|
+
channels: DEFAULT_CHANNELS
|
|
73
|
+
}),
|
|
74
|
+
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
75
|
+
state = _useSetState2[0],
|
|
76
|
+
setState = _useSetState2[1];
|
|
77
|
+
|
|
54
78
|
var wrapRef = (0, _react.useRef)(null);
|
|
79
|
+
|
|
55
80
|
var _useFullscreen = (0, _ahooks.useFullscreen)(wrapRef),
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// 实时视频轮询
|
|
81
|
+
_useFullscreen2 = _slicedToArray(_useFullscreen, 2),
|
|
82
|
+
isFullscreen = _useFullscreen2[0],
|
|
83
|
+
toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
|
|
84
|
+
|
|
85
|
+
var channelRef = (0, _react.useRef)(DEFAULT_CHANNELS); // 实时视频轮询
|
|
86
|
+
|
|
61
87
|
(0, _ahooks.useInterval)(function () {
|
|
62
88
|
// 是否有视频正在播放
|
|
63
89
|
var hasVideo = state.channels.some(function (item) {
|
|
64
90
|
return item.channelNum;
|
|
65
91
|
});
|
|
92
|
+
|
|
66
93
|
if (polling && hasVideo) {
|
|
67
94
|
setState({
|
|
68
95
|
channels: DEFAULT_CHANNELS
|
|
@@ -81,6 +108,7 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
81
108
|
var index = state.channels.findIndex(function (c) {
|
|
82
109
|
return c.channelId && channel.channelId && c.channelNum === channel.channelNum;
|
|
83
110
|
});
|
|
111
|
+
|
|
84
112
|
if (~index) {
|
|
85
113
|
setState({
|
|
86
114
|
activeIndex: index
|
|
@@ -88,6 +116,7 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
88
116
|
} else {
|
|
89
117
|
// 播放该通道
|
|
90
118
|
var newChannels = _toConsumableArray(state.channels);
|
|
119
|
+
|
|
91
120
|
var activeIndex = getActiveIndex(newChannels, state.grid, state.activeIndex);
|
|
92
121
|
newChannels[activeIndex] = channel;
|
|
93
122
|
setState({
|
|
@@ -98,14 +127,16 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
98
127
|
},
|
|
99
128
|
multiLoad: function multiLoad(channels) {
|
|
100
129
|
var grid = 1;
|
|
101
|
-
if (channels.length > 1) grid = 2;
|
|
102
|
-
|
|
130
|
+
if (channels.length > 1) grid = 2; // if (channels.length > 4) grid = 3;
|
|
131
|
+
|
|
103
132
|
var newChannels = [];
|
|
133
|
+
|
|
104
134
|
for (var i = 0; i < 9; i++) {
|
|
105
135
|
newChannels.push(channels[i] ? channels[i] : {
|
|
106
136
|
channelNum: ''
|
|
107
137
|
});
|
|
108
138
|
}
|
|
139
|
+
|
|
109
140
|
setState({
|
|
110
141
|
grid: grid,
|
|
111
142
|
channels: newChannels
|
|
@@ -115,9 +146,11 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
115
146
|
var index = state.channels.findIndex(function (c) {
|
|
116
147
|
return c.channelNum === channelNum;
|
|
117
148
|
});
|
|
149
|
+
|
|
118
150
|
if (~index) {
|
|
119
151
|
// 卸载通道
|
|
120
152
|
var newChannels = _toConsumableArray(state.channels);
|
|
153
|
+
|
|
121
154
|
newChannels[index] = {
|
|
122
155
|
channelNum: ''
|
|
123
156
|
};
|
|
@@ -130,6 +163,7 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
130
163
|
});
|
|
131
164
|
(0, _react.useEffect)(function () {
|
|
132
165
|
channelRef.current = state.channels;
|
|
166
|
+
|
|
133
167
|
if (onChannelChange) {
|
|
134
168
|
onChannelChange(state.channels.filter(function (c) {
|
|
135
169
|
return !!c.channelNum;
|
|
@@ -138,19 +172,23 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
138
172
|
}));
|
|
139
173
|
}
|
|
140
174
|
}, [state.channels]);
|
|
175
|
+
|
|
141
176
|
var handleCloseAll = function handleCloseAll() {
|
|
142
177
|
setState({
|
|
143
178
|
channels: DEFAULT_CHANNELS
|
|
144
179
|
});
|
|
145
180
|
};
|
|
181
|
+
|
|
146
182
|
var handleExpand = function handleExpand() {
|
|
147
183
|
onExpandChange && onExpandChange(!state.expand);
|
|
148
184
|
setState({
|
|
149
185
|
expand: !state.expand
|
|
150
186
|
});
|
|
151
187
|
};
|
|
188
|
+
|
|
152
189
|
var getGridItems = function getGridItems() {
|
|
153
190
|
var items = [];
|
|
191
|
+
|
|
154
192
|
var _loop = function _loop(i) {
|
|
155
193
|
var element = (0, _jsxRuntime.jsx)(GridItem, {
|
|
156
194
|
active: state.activeIndex === i,
|
|
@@ -162,6 +200,7 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
162
200
|
channel: state.channels[i],
|
|
163
201
|
onClose: function onClose() {
|
|
164
202
|
var newChannels = _toConsumableArray(state.channels);
|
|
203
|
+
|
|
165
204
|
newChannels[i] = {
|
|
166
205
|
channelNum: ''
|
|
167
206
|
};
|
|
@@ -172,11 +211,14 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
172
211
|
}, i);
|
|
173
212
|
items.push(element);
|
|
174
213
|
};
|
|
214
|
+
|
|
175
215
|
for (var i = 0; i < state.grid * state.grid; i++) {
|
|
176
216
|
_loop(i);
|
|
177
217
|
}
|
|
218
|
+
|
|
178
219
|
return items;
|
|
179
220
|
};
|
|
221
|
+
|
|
180
222
|
return (0, _jsxRuntime.jsxs)("div", Object.assign({
|
|
181
223
|
className: "vtx-live-control".concat(isDark ? ' live-dark' : ''),
|
|
182
224
|
ref: wrapRef,
|
|
@@ -277,19 +319,22 @@ var LiveControl = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
277
319
|
}));
|
|
278
320
|
});
|
|
279
321
|
LiveControl.displayName = 'LiveControl';
|
|
322
|
+
|
|
280
323
|
var GridItem = function GridItem(props) {
|
|
281
324
|
var active = props.active,
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
325
|
+
onClick = props.onClick,
|
|
326
|
+
channel = props.channel,
|
|
327
|
+
onClose = props.onClose;
|
|
285
328
|
var empty = !channel.channelNum;
|
|
329
|
+
|
|
286
330
|
var _useRequest = (0, _ahooks.useRequest)(function () {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
331
|
+
return (0, _api.getPreviewUrl)(channel);
|
|
332
|
+
}, {
|
|
333
|
+
ready: !!channel.channelNum,
|
|
334
|
+
refreshDeps: [channel.channelNum]
|
|
335
|
+
}),
|
|
336
|
+
data = _useRequest.data;
|
|
337
|
+
|
|
293
338
|
var name = "".concat(data === null || data === void 0 ? void 0 : data.deviceName, "-").concat(data === null || data === void 0 ? void 0 : data.channelName);
|
|
294
339
|
return (0, _jsxRuntime.jsx)("div", Object.assign({
|
|
295
340
|
className: "grid-item-container ".concat(active ? 'active' : ''),
|
|
@@ -322,16 +367,22 @@ var GridItem = function GridItem(props) {
|
|
|
322
367
|
* @param currentIndex 当前索引
|
|
323
368
|
* @returns
|
|
324
369
|
*/
|
|
370
|
+
|
|
371
|
+
|
|
325
372
|
var getActiveIndex = function getActiveIndex(channels, grid, currentIndex) {
|
|
326
373
|
var currentChannels = channels.slice(0, grid * grid);
|
|
374
|
+
|
|
327
375
|
for (var i = currentIndex + 1; i < currentChannels.length; i++) {
|
|
328
376
|
if (!currentChannels[i].channelNum) return i;
|
|
329
377
|
}
|
|
378
|
+
|
|
330
379
|
for (var _i2 = 0; _i2 < currentIndex; _i2++) {
|
|
331
380
|
if (!currentChannels[_i2].channelNum) return _i2;
|
|
332
381
|
}
|
|
382
|
+
|
|
333
383
|
return currentIndex;
|
|
334
384
|
};
|
|
385
|
+
|
|
335
386
|
var _default = LiveControl;
|
|
336
387
|
exports["default"] = _default;
|
|
337
388
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_api","_controls","_icons","_livePlayer","_interopRequireDefault","_ahooks","_space","_tooltip","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","LiveControl","forwardRef","props","ref","_props$height","height","_props$width","width","onExpandChange","onChannelChange","polling","_props$isDark","isDark","_useSetState","useSetState","expand","grid","activeIndex","channels","_useSetState2","state","setState","wrapRef","useRef","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","channelRef","useInterval","hasVideo","some","item","timer","setTimeout","current","clearTimeout","useImperativeHandle","load","channel","index","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","unLoad","useEffect","filter","map","handleCloseAll","handleExpand","getGridItems","items","_loop","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","concat","style","children","Space","size","align","Tooltip","title","display","FoldIcon","ExpandIcon","CloseAllIcon","Grid1x1Icon","Grid2x2Icon","Grid3x3Icon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","_useRequest","useRequest","getPreviewUrl","ready","refreshDeps","data","deviceName","channelName","_Fragment","PlayerHeader","VtxLivePlayer","url","beenHasVideo","type","player","enableAgent","captureName","showInfo","info","currentIndex","currentChannels","_default","exports"],"sources":["live-control/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 { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, Grid1x1Icon, Grid2x2Icon, Grid3x3Icon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { useFullscreen, useInterval, useRequest, useSetState } from 'ahooks';\nimport Space from 'antd/lib/space';\n// import { Space, Tooltip } from 'antd';\nimport Tooltip from 'antd/lib/tooltip';\nconst DEFAULT_GRID = 2;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(9).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControl = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onChannelChange, polling, isDark = false, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n });\n const wrapRef = useRef(null);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n useInterval(() => {\n // 是否有视频正在播放\n const hasVideo = state.channels.some((item) => item.channelNum);\n if (polling && hasVideo) {\n setState({\n channels: DEFAULT_CHANNELS,\n });\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 load: (channel) => {\n const index = state.channels.findIndex((c) => c.channelId && channel.channelId && c.channelNum === channel.channelNum);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...state.channels];\n const activeIndex = getActiveIndex(newChannels, state.grid, state.activeIndex);\n newChannels[activeIndex] = channel;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels) => {\n let grid = 1;\n if (channels.length > 1)\n grid = 2;\n // if (channels.length > 4) grid = 3;\n const newChannels = [];\n for (let i = 0; i < 9; i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n setState({ grid, channels: newChannels });\n },\n unLoad: (channelNum) => {\n const index = state.channels.findIndex((c) => c.channelNum === channelNum);\n if (~index) {\n // 卸载通道\n const newChannels = [...state.channels];\n newChannels[index] = { channelNum: '' };\n setState({ channels: newChannels });\n }\n },\n };\n });\n useEffect(() => {\n channelRef.current = state.channels;\n if (onChannelChange) {\n onChannelChange(state.channels.filter((c) => !!c.channelNum).map((c) => c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({ channels: DEFAULT_CHANNELS });\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < state.grid * state.grid; i++) {\n const element = (_jsx(GridItem, { active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: state.channels[i], onClose: () => {\n const newChannels = [...state.channels];\n newChannels[i] = { channelNum: '' };\n setState({ channels: newChannels });\n } }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: `vtx-live-control${isDark ? ' live-dark' : ''}`, ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"controls\" }, { children: [_jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(Tooltip, Object.assign({ title: state.expand ? '收起' : '展开' }, { children: _jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) })) }))) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(Tooltip, Object.assign({ title: \"\\u5168\\u90E8\\u5173\\u95ED\" }, { children: _jsx(\"div\", { children: _jsx(CloseAllIcon, { onClick: handleCloseAll }) }) })), _jsx(Tooltip, Object.assign({ title: \"1\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid1x1Icon, { active: state.grid === 1, onClick: () => setState({ grid: 1 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"4\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid2x2Icon, { active: state.grid === 2, onClick: () => setState({ grid: 2 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"9\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid3x3Icon, { active: state.grid === 3, onClick: () => setState({ grid: 3 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"\\u5168\\u5C4F\" }, { children: _jsx(\"div\", { children: isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen })) }) }))] }))] }))] })));\n});\nLiveControl.displayName = 'LiveControl';\nconst GridItem = (props) => {\n const { active, onClick, channel, onClose } = props;\n const empty = !channel.channelNum;\n const { data } = 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 return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''}`, onClick: onClick }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(VtxLivePlayer, { url: data.url, beenHasVideo: data.beenHasVideo, type: (data === null || data === void 0 ? void 0 : data.player) || '', enableAgent: (data === null || data === void 0 ? void 0 : data.enableAgent) || false, captureName: name, showInfo: channel.showInfo, info: channel.info }) }))] })) })));\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, grid * 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};\nexport default LiveControl;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","Array","fill","channelNum","LiveControl","forwardRef","props","ref","height","width","onExpandChange","onChannelChange","polling","isDark","useSetState","expand","grid","activeIndex","channels","state","setState","wrapRef","useRef","useFullscreen","isFullscreen","toggleFullscreen","channelRef","useInterval","hasVideo","some","item","timer","setTimeout","current","clearTimeout","useImperativeHandle","load","channel","index","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","length","i","push","unLoad","useEffect","filter","map","handleCloseAll","handleExpand","getGridItems","items","element","_jsx","GridItem","active","onClick","onClose","_jsxs","Object","assign","className","style","children","Space","size","align","Tooltip","title","display","FoldIcon","ExpandIcon","CloseAllIcon","Grid1x1Icon","Grid2x2Icon","Grid3x3Icon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","useRequest","getPreviewUrl","ready","refreshDeps","data","name","deviceName","channelName","_Fragment","PlayerHeader","VtxLivePlayer","url","beenHasVideo","type","player","enableAgent","captureName","showInfo","info","currentIndex","currentChannels","slice"],"sources":["live-control/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 { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, Grid1x1Icon, Grid2x2Icon, Grid3x3Icon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { useFullscreen, useInterval, useRequest, useSetState } from 'ahooks';\nimport Space from 'antd/lib/space';\n// import { Space, Tooltip } from 'antd';\nimport Tooltip from 'antd/lib/tooltip';\nconst DEFAULT_GRID = 2;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(9).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControl = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onChannelChange, polling, isDark = false, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n });\n const wrapRef = useRef(null);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n useInterval(() => {\n // 是否有视频正在播放\n const hasVideo = state.channels.some((item) => item.channelNum);\n if (polling && hasVideo) {\n setState({\n channels: DEFAULT_CHANNELS,\n });\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 load: (channel) => {\n const index = state.channels.findIndex((c) => c.channelId && channel.channelId && c.channelNum === channel.channelNum);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...state.channels];\n const activeIndex = getActiveIndex(newChannels, state.grid, state.activeIndex);\n newChannels[activeIndex] = channel;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels) => {\n let grid = 1;\n if (channels.length > 1)\n grid = 2;\n // if (channels.length > 4) grid = 3;\n const newChannels = [];\n for (let i = 0; i < 9; i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n setState({ grid, channels: newChannels });\n },\n unLoad: (channelNum) => {\n const index = state.channels.findIndex((c) => c.channelNum === channelNum);\n if (~index) {\n // 卸载通道\n const newChannels = [...state.channels];\n newChannels[index] = { channelNum: '' };\n setState({ channels: newChannels });\n }\n },\n };\n });\n useEffect(() => {\n channelRef.current = state.channels;\n if (onChannelChange) {\n onChannelChange(state.channels.filter((c) => !!c.channelNum).map((c) => c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({ channels: DEFAULT_CHANNELS });\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < state.grid * state.grid; i++) {\n const element = (_jsx(GridItem, { active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: state.channels[i], onClose: () => {\n const newChannels = [...state.channels];\n newChannels[i] = { channelNum: '' };\n setState({ channels: newChannels });\n } }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: `vtx-live-control${isDark ? ' live-dark' : ''}`, ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"controls\" }, { children: [_jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(Tooltip, Object.assign({ title: state.expand ? '收起' : '展开' }, { children: _jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) })) }))) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(Tooltip, Object.assign({ title: \"\\u5168\\u90E8\\u5173\\u95ED\" }, { children: _jsx(\"div\", { children: _jsx(CloseAllIcon, { onClick: handleCloseAll }) }) })), _jsx(Tooltip, Object.assign({ title: \"1\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid1x1Icon, { active: state.grid === 1, onClick: () => setState({ grid: 1 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"4\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid2x2Icon, { active: state.grid === 2, onClick: () => setState({ grid: 2 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"9\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid3x3Icon, { active: state.grid === 3, onClick: () => setState({ grid: 3 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"\\u5168\\u5C4F\" }, { children: _jsx(\"div\", { children: isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen })) }) }))] }))] }))] })));\n});\nLiveControl.displayName = 'LiveControl';\nconst GridItem = (props) => {\n const { active, onClick, channel, onClose } = props;\n const empty = !channel.channelNum;\n const { data } = 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 return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''}`, onClick: onClick }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(VtxLivePlayer, { url: data.url, beenHasVideo: data.beenHasVideo, type: (data === null || data === void 0 ? void 0 : data.player) || '', enableAgent: (data === null || data === void 0 ? void 0 : data.enableAgent) || false, captureName: name, showInfo: channel.showInfo, info: channel.info }) }))] })) })));\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, grid * 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};\nexport default LiveControl;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","names":[
|
|
1
|
+
{"version":3,"file":"css.js","names":[],"sources":["live-control/style/index.js"],"sourcesContent":["import './index.less';\nimport '../../controls/style';\nimport '../../live-player/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/tooltip/style';\n"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AAEA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["live-control/style/index.js"],"sourcesContent":["import './index.less';\nimport '../../controls/style';\nimport '../../live-player/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/space/style';\nimport 'antd/lib/tooltip/style';\n"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AAEA"}
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
.live-dark {
|
|
2
|
-
.grid-item-container {
|
|
3
|
-
background-color: rgba(0, 59, 64, 0.45) !important;
|
|
4
|
-
}
|
|
5
|
-
.controls {
|
|
6
|
-
background: rgba(0, 59, 64, 0.3) !important;
|
|
7
|
-
}
|
|
8
|
-
.control-icon {
|
|
9
|
-
&:hover {
|
|
10
|
-
fill: #95fff9;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
&.active {
|
|
14
|
-
fill: #95fff9;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
.theme-body {
|
|
19
|
-
.grid-item-container {
|
|
20
|
-
background: var(--backgroundContainer) !important;
|
|
21
|
-
}
|
|
22
|
-
.controls {
|
|
23
|
-
background: var(--backgroundContainer) !important;
|
|
24
|
-
}
|
|
25
|
-
.control-icon {
|
|
26
|
-
&:hover {
|
|
27
|
-
fill: var(--borderColor);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
&.active {
|
|
31
|
-
fill: var(--borderColor);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.vtx-live-control {
|
|
37
|
-
display: flex;
|
|
38
|
-
flex-direction: column;
|
|
39
|
-
|
|
40
|
-
.player-grid-container {
|
|
41
|
-
display: grid;
|
|
42
|
-
flex-grow: 1;
|
|
43
|
-
grid-gap: 1px;
|
|
44
|
-
height: 0;
|
|
45
|
-
background-color: rgba(0, 0, 0, 0.8);
|
|
46
|
-
|
|
47
|
-
&._1 {
|
|
48
|
-
grid-template-rows: 1fr;
|
|
49
|
-
grid-template-columns: 1fr;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
&._2 {
|
|
53
|
-
grid-template-rows: 1fr 1fr;
|
|
54
|
-
grid-template-columns: 1fr 1fr;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
&._3 {
|
|
58
|
-
grid-template-rows: 1fr 1fr 1fr;
|
|
59
|
-
grid-template-columns: 1fr 1fr 1fr;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.grid-item-container {
|
|
63
|
-
display: flex;
|
|
64
|
-
flex-direction: column;
|
|
65
|
-
min-width: 0;
|
|
66
|
-
min-height: 0;
|
|
67
|
-
background-color: #2b3d51;
|
|
68
|
-
background-image: url('../images/empty.png');
|
|
69
|
-
background-repeat: no-repeat;
|
|
70
|
-
background-position: center;
|
|
71
|
-
|
|
72
|
-
&.active {
|
|
73
|
-
box-shadow: 0 0 0 1px #52c41a;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
> .content {
|
|
77
|
-
flex-grow: 1;
|
|
78
|
-
height: 0;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.controls {
|
|
84
|
-
display: flex;
|
|
85
|
-
align-items: center;
|
|
86
|
-
width: 100%;
|
|
87
|
-
height: 32px;
|
|
88
|
-
padding: 0 12px;
|
|
89
|
-
background-color: #243241;
|
|
90
|
-
|
|
91
|
-
.right {
|
|
92
|
-
margin-left: auto;
|
|
93
|
-
|
|
94
|
-
> div {
|
|
95
|
-
height: 24px;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
1
|
+
.live-dark {
|
|
2
|
+
.grid-item-container {
|
|
3
|
+
background-color: rgba(0, 59, 64, 0.45) !important;
|
|
4
|
+
}
|
|
5
|
+
.controls {
|
|
6
|
+
background: rgba(0, 59, 64, 0.3) !important;
|
|
7
|
+
}
|
|
8
|
+
.control-icon {
|
|
9
|
+
&:hover {
|
|
10
|
+
fill: #95fff9;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&.active {
|
|
14
|
+
fill: #95fff9;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
.theme-body {
|
|
19
|
+
.grid-item-container {
|
|
20
|
+
background: var(--backgroundContainer) !important;
|
|
21
|
+
}
|
|
22
|
+
.controls {
|
|
23
|
+
background: var(--backgroundContainer) !important;
|
|
24
|
+
}
|
|
25
|
+
.control-icon {
|
|
26
|
+
&:hover {
|
|
27
|
+
fill: var(--borderColor);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.active {
|
|
31
|
+
fill: var(--borderColor);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.vtx-live-control {
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-direction: column;
|
|
39
|
+
|
|
40
|
+
.player-grid-container {
|
|
41
|
+
display: grid;
|
|
42
|
+
flex-grow: 1;
|
|
43
|
+
grid-gap: 1px;
|
|
44
|
+
height: 0;
|
|
45
|
+
background-color: rgba(0, 0, 0, 0.8);
|
|
46
|
+
|
|
47
|
+
&._1 {
|
|
48
|
+
grid-template-rows: 1fr;
|
|
49
|
+
grid-template-columns: 1fr;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&._2 {
|
|
53
|
+
grid-template-rows: 1fr 1fr;
|
|
54
|
+
grid-template-columns: 1fr 1fr;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&._3 {
|
|
58
|
+
grid-template-rows: 1fr 1fr 1fr;
|
|
59
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.grid-item-container {
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-direction: column;
|
|
65
|
+
min-width: 0;
|
|
66
|
+
min-height: 0;
|
|
67
|
+
background-color: #2b3d51;
|
|
68
|
+
background-image: url('../images/empty.png');
|
|
69
|
+
background-repeat: no-repeat;
|
|
70
|
+
background-position: center;
|
|
71
|
+
|
|
72
|
+
&.active {
|
|
73
|
+
box-shadow: 0 0 0 1px #52c41a;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
> .content {
|
|
77
|
+
flex-grow: 1;
|
|
78
|
+
height: 0;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.controls {
|
|
84
|
+
display: flex;
|
|
85
|
+
align-items: center;
|
|
86
|
+
width: 100%;
|
|
87
|
+
height: 32px;
|
|
88
|
+
padding: 0 12px;
|
|
89
|
+
background-color: #243241;
|
|
90
|
+
|
|
91
|
+
.right {
|
|
92
|
+
margin-left: auto;
|
|
93
|
+
|
|
94
|
+
> div {
|
|
95
|
+
height: 24px;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { ReactElement } from 'react';
|
|
2
2
|
import { ISplitScreenGrid } from '../components/split-screen';
|
|
3
3
|
import { IVideoScaleValue } from '../components/video-scale';
|
|
4
|
-
export type LiveControlV2Handle = {
|
|
4
|
+
export declare type LiveControlV2Handle = {
|
|
5
5
|
/** 设置窗口 */
|
|
6
6
|
setGrid: (grid: ISplitScreenGrid) => void;
|
|
7
7
|
/** 加载视频 */
|
|
@@ -39,7 +39,7 @@ interface LiveControlV2Props {
|
|
|
39
39
|
extraDom?: ReactElement | undefined;
|
|
40
40
|
defaultGrid?: ISplitScreenGrid;
|
|
41
41
|
}
|
|
42
|
-
export type ChannelType = {
|
|
42
|
+
export declare type ChannelType = {
|
|
43
43
|
/** 通道号 */
|
|
44
44
|
channelNum?: string;
|
|
45
45
|
/** 通道id */
|
|
@@ -59,5 +59,5 @@ export type ChannelType = {
|
|
|
59
59
|
* 实时分屏组件
|
|
60
60
|
*/
|
|
61
61
|
declare const LiveControlV2: React.ForwardRefExoticComponent<LiveControlV2Props & React.RefAttributes<LiveControlV2Handle>>;
|
|
62
|
-
export type CloudControlType = 'all' | 'onlyFocus' | 'onlyRotate' | 'none';
|
|
62
|
+
export declare type CloudControlType = 'all' | 'onlyFocus' | 'onlyRotate' | 'none';
|
|
63
63
|
export default LiveControlV2;
|