@cloud-app-dev/vidc 2.3.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.umirc.ts +2 -2
- package/es/Config/interface.d.ts +2 -1
- package/es/DomMove/demo.d.ts +2 -0
- package/es/DomMove/demo.js +16 -0
- package/es/DomMove/index.d.ts +16 -0
- package/es/DomMove/index.js +145 -0
- package/es/DomMove/utils.d.ts +8 -0
- package/es/{Picture/component/MoveContent → DomMove}/utils.js +19 -0
- package/es/Drawer/index.d.ts +2 -2
- package/es/Drawer/interface.d.ts +4 -174
- package/es/ErrorBoundary/index.d.ts +18 -0
- package/es/ErrorBoundary/index.js +79 -0
- package/es/List/DynamicGridList/Demo.js +40 -27
- package/es/List/DynamicGridList/index.d.ts +20 -29
- package/es/List/DynamicGridList/index.js +40 -63
- package/es/List/DynamicList/index.css +15 -0
- package/es/List/DynamicList/index.d.ts +14 -0
- package/es/List/DynamicList/index.js +105 -0
- package/es/List/DynamicList/interface.d.ts +19 -0
- package/es/List/DynamicList/utils.d.ts +4 -0
- package/es/List/DynamicList/utils.js +6 -0
- package/es/List/GridList/Demo.js +27 -4
- package/es/List/GridList/index.css +1 -0
- package/es/List/GridList/index.d.ts +2 -2
- package/es/List/GridList/index.js +8 -12
- package/es/List/GridList/interface.d.ts +1 -1
- package/es/List/VList/index.js +2 -3
- package/es/List/index.css +2 -54
- package/es/List/index.d.ts +6 -7
- package/es/List/index.js +14 -153
- package/es/List/interface.d.ts +3 -61
- package/es/LoaderApp/index.d.ts +1 -1
- package/es/LoaderApp/index.js +27 -46
- package/es/LoaderApp/interface.d.ts +3 -0
- package/es/LoaderApp/loader.d.ts +6 -7
- package/es/LoaderApp/loader.js +20 -30
- package/es/LoaderApp/sandbox.back.d.ts +18 -0
- package/es/LoaderApp/sandbox.back.js +356 -0
- package/es/LoaderApp/sandbox.d.ts +12 -0
- package/es/LoaderApp/sandbox.js +110 -0
- package/es/LoaderApp/utils.d.ts +5 -1
- package/es/LoaderApp/utils.js +98 -2
- package/es/Map/AMap.d.ts +1572 -0
- package/es/Map/BasicMap/AMapInstance.d.ts +15 -0
- package/es/Map/BasicMap/AMapInstance.js +66 -0
- package/es/Map/BasicMap/LeafletInstance.d.ts +15 -0
- package/es/Map/BasicMap/LeafletInstance.js +98 -0
- package/es/Map/BasicMap/index.css +24 -0
- package/es/Map/BasicMap/index.d.ts +9 -0
- package/es/Map/BasicMap/index.js +103 -0
- package/es/Map/ClusterLayer/hook.d.ts +5 -0
- package/es/Map/ClusterLayer/hook.js +144 -0
- package/es/Map/ClusterLayer/index.css +26 -0
- package/es/Map/ClusterLayer/index.d.ts +5 -0
- package/es/Map/ClusterLayer/index.js +31 -0
- package/es/Map/ClusterLayer/props.d.ts +8 -0
- package/es/Map/Config/index.d.ts +7 -0
- package/es/{InitialConfig → Map/Config}/index.js +35 -36
- package/es/Map/Config/utils.d.ts +2 -0
- package/es/{List/DynamicDeviceList → Map/Config}/utils.js +48 -45
- package/es/Map/Context/index.d.ts +11 -0
- package/es/Map/Context/index.js +66 -0
- package/es/Map/FindPio/index.css +7 -0
- package/es/Map/FindPio/index.d.ts +4 -0
- package/es/Map/FindPio/index.js +16 -0
- package/es/{WorkerFlow/Demo.d.ts → Map/InfoWindow/demo.d.ts} +0 -0
- package/es/{List/DynamicDeviceList/Demo.js → Map/InfoWindow/demo.js} +27 -25
- package/es/Map/InfoWindow/index.d.ts +8 -0
- package/es/Map/InfoWindow/index.js +74 -0
- package/es/Map/LevelCenter/DragMarker/index.d.ts +12 -0
- package/es/Map/LevelCenter/DragMarker/index.js +48 -0
- package/es/{List/DeviceList → Map/LevelCenter}/index.css +0 -0
- package/es/Map/LevelCenter/index.d.ts +13 -0
- package/es/Map/LevelCenter/index.js +42 -0
- package/es/Map/LoaderMap/index.d.ts +12 -0
- package/es/Map/LoaderMap/index.js +58 -0
- package/es/Map/ResetTools/index.css +32 -0
- package/es/Map/ResetTools/index.d.ts +9 -0
- package/es/Map/ResetTools/index.js +61 -0
- package/es/Map/SinglePoint/Marker/index.d.ts +7 -0
- package/es/Map/SinglePoint/Marker/index.js +29 -0
- package/es/Map/SinglePoint/icon/Place_icon_OnLine_Hover.svg +15 -0
- package/es/Map/SinglePoint/icon/Place_icon_OnLine_Normal.svg +15 -0
- package/es/Map/SinglePoint/icon/Place_icon_OutLine_Hover.svg +15 -0
- package/es/Map/SinglePoint/icon/Place_icon_OutLine_Normal.svg +15 -0
- package/es/Map/SinglePoint/index.css +29 -0
- package/es/Map/SinglePoint/index.d.ts +7 -0
- package/es/Map/SinglePoint/index.js +32 -0
- package/es/Map/hook/useMapType.d.ts +4 -0
- package/es/Map/hook/useMapType.js +13 -0
- package/es/Map/icon.d.ts +2 -0
- package/es/Map/icon.js +10 -0
- package/es/Map/index.d.ts +23 -0
- package/es/Map/index.js +25 -0
- package/es/Map/interface.d.ts +55 -0
- package/es/Map/points.json +61247 -0
- package/es/{Picture/component/MoveContent → Map/useMarker}/index.css +0 -0
- package/es/Map/useMarker/index.d.ts +11 -0
- package/es/{WorkerFlow/Form/FormAuth.js → Map/useMarker/index.js} +57 -80
- package/es/Map/withMap/index.d.ts +2 -0
- package/es/Map/withMap/index.js +12 -0
- package/es/Modal/index.js +7 -5
- package/es/Picture/component/RectMenu/index.d.ts +1 -1
- package/es/Picture/index.d.ts +1 -1
- package/es/Picture/index.js +2 -2
- package/es/Player/api/index.d.ts +2 -8
- package/es/Player/api/index.js +29 -35
- package/es/Player/contraller_bar/left_bar.js +2 -2
- package/es/Player/contraller_bar/right_bar.d.ts +1 -1
- package/es/Player/contraller_bar/right_bar.js +13 -27
- package/es/Player/demo.js +21 -24
- package/es/Player/event/index.js +5 -1
- package/es/Player/frontend_player.d.ts +2 -3
- package/es/Player/frontend_player.js +35 -52
- package/es/Player/frontend_timeline.d.ts +3 -2
- package/es/Player/frontend_timeline.js +20 -9
- package/es/Player/live_heart.js +45 -12
- package/es/Player/message.js +23 -12
- package/es/Player/player.d.ts +29 -7
- package/es/Player/segment_player.d.ts +1 -1
- package/es/Player/segment_player.js +50 -39
- package/es/Player/segment_timeline.js +14 -13
- package/es/Player/single_player.js +59 -14
- package/es/Player/timeline.js +8 -6
- package/es/Player/util.d.ts +4 -25
- package/es/Player/util.js +47 -55
- package/es/PlayerExt/index.css +2 -2
- package/es/PlayerExt/index.d.ts +3 -1
- package/es/PlayerExt/index.js +19 -5
- package/es/ScreenPlayer/Live.d.ts +5 -0
- package/es/ScreenPlayer/Live.js +109 -0
- package/es/ScreenPlayer/LiveTools.d.ts +15 -0
- package/es/ScreenPlayer/LiveTools.js +95 -0
- package/es/ScreenPlayer/PlayerWithExt.d.ts +22 -0
- package/es/ScreenPlayer/PlayerWithExt.js +156 -0
- package/es/ScreenPlayer/Record.d.ts +5 -0
- package/es/{WorkerFlow/index.js → ScreenPlayer/Record.js} +286 -273
- package/es/ScreenPlayer/RecordTools.d.ts +17 -0
- package/es/ScreenPlayer/RecordTools.js +102 -0
- package/es/ScreenPlayer/SegmentTimeLine.d.ts +10 -0
- package/es/ScreenPlayer/SegmentTimeLine.js +40 -0
- package/es/ScreenPlayer/TimeSlider.d.ts +127 -0
- package/es/ScreenPlayer/TimeSlider.js +530 -0
- package/es/ScreenPlayer/demo.d.ts +2 -0
- package/es/ScreenPlayer/demo.js +25 -0
- package/es/ScreenPlayer/demo2.d.ts +2 -0
- package/es/ScreenPlayer/demo2.js +153 -0
- package/es/ScreenPlayer/index.css +49 -0
- package/es/ScreenPlayer/index.d.ts +5 -0
- package/es/ScreenPlayer/index.js +8 -0
- package/es/ScreenPlayer/interface.d.ts +81 -0
- package/es/ScreenPlayer/useRecordList.d.ts +3 -0
- package/es/{WorkerFlow/Form/UserAndGroupSelect.js → ScreenPlayer/useRecordList.js} +173 -176
- package/es/ScreenPlayer/useVideoFit.d.ts +5 -0
- package/es/ScreenPlayer/useVideoFit.js +46 -0
- package/es/ScreenPlayer/utils.d.ts +25 -0
- package/es/ScreenPlayer/utils.js +84 -0
- package/es/Timeout/index.d.ts +33 -0
- package/es/Timeout/index.js +83 -0
- package/es/Tree/demo.js +9 -12
- package/es/Tree/index.css +55 -29
- package/es/Tree/index.d.ts +20 -19
- package/es/Tree/index.js +70 -185
- package/es/index.d.ts +8 -9
- package/es/index.js +8 -9
- package/es/useInfiniteScroll/index.d.ts +16 -0
- package/es/{useHttp → useInfiniteScroll}/index.js +79 -43
- package/es/useVirtualList/index.d.ts +13 -0
- package/es/useVirtualList/index.js +175 -0
- package/es/withErrorBoundary/index.d.ts +9 -0
- package/es/withErrorBoundary/index.js +45 -0
- package/package.json +18 -21
- package/release-build.sh +44 -0
- package/test.js +48 -0
- package/es/DeviceIcon/icon.d.ts +0 -9
- package/es/DeviceIcon/icon.js +0 -138
- package/es/DeviceIcon/index.css +0 -8
- package/es/DeviceIcon/index.d.ts +0 -14
- package/es/DeviceIcon/index.js +0 -37
- package/es/DeviceSelect/TreeType.d.ts +0 -7
- package/es/DeviceSelect/TreeType.js +0 -36
- package/es/DeviceSelect/demo.d.ts +0 -3
- package/es/DeviceSelect/demo.js +0 -22
- package/es/DeviceSelect/index.css +0 -11
- package/es/DeviceSelect/index.d.ts +0 -13
- package/es/DeviceSelect/index.js +0 -191
- package/es/Dict/cache.d.ts +0 -3
- package/es/Dict/cache.js +0 -21
- package/es/Dict/device.d.ts +0 -28
- package/es/Dict/device.js +0 -117
- package/es/Dict/hook.d.ts +0 -3
- package/es/Dict/hook.js +0 -98
- package/es/Dict/index.d.ts +0 -9
- package/es/Dict/index.js +0 -10
- package/es/Dict/interface.d.ts +0 -16
- package/es/Dict/utils.d.ts +0 -10
- package/es/Dict/utils.js +0 -44
- package/es/InitialConfig/index.d.ts +0 -8
- package/es/InitialConfig/utils.d.ts +0 -20
- package/es/InitialConfig/utils.js +0 -110
- package/es/InitialRequest/index.d.ts +0 -9
- package/es/InitialRequest/index.js +0 -97
- package/es/InitialRequest/utils.d.ts +0 -10
- package/es/InitialRequest/utils.js +0 -116
- package/es/List/CheckExt.d.ts +0 -9
- package/es/List/CheckExt.js +0 -36
- package/es/List/DeviceList/index.d.ts +0 -11
- package/es/List/DeviceList/index.js +0 -50
- package/es/List/DynamicDeviceList/Demo.d.ts +0 -3
- package/es/List/DynamicDeviceList/index.css +0 -39
- package/es/List/DynamicDeviceList/index.d.ts +0 -12
- package/es/List/DynamicDeviceList/index.js +0 -205
- package/es/List/DynamicDeviceList/interface.d.ts +0 -37
- package/es/List/DynamicDeviceList/utils.d.ts +0 -16
- package/es/List/ListExt/index.css +0 -3
- package/es/List/ListExt/index.d.ts +0 -19
- package/es/List/ListExt/index.js +0 -44
- package/es/Picture/component/MoveContent/index.d.ts +0 -39
- package/es/Picture/component/MoveContent/index.js +0 -244
- package/es/Picture/component/MoveContent/utils.d.ts +0 -4
- package/es/Title/index.css +0 -25
- package/es/Title/index.d.ts +0 -12
- package/es/Title/index.js +0 -30
- package/es/Tree/BaseTree/index.css +0 -64
- package/es/Tree/BaseTree/index.d.ts +0 -24
- package/es/Tree/BaseTree/index.js +0 -83
- package/es/UserSelect/demo.d.ts +0 -3
- package/es/UserSelect/demo.js +0 -21
- package/es/UserSelect/index.css +0 -16
- package/es/UserSelect/index.d.ts +0 -18
- package/es/UserSelect/index.js +0 -194
- package/es/WorkerFlow/Demo.js +0 -57
- package/es/WorkerFlow/Form/Approver.d.ts +0 -10
- package/es/WorkerFlow/Form/Approver.js +0 -33
- package/es/WorkerFlow/Form/Condition.d.ts +0 -11
- package/es/WorkerFlow/Form/Condition.js +0 -235
- package/es/WorkerFlow/Form/EmptyUserSet.d.ts +0 -8
- package/es/WorkerFlow/Form/EmptyUserSet.js +0 -137
- package/es/WorkerFlow/Form/FormAuth.d.ts +0 -8
- package/es/WorkerFlow/Form/GroupList.d.ts +0 -12
- package/es/WorkerFlow/Form/GroupList.js +0 -44
- package/es/WorkerFlow/Form/GroupSelect.d.ts +0 -8
- package/es/WorkerFlow/Form/GroupSelect.js +0 -167
- package/es/WorkerFlow/Form/GroupSelectModalContent.d.ts +0 -6
- package/es/WorkerFlow/Form/GroupSelectModalContent.js +0 -177
- package/es/WorkerFlow/Form/Handle.d.ts +0 -10
- package/es/WorkerFlow/Form/Handle.js +0 -33
- package/es/WorkerFlow/Form/LevelGroupSelect.d.ts +0 -12
- package/es/WorkerFlow/Form/LevelGroupSelect.js +0 -208
- package/es/WorkerFlow/Form/Notifier.d.ts +0 -8
- package/es/WorkerFlow/Form/Notifier.js +0 -16
- package/es/WorkerFlow/Form/UserAndGroupSelect.d.ts +0 -8
- package/es/WorkerFlow/Form/UserSelect.d.ts +0 -8
- package/es/WorkerFlow/Form/UserSelect.js +0 -150
- package/es/WorkerFlow/Form/UserSelectModalContent.d.ts +0 -6
- package/es/WorkerFlow/Form/UserSelectModalContent.js +0 -166
- package/es/WorkerFlow/Form/UserSet.d.ts +0 -14
- package/es/WorkerFlow/Form/UserSet.js +0 -308
- package/es/WorkerFlow/Form/UsersHandleType.d.ts +0 -7
- package/es/WorkerFlow/Form/UsersHandleType.js +0 -32
- package/es/WorkerFlow/Form/utils.d.ts +0 -3
- package/es/WorkerFlow/Form/utils.js +0 -47
- package/es/WorkerFlow/Nodes/Add.d.ts +0 -7
- package/es/WorkerFlow/Nodes/Add.js +0 -98
- package/es/WorkerFlow/Nodes/AddOption.d.ts +0 -10
- package/es/WorkerFlow/Nodes/AddOption.js +0 -23
- package/es/WorkerFlow/Nodes/AddOptionList.d.ts +0 -8
- package/es/WorkerFlow/Nodes/AddOptionList.js +0 -46
- package/es/WorkerFlow/Nodes/Approver.d.ts +0 -11
- package/es/WorkerFlow/Nodes/Approver.js +0 -53
- package/es/WorkerFlow/Nodes/Condition.d.ts +0 -10
- package/es/WorkerFlow/Nodes/Condition.js +0 -140
- package/es/WorkerFlow/Nodes/Constants.d.ts +0 -35
- package/es/WorkerFlow/Nodes/Constants.js +0 -150
- package/es/WorkerFlow/Nodes/End.d.ts +0 -7
- package/es/WorkerFlow/Nodes/End.js +0 -16
- package/es/WorkerFlow/Nodes/Handle.d.ts +0 -11
- package/es/WorkerFlow/Nodes/Handle.js +0 -52
- package/es/WorkerFlow/Nodes/Node.d.ts +0 -8
- package/es/WorkerFlow/Nodes/Node.js +0 -26
- package/es/WorkerFlow/Nodes/Notifier.d.ts +0 -11
- package/es/WorkerFlow/Nodes/Notifier.js +0 -52
- package/es/WorkerFlow/Nodes/Render.d.ts +0 -8
- package/es/WorkerFlow/Nodes/Render.js +0 -16
- package/es/WorkerFlow/Nodes/Start.d.ts +0 -12
- package/es/WorkerFlow/Nodes/Start.js +0 -26
- package/es/WorkerFlow/Nodes/TitleElement.d.ts +0 -10
- package/es/WorkerFlow/Nodes/TitleElement.js +0 -127
- package/es/WorkerFlow/Nodes/Wrap.d.ts +0 -13
- package/es/WorkerFlow/Nodes/Wrap.js +0 -35
- package/es/WorkerFlow/OperatorContext.d.ts +0 -4
- package/es/WorkerFlow/OperatorContext.js +0 -3
- package/es/WorkerFlow/Tools.d.ts +0 -8
- package/es/WorkerFlow/Tools.js +0 -78
- package/es/WorkerFlow/XML/CanvasTag.d.ts +0 -3
- package/es/WorkerFlow/XML/CanvasTag.js +0 -142
- package/es/WorkerFlow/XML/EndEvent.d.ts +0 -1
- package/es/WorkerFlow/XML/EndEvent.js +0 -14
- package/es/WorkerFlow/XML/ExclusiveGateway.d.ts +0 -9
- package/es/WorkerFlow/XML/ExclusiveGateway.js +0 -101
- package/es/WorkerFlow/XML/Root.d.ts +0 -1
- package/es/WorkerFlow/XML/Root.js +0 -5
- package/es/WorkerFlow/XML/StartEvent.d.ts +0 -5
- package/es/WorkerFlow/XML/StartEvent.js +0 -28
- package/es/WorkerFlow/XML/UserTask.d.ts +0 -5
- package/es/WorkerFlow/XML/UserTask.js +0 -93
- package/es/WorkerFlow/XML/index.d.ts +0 -4
- package/es/WorkerFlow/XML/index.js +0 -100
- package/es/WorkerFlow/XML/utils.d.ts +0 -6
- package/es/WorkerFlow/XML/utils.js +0 -97
- package/es/WorkerFlow/data.json +0 -83
- package/es/WorkerFlow/index.css +0 -779
- package/es/WorkerFlow/index.d.ts +0 -13
- package/es/WorkerFlow/interface.d.ts +0 -93
- package/es/WorkerFlow/template.d.ts +0 -2
- package/es/WorkerFlow/template.js +0 -17
- package/es/WorkerFlow/utils.d.ts +0 -14
- package/es/WorkerFlow/utils.js +0 -212
- package/es/useHttp/index.d.ts +0 -8
|
@@ -1,89 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
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."); }
|
|
4
|
-
|
|
5
|
-
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); }
|
|
6
|
-
|
|
7
|
-
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; }
|
|
8
|
-
|
|
9
|
-
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; }
|
|
10
|
-
|
|
11
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
-
|
|
1
|
+
import _useUpdate from "ahooks/es/useUpdate";
|
|
13
2
|
import { __rest } from "tslib";
|
|
14
|
-
import React, { useMemo, useRef
|
|
3
|
+
import React, { useCallback, useMemo, useRef } from 'react';
|
|
15
4
|
import SinglePlayer from './single_player';
|
|
16
5
|
import FrontendTimeLine from './frontend_timeline';
|
|
6
|
+
import Events from './event/eventName';
|
|
7
|
+
|
|
17
8
|
/**
|
|
18
9
|
* @desc 主组件,负责片段整体逻辑控制
|
|
19
|
-
* @
|
|
20
|
-
* @returns
|
|
10
|
+
* @return JSX.Element
|
|
21
11
|
*/
|
|
22
|
-
|
|
23
12
|
function FrontendPlayer(_a) {
|
|
24
13
|
var url = _a.url,
|
|
25
14
|
begin = _a.begin,
|
|
26
15
|
end = _a.end,
|
|
27
16
|
onSeek = _a.onSeek,
|
|
28
|
-
|
|
17
|
+
forwordRef = _a.forwordRef,
|
|
18
|
+
customTimeLine = _a.customTimeLine,
|
|
19
|
+
onCanPlayerInit = _a.onCanPlayerInit,
|
|
20
|
+
props = __rest(_a, ["url", "begin", "end", "onSeek", "forwordRef", "customTimeLine", "onCanPlayerInit"]);
|
|
29
21
|
|
|
30
|
-
var
|
|
31
|
-
forceKey: Date.now()
|
|
32
|
-
}),
|
|
33
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
-
state = _useState2[0],
|
|
35
|
-
setState = _useState2[1];
|
|
22
|
+
var update = _useUpdate();
|
|
36
23
|
|
|
37
|
-
var
|
|
24
|
+
var ref = useRef(null);
|
|
25
|
+
var playRef = forwordRef ? forwordRef : ref;
|
|
38
26
|
|
|
39
|
-
var _ref =
|
|
27
|
+
var _ref = playRef.current || {},
|
|
40
28
|
api = _ref.api,
|
|
41
29
|
event = _ref.event; // 秒级别转换毫秒
|
|
42
30
|
|
|
43
31
|
|
|
44
32
|
var beginTemp = useMemo(function () {
|
|
45
33
|
return begin ? String(begin).length === 10 ? Math.floor(begin * 1000) : begin : begin;
|
|
46
|
-
}, []);
|
|
34
|
+
}, [begin]);
|
|
47
35
|
var endTemp = useMemo(function () {
|
|
48
36
|
return end ? String(end).length === 10 ? Math.floor(end * 1000) : end : end;
|
|
49
|
-
}, []);
|
|
37
|
+
}, [end]);
|
|
50
38
|
var duration = useMemo(function () {
|
|
51
39
|
return (endTemp - beginTemp) / 1000;
|
|
52
40
|
}, [beginTemp, endTemp]); //单位s 秒
|
|
53
41
|
// 重置reload
|
|
54
42
|
|
|
55
43
|
var reload = function reload() {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return Object.assign(Object.assign({}, old), {
|
|
60
|
-
forceKey: Date.now()
|
|
61
|
-
});
|
|
62
|
-
});
|
|
44
|
+
playRef.current.event.emit(Events.RELOAD);
|
|
45
|
+
onSeek && onSeek(beginTemp);
|
|
46
|
+
playRef.current.api.reload();
|
|
63
47
|
};
|
|
64
48
|
|
|
49
|
+
var onInit = useCallback(function () {
|
|
50
|
+
update();
|
|
51
|
+
onCanPlayerInit && onCanPlayerInit(); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
52
|
+
}, []);
|
|
53
|
+
var hasReady = api && event;
|
|
54
|
+
var timeline = customTimeLine !== null && customTimeLine !== void 0 ? customTimeLine : /*#__PURE__*/React.createElement(FrontendTimeLine, {
|
|
55
|
+
end: endTemp,
|
|
56
|
+
url: url,
|
|
57
|
+
onSeek: onSeek,
|
|
58
|
+
begin: beginTemp,
|
|
59
|
+
api: api,
|
|
60
|
+
event: event,
|
|
61
|
+
duration: duration
|
|
62
|
+
});
|
|
65
63
|
return /*#__PURE__*/React.createElement(SinglePlayer, Object.assign({
|
|
66
|
-
ref:
|
|
64
|
+
ref: playRef,
|
|
67
65
|
url: url,
|
|
68
|
-
type: "flv",
|
|
69
66
|
reload: reload,
|
|
67
|
+
onCanPlayerInit: onInit,
|
|
70
68
|
isLive: false,
|
|
71
|
-
|
|
72
|
-
return setState(function (old) {
|
|
73
|
-
return Object.assign(Object.assign({}, old), {
|
|
74
|
-
forceKey: Date.now()
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
},
|
|
78
|
-
customTimeLine: api && event ? /*#__PURE__*/React.createElement(FrontendTimeLine, {
|
|
79
|
-
end: endTemp,
|
|
80
|
-
onSeek: onSeek,
|
|
81
|
-
key: state.forceKey,
|
|
82
|
-
begin: beginTemp,
|
|
83
|
-
api: api,
|
|
84
|
-
event: event,
|
|
85
|
-
duration: duration
|
|
86
|
-
}) : /*#__PURE__*/React.createElement(React.Fragment, null)
|
|
69
|
+
customTimeLine: hasReady ? timeline : /*#__PURE__*/React.createElement(React.Fragment, null)
|
|
87
70
|
}, props));
|
|
88
71
|
}
|
|
89
72
|
|
|
@@ -8,7 +8,8 @@ interface ITimeLineProps {
|
|
|
8
8
|
duration: number;
|
|
9
9
|
begin: number;
|
|
10
10
|
end: number;
|
|
11
|
-
onSeek(time: number)
|
|
11
|
+
onSeek?: (time: number) => void;
|
|
12
|
+
url?: string;
|
|
12
13
|
}
|
|
13
|
-
declare function FrontendTimeLine({ api, event, duration, begin, end, onSeek }: ITimeLineProps): JSX.Element;
|
|
14
|
+
declare function FrontendTimeLine({ api, event, duration, begin, end, onSeek, url }: ITimeLineProps): JSX.Element;
|
|
14
15
|
export default FrontendTimeLine;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import _useTrackedEffect from "ahooks/es/useTrackedEffect";
|
|
2
|
+
|
|
1
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
4
|
|
|
3
5
|
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."); }
|
|
@@ -10,10 +12,11 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
10
12
|
|
|
11
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
14
|
|
|
13
|
-
import React, { useCallback, useEffect, useMemo, useState, startTransition } from 'react';
|
|
15
|
+
import React, { useCallback, useEffect, useMemo, useState, startTransition, useRef } from 'react';
|
|
14
16
|
import useBarStatus from './contraller_bar/useBarStatus';
|
|
15
17
|
import { useTimes } from './timeline';
|
|
16
|
-
import {
|
|
18
|
+
import { FMT } from './util';
|
|
19
|
+
import moment from 'moment';
|
|
17
20
|
import "./style/timeline.css";
|
|
18
21
|
|
|
19
22
|
function FrontendTimeLine(_ref) {
|
|
@@ -22,7 +25,9 @@ function FrontendTimeLine(_ref) {
|
|
|
22
25
|
duration = _ref.duration,
|
|
23
26
|
begin = _ref.begin,
|
|
24
27
|
end = _ref.end,
|
|
25
|
-
onSeek = _ref.onSeek
|
|
28
|
+
onSeek = _ref.onSeek,
|
|
29
|
+
url = _ref.url;
|
|
30
|
+
var lastSeekCTimeRef = useRef(0); // time 是记录seek时跳了多少
|
|
26
31
|
|
|
27
32
|
var _useState = useState({
|
|
28
33
|
time: 0,
|
|
@@ -34,14 +39,20 @@ function FrontendTimeLine(_ref) {
|
|
|
34
39
|
state = _useState2[0],
|
|
35
40
|
setState = _useState2[1];
|
|
36
41
|
|
|
37
|
-
var status = useBarStatus(event);
|
|
42
|
+
var status = useBarStatus(event); //获取视频当前播放时长单位s
|
|
38
43
|
|
|
39
44
|
var _useTimes = useTimes(api, event),
|
|
40
45
|
_useTimes2 = _slicedToArray(_useTimes, 1),
|
|
41
46
|
currentTime = _useTimes2[0];
|
|
42
47
|
|
|
48
|
+
_useTrackedEffect(function (changes) {
|
|
49
|
+
if (changes.includes(1)) {
|
|
50
|
+
lastSeekCTimeRef.current = currentTime;
|
|
51
|
+
}
|
|
52
|
+
}, [currentTime, url]);
|
|
53
|
+
|
|
43
54
|
var rTime = useMemo(function () {
|
|
44
|
-
return state.time + currentTime;
|
|
55
|
+
return state.time + currentTime + lastSeekCTimeRef.current;
|
|
45
56
|
}, [state.time, currentTime]);
|
|
46
57
|
useEffect(function () {
|
|
47
58
|
return setState(function (old) {
|
|
@@ -52,7 +63,7 @@ function FrontendTimeLine(_ref) {
|
|
|
52
63
|
}, [begin]);
|
|
53
64
|
var playPercent = useMemo(function () {
|
|
54
65
|
return rTime / duration * 100;
|
|
55
|
-
}, [rTime]);
|
|
66
|
+
}, [duration, rTime]);
|
|
56
67
|
var cTime = useMemo(function () {
|
|
57
68
|
return begin + rTime * 1000;
|
|
58
69
|
}, [begin, rTime]);
|
|
@@ -67,7 +78,7 @@ function FrontendTimeLine(_ref) {
|
|
|
67
78
|
time: cTime - currentTime
|
|
68
79
|
});
|
|
69
80
|
});
|
|
70
|
-
}, [
|
|
81
|
+
}, [duration, begin, onSeek, currentTime]);
|
|
71
82
|
var onLineMouseOver = useCallback(function (e) {
|
|
72
83
|
var rect = e.currentTarget.getBoundingClientRect();
|
|
73
84
|
var left = e.pageX - rect.left;
|
|
@@ -78,7 +89,7 @@ function FrontendTimeLine(_ref) {
|
|
|
78
89
|
markTime: begin + mTime * 1000
|
|
79
90
|
});
|
|
80
91
|
});
|
|
81
|
-
}, [begin]);
|
|
92
|
+
}, [begin, duration]);
|
|
82
93
|
var onLineMouseOut = useCallback(function (e) {
|
|
83
94
|
startTransition(function () {
|
|
84
95
|
return setState(function (old) {
|
|
@@ -132,7 +143,7 @@ function TipTitle(_ref2) {
|
|
|
132
143
|
style: {
|
|
133
144
|
fontWeight: 600
|
|
134
145
|
}
|
|
135
|
-
}, "\u5F55\u50CF\u4FE1\u606F"), /*#__PURE__*/React.createElement("div", null, "\u5F00\u59CB\uFF1A",
|
|
146
|
+
}, "\u5F55\u50CF\u4FE1\u606F"), /*#__PURE__*/React.createElement("div", null, "\u5F00\u59CB\uFF1A", moment(begin).format(FMT)), /*#__PURE__*/React.createElement("div", null, "\u7ED3\u675F\uFF1A", moment(end).format(FMT)), /*#__PURE__*/React.createElement("div", null, "\u523B\u5EA6\uFF1A", moment(markTime).format(FMT)), /*#__PURE__*/React.createElement("div", null, "\u5F53\u524D\uFF1A", moment(current).format(FMT)));
|
|
136
147
|
}
|
|
137
148
|
|
|
138
149
|
export default FrontendTimeLine;
|
package/es/Player/live_heart.js
CHANGED
|
@@ -1,21 +1,41 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _useUpdateEffect from "ahooks/es/useUpdateEffect";
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
+
|
|
5
|
+
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."); }
|
|
6
|
+
|
|
7
|
+
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); }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
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; }
|
|
12
|
+
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
|
|
15
|
+
import React, { useEffect, useState } from 'react';
|
|
2
16
|
import BrowserTab from './event/browserTabEvent';
|
|
3
17
|
|
|
4
18
|
function LiveHeart(_ref) {
|
|
5
19
|
var api = _ref.api;
|
|
6
|
-
useEffect(function () {
|
|
7
|
-
var browserTabChange = function browserTabChange() {
|
|
8
|
-
if (BrowserTab.visibilityState() !== 'visible') {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
20
|
|
|
12
|
-
|
|
13
|
-
|
|
21
|
+
var _useState = useState(Date.now()),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
runDep = _useState2[0],
|
|
24
|
+
setRundep = _useState2[1];
|
|
14
25
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
var run = function run() {
|
|
27
|
+
var current = api.getCurrentTime();
|
|
28
|
+
var buffered = api.getSecondsLoaded();
|
|
29
|
+
|
|
30
|
+
if (buffered - current > 5) {
|
|
31
|
+
console.debug("\u5F53\u524D\u5EF6\u65F6\u8FC7\u5927current->".concat(current, " buffered->").concat(buffered, ", \u57FA\u4E8E\u89C6\u9891\u5F53\u524D\u7F13\u5B58\u65F6\u95F4\u66F4\u65B0\u5F53\u524D\u64AD\u653E\u65F6\u95F4 updateTime -> ").concat(buffered - 2));
|
|
32
|
+
api.seekTo(buffered - 2 > 0 ? buffered - 2 : 0);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
useEffect(function () {
|
|
37
|
+
var browserTabChange = function browserTabChange() {
|
|
38
|
+
BrowserTab.visibilityState() === 'visible' && run();
|
|
19
39
|
};
|
|
20
40
|
|
|
21
41
|
BrowserTab.addEventListener(browserTabChange);
|
|
@@ -23,6 +43,19 @@ function LiveHeart(_ref) {
|
|
|
23
43
|
BrowserTab.removeEventListener(browserTabChange);
|
|
24
44
|
};
|
|
25
45
|
}, [api]);
|
|
46
|
+
|
|
47
|
+
_useUpdateEffect(function () {
|
|
48
|
+
run();
|
|
49
|
+
}, [runDep]);
|
|
50
|
+
|
|
51
|
+
useEffect(function () {
|
|
52
|
+
var timer = setInterval(function () {
|
|
53
|
+
return setRundep(Date.now());
|
|
54
|
+
}, 30 * 1000);
|
|
55
|
+
return function () {
|
|
56
|
+
return clearInterval(timer);
|
|
57
|
+
};
|
|
58
|
+
}, []);
|
|
26
59
|
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
27
60
|
}
|
|
28
61
|
|
package/es/Player/message.js
CHANGED
|
@@ -10,7 +10,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
10
10
|
|
|
11
11
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
12
|
|
|
13
|
-
import React, { useEffect, useState, useMemo } from 'react';
|
|
13
|
+
import React, { useEffect, useState, useMemo, useRef } from 'react';
|
|
14
14
|
import IconFont from './iconfont';
|
|
15
15
|
import EventName from './event/eventName';
|
|
16
16
|
import "./style/message.css";
|
|
@@ -28,28 +28,35 @@ function VideoMessage(_ref) {
|
|
|
28
28
|
state = _useState2[0],
|
|
29
29
|
setState = _useState2[1];
|
|
30
30
|
|
|
31
|
+
var timeRef = useRef(null);
|
|
31
32
|
var message = useMemo(function () {
|
|
32
33
|
if (state.status === 'fail') {
|
|
33
|
-
|
|
34
|
+
console.warn("\u89C6\u9891\u9519\u8BEF\uFF0C\u8BF7\u624B\u52A8\u5237\u65B0\u91CD\u8BD5\uFF01");
|
|
35
|
+
return '请稍后重试!';
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
if (state.status === 'reload') {
|
|
37
|
-
|
|
39
|
+
console.warn("\u7B2C".concat(state.errorTimer, "\u6B21\u91CD\u8FDE"));
|
|
40
|
+
return "\u6B63\u5728\u5237\u65B0...";
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
return '';
|
|
41
44
|
}, [state.errorTimer, state.status]);
|
|
42
45
|
useEffect(function () {
|
|
43
46
|
var openLoading = function openLoading() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
clearTimeout(timeRef.current);
|
|
48
|
+
timeRef.current = setTimeout(function () {
|
|
49
|
+
return setState(function (old) {
|
|
50
|
+
return Object.assign(Object.assign({}, old), {
|
|
51
|
+
loading: true
|
|
52
|
+
});
|
|
47
53
|
});
|
|
48
|
-
});
|
|
54
|
+
}, 200);
|
|
49
55
|
};
|
|
50
56
|
|
|
51
57
|
var closeLoading = function closeLoading() {
|
|
52
|
-
|
|
58
|
+
clearTimeout(timeRef.current);
|
|
59
|
+
setState(function (old) {
|
|
53
60
|
return Object.assign(Object.assign({}, old), {
|
|
54
61
|
loading: false
|
|
55
62
|
});
|
|
@@ -57,7 +64,8 @@ function VideoMessage(_ref) {
|
|
|
57
64
|
};
|
|
58
65
|
|
|
59
66
|
var errorReload = function errorReload(timer) {
|
|
60
|
-
|
|
67
|
+
clearTimeout(timeRef.current);
|
|
68
|
+
setState(function () {
|
|
61
69
|
return {
|
|
62
70
|
status: 'reload',
|
|
63
71
|
errorTimer: timer,
|
|
@@ -85,18 +93,21 @@ function VideoMessage(_ref) {
|
|
|
85
93
|
var reload = function reload() {
|
|
86
94
|
return setState(function (old) {
|
|
87
95
|
return Object.assign(Object.assign({}, old), {
|
|
88
|
-
status: 'reload'
|
|
96
|
+
status: 'reload',
|
|
97
|
+
loading: true
|
|
89
98
|
});
|
|
90
99
|
});
|
|
91
100
|
};
|
|
92
101
|
|
|
93
102
|
var playEnd = function playEnd() {
|
|
94
|
-
|
|
103
|
+
clearTimeout(timeRef.current);
|
|
104
|
+
setState(function (old) {
|
|
95
105
|
return Object.assign(Object.assign({}, old), {
|
|
96
106
|
status: null,
|
|
97
107
|
loading: false
|
|
98
108
|
});
|
|
99
|
-
})
|
|
109
|
+
});
|
|
110
|
+
api.pause();
|
|
100
111
|
};
|
|
101
112
|
|
|
102
113
|
event.addEventListener('loadstart', openLoading);
|
package/es/Player/player.d.ts
CHANGED
|
@@ -113,6 +113,11 @@ export interface ISinglePlayerProps {
|
|
|
113
113
|
*/
|
|
114
114
|
reload?: () => void;
|
|
115
115
|
|
|
116
|
+
/**
|
|
117
|
+
* extaction
|
|
118
|
+
*/
|
|
119
|
+
extActions?: { [key: string]: (...args: any) => void };
|
|
120
|
+
|
|
116
121
|
/**
|
|
117
122
|
* 视频可播放时执行钩子
|
|
118
123
|
*/
|
|
@@ -129,9 +134,7 @@ export interface ISinglePlayerProps {
|
|
|
129
134
|
playerEvents?: CustomEvent[];
|
|
130
135
|
}
|
|
131
136
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlayerProps> {
|
|
137
|
+
export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, 'isLive' | 'reload'> {
|
|
135
138
|
/**
|
|
136
139
|
* 前端录像开始时间
|
|
137
140
|
*/
|
|
@@ -145,10 +148,12 @@ export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlaye
|
|
|
145
148
|
/**
|
|
146
149
|
* 录像时间轴发生变化回调
|
|
147
150
|
*/
|
|
148
|
-
onSeek(time: number)
|
|
151
|
+
onSeek?: (time: number) => void;
|
|
152
|
+
|
|
153
|
+
forwordRef?: React.MutableRefObject<ExportPlayerType>;
|
|
149
154
|
}
|
|
150
155
|
|
|
151
|
-
export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url'
|
|
156
|
+
export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url'> {
|
|
152
157
|
/**
|
|
153
158
|
* 云录像片段信息
|
|
154
159
|
*/
|
|
@@ -158,6 +163,10 @@ export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'c
|
|
|
158
163
|
* 云录像开始时间
|
|
159
164
|
*/
|
|
160
165
|
begin?: number;
|
|
166
|
+
|
|
167
|
+
forwordRef?: React.MutableRefObject<ExportPlayerType>;
|
|
168
|
+
|
|
169
|
+
defaultIndex?: number;
|
|
161
170
|
}
|
|
162
171
|
|
|
163
172
|
export const SinglePlayer: React.FunctionComponent<ISinglePlayerProps>;
|
|
@@ -190,17 +199,30 @@ export type ExportPlayerType = {
|
|
|
190
199
|
api: Api;
|
|
191
200
|
event: VideoEventInstance;
|
|
192
201
|
plugins: [FlvJs.Player, Hls];
|
|
202
|
+
fit?: string;
|
|
203
|
+
setIndex?: (i: number) => void;
|
|
204
|
+
seekTo?: (i: number) => void;
|
|
205
|
+
reload?: () => void;
|
|
193
206
|
};
|
|
194
207
|
|
|
195
208
|
export interface ISegmentType {
|
|
209
|
+
id?: string;
|
|
196
210
|
/**
|
|
197
211
|
* 视频片段地址
|
|
198
212
|
*/
|
|
199
213
|
url?: string;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* 片段开始时间
|
|
217
|
+
*/
|
|
218
|
+
beginTime: number;
|
|
219
|
+
|
|
200
220
|
/**
|
|
201
|
-
*
|
|
221
|
+
* 片段结束时间
|
|
202
222
|
*/
|
|
203
|
-
|
|
223
|
+
endTime: number;
|
|
224
|
+
|
|
225
|
+
style?: any;
|
|
204
226
|
}
|
|
205
227
|
|
|
206
228
|
export const ISegmentTypeDemo: React.FC<ISegmentType>;
|
|
@@ -5,5 +5,5 @@ import type { ISegmentPlayerProps } from './player';
|
|
|
5
5
|
* @param param0
|
|
6
6
|
* @returns
|
|
7
7
|
*/
|
|
8
|
-
declare function SegmentPlayer({ segments, begin, ...props }: ISegmentPlayerProps): JSX.Element;
|
|
8
|
+
declare function SegmentPlayer({ segments, begin, forwordRef, defaultIndex, onCanPlayerInit, customTimeLine, ...props }: ISegmentPlayerProps): JSX.Element;
|
|
9
9
|
export default SegmentPlayer;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import _useUpdate from "ahooks/es/useUpdate";
|
|
2
|
+
|
|
1
3
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
4
|
|
|
3
5
|
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."); }
|
|
@@ -19,16 +21,17 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
19
21
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
22
|
|
|
21
23
|
import { __rest } from "tslib";
|
|
22
|
-
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
24
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
23
25
|
import SinglePlayer from './single_player';
|
|
24
26
|
import SegmentTimeLine from './segment_timeline';
|
|
27
|
+
import Events from './event/eventName';
|
|
28
|
+
|
|
25
29
|
/**
|
|
26
30
|
* @desc 计算第一个url
|
|
27
31
|
* @param segments
|
|
28
32
|
* @param defaultIndex
|
|
29
33
|
* @returns
|
|
30
34
|
*/
|
|
31
|
-
|
|
32
35
|
function getFirstUrlIndex(segments) {
|
|
33
36
|
var defaultIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
34
37
|
|
|
@@ -57,9 +60,12 @@ function getFirstUrlIndex(segments) {
|
|
|
57
60
|
*/
|
|
58
61
|
|
|
59
62
|
|
|
60
|
-
function usePlayIndex(event, segments
|
|
63
|
+
function usePlayIndex(event, segments) {
|
|
64
|
+
var defaultIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
65
|
+
var deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
66
|
+
|
|
61
67
|
var _useState = useState({
|
|
62
|
-
index: getFirstUrlIndex(segments,
|
|
68
|
+
index: getFirstUrlIndex(segments, defaultIndex)
|
|
63
69
|
}),
|
|
64
70
|
_useState2 = _slicedToArray(_useState, 2),
|
|
65
71
|
state = _useState2[0],
|
|
@@ -85,7 +91,7 @@ function usePlayIndex(event, segments, deps) {
|
|
|
85
91
|
});
|
|
86
92
|
});
|
|
87
93
|
}
|
|
88
|
-
}, [state.index]); // 监听片段播放状态,自动跳转下一个片段
|
|
94
|
+
}, [segments, state.index]); // 监听片段播放状态,自动跳转下一个片段
|
|
89
95
|
|
|
90
96
|
useEffect(function () {
|
|
91
97
|
if (!event) {
|
|
@@ -94,7 +100,7 @@ function usePlayIndex(event, segments, deps) {
|
|
|
94
100
|
|
|
95
101
|
var fn = function fn() {
|
|
96
102
|
return setState(function (old) {
|
|
97
|
-
return Object.assign(Object.assign({},
|
|
103
|
+
return Object.assign(Object.assign({}, old), {
|
|
98
104
|
index: old.index + 1 < segments.length ? old.index + 1 : old.index
|
|
99
105
|
});
|
|
100
106
|
});
|
|
@@ -103,7 +109,7 @@ function usePlayIndex(event, segments, deps) {
|
|
|
103
109
|
event.addEventListener('ended', fn);
|
|
104
110
|
return function () {
|
|
105
111
|
return event.removeEventListener('ended', fn);
|
|
106
|
-
};
|
|
112
|
+
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
107
113
|
}, [event, segments].concat(_toConsumableArray(deps)));
|
|
108
114
|
return {
|
|
109
115
|
index: state.index,
|
|
@@ -124,29 +130,32 @@ function usePlayIndex(event, segments, deps) {
|
|
|
124
130
|
|
|
125
131
|
|
|
126
132
|
function SegmentPlayer(_a) {
|
|
127
|
-
var _b;
|
|
128
|
-
|
|
129
133
|
var segments = _a.segments,
|
|
130
134
|
begin = _a.begin,
|
|
131
|
-
|
|
135
|
+
forwordRef = _a.forwordRef,
|
|
136
|
+
defaultIndex = _a.defaultIndex,
|
|
137
|
+
onCanPlayerInit = _a.onCanPlayerInit,
|
|
138
|
+
customTimeLine = _a.customTimeLine,
|
|
139
|
+
props = __rest(_a, ["segments", "begin", "forwordRef", "defaultIndex", "onCanPlayerInit", "customTimeLine"]);
|
|
132
140
|
|
|
133
|
-
var
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
141
|
+
var update = _useUpdate();
|
|
142
|
+
|
|
143
|
+
var ref = useRef(null);
|
|
144
|
+
var playRef = forwordRef ? forwordRef : ref;
|
|
145
|
+
|
|
146
|
+
var _ref = playRef.current || {},
|
|
147
|
+
api = _ref.api,
|
|
148
|
+
event = _ref.event;
|
|
139
149
|
|
|
140
150
|
var duration = useMemo(function () {
|
|
141
151
|
return segments === null || segments === void 0 ? void 0 : segments.map(function (v) {
|
|
142
|
-
return v.
|
|
152
|
+
return (v.endTime - v.beginTime) / 1000;
|
|
143
153
|
}).reduce(function (a, b) {
|
|
144
154
|
return a + b;
|
|
145
155
|
}, 0);
|
|
146
156
|
}, [segments]);
|
|
147
|
-
var playerRef = useRef(null);
|
|
148
157
|
|
|
149
|
-
var _usePlayIndex = usePlayIndex(
|
|
158
|
+
var _usePlayIndex = usePlayIndex(event, segments, defaultIndex, [segments, defaultIndex]),
|
|
150
159
|
index = _usePlayIndex.index,
|
|
151
160
|
setIndex = _usePlayIndex.setIndex;
|
|
152
161
|
|
|
@@ -155,36 +164,38 @@ function SegmentPlayer(_a) {
|
|
|
155
164
|
}, [segments, index]); // 重置reload
|
|
156
165
|
|
|
157
166
|
var reload = function reload() {
|
|
167
|
+
playRef.current.event.emit(Events.RELOAD);
|
|
158
168
|
setIndex(0);
|
|
159
|
-
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
var _ref = playerRef.current || {},
|
|
163
|
-
api = _ref.api,
|
|
164
|
-
event = _ref.event; // 秒级别转换
|
|
169
|
+
playRef.current.api.reload();
|
|
170
|
+
}; // 秒级别转换
|
|
165
171
|
|
|
166
172
|
|
|
167
173
|
var beginTemp = useMemo(function () {
|
|
168
174
|
return begin ? String(begin).length === 10 ? Math.floor(begin * 1000) : begin : begin;
|
|
175
|
+
}, [begin]);
|
|
176
|
+
var hasReady = api && event;
|
|
177
|
+
var timeline = customTimeLine !== null && customTimeLine !== void 0 ? customTimeLine : /*#__PURE__*/React.createElement(SegmentTimeLine, {
|
|
178
|
+
begin: beginTemp,
|
|
179
|
+
api: api,
|
|
180
|
+
event: event,
|
|
181
|
+
index: index,
|
|
182
|
+
segments: segments,
|
|
183
|
+
duration: duration,
|
|
184
|
+
setIndex: setIndex
|
|
185
|
+
});
|
|
186
|
+
var onInit = useCallback(function () {
|
|
187
|
+
update();
|
|
188
|
+
onCanPlayerInit && onCanPlayerInit(); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
169
189
|
}, []);
|
|
170
190
|
return /*#__PURE__*/React.createElement(SinglePlayer, Object.assign({
|
|
171
|
-
ref:
|
|
191
|
+
ref: playRef,
|
|
172
192
|
url: url,
|
|
193
|
+
onCanPlayerInit: onInit,
|
|
173
194
|
reload: reload,
|
|
174
|
-
|
|
175
|
-
return setState({
|
|
176
|
-
forceKey: Date.now()
|
|
177
|
-
});
|
|
178
|
-
},
|
|
179
|
-
customTimeLine: api && event ? /*#__PURE__*/React.createElement(SegmentTimeLine, {
|
|
180
|
-
begin: beginTemp,
|
|
181
|
-
api: api,
|
|
182
|
-
event: event,
|
|
183
|
-
index: index,
|
|
184
|
-
segments: segments,
|
|
185
|
-
duration: duration,
|
|
195
|
+
extActions: {
|
|
186
196
|
setIndex: setIndex
|
|
187
|
-
}
|
|
197
|
+
},
|
|
198
|
+
customTimeLine: hasReady ? timeline : /*#__PURE__*/React.createElement(React.Fragment, null)
|
|
188
199
|
}, props));
|
|
189
200
|
}
|
|
190
201
|
|