@cloud-app-dev/vidc 2.1.0-alpha.8 → 2.2.0-alpha.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 +4 -3
- package/es/Api/index.js +1 -1
- package/es/AppContext/Sync.d.ts +1 -0
- package/es/AppContext/interface.d.ts +4 -1
- package/es/CheckGroupFixed/index.d.ts +1 -0
- package/es/DeviceSelect/TreeType.d.ts +1 -0
- package/es/DeviceSelect/demo.d.ts +1 -0
- package/es/DeviceSelect/index.d.ts +1 -0
- package/es/DeviceSelect/index.js +1 -1
- package/es/Drag/DragAndDropItem.js +2 -2
- package/es/Drag/DropItem.js +2 -2
- package/es/Drawer/Demo.js +24 -3
- package/es/Drawer/Footer.d.ts +1 -0
- package/es/Drawer/index.d.ts +29 -3
- package/es/Drawer/index.js +155 -4
- package/es/FrontendPlayer/index.d.ts +2 -0
- package/es/FrontendPlayer/index.js +2 -0
- package/es/FullScreen/index.d.ts +2 -3
- package/es/FullScreen/index.js +14 -41
- package/es/InitialConfig/utils.d.ts +5 -5
- package/es/InitialConfig/utils.js +19 -19
- package/es/Input/index.d.ts +1 -0
- package/es/List/CheckExt.d.ts +1 -0
- package/es/List/DeviceList/index.js +1 -1
- package/es/List/DynamicDeviceList/Demo.d.ts +1 -0
- package/es/List/DynamicDeviceList/index.d.ts +1 -0
- package/es/List/GridList/index.js +0 -1
- package/es/List/VList/index.d.ts +1 -0
- package/es/List/index.d.ts +1 -0
- package/es/LoaderApp/index.js +26 -22
- package/es/LoaderApp/loader.js +2 -6
- package/es/LoaderApp/utils.d.ts +1 -0
- package/es/LoaderApp/utils.js +37 -0
- package/es/Modal/index.d.ts +27 -0
- package/es/Modal/index.js +155 -1
- package/es/Picture/component/DefaultRects/RectInfo.d.ts +1 -0
- package/es/Picture/component/DefaultRects/index.d.ts +2 -1
- package/es/Picture/component/DrawRect/index.d.ts +3 -4
- package/es/Picture/component/MoveContent/index.js +16 -12
- package/es/Picture/component/RectMenu/index.d.ts +2 -3
- package/es/Picture/component/Tools/index.js +0 -5
- package/es/Picture/component/WheelScale/index.d.ts +1 -0
- package/es/Picture/component/WheelScale/index.js +3 -3
- package/es/Picture/index.d.ts +1 -0
- package/es/Picture/index.js +4 -2
- package/es/Picture/interface.d.ts +4 -2
- package/es/Picture/utils.d.ts +1 -0
- package/es/Player/api/index.d.ts +71 -0
- package/es/Player/api/index.js +284 -0
- package/es/Player/contraller_bar/bar.d.ts +8 -0
- package/es/Player/contraller_bar/bar.js +21 -0
- package/es/Player/contraller_bar/contraller_event.d.ts +9 -0
- package/es/{RefModal/index.js → Player/contraller_bar/contraller_event.js} +39 -54
- package/es/Player/contraller_bar/index.d.ts +19 -0
- package/es/Player/contraller_bar/index.js +37 -0
- package/es/Player/contraller_bar/left_bar.d.ts +15 -0
- package/es/Player/contraller_bar/left_bar.js +91 -0
- package/es/Player/contraller_bar/right_bar.d.ts +13 -0
- package/es/Player/contraller_bar/right_bar.js +55 -0
- package/es/Player/contraller_bar/useBarStatus.d.ts +3 -0
- package/es/{RefDrawer/index.js → Player/contraller_bar/useBarStatus.js} +27 -46
- package/es/Player/demo.d.ts +2 -0
- package/es/Player/demo.js +269 -0
- package/es/Player/event/browserTabEvent.d.ts +9 -0
- package/es/Player/event/browserTabEvent.js +57 -0
- package/es/Player/event/errorEvent.d.ts +16 -0
- package/es/Player/event/errorEvent.js +120 -0
- package/es/Player/event/eventName.d.ts +3 -0
- package/es/Player/event/eventName.js +15 -0
- package/es/Player/event/index.d.ts +22 -0
- package/es/Player/event/index.js +175 -0
- package/es/Player/frontend_player.d.ts +15 -0
- package/es/Player/frontend_player.js +90 -0
- package/es/Player/frontend_timeline.d.ts +14 -0
- package/es/Player/frontend_timeline.js +138 -0
- package/es/Player/iconfont.d.ts +13 -0
- package/es/Player/iconfont.js +18 -0
- package/es/Player/index.d.ts +8 -0
- package/es/Player/index.js +8 -0
- package/es/Player/live_heart.d.ts +6 -0
- package/es/Player/live_heart.js +29 -0
- package/es/Player/message.d.ts +11 -0
- package/es/Player/message.js +150 -0
- package/es/Player/player.d.ts +75 -0
- package/es/Player/segment_player.d.ts +13 -0
- package/es/Player/segment_player.js +191 -0
- package/es/Player/segment_timeline.d.ts +16 -0
- package/es/Player/segment_timeline.js +154 -0
- package/es/Player/single_player.d.ts +5 -0
- package/es/Player/single_player.js +185 -0
- package/es/Player/style/bar.css +37 -0
- package/es/Player/style/iconfont.css +62 -0
- package/es/Player/style/index.css +22 -0
- package/es/Player/style/message.css +49 -0
- package/es/Player/style/slider.css +96 -0
- package/es/Player/style/timeline.css +92 -0
- package/es/Player/timeline.d.ts +11 -0
- package/es/Player/timeline.js +104 -0
- package/es/Player/util.d.ts +48 -0
- package/es/Player/util.js +172 -0
- package/es/Progress/index.d.ts +1 -0
- package/es/SegmentPlayer/index.d.ts +2 -0
- package/es/SegmentPlayer/index.js +2 -0
- package/es/Service/fetch-adapter.d.ts +12 -0
- package/es/Service/fetch-adapter.js +184 -0
- package/es/Service/http.d.ts +1 -1
- package/es/Service/http.js +4 -2
- package/es/Service/interface.d.ts +2 -1
- package/es/Tree/BaseTree/demo.d.ts +1 -0
- package/es/Tree/BaseTree/demo.js +3 -1
- package/es/Tree/BaseTree/index.d.ts +2 -2
- package/es/Tree/demo.d.ts +1 -0
- package/es/Tree/index.js +1 -1
- package/es/UserSelect/demo.d.ts +1 -0
- package/es/WorkerFlow/Form/Approver.d.ts +1 -0
- package/es/WorkerFlow/Form/Condition.d.ts +1 -0
- package/es/WorkerFlow/Form/Condition.js +2 -1
- package/es/WorkerFlow/Form/EmptyUserSet.d.ts +1 -0
- package/es/WorkerFlow/Form/EmptyUserSet.js +2 -1
- package/es/WorkerFlow/Form/FormAuth.d.ts +1 -0
- package/es/WorkerFlow/Form/GroupList.d.ts +1 -0
- package/es/WorkerFlow/Form/GroupSelect.d.ts +1 -0
- package/es/WorkerFlow/Form/GroupSelect.js +2 -1
- package/es/WorkerFlow/Form/Handle.d.ts +1 -0
- package/es/WorkerFlow/Form/LevelGroupSelect.d.ts +1 -0
- package/es/WorkerFlow/Form/LevelGroupSelect.js +2 -1
- package/es/WorkerFlow/Form/Notifier.d.ts +1 -0
- package/es/WorkerFlow/Form/UserAndGroupSelect.d.ts +1 -0
- package/es/WorkerFlow/Form/UserAndGroupSelect.js +2 -1
- package/es/WorkerFlow/Form/UserSelect.d.ts +1 -0
- package/es/WorkerFlow/Form/UserSelect.js +2 -1
- package/es/WorkerFlow/Form/UserSet.d.ts +1 -0
- package/es/WorkerFlow/Form/UsersHandleType.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Add.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Add.js +1 -1
- package/es/WorkerFlow/Nodes/AddOption.d.ts +1 -0
- package/es/WorkerFlow/Nodes/AddOptionList.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Approver.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Condition.d.ts +1 -0
- package/es/WorkerFlow/Nodes/End.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Handle.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Node.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Notifier.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Render.d.ts +1 -0
- package/es/WorkerFlow/Nodes/Start.d.ts +1 -0
- package/es/WorkerFlow/Nodes/TitleElement.d.ts +1 -0
- package/es/WorkerFlow/Nodes/TitleElement.js +6 -2
- package/es/WorkerFlow/index.js +2 -1
- package/es/index.d.ts +5 -8
- package/es/index.js +6 -9
- package/es/typings.d.ts +1 -0
- package/package.json +15 -10
- package/tsconfig.json +3 -2
- package/typings/global.d.ts +4 -0
- package/es/AppRedirect/index.css +0 -0
- package/es/AppRedirect/index.d.ts +0 -16
- package/es/AppRedirect/index.js +0 -33
- package/es/AppRouter/index.d.ts +0 -8
- package/es/AppRouter/index.js +0 -17
- package/es/RefDrawer/index.d.ts +0 -15
- package/es/RefModal/index.d.ts +0 -15
- package/es/useDrawer/index.d.ts +0 -14
- package/es/useDrawer/index.js +0 -91
- package/es/useModal/index.d.ts +0 -14
- package/es/useModal/index.js +0 -93
- package/typings.d.ts +0 -2
|
@@ -10,62 +10,43 @@ 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
|
|
14
|
-
import
|
|
15
|
-
import ConfigContext from '../ConfigContext';
|
|
16
|
-
|
|
17
|
-
function RefDrawer(_, ref) {
|
|
18
|
-
var context = useContext(ConfigContext.Context);
|
|
19
|
-
var root = useMemo(function () {
|
|
20
|
-
return (context === null || context === void 0 ? void 0 : context.root) || document.body;
|
|
21
|
-
}, [context === null || context === void 0 ? void 0 : context.root]);
|
|
13
|
+
import { useEffect, useState } from 'react';
|
|
14
|
+
import EventName from '../event/eventName';
|
|
22
15
|
|
|
16
|
+
function useBarStatus(event) {
|
|
23
17
|
var _useState = useState({
|
|
24
|
-
|
|
25
|
-
visible: false,
|
|
26
|
-
title: '',
|
|
27
|
-
onOk: undefined,
|
|
28
|
-
width: undefined,
|
|
29
|
-
className: undefined
|
|
18
|
+
status: 1
|
|
30
19
|
}),
|
|
31
20
|
_useState2 = _slicedToArray(_useState, 2),
|
|
32
21
|
state = _useState2[0],
|
|
33
|
-
setState = _useState2[1];
|
|
22
|
+
setState = _useState2[1]; // 监听
|
|
23
|
+
|
|
34
24
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return
|
|
38
|
-
|
|
25
|
+
useEffect(function () {
|
|
26
|
+
var show = function show() {
|
|
27
|
+
return setState(function (old) {
|
|
28
|
+
return Object.assign(Object.assign({}, old), {
|
|
29
|
+
status: 1
|
|
30
|
+
});
|
|
39
31
|
});
|
|
40
|
-
}
|
|
41
|
-
};
|
|
32
|
+
};
|
|
42
33
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
var hide = function hide() {
|
|
35
|
+
return setState(function (old) {
|
|
36
|
+
return Object.assign(Object.assign({}, old), {
|
|
37
|
+
status: 0
|
|
38
|
+
});
|
|
47
39
|
});
|
|
48
|
-
}
|
|
49
|
-
};
|
|
40
|
+
};
|
|
50
41
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
42
|
+
event.on(EventName.SHOW_CONTRALLER, show);
|
|
43
|
+
event.on(EventName.HIDE_CONTRALLER, hide);
|
|
44
|
+
return function () {
|
|
45
|
+
event.off(EventName.SHOW_CONTRALLER, show);
|
|
46
|
+
event.off(EventName.HIDE_CONTRALLER, hide);
|
|
55
47
|
};
|
|
56
|
-
}, [
|
|
57
|
-
return
|
|
58
|
-
visible: state.visible,
|
|
59
|
-
onOk: state.onOk,
|
|
60
|
-
onClose: close,
|
|
61
|
-
destroyOnClose: true,
|
|
62
|
-
title: state.title,
|
|
63
|
-
width: state.width,
|
|
64
|
-
className: state.className,
|
|
65
|
-
getContainer: function getContainer() {
|
|
66
|
-
return root;
|
|
67
|
-
}
|
|
68
|
-
}, state.content);
|
|
48
|
+
}, []);
|
|
49
|
+
return state.status;
|
|
69
50
|
}
|
|
70
51
|
|
|
71
|
-
export default
|
|
52
|
+
export default useBarStatus;
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import "antd/lib/config-provider/style";
|
|
2
|
+
import _ConfigProvider from "antd/lib/config-provider";
|
|
3
|
+
import "antd/lib/button/style";
|
|
4
|
+
import _Button from "antd/lib/button";
|
|
5
|
+
import "antd/lib/input/style";
|
|
6
|
+
import _Input from "antd/lib/input";
|
|
7
|
+
import "antd/lib/select/style";
|
|
8
|
+
import _Select from "antd/lib/select";
|
|
9
|
+
|
|
10
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
|
+
|
|
12
|
+
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."); }
|
|
13
|
+
|
|
14
|
+
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); }
|
|
15
|
+
|
|
16
|
+
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; }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
21
|
+
|
|
22
|
+
import React, { useState } from 'react';
|
|
23
|
+
import Player from './single_player';
|
|
24
|
+
import SegmentPlayer from './segment_player';
|
|
25
|
+
import FrontendPlayer from './frontend_player';
|
|
26
|
+
var options = [{
|
|
27
|
+
value: '',
|
|
28
|
+
label: '自动'
|
|
29
|
+
}, {
|
|
30
|
+
value: 'flv',
|
|
31
|
+
label: 'FLV'
|
|
32
|
+
}, {
|
|
33
|
+
value: 'hls',
|
|
34
|
+
label: 'HLS'
|
|
35
|
+
}];
|
|
36
|
+
var options2 = [{
|
|
37
|
+
value: 1,
|
|
38
|
+
label: '直播'
|
|
39
|
+
}, {
|
|
40
|
+
value: 0,
|
|
41
|
+
label: '录像'
|
|
42
|
+
}];
|
|
43
|
+
|
|
44
|
+
function Demo1() {
|
|
45
|
+
var _useState = useState({
|
|
46
|
+
type: undefined,
|
|
47
|
+
isLive: 1,
|
|
48
|
+
url: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4',
|
|
49
|
+
tempUrl: ''
|
|
50
|
+
}),
|
|
51
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
52
|
+
state = _useState2[0],
|
|
53
|
+
setState = _useState2[1];
|
|
54
|
+
|
|
55
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
style: {
|
|
57
|
+
width: '100%'
|
|
58
|
+
}
|
|
59
|
+
}, /*#__PURE__*/React.createElement("h3", null, "\u6807\u51C6\u89C6\u9891\u64AD\u653E"), /*#__PURE__*/React.createElement("div", {
|
|
60
|
+
style: {
|
|
61
|
+
marginBottom: 10,
|
|
62
|
+
display: 'flex'
|
|
63
|
+
}
|
|
64
|
+
}, /*#__PURE__*/React.createElement(_Select, {
|
|
65
|
+
value: state.type || '',
|
|
66
|
+
onChange: function onChange(val) {
|
|
67
|
+
return setState(function (old) {
|
|
68
|
+
return Object.assign(Object.assign({}, old), {
|
|
69
|
+
type: val
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}, options.map(function (v) {
|
|
74
|
+
return /*#__PURE__*/React.createElement(_Select.Option, {
|
|
75
|
+
key: v.label,
|
|
76
|
+
value: v.value
|
|
77
|
+
}, v.label);
|
|
78
|
+
})), /*#__PURE__*/React.createElement(_Input, {
|
|
79
|
+
style: {
|
|
80
|
+
flex: 1,
|
|
81
|
+
height: 32
|
|
82
|
+
},
|
|
83
|
+
type: "text",
|
|
84
|
+
placeholder: "\u8BF7\u8F93\u5165\u89C6\u9891\u5730\u5740",
|
|
85
|
+
onChange: function onChange(e) {
|
|
86
|
+
return setState(function (old) {
|
|
87
|
+
return Object.assign(Object.assign({}, old), {
|
|
88
|
+
tempUrl: e.target.value
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}), /*#__PURE__*/React.createElement(_Select, {
|
|
93
|
+
value: state.isLive,
|
|
94
|
+
onChange: function onChange(val) {
|
|
95
|
+
return setState(function (old) {
|
|
96
|
+
return Object.assign(Object.assign({}, old), {
|
|
97
|
+
isLive: val
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}, options2.map(function (v) {
|
|
102
|
+
return /*#__PURE__*/React.createElement(_Select.Option, {
|
|
103
|
+
key: v.label,
|
|
104
|
+
value: v.value
|
|
105
|
+
}, v.label);
|
|
106
|
+
})), /*#__PURE__*/React.createElement(_Button, {
|
|
107
|
+
style: {
|
|
108
|
+
width: 60,
|
|
109
|
+
height: 32
|
|
110
|
+
},
|
|
111
|
+
onClick: function onClick(e) {
|
|
112
|
+
return setState(function (old) {
|
|
113
|
+
return Object.assign(Object.assign({}, old), {
|
|
114
|
+
url: state.tempUrl
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}, "\u64AD\u653E")), /*#__PURE__*/React.createElement(Player, {
|
|
119
|
+
type: state.type,
|
|
120
|
+
url: state.url,
|
|
121
|
+
isLive: !!state.isLive
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function Demo2() {
|
|
126
|
+
var _useState3 = useState({
|
|
127
|
+
isLive: 1,
|
|
128
|
+
segments: [{
|
|
129
|
+
duration: 60,
|
|
130
|
+
url: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4'
|
|
131
|
+
}, {
|
|
132
|
+
duration: 60
|
|
133
|
+
}, {
|
|
134
|
+
duration: 60,
|
|
135
|
+
url: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4?date=1'
|
|
136
|
+
}, {
|
|
137
|
+
duration: 60
|
|
138
|
+
}, {
|
|
139
|
+
duration: 60,
|
|
140
|
+
url: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4?date=2'
|
|
141
|
+
}, {
|
|
142
|
+
duration: 60
|
|
143
|
+
}, {
|
|
144
|
+
duration: 60,
|
|
145
|
+
url: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4?date=3'
|
|
146
|
+
}, {
|
|
147
|
+
duration: 60
|
|
148
|
+
}, {
|
|
149
|
+
duration: 60,
|
|
150
|
+
url: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4?date=4'
|
|
151
|
+
}, {
|
|
152
|
+
duration: 60
|
|
153
|
+
}, {
|
|
154
|
+
duration: 60,
|
|
155
|
+
url: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4?date=5'
|
|
156
|
+
}],
|
|
157
|
+
tempUrl: ''
|
|
158
|
+
}),
|
|
159
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
160
|
+
state = _useState4[0],
|
|
161
|
+
setState = _useState4[1];
|
|
162
|
+
|
|
163
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
164
|
+
style: {
|
|
165
|
+
width: '100%',
|
|
166
|
+
marginTop: 20
|
|
167
|
+
}
|
|
168
|
+
}, /*#__PURE__*/React.createElement("h3", null, " Sements\u89C6\u9891\u64AD\u653E"), /*#__PURE__*/React.createElement("div", {
|
|
169
|
+
style: {
|
|
170
|
+
marginBottom: 10,
|
|
171
|
+
display: 'flex'
|
|
172
|
+
}
|
|
173
|
+
}, /*#__PURE__*/React.createElement(_Input, {
|
|
174
|
+
style: {
|
|
175
|
+
flex: 1,
|
|
176
|
+
height: 32
|
|
177
|
+
},
|
|
178
|
+
type: "text",
|
|
179
|
+
placeholder: "\u8BF7\u8F93\u5165\u89C6\u9891\u7247\u6BB5JSON",
|
|
180
|
+
onChange: function onChange(e) {
|
|
181
|
+
return setState(function (old) {
|
|
182
|
+
return Object.assign(Object.assign({}, old), {
|
|
183
|
+
tempUrl: e.target.value
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}), /*#__PURE__*/React.createElement(_Button, {
|
|
188
|
+
style: {
|
|
189
|
+
width: 60,
|
|
190
|
+
height: 32
|
|
191
|
+
},
|
|
192
|
+
onClick: function onClick(e) {
|
|
193
|
+
return setState(function (old) {
|
|
194
|
+
return Object.assign(Object.assign({}, old), {
|
|
195
|
+
segments: JSON.parse(state.tempUrl)
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}, "\u64AD\u653E")), /*#__PURE__*/React.createElement(SegmentPlayer, {
|
|
200
|
+
begin: Date.now(),
|
|
201
|
+
segments: state.segments,
|
|
202
|
+
isLive: false
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function Demo3() {
|
|
207
|
+
var _useState5 = useState({
|
|
208
|
+
url: 'http://192.168.101.161:18090/flv/vod/2b9cb54836e136630_34/187981bd526bdf548.flv?origin_url=sdk%3A%2F%2Fadmin%3Aabc12345%40192.168.14.3%3A8000%2Fcam%2Fplayback%3Ffactory%3Dhikvision%26channel%3D34%26subType%3D0%26startTime%3D1652889636%26endTime%3D1652890200',
|
|
209
|
+
tempUrl: '',
|
|
210
|
+
begin: 1652889636,
|
|
211
|
+
end: 1652890200
|
|
212
|
+
}),
|
|
213
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
214
|
+
state = _useState6[0],
|
|
215
|
+
setState = _useState6[1];
|
|
216
|
+
|
|
217
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
218
|
+
style: {
|
|
219
|
+
width: '100%',
|
|
220
|
+
marginTop: 20
|
|
221
|
+
}
|
|
222
|
+
}, /*#__PURE__*/React.createElement("h3", null, " \u524D\u7AEF\u5F55\u50CF\u89C6\u9891\u64AD\u653E"), /*#__PURE__*/React.createElement("div", {
|
|
223
|
+
style: {
|
|
224
|
+
marginBottom: 10,
|
|
225
|
+
display: 'flex'
|
|
226
|
+
}
|
|
227
|
+
}, /*#__PURE__*/React.createElement(_Input, {
|
|
228
|
+
style: {
|
|
229
|
+
flex: 1,
|
|
230
|
+
height: 32
|
|
231
|
+
},
|
|
232
|
+
type: "text",
|
|
233
|
+
placeholder: "\u8BF7\u8F93\u5165\u524D\u7AEF\u5F55\u50CF\u5730\u5740",
|
|
234
|
+
onChange: function onChange(e) {
|
|
235
|
+
return setState(function (old) {
|
|
236
|
+
return Object.assign(Object.assign({}, old), {
|
|
237
|
+
tempUrl: e.target.value
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}), /*#__PURE__*/React.createElement(_Button, {
|
|
242
|
+
style: {
|
|
243
|
+
width: 60,
|
|
244
|
+
height: 32
|
|
245
|
+
},
|
|
246
|
+
onClick: function onClick(e) {
|
|
247
|
+
return setState(function (old) {
|
|
248
|
+
return Object.assign(Object.assign({}, old), {
|
|
249
|
+
url: state.tempUrl
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}, "\u64AD\u653E")), /*#__PURE__*/React.createElement(FrontendPlayer, {
|
|
254
|
+
begin: state.begin,
|
|
255
|
+
end: state.end,
|
|
256
|
+
url: state.url,
|
|
257
|
+
onSeek: function onSeek(time) {
|
|
258
|
+
return console.log(time);
|
|
259
|
+
}
|
|
260
|
+
}));
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
var App = function App() {
|
|
264
|
+
return /*#__PURE__*/React.createElement(_ConfigProvider, {
|
|
265
|
+
prefixCls: "cloudapp"
|
|
266
|
+
}, /*#__PURE__*/React.createElement(Demo1, null), /*#__PURE__*/React.createElement(Demo2, null), /*#__PURE__*/React.createElement(Demo3, null));
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
export default App;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare function visibilityState(): any;
|
|
2
|
+
declare function addEventListener(listener: () => void): void;
|
|
3
|
+
declare function removeEventListener(listener: () => void): void;
|
|
4
|
+
declare const _default: {
|
|
5
|
+
addEventListener: typeof addEventListener;
|
|
6
|
+
removeEventListener: typeof removeEventListener;
|
|
7
|
+
visibilityState: typeof visibilityState;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
function getHiddenProp() {
|
|
2
|
+
var prefixes = ['webkit', 'moz', 'ms', 'o']; // 如果hidden 属性是原生支持的,我们就直接返回
|
|
3
|
+
|
|
4
|
+
if ('hidden' in document) {
|
|
5
|
+
return 'hidden';
|
|
6
|
+
} // 其他的情况就循环现有的浏览器前缀,拼接我们所需要的属性
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
for (var i = 0; i < prefixes.length; i++) {
|
|
10
|
+
// 如果当前的拼接的前缀在 document对象中存在 返回即可
|
|
11
|
+
if (prefixes[i] + 'Hidden' in document) {
|
|
12
|
+
return prefixes[i] + 'Hidden';
|
|
13
|
+
}
|
|
14
|
+
} // 其他的情况 直接返回null
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function getVisibilityState() {
|
|
21
|
+
var prefixes = ['webkit', 'moz', 'ms', 'o'];
|
|
22
|
+
|
|
23
|
+
if ('visibilityState' in document) {
|
|
24
|
+
return 'visibilityState';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
for (var i = 0; i < prefixes.length; i++) {
|
|
28
|
+
if (prefixes[i] + 'VisibilityState' in document) {
|
|
29
|
+
return prefixes[i] + 'VisibilityState';
|
|
30
|
+
}
|
|
31
|
+
} // 找不到返回 null
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function visibilityState() {
|
|
38
|
+
return document[getVisibilityState()];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function addEventListener(listener) {
|
|
42
|
+
var visProp = getHiddenProp();
|
|
43
|
+
var evtname = visProp.replace(/[H|h]idden/, '') + 'visibilitychange';
|
|
44
|
+
document.addEventListener(evtname, listener, false);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function removeEventListener(listener) {
|
|
48
|
+
var visProp = getHiddenProp();
|
|
49
|
+
var evtname = visProp.replace(/[H|h]idden/, '') + 'visibilitychange';
|
|
50
|
+
document.removeEventListener(evtname, listener, false);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export default {
|
|
54
|
+
addEventListener: addEventListener,
|
|
55
|
+
removeEventListener: removeEventListener,
|
|
56
|
+
visibilityState: visibilityState
|
|
57
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type VideoEventInstance from '.';
|
|
3
|
+
import type Api from '../api';
|
|
4
|
+
import flvjs from 'flv.zv.js';
|
|
5
|
+
import Hls from 'hls.js';
|
|
6
|
+
interface IErrorEventProps {
|
|
7
|
+
event: VideoEventInstance;
|
|
8
|
+
api: Api;
|
|
9
|
+
errorReloadTimer: number;
|
|
10
|
+
flv: flvjs.Player;
|
|
11
|
+
hls: Hls;
|
|
12
|
+
reload: () => void;
|
|
13
|
+
unload: () => void;
|
|
14
|
+
}
|
|
15
|
+
declare function ErrorEvent({ event, api, reload, unload, errorReloadTimer, flv, hls }: IErrorEventProps): JSX.Element;
|
|
16
|
+
export default ErrorEvent;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
|
|
3
|
+
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."); }
|
|
4
|
+
|
|
5
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
+
|
|
7
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
8
|
+
|
|
9
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
+
|
|
11
|
+
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."); }
|
|
12
|
+
|
|
13
|
+
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); }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
|
+
|
|
21
|
+
import React, { useState, useEffect, useRef } from 'react';
|
|
22
|
+
import EventName from './eventName';
|
|
23
|
+
import flvjs from 'flv.zv.js';
|
|
24
|
+
import Hls from 'hls.js';
|
|
25
|
+
|
|
26
|
+
function ErrorEvent(_ref) {
|
|
27
|
+
var event = _ref.event,
|
|
28
|
+
api = _ref.api,
|
|
29
|
+
reload = _ref.reload,
|
|
30
|
+
unload = _ref.unload,
|
|
31
|
+
errorReloadTimer = _ref.errorReloadTimer,
|
|
32
|
+
flv = _ref.flv,
|
|
33
|
+
hls = _ref.hls;
|
|
34
|
+
|
|
35
|
+
var _useState = useState(0),
|
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
+
errorTimer = _useState2[0],
|
|
38
|
+
setErrorTime = _useState2[1];
|
|
39
|
+
|
|
40
|
+
var errorInfo = useRef(null);
|
|
41
|
+
var reloadTimer = useRef(null);
|
|
42
|
+
useEffect(function () {
|
|
43
|
+
var errorHandle = function errorHandle() {
|
|
44
|
+
var _console;
|
|
45
|
+
|
|
46
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
47
|
+
args[_key] = arguments[_key];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (args[2] && args[2].msg && args[2].msg.includes('Unsupported audio')) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
(_console = console).error.apply(_console, args);
|
|
55
|
+
|
|
56
|
+
errorInfo.current = args;
|
|
57
|
+
setErrorTime(errorTimer + 1);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var reloadSuccess = function reloadSuccess() {
|
|
61
|
+
if (errorTimer > 0) {
|
|
62
|
+
console.warn('视频重连成功!');
|
|
63
|
+
event.emit(EventName.RELOAD_SUCCESS);
|
|
64
|
+
clearErrorTimer();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var clearErrorTimer = function clearErrorTimer() {
|
|
69
|
+
return setErrorTime(0);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
if (flv) {
|
|
73
|
+
flv.on(flvjs.Events.ERROR, errorHandle);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (hls) {
|
|
77
|
+
hls.on(Hls.Events.ERROR, errorHandle);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
event.on(EventName.ERROR, errorHandle);
|
|
81
|
+
event.addEventListener('error', errorHandle); //获取video状态清除错误状态
|
|
82
|
+
|
|
83
|
+
event.addEventListener('canplay', reloadSuccess);
|
|
84
|
+
return function () {
|
|
85
|
+
//PS 对象销毁时事件自动回收
|
|
86
|
+
// if (flv) {
|
|
87
|
+
// flv.off(flvjs.Events.ERROR, errorHandle);
|
|
88
|
+
// }
|
|
89
|
+
// if (hls) {
|
|
90
|
+
// hls.off(Hls.Events.ERROR, errorHandle);
|
|
91
|
+
// }
|
|
92
|
+
event.off(EventName.ERROR, errorHandle);
|
|
93
|
+
event.removeEventListener('error', errorHandle);
|
|
94
|
+
event.removeEventListener('canplay', reloadSuccess);
|
|
95
|
+
};
|
|
96
|
+
}, [event, flv, hls, errorTimer]);
|
|
97
|
+
useEffect(function () {
|
|
98
|
+
if (errorTimer === 0) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (errorTimer > errorReloadTimer) {
|
|
103
|
+
unload();
|
|
104
|
+
event.emit(EventName.RELOAD_FAIL);
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
console.warn("\u89C6\u9891\u64AD\u653E\u51FA\u9519\uFF0C\u6B63\u5728\u8FDB\u884C\u91CD\u8FDE".concat(errorTimer));
|
|
109
|
+
reloadTimer.current = setTimeout(function () {
|
|
110
|
+
event.emit.apply(event, [EventName.ERROR_RELOAD, errorTimer].concat(_toConsumableArray(errorInfo.current)));
|
|
111
|
+
reload();
|
|
112
|
+
}, 2 * 1000);
|
|
113
|
+
return function () {
|
|
114
|
+
clearTimeout(reloadTimer.current);
|
|
115
|
+
};
|
|
116
|
+
}, [errorTimer, api, event, flv, hls]);
|
|
117
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export default ErrorEvent;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var Events = {
|
|
2
|
+
RELOAD: 'reload',
|
|
3
|
+
RELOAD_FAIL: 'reloadFail',
|
|
4
|
+
RELOAD_SUCCESS: 'reloadSuccess',
|
|
5
|
+
ERROR: 'error',
|
|
6
|
+
ERROR_RELOAD: 'errorRload',
|
|
7
|
+
HISTORY_PLAY_END: 'historyPlayEnd',
|
|
8
|
+
SEEK: 'seek',
|
|
9
|
+
TRANSFORM: 'transform',
|
|
10
|
+
CHANGE_PLAY_INDEX: 'changePlayIndex',
|
|
11
|
+
HIDE_CONTRALLER: 'hideContraller',
|
|
12
|
+
SHOW_CONTRALLER: 'showContraller',
|
|
13
|
+
CLEAR_ERROR_TIMER: 'clearErrorTimer'
|
|
14
|
+
};
|
|
15
|
+
export default Events;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CustomEvent, EventInfo } from '../player';
|
|
2
|
+
declare class VideoEventInstance {
|
|
3
|
+
video: HTMLVideoElement;
|
|
4
|
+
events: {
|
|
5
|
+
[key: string]: EventInfo;
|
|
6
|
+
};
|
|
7
|
+
playerEvents: {
|
|
8
|
+
[key: string]: (() => void)[];
|
|
9
|
+
};
|
|
10
|
+
constructor(video: HTMLVideoElement);
|
|
11
|
+
on(eventName: string, handle: () => void): void;
|
|
12
|
+
addEventListener(eventName: string, handle: () => void): void;
|
|
13
|
+
removeEventListener(eventName: string, handle: () => void): void;
|
|
14
|
+
emit(eventName: string, ...data: any): void;
|
|
15
|
+
off(eventName: string, handle: () => void): void;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
}
|
|
18
|
+
declare type PlayEvent = VideoEventInstance;
|
|
19
|
+
export declare function usePlayerEvent(video: HTMLVideoElement): PlayEvent;
|
|
20
|
+
export declare function useVideoEvents(event: VideoEventInstance, events: CustomEvent[]): void;
|
|
21
|
+
export declare function useRegisterPlayerEvents(event: VideoEventInstance, events: CustomEvent[]): void;
|
|
22
|
+
export default VideoEventInstance;
|