@cloud-app-dev/vidc 3.0.34 → 3.0.36
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/.umirc.ts +1 -1
- package/es/CustomRenderSelect/index.d.ts +3 -1
- package/es/CustomRenderSelect/index.js +14 -2
- package/es/DisableMark/index.js +7 -1
- package/es/ScreenPlayer/Live.js +6 -3
- package/es/ScreenPlayer/LiveTools.d.ts +1 -2
- package/es/ScreenPlayer/LiveTools.js +1 -6
- package/es/ScreenPlayer/RatePick.d.ts +6 -0
- package/es/ScreenPlayer/RatePick.js +59 -0
- package/es/ScreenPlayer/Record.js +4 -5
- package/es/ScreenPlayer/RecordTools.js +9 -1
- package/es/ScreenPlayer/SegmentTimeLine.js +1 -1
- package/es/ScreenPlayer/demo2.js +1 -1
- package/es/ScreenPlayer/index.css +14 -1
- package/es/ScreenPlayer/useTimeSlider.js +23 -44
- package/package.json +1 -1
package/.umirc.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { defineConfig } from 'dumi';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
|
|
4
4
|
const token =
|
|
5
|
-
'eyJhbGciOiJIUzI1NiJ9.
|
|
5
|
+
'eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDEwMTAwMDQ0NSIsImV4dCI6MTY2NTc0ODU1OTg5MSwidWlkIjoiMTAxMDAwMDAwNjk5IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA1MTgsMTAwMDAwMTEwNzI4XSwidmFsaWRUaW1lIjoxNzA0MzgzOTk5MDAwLCJvcHRDZW50ZXJJZCI6IjEwMDEwMDAwMDIzMyIsInVzZXJUeXBlIjoxMDA3MDQsImlhdCI6MTY2NTQ4OTM1OTg5MX0.zxxxxoaKjyO6CJhi2cs06gTOtjdLgPA9UI7zAQ0zzss';
|
|
6
6
|
|
|
7
7
|
export default defineConfig({
|
|
8
8
|
title: 'CloudApp VIDC',
|
|
@@ -5,6 +5,8 @@ interface ICustomRenderSelectProps extends SelectProps {
|
|
|
5
5
|
children?: React.ReactNode;
|
|
6
6
|
value: any;
|
|
7
7
|
customRender: (value: any) => JSX.Element;
|
|
8
|
+
onChange: (value: any) => void;
|
|
9
|
+
selectAotoClose?: boolean;
|
|
8
10
|
}
|
|
9
|
-
declare function CustomRenderSelect({ children, value, customRender, popupClassName, getPopupContainer, ...props }: ICustomRenderSelectProps): JSX.Element;
|
|
11
|
+
declare function CustomRenderSelect({ children, value, customRender, popupClassName, getPopupContainer, onChange, selectAotoClose, ...props }: ICustomRenderSelectProps): JSX.Element;
|
|
10
12
|
export default CustomRenderSelect;
|
|
@@ -26,7 +26,10 @@ function CustomRenderSelect(_a) {
|
|
|
26
26
|
customRender = _a.customRender,
|
|
27
27
|
popupClassName = _a.popupClassName,
|
|
28
28
|
getPopupContainer = _a.getPopupContainer,
|
|
29
|
-
|
|
29
|
+
onChange = _a.onChange,
|
|
30
|
+
_a$selectAotoClose = _a.selectAotoClose,
|
|
31
|
+
selectAotoClose = _a$selectAotoClose === void 0 ? true : _a$selectAotoClose,
|
|
32
|
+
props = __rest(_a, ["children", "value", "customRender", "popupClassName", "getPopupContainer", "onChange", "selectAotoClose"]);
|
|
30
33
|
|
|
31
34
|
var classname = useMemo(function () {
|
|
32
35
|
return "custom-render-select-dropdown-".concat(_uuid());
|
|
@@ -52,6 +55,14 @@ function CustomRenderSelect(_a) {
|
|
|
52
55
|
return set(false);
|
|
53
56
|
}, getDoms, ['click']);
|
|
54
57
|
|
|
58
|
+
var onSelectChange = function onSelectChange(v) {
|
|
59
|
+
onChange && onChange(v);
|
|
60
|
+
|
|
61
|
+
if (selectAotoClose) {
|
|
62
|
+
set(false);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
55
66
|
return /*#__PURE__*/React.createElement("div", {
|
|
56
67
|
className: "custom-render-select",
|
|
57
68
|
ref: domRef
|
|
@@ -61,7 +72,8 @@ function CustomRenderSelect(_a) {
|
|
|
61
72
|
getPopupContainer: getPopupContainer ? getPopupContainer : function () {
|
|
62
73
|
return domRef.current.parentElement.parentElement;
|
|
63
74
|
},
|
|
64
|
-
open: open
|
|
75
|
+
open: open,
|
|
76
|
+
onChange: onSelectChange
|
|
65
77
|
}), children), /*#__PURE__*/React.createElement("div", {
|
|
66
78
|
className: "custom-render-box",
|
|
67
79
|
onClick: toggle
|
package/es/DisableMark/index.js
CHANGED
|
@@ -4,7 +4,13 @@ export default function DisableMark(_ref) {
|
|
|
4
4
|
var children = _ref.children,
|
|
5
5
|
disabled = _ref.disabled,
|
|
6
6
|
width = _ref.width;
|
|
7
|
-
return /*#__PURE__*/React.createElement(
|
|
7
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
8
|
+
style: {
|
|
9
|
+
width: '100%',
|
|
10
|
+
height: 'max-content',
|
|
11
|
+
position: 'relative'
|
|
12
|
+
}
|
|
13
|
+
}, disabled ? /*#__PURE__*/React.createElement("div", {
|
|
8
14
|
className: "disable-mark",
|
|
9
15
|
style: {
|
|
10
16
|
width: width
|
package/es/ScreenPlayer/Live.js
CHANGED
|
@@ -26,6 +26,7 @@ import { ScreenType, mergeFill } from './utils';
|
|
|
26
26
|
import { LivePlayerWithExt } from './PlayerWithExt';
|
|
27
27
|
import Tools from './LiveTools';
|
|
28
28
|
import useVideoFit from './useVideoFit';
|
|
29
|
+
import DisableMark from '../DisableMark';
|
|
29
30
|
import "./index.css";
|
|
30
31
|
|
|
31
32
|
function LivePlayer(_a) {
|
|
@@ -174,11 +175,13 @@ function LivePlayer(_a) {
|
|
|
174
175
|
height: screenType.height
|
|
175
176
|
}
|
|
176
177
|
}));
|
|
177
|
-
})), /*#__PURE__*/React.createElement(
|
|
178
|
+
})), /*#__PURE__*/React.createElement(DisableMark, {
|
|
179
|
+
disabled: !segmentItem.url,
|
|
180
|
+
width: "70%"
|
|
181
|
+
}, /*#__PURE__*/React.createElement(Tools, {
|
|
178
182
|
onClose: onClose,
|
|
179
183
|
onCloseAll: onCloseAll,
|
|
180
184
|
fit: fit,
|
|
181
|
-
disabled: !segmentItem.url,
|
|
182
185
|
toggleFit: toggleFit,
|
|
183
186
|
getPlayerItem: getPlayerItem,
|
|
184
187
|
screenNum: screenNum,
|
|
@@ -190,7 +193,7 @@ function LivePlayer(_a) {
|
|
|
190
193
|
allWinExtTools: allWinExtTools
|
|
191
194
|
}), children && /*#__PURE__*/React.cloneElement(children, {
|
|
192
195
|
selectIndex: state.selectIndex
|
|
193
|
-
}));
|
|
196
|
+
})));
|
|
194
197
|
}
|
|
195
198
|
|
|
196
199
|
LivePlayer.defaultProps = {
|
|
@@ -14,7 +14,6 @@ interface IToolsProps {
|
|
|
14
14
|
toggleFit?: () => void;
|
|
15
15
|
onClose?: () => void;
|
|
16
16
|
onCloseAll?: () => void;
|
|
17
|
-
disabled: boolean;
|
|
18
17
|
snapshot?: (base64?: string) => void;
|
|
19
18
|
/**
|
|
20
19
|
* 单窗口拓展工具条,左侧
|
|
@@ -25,5 +24,5 @@ interface IToolsProps {
|
|
|
25
24
|
*/
|
|
26
25
|
allWinExtTools?: JSX.Element;
|
|
27
26
|
}
|
|
28
|
-
declare function LiveTools({ containerRef, oneWinExtTools, allWinExtTools, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll,
|
|
27
|
+
declare function LiveTools({ containerRef, oneWinExtTools, allWinExtTools, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll, snapshot, }: IToolsProps): JSX.Element;
|
|
29
28
|
export default LiveTools;
|
|
@@ -16,7 +16,6 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
16
16
|
import React from 'react';
|
|
17
17
|
import IconFont from '../Player/iconfont';
|
|
18
18
|
import ScreenSelect from './ScreenSelect';
|
|
19
|
-
import DisableMark from '../DisableMark';
|
|
20
19
|
import useFullscreen from '../useFullscreen';
|
|
21
20
|
import Volume from '../Player/contraller_bar/volume';
|
|
22
21
|
|
|
@@ -32,7 +31,6 @@ function LiveTools(_ref) {
|
|
|
32
31
|
fit = _ref.fit,
|
|
33
32
|
onClose = _ref.onClose,
|
|
34
33
|
onCloseAll = _ref.onCloseAll,
|
|
35
|
-
disabled = _ref.disabled,
|
|
36
34
|
snapshot = _ref.snapshot;
|
|
37
35
|
|
|
38
36
|
var _useFullscreen = useFullscreen(containerRef),
|
|
@@ -73,9 +71,6 @@ function LiveTools(_ref) {
|
|
|
73
71
|
|
|
74
72
|
return /*#__PURE__*/React.createElement("div", {
|
|
75
73
|
className: "player-tools"
|
|
76
|
-
}, /*#__PURE__*/React.createElement(DisableMark, {
|
|
77
|
-
disabled: disabled,
|
|
78
|
-
width: "70%"
|
|
79
74
|
}, /*#__PURE__*/React.createElement("div", {
|
|
80
75
|
className: "player-tools-left"
|
|
81
76
|
}, /*#__PURE__*/React.createElement("span", {
|
|
@@ -160,7 +155,7 @@ function LiveTools(_ref) {
|
|
|
160
155
|
}) : /*#__PURE__*/React.createElement(IconFont, {
|
|
161
156
|
type: "lm-player-quanping",
|
|
162
157
|
title: "\u5168\u5C4F"
|
|
163
|
-
}))))
|
|
158
|
+
}))));
|
|
164
159
|
}
|
|
165
160
|
|
|
166
161
|
export default LiveTools;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import "antd/lib/select/style";
|
|
2
|
+
import _Select from "antd/lib/select";
|
|
3
|
+
import _useUpdateEffect from "ahooks/es/useUpdateEffect";
|
|
4
|
+
|
|
5
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
+
|
|
7
|
+
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."); }
|
|
8
|
+
|
|
9
|
+
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); }
|
|
10
|
+
|
|
11
|
+
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; }
|
|
12
|
+
|
|
13
|
+
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; }
|
|
14
|
+
|
|
15
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
+
|
|
17
|
+
import React, { useState } from 'react';
|
|
18
|
+
import CustomRenderSelect from '../CustomRenderSelect';
|
|
19
|
+
|
|
20
|
+
function RatePick(_ref) {
|
|
21
|
+
var onChange = _ref.onChange;
|
|
22
|
+
|
|
23
|
+
var _useState = useState({
|
|
24
|
+
rate: 1
|
|
25
|
+
}),
|
|
26
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
27
|
+
state = _useState2[0],
|
|
28
|
+
setState = _useState2[1];
|
|
29
|
+
|
|
30
|
+
_useUpdateEffect(function () {
|
|
31
|
+
return onChange(state.rate);
|
|
32
|
+
}, []);
|
|
33
|
+
|
|
34
|
+
return /*#__PURE__*/React.createElement(CustomRenderSelect, {
|
|
35
|
+
value: state.rate,
|
|
36
|
+
popupClassName: "rate-select-dropdown ",
|
|
37
|
+
customRender: function customRender() {
|
|
38
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
39
|
+
className: "select-current-rate-item"
|
|
40
|
+
}, "\u500D\u901F x".concat(state.rate));
|
|
41
|
+
},
|
|
42
|
+
onChange: function onChange(v) {
|
|
43
|
+
return setState({
|
|
44
|
+
rate: v
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
placement: "topLeft"
|
|
48
|
+
}, /*#__PURE__*/React.createElement(_Select.Option, {
|
|
49
|
+
value: 2
|
|
50
|
+
}, "x2"), /*#__PURE__*/React.createElement(_Select.Option, {
|
|
51
|
+
value: 1.5
|
|
52
|
+
}, "x1.5"), /*#__PURE__*/React.createElement(_Select.Option, {
|
|
53
|
+
value: 1
|
|
54
|
+
}, "x1"), /*#__PURE__*/React.createElement(_Select.Option, {
|
|
55
|
+
value: 0.5
|
|
56
|
+
}, "x0.5"));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default RatePick;
|
|
@@ -39,6 +39,7 @@ import useRecordList from './useRecordList';
|
|
|
39
39
|
import useVideoFit from './useVideoFit';
|
|
40
40
|
import DisableMark from '../DisableMark';
|
|
41
41
|
import "./index.css";
|
|
42
|
+
import { cloneDeep } from 'lodash-es';
|
|
42
43
|
var defaultState = {
|
|
43
44
|
screenNum: 4,
|
|
44
45
|
selectIndex: 0,
|
|
@@ -73,7 +74,7 @@ function RecordPlayer(_a) {
|
|
|
73
74
|
allWinExtTools = _a.allWinExtTools,
|
|
74
75
|
options = __rest(_a, ["list", "children", "queryRecord", "onIndexChange", "onClose", "onCloseAll", "download", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex", "oneWinExtTools", "allWinExtTools"]);
|
|
75
76
|
|
|
76
|
-
var _useState = useState(Object.assign(Object.assign({}, defaultState), {
|
|
77
|
+
var _useState = useState(Object.assign(Object.assign({}, cloneDeep(defaultState)), {
|
|
77
78
|
screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : defaultState.screenNum
|
|
78
79
|
})),
|
|
79
80
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -129,10 +130,8 @@ function RecordPlayer(_a) {
|
|
|
129
130
|
return recordList[state.selectIndex] || {};
|
|
130
131
|
}, [state.selectIndex, recordList]);
|
|
131
132
|
var timeBegin = useMemo(function () {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
return (_a = state.currentTimes[state.selectIndex]) !== null && _a !== void 0 ? _a : segmentItem.date;
|
|
135
|
-
}, [segmentItem.date, state.currentTimes, state.selectIndex]);
|
|
133
|
+
return segmentItem.date;
|
|
134
|
+
}, [segmentItem.date]);
|
|
136
135
|
/**
|
|
137
136
|
* @desc 用户缓存接收list的变化。
|
|
138
137
|
*/
|
|
@@ -22,6 +22,7 @@ import TimeSelect from './TimeSelect';
|
|
|
22
22
|
import TimeMode from './TimeMode';
|
|
23
23
|
import useFullscreen from '../useFullscreen';
|
|
24
24
|
import Volume from '../Player/contraller_bar/volume';
|
|
25
|
+
import RatePick from './RatePick';
|
|
25
26
|
|
|
26
27
|
function RecordTools(_ref) {
|
|
27
28
|
var containerRef = _ref.containerRef,
|
|
@@ -73,6 +74,11 @@ function RecordTools(_ref) {
|
|
|
73
74
|
snapshot === null || snapshot === void 0 ? void 0 : snapshot(player === null || player === void 0 ? void 0 : player.api.snapshot());
|
|
74
75
|
};
|
|
75
76
|
|
|
77
|
+
var ratechange = function ratechange(value) {
|
|
78
|
+
var player = getPlayerItem();
|
|
79
|
+
player === null || player === void 0 ? void 0 : player.api.setPlaybackRate(value);
|
|
80
|
+
};
|
|
81
|
+
|
|
76
82
|
var player = getPlayerItem();
|
|
77
83
|
|
|
78
84
|
_useUpdateEffect(function () {
|
|
@@ -137,7 +143,9 @@ function RecordTools(_ref) {
|
|
|
137
143
|
color: 'var(--primary)'
|
|
138
144
|
} : null,
|
|
139
145
|
title: "\u9010\u5E27\u64AD\u653E"
|
|
140
|
-
})),
|
|
146
|
+
})), /*#__PURE__*/React.createElement(RatePick, {
|
|
147
|
+
onChange: ratechange
|
|
148
|
+
}), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
|
|
141
149
|
className: "player-tools-mid"
|
|
142
150
|
}, /*#__PURE__*/React.createElement("div", {
|
|
143
151
|
className: "player-tools-item",
|
package/es/ScreenPlayer/demo2.js
CHANGED
|
@@ -28,7 +28,7 @@ import RecordPlayer from './Record';
|
|
|
28
28
|
import moment from 'moment';
|
|
29
29
|
import Service from '../Service';
|
|
30
30
|
import { completionSegments } from './utils';
|
|
31
|
-
var token = "eyJhbGciOiJIUzI1NiJ9.
|
|
31
|
+
var token = "eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDEwMTAwMDQ0NSIsImV4dCI6MTY2NTc0ODU1OTg5MSwidWlkIjoiMTAxMDAwMDAwNjk5IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA1MTgsMTAwMDAwMTEwNzI4XSwidmFsaWRUaW1lIjoxNzA0MzgzOTk5MDAwLCJvcHRDZW50ZXJJZCI6IjEwMDEwMDAwMDIzMyIsInVzZXJUeXBlIjoxMDA3MDQsImlhdCI6MTY2NTQ4OTM1OTg5MX0.zxxxxoaKjyO6CJhi2cs06gTOtjdLgPA9UI7zAQ0zzss";
|
|
32
32
|
var cids = ['538509097', '539172446'];
|
|
33
33
|
|
|
34
34
|
var query = function query(_ref) {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
}
|
|
44
44
|
.split-screen-player-wrapper .player-tools {
|
|
45
45
|
height: 42px;
|
|
46
|
-
background-color:
|
|
46
|
+
background-color: #242c3d;
|
|
47
47
|
padding: 0 10px;
|
|
48
48
|
display: flex;
|
|
49
49
|
align-items: center;
|
|
@@ -151,3 +151,16 @@
|
|
|
151
151
|
.custom-select-dropdown .cloudapp-select-item {
|
|
152
152
|
font-size: var(--fs-small);
|
|
153
153
|
}
|
|
154
|
+
.select-current-rate-item {
|
|
155
|
+
color: var(--gray1);
|
|
156
|
+
font-size: 12px;
|
|
157
|
+
border: 1px solid var(--gray1);
|
|
158
|
+
padding: 2px 0;
|
|
159
|
+
display: inline-block;
|
|
160
|
+
width: 64px;
|
|
161
|
+
border-radius: 2px;
|
|
162
|
+
cursor: pointer;
|
|
163
|
+
text-align: center;
|
|
164
|
+
position: relative;
|
|
165
|
+
top: 4px;
|
|
166
|
+
}
|
|
@@ -17,8 +17,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
17
17
|
|
|
18
18
|
import moment from 'moment';
|
|
19
19
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
20
|
-
var hours = [1, 6, 12, 24];
|
|
21
|
-
|
|
20
|
+
var hours = [1, 6, 12, 24]; // const currentColor = '#FF000A';
|
|
21
|
+
|
|
22
22
|
var normalLineColor = '#ffffff';
|
|
23
23
|
var hoverLineColor = '#319BFF';
|
|
24
24
|
var minPerStep = [1, 2, 5, 10, 15, 20, 30, 60, 120, 180, 240, 360, 720, 1440];
|
|
@@ -237,32 +237,20 @@ function useTimeSlider(canvasRef, _ref2) {
|
|
|
237
237
|
* 绘制当前刻度
|
|
238
238
|
* @returns
|
|
239
239
|
*/
|
|
240
|
+
// const drawCurrentLine = () => {
|
|
241
|
+
// const { currentTime, begin, hoursPer } = state;
|
|
242
|
+
// const time = currentTime;
|
|
243
|
+
// const range = [begin, currentTime + hoursPer * 3600 * 1000];
|
|
244
|
+
// if (time < range[0] || time > range[1]) {
|
|
245
|
+
// return;
|
|
246
|
+
// }
|
|
247
|
+
// const ms_current = time - begin;
|
|
248
|
+
// const px_per_ms = width / (hoursPer * 60 * 60 * 1000); // px/ms
|
|
249
|
+
// const left = px_per_ms * ms_current;
|
|
250
|
+
// drawText(ctx, { fillStyle: '#ffffff', font: '12px Arial', x: left - 64, y: 14, text: formartTimestemp(time) });
|
|
251
|
+
// drawLine(ctx, left, 20, left, height, currentColor, 2); //中间当前点线
|
|
252
|
+
// };
|
|
240
253
|
|
|
241
|
-
|
|
242
|
-
var drawCurrentLine = function drawCurrentLine() {
|
|
243
|
-
var currentTime = state.currentTime,
|
|
244
|
-
begin = state.begin,
|
|
245
|
-
hoursPer = state.hoursPer;
|
|
246
|
-
var time = currentTime;
|
|
247
|
-
var range = [begin, currentTime + hoursPer * 3600 * 1000];
|
|
248
|
-
|
|
249
|
-
if (time < range[0] || time > range[1]) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
var ms_current = time - begin;
|
|
254
|
-
var px_per_ms = width / (hoursPer * 60 * 60 * 1000); // px/ms
|
|
255
|
-
|
|
256
|
-
var left = px_per_ms * ms_current;
|
|
257
|
-
drawText(ctx, {
|
|
258
|
-
fillStyle: '#ffffff',
|
|
259
|
-
font: '12px Arial',
|
|
260
|
-
x: left - 64,
|
|
261
|
-
y: 14,
|
|
262
|
-
text: formartTimestemp(time)
|
|
263
|
-
});
|
|
264
|
-
drawLine(ctx, left, 20, left, height, currentColor, 2); //中间当前点线
|
|
265
|
-
};
|
|
266
254
|
/**
|
|
267
255
|
* 绘制提示时间
|
|
268
256
|
*/
|
|
@@ -303,15 +291,16 @@ function useTimeSlider(canvasRef, _ref2) {
|
|
|
303
291
|
if (canvas) {
|
|
304
292
|
clearCanvas();
|
|
305
293
|
drawOverlay();
|
|
306
|
-
drawScale();
|
|
307
|
-
|
|
294
|
+
drawScale(); // drawCurrentLine();
|
|
295
|
+
|
|
308
296
|
state.hover.time && drawHoverLine();
|
|
309
297
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
310
298
|
|
|
311
299
|
}, [canvas, state.begin, state.currentTime, state.hoursPer, segments, state.hover]);
|
|
312
300
|
|
|
313
301
|
_useUpdateEffect(function () {
|
|
314
|
-
|
|
302
|
+
console.log(begin);
|
|
303
|
+
update({
|
|
315
304
|
begin: begin
|
|
316
305
|
});
|
|
317
306
|
}, [begin]);
|
|
@@ -320,13 +309,8 @@ function useTimeSlider(canvasRef, _ref2) {
|
|
|
320
309
|
return update({
|
|
321
310
|
hoursPer: hoursPer
|
|
322
311
|
});
|
|
323
|
-
}, [hoursPer]);
|
|
312
|
+
}, [hoursPer]); // useUpdateEffect(() => update({ currentTime }), [currentTime]);
|
|
324
313
|
|
|
325
|
-
_useUpdateEffect(function () {
|
|
326
|
-
return update({
|
|
327
|
-
currentTime: currentTime
|
|
328
|
-
});
|
|
329
|
-
}, [currentTime]);
|
|
330
314
|
/**
|
|
331
315
|
* 触发绘制范围单位(hour)
|
|
332
316
|
*/
|
|
@@ -456,14 +440,9 @@ function useTimeSlider(canvasRef, _ref2) {
|
|
|
456
440
|
return new_current >= v.beginTime && new_current < v.endTime;
|
|
457
441
|
}); // 当前片段没有录像的时候
|
|
458
442
|
|
|
459
|
-
var outTimeline = segmentItem && !segmentItem.url;
|
|
460
|
-
|
|
461
|
-
setState(
|
|
462
|
-
return Object.assign(Object.assign({}, old), {
|
|
463
|
-
begin: new_begin,
|
|
464
|
-
current: new_current
|
|
465
|
-
});
|
|
466
|
-
});
|
|
443
|
+
var outTimeline = segmentItem && !segmentItem.url; // const new_begin = new_current - (state.hoursPer * 60 * 60 * 1000) / 2;
|
|
444
|
+
// setState((old) => ({ ...old, begin: new_begin, current: new_current }));
|
|
445
|
+
// setState((old) => ({ ...old, begin: new_begin, current: new_current }));
|
|
467
446
|
|
|
468
447
|
_nextTick(function () {
|
|
469
448
|
return onTimeChange === null || onTimeChange === void 0 ? void 0 : onTimeChange(new_current, outTimeline);
|