@cloud-app-dev/vidc 2.2.0-alpha.8 → 3.0.1
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/.eslintignore +1 -3
- package/.eslintrc +3 -0
- package/.prettierignore +1 -0
- package/.umirc.ts +74 -74
- package/es/Box/InfoBox/index.css +5 -6
- package/es/Box/TwoColumnBox/index.css +17 -24
- package/es/Box/TwoColumnBox/index.js +1 -4
- package/es/Box/index.css +1 -1
- package/es/Config/interface.d.ts +2 -1
- package/es/ConfigContext/index.d.ts +1 -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 +3 -55
- package/es/List/index.d.ts +6 -7
- package/es/List/index.js +15 -154
- 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.css +1 -1
- package/es/Modal/index.d.ts +7 -7
- 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 +1 -8
- package/es/Player/api/index.js +27 -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 +13 -21
- package/es/Player/event/index.js +5 -1
- package/es/Player/frontend_player.d.ts +1 -1
- package/es/Player/frontend_player.js +20 -13
- package/es/Player/frontend_timeline.d.ts +1 -1
- package/es/Player/frontend_timeline.js +6 -5
- package/es/Player/live_heart.js +45 -12
- package/es/Player/message.js +23 -12
- package/es/Player/player.d.ts +31 -7
- package/es/Player/segment_player.d.ts +1 -1
- package/es/Player/segment_player.js +30 -18
- package/es/Player/segment_timeline.js +14 -13
- package/es/Player/single_player.js +50 -9
- 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 +169 -0
- package/es/ScreenPlayer/Record.d.ts +5 -0
- package/es/{WorkerFlow/index.js → ScreenPlayer/Record.js} +290 -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 +528 -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 +50 -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/{Tree/BaseTree/demo.js → ScreenPlayer/useVideoFit.js} +30 -55
- package/es/ScreenPlayer/utils.d.ts +25 -0
- package/es/ScreenPlayer/utils.js +84 -0
- package/es/ThemeAntd/index.css +58 -58
- package/es/ThemeAntd/style/button.css +1 -1
- package/es/ThemeAntd/style/checkbox.css +8 -8
- package/es/ThemeAntd/style/input.css +13 -13
- package/es/ThemeAntd/style/pagination.css +5 -5
- package/es/ThemeAntd/style/picker.css +11 -11
- package/es/ThemeAntd/style/popover.css +1 -1
- package/es/ThemeAntd/style/radio.css +4 -4
- package/es/ThemeAntd/style/scrollbar.css +3 -3
- package/es/ThemeAntd/style/select.css +11 -11
- package/es/ThemeAntd/style/table.css +1 -1
- 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 +19 -21
- package/release-build.sh +19 -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/demo.d.ts +0 -3
- 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 -97
- 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 -7
- package/es/WorkerFlow/utils.js +0 -197
- package/es/useHttp/index.d.ts +0 -8
- package/pnpm-lock.yaml +0 -13662
|
@@ -14,6 +14,7 @@ import { __rest } from "tslib";
|
|
|
14
14
|
import React, { useMemo, useRef, useState } from 'react';
|
|
15
15
|
import SinglePlayer from './single_player';
|
|
16
16
|
import FrontendTimeLine from './frontend_timeline';
|
|
17
|
+
import Events from './event/eventName';
|
|
17
18
|
/**
|
|
18
19
|
* @desc 主组件,负责片段整体逻辑控制
|
|
19
20
|
* @param param0
|
|
@@ -25,7 +26,10 @@ function FrontendPlayer(_a) {
|
|
|
25
26
|
begin = _a.begin,
|
|
26
27
|
end = _a.end,
|
|
27
28
|
onSeek = _a.onSeek,
|
|
28
|
-
|
|
29
|
+
forwordRef = _a.forwordRef,
|
|
30
|
+
customTimeLine = _a.customTimeLine,
|
|
31
|
+
_onCanPlayerInit = _a.onCanPlayerInit,
|
|
32
|
+
props = __rest(_a, ["url", "begin", "end", "onSeek", "forwordRef", "customTimeLine", "onCanPlayerInit"]);
|
|
29
33
|
|
|
30
34
|
var _useState = useState({
|
|
31
35
|
forceKey: Date.now()
|
|
@@ -34,9 +38,10 @@ function FrontendPlayer(_a) {
|
|
|
34
38
|
state = _useState2[0],
|
|
35
39
|
setState = _useState2[1];
|
|
36
40
|
|
|
37
|
-
var
|
|
41
|
+
var ref = useRef(null);
|
|
42
|
+
var playRef = forwordRef ? forwordRef : ref;
|
|
38
43
|
|
|
39
|
-
var _ref =
|
|
44
|
+
var _ref = playRef.current || {},
|
|
40
45
|
api = _ref.api,
|
|
41
46
|
event = _ref.event; // 秒级别转换毫秒
|
|
42
47
|
|
|
@@ -53,8 +58,9 @@ function FrontendPlayer(_a) {
|
|
|
53
58
|
// 重置reload
|
|
54
59
|
|
|
55
60
|
var reload = function reload() {
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
playRef.current.event.emit(Events.RELOAD);
|
|
62
|
+
onSeek && onSeek(beginTemp);
|
|
63
|
+
playRef.current.api.reload();
|
|
58
64
|
setState(function (old) {
|
|
59
65
|
return Object.assign(Object.assign({}, old), {
|
|
60
66
|
forceKey: Date.now()
|
|
@@ -63,19 +69,20 @@ function FrontendPlayer(_a) {
|
|
|
63
69
|
};
|
|
64
70
|
|
|
65
71
|
return /*#__PURE__*/React.createElement(SinglePlayer, Object.assign({
|
|
66
|
-
ref:
|
|
72
|
+
ref: playRef,
|
|
67
73
|
url: url,
|
|
68
74
|
type: "flv",
|
|
69
75
|
reload: reload,
|
|
70
|
-
isLive:
|
|
76
|
+
isLive: true,
|
|
71
77
|
onCanPlayerInit: function onCanPlayerInit() {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
setState({
|
|
79
|
+
forceKey: Date.now()
|
|
80
|
+
});
|
|
81
|
+
_onCanPlayerInit && _onCanPlayerInit({
|
|
82
|
+
reload: reload
|
|
76
83
|
});
|
|
77
84
|
},
|
|
78
|
-
customTimeLine: api && event
|
|
85
|
+
customTimeLine: api && event && (customTimeLine || /*#__PURE__*/React.createElement(FrontendTimeLine, {
|
|
79
86
|
end: endTemp,
|
|
80
87
|
onSeek: onSeek,
|
|
81
88
|
key: state.forceKey,
|
|
@@ -83,7 +90,7 @@ function FrontendPlayer(_a) {
|
|
|
83
90
|
api: api,
|
|
84
91
|
event: event,
|
|
85
92
|
duration: duration
|
|
86
|
-
})
|
|
93
|
+
}))
|
|
87
94
|
}, props));
|
|
88
95
|
}
|
|
89
96
|
|
|
@@ -8,7 +8,7 @@ interface ITimeLineProps {
|
|
|
8
8
|
duration: number;
|
|
9
9
|
begin: number;
|
|
10
10
|
end: number;
|
|
11
|
-
onSeek(time: number)
|
|
11
|
+
onSeek?: (time: number) => void;
|
|
12
12
|
}
|
|
13
13
|
declare function FrontendTimeLine({ api, event, duration, begin, end, onSeek }: ITimeLineProps): JSX.Element;
|
|
14
14
|
export default FrontendTimeLine;
|
|
@@ -13,7 +13,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
13
13
|
import React, { useCallback, useEffect, useMemo, useState, startTransition } from 'react';
|
|
14
14
|
import useBarStatus from './contraller_bar/useBarStatus';
|
|
15
15
|
import { useTimes } from './timeline';
|
|
16
|
-
import {
|
|
16
|
+
import { FMT } from './util';
|
|
17
|
+
import moment from 'moment';
|
|
17
18
|
import "./style/timeline.css";
|
|
18
19
|
|
|
19
20
|
function FrontendTimeLine(_ref) {
|
|
@@ -52,7 +53,7 @@ function FrontendTimeLine(_ref) {
|
|
|
52
53
|
}, [begin]);
|
|
53
54
|
var playPercent = useMemo(function () {
|
|
54
55
|
return rTime / duration * 100;
|
|
55
|
-
}, [rTime]);
|
|
56
|
+
}, [duration, rTime]);
|
|
56
57
|
var cTime = useMemo(function () {
|
|
57
58
|
return begin + rTime * 1000;
|
|
58
59
|
}, [begin, rTime]);
|
|
@@ -67,7 +68,7 @@ function FrontendTimeLine(_ref) {
|
|
|
67
68
|
time: cTime - currentTime
|
|
68
69
|
});
|
|
69
70
|
});
|
|
70
|
-
}, [
|
|
71
|
+
}, [duration, begin, onSeek, currentTime]);
|
|
71
72
|
var onLineMouseOver = useCallback(function (e) {
|
|
72
73
|
var rect = e.currentTarget.getBoundingClientRect();
|
|
73
74
|
var left = e.pageX - rect.left;
|
|
@@ -78,7 +79,7 @@ function FrontendTimeLine(_ref) {
|
|
|
78
79
|
markTime: begin + mTime * 1000
|
|
79
80
|
});
|
|
80
81
|
});
|
|
81
|
-
}, [begin]);
|
|
82
|
+
}, [begin, duration]);
|
|
82
83
|
var onLineMouseOut = useCallback(function (e) {
|
|
83
84
|
startTransition(function () {
|
|
84
85
|
return setState(function (old) {
|
|
@@ -132,7 +133,7 @@ function TipTitle(_ref2) {
|
|
|
132
133
|
style: {
|
|
133
134
|
fontWeight: 600
|
|
134
135
|
}
|
|
135
|
-
}, "\u5F55\u50CF\u4FE1\u606F"), /*#__PURE__*/React.createElement("div", null, "\u5F00\u59CB\uFF1A",
|
|
136
|
+
}, "\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
137
|
}
|
|
137
138
|
|
|
138
139
|
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
|
@@ -129,9 +129,7 @@ export interface ISinglePlayerProps {
|
|
|
129
129
|
playerEvents?: CustomEvent[];
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlayerProps> {
|
|
132
|
+
export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, 'isLive' | 'reload' | 'type'> {
|
|
135
133
|
/**
|
|
136
134
|
* 前端录像开始时间
|
|
137
135
|
*/
|
|
@@ -145,10 +143,19 @@ export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlaye
|
|
|
145
143
|
/**
|
|
146
144
|
* 录像时间轴发生变化回调
|
|
147
145
|
*/
|
|
148
|
-
onSeek(time: number)
|
|
146
|
+
onSeek?: (time: number) => void;
|
|
147
|
+
|
|
148
|
+
forwordRef?: React.MutableRefObject<ExportPlayerType>;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* 视频可播放时执行钩子
|
|
152
|
+
*/
|
|
153
|
+
onCanPlayerInit?: (data: any) => void;
|
|
149
154
|
}
|
|
150
155
|
|
|
151
|
-
export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | '
|
|
156
|
+
export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'onCanPlayerInit'> {
|
|
157
|
+
onCanPlayerInit?: (ext: { [key: string]: any }) => void;
|
|
158
|
+
|
|
152
159
|
/**
|
|
153
160
|
* 云录像片段信息
|
|
154
161
|
*/
|
|
@@ -158,6 +165,10 @@ export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'c
|
|
|
158
165
|
* 云录像开始时间
|
|
159
166
|
*/
|
|
160
167
|
begin?: number;
|
|
168
|
+
|
|
169
|
+
forwordRef?: React.MutableRefObject<ExportPlayerType>;
|
|
170
|
+
|
|
171
|
+
defaultIndex?: number;
|
|
161
172
|
}
|
|
162
173
|
|
|
163
174
|
export const SinglePlayer: React.FunctionComponent<ISinglePlayerProps>;
|
|
@@ -190,17 +201,30 @@ export type ExportPlayerType = {
|
|
|
190
201
|
api: Api;
|
|
191
202
|
event: VideoEventInstance;
|
|
192
203
|
plugins: [FlvJs.Player, Hls];
|
|
204
|
+
fit?: string;
|
|
205
|
+
setIndex?: (i: number) => void;
|
|
206
|
+
seekTo?: (i: number) => void;
|
|
207
|
+
reload?: () => void;
|
|
193
208
|
};
|
|
194
209
|
|
|
195
210
|
export interface ISegmentType {
|
|
211
|
+
id?: string;
|
|
196
212
|
/**
|
|
197
213
|
* 视频片段地址
|
|
198
214
|
*/
|
|
199
215
|
url?: string;
|
|
216
|
+
|
|
200
217
|
/**
|
|
201
|
-
*
|
|
218
|
+
* 片段开始时间
|
|
202
219
|
*/
|
|
203
|
-
|
|
220
|
+
beginTime: number;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* 片段结束时间
|
|
224
|
+
*/
|
|
225
|
+
endTime: number;
|
|
226
|
+
|
|
227
|
+
style?: any;
|
|
204
228
|
}
|
|
205
229
|
|
|
206
230
|
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, onCanPlayerInit, defaultIndex, customTimeLine, ...props }: ISegmentPlayerProps): JSX.Element;
|
|
9
9
|
export default SegmentPlayer;
|
|
@@ -22,6 +22,7 @@ import { __rest } from "tslib";
|
|
|
22
22
|
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
23
23
|
import SinglePlayer from './single_player';
|
|
24
24
|
import SegmentTimeLine from './segment_timeline';
|
|
25
|
+
import Events from './event/eventName';
|
|
25
26
|
/**
|
|
26
27
|
* @desc 计算第一个url
|
|
27
28
|
* @param segments
|
|
@@ -57,9 +58,12 @@ function getFirstUrlIndex(segments) {
|
|
|
57
58
|
*/
|
|
58
59
|
|
|
59
60
|
|
|
60
|
-
function usePlayIndex(event, segments
|
|
61
|
+
function usePlayIndex(event, segments) {
|
|
62
|
+
var defaultIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
63
|
+
var deps = arguments.length > 3 ? arguments[3] : undefined;
|
|
64
|
+
|
|
61
65
|
var _useState = useState({
|
|
62
|
-
index: getFirstUrlIndex(segments,
|
|
66
|
+
index: getFirstUrlIndex(segments, defaultIndex)
|
|
63
67
|
}),
|
|
64
68
|
_useState2 = _slicedToArray(_useState, 2),
|
|
65
69
|
state = _useState2[0],
|
|
@@ -124,11 +128,20 @@ function usePlayIndex(event, segments, deps) {
|
|
|
124
128
|
|
|
125
129
|
|
|
126
130
|
function SegmentPlayer(_a) {
|
|
127
|
-
var _b;
|
|
128
|
-
|
|
129
131
|
var segments = _a.segments,
|
|
130
132
|
begin = _a.begin,
|
|
131
|
-
|
|
133
|
+
forwordRef = _a.forwordRef,
|
|
134
|
+
_onCanPlayerInit = _a.onCanPlayerInit,
|
|
135
|
+
defaultIndex = _a.defaultIndex,
|
|
136
|
+
customTimeLine = _a.customTimeLine,
|
|
137
|
+
props = __rest(_a, ["segments", "begin", "forwordRef", "onCanPlayerInit", "defaultIndex", "customTimeLine"]);
|
|
138
|
+
|
|
139
|
+
var ref = useRef(null);
|
|
140
|
+
var playRef = forwordRef ? forwordRef : ref;
|
|
141
|
+
|
|
142
|
+
var _ref = playRef.current || {},
|
|
143
|
+
api = _ref.api,
|
|
144
|
+
event = _ref.event;
|
|
132
145
|
|
|
133
146
|
var _useState3 = useState({
|
|
134
147
|
forceKey: Date.now()
|
|
@@ -139,14 +152,13 @@ function SegmentPlayer(_a) {
|
|
|
139
152
|
|
|
140
153
|
var duration = useMemo(function () {
|
|
141
154
|
return segments === null || segments === void 0 ? void 0 : segments.map(function (v) {
|
|
142
|
-
return v.
|
|
155
|
+
return (v.endTime - v.beginTime) / 1000;
|
|
143
156
|
}).reduce(function (a, b) {
|
|
144
157
|
return a + b;
|
|
145
158
|
}, 0);
|
|
146
159
|
}, [segments]);
|
|
147
|
-
var playerRef = useRef(null);
|
|
148
160
|
|
|
149
|
-
var _usePlayIndex = usePlayIndex(
|
|
161
|
+
var _usePlayIndex = usePlayIndex(event, segments, defaultIndex, [state.forceKey]),
|
|
150
162
|
index = _usePlayIndex.index,
|
|
151
163
|
setIndex = _usePlayIndex.setIndex;
|
|
152
164
|
|
|
@@ -155,28 +167,28 @@ function SegmentPlayer(_a) {
|
|
|
155
167
|
}, [segments, index]); // 重置reload
|
|
156
168
|
|
|
157
169
|
var reload = function reload() {
|
|
170
|
+
playRef.current.event.emit(Events.RELOAD);
|
|
158
171
|
setIndex(0);
|
|
159
|
-
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
var _ref = playerRef.current || {},
|
|
163
|
-
api = _ref.api,
|
|
164
|
-
event = _ref.event; // 秒级别转换
|
|
172
|
+
playRef.current.api.reload();
|
|
173
|
+
}; // 秒级别转换
|
|
165
174
|
|
|
166
175
|
|
|
167
176
|
var beginTemp = useMemo(function () {
|
|
168
177
|
return begin ? String(begin).length === 10 ? Math.floor(begin * 1000) : begin : begin;
|
|
169
178
|
}, []);
|
|
170
179
|
return /*#__PURE__*/React.createElement(SinglePlayer, Object.assign({
|
|
171
|
-
ref:
|
|
180
|
+
ref: playRef,
|
|
172
181
|
url: url,
|
|
173
182
|
reload: reload,
|
|
174
183
|
onCanPlayerInit: function onCanPlayerInit() {
|
|
175
|
-
|
|
184
|
+
setState({
|
|
176
185
|
forceKey: Date.now()
|
|
177
186
|
});
|
|
187
|
+
_onCanPlayerInit && _onCanPlayerInit({
|
|
188
|
+
setIndex: setIndex
|
|
189
|
+
});
|
|
178
190
|
},
|
|
179
|
-
customTimeLine: api && event
|
|
191
|
+
customTimeLine: api && event && (customTimeLine || /*#__PURE__*/React.createElement(SegmentTimeLine, {
|
|
180
192
|
begin: beginTemp,
|
|
181
193
|
api: api,
|
|
182
194
|
event: event,
|
|
@@ -184,7 +196,7 @@ function SegmentPlayer(_a) {
|
|
|
184
196
|
segments: segments,
|
|
185
197
|
duration: duration,
|
|
186
198
|
setIndex: setIndex
|
|
187
|
-
})
|
|
199
|
+
}))
|
|
188
200
|
}, props));
|
|
189
201
|
}
|
|
190
202
|
|
|
@@ -16,7 +16,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
16
16
|
import React, { useCallback, useMemo } from 'react';
|
|
17
17
|
import { useTimes } from './timeline';
|
|
18
18
|
import useBarStatus from './contraller_bar/useBarStatus';
|
|
19
|
-
import
|
|
19
|
+
import moment from 'moment';
|
|
20
|
+
import { FMT } from './util';
|
|
20
21
|
import "./style/timeline.css";
|
|
21
22
|
|
|
22
23
|
function SegmentTimeLine(_ref) {
|
|
@@ -36,11 +37,11 @@ function SegmentTimeLine(_ref) {
|
|
|
36
37
|
|
|
37
38
|
var indexDuration = useMemo(function () {
|
|
38
39
|
return segments.map(function (v) {
|
|
39
|
-
return v.
|
|
40
|
+
return (v.endTime - v.beginTime) / 1000;
|
|
40
41
|
}).reduce(function (a, b, i) {
|
|
41
42
|
return i >= index ? a : a + b;
|
|
42
43
|
}, 0);
|
|
43
|
-
}, [index]);
|
|
44
|
+
}, [index, segments]);
|
|
44
45
|
var playPercent = useMemo(function () {
|
|
45
46
|
return (currentTime + indexDuration) / duration * 100;
|
|
46
47
|
}, [currentTime, duration, indexDuration]);
|
|
@@ -66,7 +67,7 @@ function SegmentTimeLine(_ref) {
|
|
|
66
67
|
} else {
|
|
67
68
|
api.seekTo(currentTime);
|
|
68
69
|
}
|
|
69
|
-
}, [api,
|
|
70
|
+
}, [segments, api, index, setIndex]);
|
|
70
71
|
return /*#__PURE__*/React.createElement("div", {
|
|
71
72
|
className: "player-timeline-layout player-segment-timeline-layout ".concat(status === 0 ? 'hide-time-line' : '')
|
|
72
73
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -85,7 +86,7 @@ function SegmentTimeLine(_ref) {
|
|
|
85
86
|
return seekWithLine(e, i);
|
|
86
87
|
},
|
|
87
88
|
style: {
|
|
88
|
-
width: "".concat(v.
|
|
89
|
+
width: "".concat((v.endTime / 1000 - v.beginTime / 1000) / duration * 100, "%")
|
|
89
90
|
}
|
|
90
91
|
}));
|
|
91
92
|
}), /*#__PURE__*/React.createElement("div", {
|
|
@@ -110,24 +111,24 @@ function TipTitle(_ref2) {
|
|
|
110
111
|
if (index === 0) {
|
|
111
112
|
var _start = begin;
|
|
112
113
|
|
|
113
|
-
var _end = begin + segments[0].
|
|
114
|
+
var _end = begin + (segments[0].endTime - segments[0].beginTime);
|
|
114
115
|
|
|
115
116
|
return {
|
|
116
|
-
start:
|
|
117
|
-
end:
|
|
117
|
+
start: moment(_start).format(FMT),
|
|
118
|
+
end: moment(_end).format(FMT)
|
|
118
119
|
};
|
|
119
120
|
}
|
|
120
121
|
|
|
121
122
|
var indexDuration = segments.map(function (v) {
|
|
122
|
-
return v.
|
|
123
|
+
return v.endTime - v.beginTime;
|
|
123
124
|
}).reduce(function (a, b, i) {
|
|
124
125
|
return i >= index ? a : a + b;
|
|
125
126
|
}, 0);
|
|
126
|
-
var start = begin + indexDuration
|
|
127
|
-
var end = start + segments[index].
|
|
127
|
+
var start = begin + indexDuration;
|
|
128
|
+
var end = start + (segments[index].endTime - segments[index].beginTime);
|
|
128
129
|
return {
|
|
129
|
-
start:
|
|
130
|
-
end:
|
|
130
|
+
start: moment(start).format(FMT),
|
|
131
|
+
end: moment(end).format(FMT)
|
|
131
132
|
};
|
|
132
133
|
}, [index, segments, begin]),
|
|
133
134
|
start = _useMemo.start,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import _useToggle3 from "ahooks/es/useToggle";
|
|
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."); }
|
|
@@ -55,7 +57,12 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
55
57
|
}),
|
|
56
58
|
_useState2 = _slicedToArray(_useState, 2),
|
|
57
59
|
state = _useState2[0],
|
|
58
|
-
setState = _useState2[1];
|
|
60
|
+
setState = _useState2[1];
|
|
61
|
+
|
|
62
|
+
var _useToggle = _useToggle3('contain', 'fill'),
|
|
63
|
+
_useToggle2 = _slicedToArray(_useToggle, 2),
|
|
64
|
+
fit = _useToggle2[0],
|
|
65
|
+
toggle = _useToggle2[1].toggle; // 视频格式判断,外部可以强制指定,也可以通过url自动判断
|
|
59
66
|
|
|
60
67
|
|
|
61
68
|
var vType = useMemo(function () {
|
|
@@ -93,30 +100,61 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
93
100
|
}, []); // 特殊接口实现 reload是可能被重写的,但是API只暴露原生的方法
|
|
94
101
|
|
|
95
102
|
var reload = function reload() {
|
|
96
|
-
return playReload(video, flv, hls, url);
|
|
103
|
+
return playReload(video, event, flv, hls, url);
|
|
97
104
|
};
|
|
98
105
|
|
|
99
106
|
var unload = function unload() {
|
|
100
107
|
return playUnload(video, flv, hls);
|
|
101
|
-
}; // 合并api
|
|
108
|
+
}; // 合并api,加上代理
|
|
102
109
|
|
|
103
110
|
|
|
104
111
|
var playApi = useMemo(function () {
|
|
105
|
-
|
|
112
|
+
if (!api) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
var map = {
|
|
106
117
|
reload: reload,
|
|
107
|
-
unload: unload
|
|
118
|
+
unload: unload,
|
|
119
|
+
toggleFit: toggle
|
|
120
|
+
};
|
|
121
|
+
return new Proxy(api, {
|
|
122
|
+
get: function get(target, key) {
|
|
123
|
+
var _a;
|
|
124
|
+
|
|
125
|
+
return (_a = map[key]) !== null && _a !== void 0 ? _a : target[key];
|
|
126
|
+
},
|
|
127
|
+
set: function set() {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
108
130
|
});
|
|
109
|
-
}, [api]); //
|
|
131
|
+
}, [api]); // 代理Event
|
|
132
|
+
|
|
133
|
+
var playEvent = useMemo(function () {
|
|
134
|
+
if (!event) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return new Proxy(event, {
|
|
139
|
+
get: function get(target, key) {
|
|
140
|
+
return target[key];
|
|
141
|
+
},
|
|
142
|
+
set: function set() {
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}, [event]); // ref暴露接口
|
|
110
147
|
|
|
111
148
|
useImperativeHandle(ref, function () {
|
|
112
149
|
return {
|
|
113
150
|
video: video,
|
|
114
151
|
container: state.container,
|
|
115
152
|
api: playApi,
|
|
116
|
-
event:
|
|
117
|
-
plugins: [flv, hls]
|
|
153
|
+
event: playEvent,
|
|
154
|
+
plugins: [flv, hls],
|
|
155
|
+
fit: fit
|
|
118
156
|
};
|
|
119
|
-
}, [api, event, video]);
|
|
157
|
+
}, [api, event, video, fit]);
|
|
120
158
|
useEffect(function () {
|
|
121
159
|
if (api && event && video) {
|
|
122
160
|
props.onCanPlayerInit && props.onCanPlayerInit();
|
|
@@ -128,6 +166,9 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
128
166
|
}, /*#__PURE__*/React.createElement("div", {
|
|
129
167
|
className: "player-mask-layout"
|
|
130
168
|
}, /*#__PURE__*/React.createElement("video", {
|
|
169
|
+
style: {
|
|
170
|
+
objectFit: fit
|
|
171
|
+
},
|
|
131
172
|
autoPlay: autoPlay,
|
|
132
173
|
preload: preload,
|
|
133
174
|
muted: muted,
|