@cloud-app-dev/vidc 4.0.17 → 4.1.0

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.
Files changed (299) hide show
  1. package/.dumirc.ts +1 -1
  2. package/.eslintrc.js +3 -0
  3. package/.fatherrc.ts +0 -6
  4. package/es/AppContext/Sync.d.ts +7 -0
  5. package/es/AppContext/Sync.js +44 -0
  6. package/es/AppContext/index.d.ts +17 -0
  7. package/es/AppContext/index.js +154 -0
  8. package/es/AppContext/interface.d.ts +42 -0
  9. package/es/AppContext/static.d.ts +8 -0
  10. package/es/AppContext/static.js +9 -0
  11. package/es/CheckGroupFixed/demo.d.ts +2 -0
  12. package/es/CheckGroupFixed/demo.js +20 -0
  13. package/es/CheckGroupFixed/index.d.ts +22 -0
  14. package/es/CheckGroupFixed/index.js +150 -0
  15. package/es/CheckGroupFixed/style.d.ts +6 -0
  16. package/es/CheckGroupFixed/style.js +9 -0
  17. package/es/Config/index.d.ts +4 -0
  18. package/es/Config/index.js +77 -0
  19. package/es/Config/interface.d.ts +65 -0
  20. package/es/Config/utils.d.ts +4 -0
  21. package/es/Config/utils.js +33 -0
  22. package/es/CustomRenderSelect/index.d.ts +13 -0
  23. package/es/CustomRenderSelect/index.js +86 -0
  24. package/es/DBTools/index.d.ts +25 -0
  25. package/es/DBTools/index.js +336 -0
  26. package/es/DisableMark/index.d.ts +8 -0
  27. package/es/DisableMark/index.js +25 -0
  28. package/es/DomMove/demo.d.ts +1 -0
  29. package/es/DomMove/demo.js +19 -0
  30. package/es/DomMove/index.d.ts +16 -0
  31. package/es/DomMove/index.js +148 -0
  32. package/es/DomMove/utils.d.ts +8 -0
  33. package/es/DomMove/utils.js +33 -0
  34. package/es/Drag/DragAndDropItem.d.ts +4 -0
  35. package/es/Drag/DragAndDropItem.js +133 -0
  36. package/es/Drag/DropItem.d.ts +4 -0
  37. package/es/Drag/DropItem.js +50 -0
  38. package/es/Drag/index.d.ts +7 -0
  39. package/es/Drag/index.js +7 -0
  40. package/es/Drag/interface.d.ts +16 -0
  41. package/es/DynamicGridList/demo.d.ts +2 -0
  42. package/es/DynamicGridList/demo.js +86 -0
  43. package/es/DynamicGridList/index.d.ts +27 -0
  44. package/es/DynamicGridList/index.js +71 -0
  45. package/es/DynamicList/demo.d.ts +1 -0
  46. package/es/DynamicList/demo.js +45 -0
  47. package/es/DynamicList/index.d.ts +30 -0
  48. package/es/DynamicList/index.js +98 -0
  49. package/es/DynamicList/interface.d.ts +19 -0
  50. package/es/DynamicList/utils.d.ts +4 -0
  51. package/es/DynamicList/utils.js +6 -0
  52. package/es/ErrorFallback/index.d.ts +8 -0
  53. package/es/ErrorFallback/index.js +38 -0
  54. package/es/ErrorFallback/inerface.d.ts +48 -0
  55. package/es/EventTools/index.d.ts +3 -0
  56. package/es/EventTools/index.js +12 -0
  57. package/es/FrontendPlayer/index.d.ts +4 -0
  58. package/es/FrontendPlayer/index.js +2 -0
  59. package/es/GridList/data.d.ts +16 -0
  60. package/es/GridList/data.js +609 -0
  61. package/es/GridList/demo.d.ts +2 -0
  62. package/es/GridList/demo.js +89 -0
  63. package/es/GridList/hook.d.ts +13 -0
  64. package/es/GridList/hook.js +270 -0
  65. package/es/GridList/index.d.ts +14 -0
  66. package/es/GridList/index.js +51 -0
  67. package/es/GridList/interface.d.ts +59 -0
  68. package/es/GridList/utils.d.ts +9 -0
  69. package/es/GridList/utils.js +42 -0
  70. package/es/HightLevel/index.d.ts +8 -0
  71. package/es/HightLevel/index.js +20 -0
  72. package/es/IconFont/index.d.ts +12 -0
  73. package/es/IconFont/index.js +63 -0
  74. package/es/InstanceHistory/index.d.ts +3 -0
  75. package/es/InstanceHistory/index.js +7 -0
  76. package/es/LabelValue/index.d.ts +14 -0
  77. package/es/LabelValue/index.js +35 -0
  78. package/es/List/demo.d.ts +2 -0
  79. package/es/List/demo.js +25 -0
  80. package/es/List/index.d.ts +27 -0
  81. package/es/List/index.js +38 -0
  82. package/es/ListWithSizeAnimate/demo.d.ts +1 -0
  83. package/es/ListWithSizeAnimate/demo.js +128 -0
  84. package/es/ListWithSizeAnimate/index.d.ts +13 -0
  85. package/es/ListWithSizeAnimate/index.js +106 -0
  86. package/es/LoaderScript/index.d.ts +47 -0
  87. package/es/LoaderScript/index.js +38 -0
  88. package/es/LoaderScript/utils.d.ts +13 -0
  89. package/es/LoaderScript/utils.js +179 -0
  90. package/es/Picture/component/DefaultRects/RectInfo.d.ts +7 -0
  91. package/es/Picture/component/DefaultRects/RectInfo.js +90 -0
  92. package/es/Picture/component/DefaultRects/index.d.ts +11 -0
  93. package/es/Picture/component/DefaultRects/index.js +58 -0
  94. package/es/Picture/component/DefaultRects/style.d.ts +10 -0
  95. package/es/Picture/component/DefaultRects/style.js +28 -0
  96. package/es/Picture/component/DefaultRects/utils.d.ts +2 -0
  97. package/es/Picture/component/DefaultRects/utils.js +11 -0
  98. package/es/Picture/component/DrawRect/index.d.ts +11 -0
  99. package/es/Picture/component/DrawRect/index.js +54 -0
  100. package/es/Picture/component/RectMenu/index.d.ts +10 -0
  101. package/es/Picture/component/RectMenu/index.js +84 -0
  102. package/es/Picture/component/RectMenu/utils.d.ts +12 -0
  103. package/es/Picture/component/RectMenu/utils.js +19 -0
  104. package/es/Picture/component/Tools/index.d.ts +11 -0
  105. package/es/Picture/component/Tools/index.js +105 -0
  106. package/es/Picture/component/Tools/style.d.ts +2 -0
  107. package/es/Picture/component/Tools/style.js +5 -0
  108. package/es/Picture/component/WheelScale/index.d.ts +6 -0
  109. package/es/Picture/component/WheelScale/index.js +29 -0
  110. package/es/Picture/demo.d.ts +1 -0
  111. package/es/Picture/demo.js +114 -0
  112. package/es/Picture/index.d.ts +17 -0
  113. package/es/Picture/index.js +356 -0
  114. package/es/Picture/interface.d.ts +196 -0
  115. package/es/Picture/loadCaptureRectImage.d.ts +3 -0
  116. package/es/Picture/loadCaptureRectImage.js +99 -0
  117. package/es/Picture/useDraw.d.ts +1 -0
  118. package/es/Picture/useDraw.js +103 -0
  119. package/es/Picture/utils.d.ts +26 -0
  120. package/es/Picture/utils.js +143 -0
  121. package/es/Player/api/index.d.ts +68 -0
  122. package/es/Player/api/index.js +309 -0
  123. package/es/Player/context.d.ts +21 -0
  124. package/es/Player/context.js +25 -0
  125. package/es/Player/contraller_bar/bar.d.ts +8 -0
  126. package/es/Player/contraller_bar/bar.js +32 -0
  127. package/es/Player/contraller_bar/contraller_event.d.ts +6 -0
  128. package/es/Player/contraller_bar/contraller_event.js +52 -0
  129. package/es/Player/contraller_bar/index.d.ts +13 -0
  130. package/es/Player/contraller_bar/index.js +39 -0
  131. package/es/Player/contraller_bar/left_bar.d.ts +10 -0
  132. package/es/Player/contraller_bar/left_bar.js +97 -0
  133. package/es/Player/contraller_bar/right_bar.d.ts +8 -0
  134. package/es/Player/contraller_bar/right_bar.js +36 -0
  135. package/es/Player/contraller_bar/time.d.ts +2 -0
  136. package/es/Player/contraller_bar/time.js +24 -0
  137. package/es/Player/contraller_bar/useBarStatus.d.ts +2 -0
  138. package/es/Player/contraller_bar/useBarStatus.js +43 -0
  139. package/es/Player/contraller_bar/volume.d.ts +8 -0
  140. package/es/Player/contraller_bar/volume.js +70 -0
  141. package/es/Player/demo.d.ts +2 -0
  142. package/es/Player/demo.js +289 -0
  143. package/es/Player/empty.d.ts +1 -0
  144. package/es/Player/empty.js +5 -0
  145. package/es/Player/event/errorEvent.d.ts +14 -0
  146. package/es/Player/event/errorEvent.js +88 -0
  147. package/es/Player/event/eventName.d.ts +18 -0
  148. package/es/Player/event/eventName.js +30 -0
  149. package/es/Player/event/index.d.ts +24 -0
  150. package/es/Player/event/index.js +205 -0
  151. package/es/Player/fps_play.d.ts +10 -0
  152. package/es/Player/fps_play.js +88 -0
  153. package/es/Player/frontend_player.d.ts +7 -0
  154. package/es/Player/frontend_player.js +71 -0
  155. package/es/Player/frontend_timeline.d.ts +8 -0
  156. package/es/Player/frontend_timeline.js +153 -0
  157. package/es/Player/iconfont.d.ts +4 -0
  158. package/es/Player/iconfont.js +21 -0
  159. package/es/Player/index.d.ts +2 -0
  160. package/es/Player/index.js +2 -0
  161. package/es/Player/live_heart.d.ts +8 -0
  162. package/es/Player/live_heart.js +45 -0
  163. package/es/Player/message.d.ts +3 -0
  164. package/es/Player/message.js +147 -0
  165. package/es/Player/player.d.ts +233 -0
  166. package/es/Player/segment_player.d.ts +8 -0
  167. package/es/Player/segment_player.js +229 -0
  168. package/es/Player/segment_timeline.d.ts +10 -0
  169. package/es/Player/segment_timeline.js +200 -0
  170. package/es/Player/single_player.d.ts +4 -0
  171. package/es/Player/single_player.js +278 -0
  172. package/es/Player/style/iconfont.js +43 -0
  173. package/es/Player/timeline.d.ts +7 -0
  174. package/es/Player/timeline.js +104 -0
  175. package/es/Player/util.d.ts +43 -0
  176. package/es/Player/util.js +189 -0
  177. package/es/PlayerExt/demo.d.ts +2 -0
  178. package/es/PlayerExt/demo.js +170 -0
  179. package/es/PlayerExt/index.d.ts +47 -0
  180. package/es/PlayerExt/index.js +212 -0
  181. package/es/Progress/index.d.ts +10 -0
  182. package/es/Progress/index.js +60 -0
  183. package/es/ROI/demo.d.ts +2 -0
  184. package/es/ROI/demo.js +17 -0
  185. package/es/ROI/index.d.ts +32 -0
  186. package/es/ROI/index.js +67 -0
  187. package/es/RefDrawer/Footer.d.ts +9 -0
  188. package/es/RefDrawer/Footer.js +27 -0
  189. package/es/RefDrawer/demo.d.ts +3 -0
  190. package/es/RefDrawer/demo.js +32 -0
  191. package/es/RefDrawer/index.d.ts +26 -0
  192. package/es/RefDrawer/index.js +73 -0
  193. package/es/RefModal/demo.d.ts +2 -0
  194. package/es/RefModal/demo.js +32 -0
  195. package/es/RefModal/index.d.ts +17 -0
  196. package/es/RefModal/index.js +71 -0
  197. package/es/ScreenPlayer/Live.d.ts +8 -0
  198. package/es/ScreenPlayer/Live.js +219 -0
  199. package/es/ScreenPlayer/LiveTools.d.ts +33 -0
  200. package/es/ScreenPlayer/LiveTools.js +172 -0
  201. package/es/ScreenPlayer/PlayerWithExt.d.ts +34 -0
  202. package/es/ScreenPlayer/PlayerWithExt.js +241 -0
  203. package/es/ScreenPlayer/RatePick.d.ts +7 -0
  204. package/es/ScreenPlayer/RatePick.js +35 -0
  205. package/es/ScreenPlayer/Record.d.ts +8 -0
  206. package/es/ScreenPlayer/Record.js +452 -0
  207. package/es/ScreenPlayer/RecordTools.d.ts +38 -0
  208. package/es/ScreenPlayer/RecordTools.js +214 -0
  209. package/es/ScreenPlayer/ScreenSelect.d.ts +6 -0
  210. package/es/ScreenPlayer/ScreenSelect.js +59 -0
  211. package/es/ScreenPlayer/SegmentTimeLine.d.ts +16 -0
  212. package/es/ScreenPlayer/SegmentTimeLine.js +44 -0
  213. package/es/ScreenPlayer/TimeMode.d.ts +6 -0
  214. package/es/ScreenPlayer/TimeMode.js +34 -0
  215. package/es/ScreenPlayer/TimeSelect.d.ts +6 -0
  216. package/es/ScreenPlayer/TimeSelect.js +99 -0
  217. package/es/ScreenPlayer/containerStyle.d.ts +13 -0
  218. package/es/ScreenPlayer/containerStyle.js +32 -0
  219. package/es/ScreenPlayer/demo.d.ts +1 -0
  220. package/es/ScreenPlayer/demo.js +19 -0
  221. package/es/ScreenPlayer/demo2.d.ts +1 -0
  222. package/es/ScreenPlayer/demo2.js +196 -0
  223. package/es/ScreenPlayer/index.d.ts +6 -0
  224. package/es/ScreenPlayer/index.js +9 -0
  225. package/es/ScreenPlayer/interface.d.ts +216 -0
  226. package/es/ScreenPlayer/useTimeSlider.d.ts +25 -0
  227. package/es/ScreenPlayer/useTimeSlider.js +451 -0
  228. package/es/ScreenPlayer/useVideoFit.d.ts +5 -0
  229. package/es/ScreenPlayer/useVideoFit.js +35 -0
  230. package/es/ScreenPlayer/utils.d.ts +17 -0
  231. package/es/ScreenPlayer/utils.js +85 -0
  232. package/es/SegmentPlayer/index.d.ts +2 -0
  233. package/es/SegmentPlayer/index.js +2 -0
  234. package/es/Service/http.d.ts +6 -0
  235. package/es/Service/http.js +125 -0
  236. package/es/Service/index.d.ts +3 -0
  237. package/es/Service/index.js +10 -0
  238. package/es/Service/interface.d.ts +22 -0
  239. package/es/Service/middleware.d.ts +5 -0
  240. package/es/Service/middleware.js +15 -0
  241. package/es/SocketEmitter/eventEmitter.d.ts +27 -0
  242. package/es/SocketEmitter/eventEmitter.js +88 -0
  243. package/es/SocketEmitter/index.d.ts +24 -0
  244. package/es/SocketEmitter/index.js +125 -0
  245. package/es/SocketEmitter/interface.d.ts +4 -0
  246. package/es/TableLayout/index.d.ts +9 -0
  247. package/es/TableLayout/index.js +32 -0
  248. package/es/Timeout/index.d.ts +31 -0
  249. package/es/Timeout/index.js +69 -0
  250. package/es/cache/index.d.ts +34 -0
  251. package/es/cache/index.js +94 -0
  252. package/es/copy/index.d.ts +1 -0
  253. package/es/copy/index.js +9 -0
  254. package/es/core.d.ts +0 -0
  255. package/es/getThemeStyle/index.d.ts +2 -0
  256. package/es/getThemeStyle/index.js +5 -0
  257. package/es/index.d.ts +52 -0
  258. package/es/index.js +52 -0
  259. package/es/likeGo/index.d.ts +2 -0
  260. package/es/likeGo/index.js +31 -0
  261. package/es/likeGoSync/index.d.ts +2 -0
  262. package/es/likeGoSync/index.js +10 -0
  263. package/es/logger/index.d.ts +7 -0
  264. package/es/logger/index.js +30 -0
  265. package/es/nextTick/index.d.ts +1 -0
  266. package/es/nextTick/index.js +3 -0
  267. package/es/recorder/demo.d.ts +2 -0
  268. package/es/recorder/demo.js +200 -0
  269. package/es/recorder/index.d.ts +294 -0
  270. package/es/recorder/index.js +991 -0
  271. package/es/submidstr/index.d.ts +5 -0
  272. package/es/submidstr/index.js +14 -0
  273. package/es/treeHelper/index.d.ts +11 -0
  274. package/es/treeHelper/index.js +189 -0
  275. package/es/typings.d.ts +2 -0
  276. package/es/useDrawROI/index.d.ts +16 -0
  277. package/es/useDrawROI/index.js +318 -0
  278. package/es/useEventEmitterHandle/index.d.ts +2 -0
  279. package/es/useEventEmitterHandle/index.js +17 -0
  280. package/es/useHistory/index.d.ts +3 -0
  281. package/es/useHistory/index.js +9 -0
  282. package/es/useHistory/interface.d.ts +3 -0
  283. package/es/useInfiniteScroll/index.d.ts +16 -0
  284. package/es/useInfiniteScroll/index.js +102 -0
  285. package/es/useRafInterval/index.d.ts +5 -0
  286. package/es/useRafInterval/index.js +70 -0
  287. package/es/useSimpleState/index.d.ts +3 -0
  288. package/es/useSimpleState/index.js +35 -0
  289. package/es/useVirtualList/index.d.ts +13 -0
  290. package/es/useVirtualList/index.js +136 -0
  291. package/es/utils.d.ts +14 -0
  292. package/es/utils.js +46 -0
  293. package/es/uuid/index.d.ts +5 -0
  294. package/es/uuid/index.js +6 -0
  295. package/package.json +16 -21
  296. package/release-build.sh +2 -0
  297. package/scripts/{entry.js → entry.mjs} +4 -6
  298. package/{icon-fix.js → scripts/icon-fix.mjs} +4 -3
  299. package/tsconfig.json +1 -1
@@ -0,0 +1,88 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ 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."); }
3
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
4
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ 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."); }
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
+ 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; }
9
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ import Flvjs from '@cloud-app-dev/mpegts.js';
12
+ import Hls from 'hls.js';
13
+ import { useEffect, useRef, useState } from 'react';
14
+ import { useRegisterPlayerEvent, useVideoEvent } from '.';
15
+ import EventName from "./eventName";
16
+ function useErrorEvent(_ref) {
17
+ var event = _ref.event,
18
+ reload = _ref.reload,
19
+ unload = _ref.unload,
20
+ errorReloadTimer = _ref.errorReloadTimer,
21
+ flv = _ref.flv,
22
+ hls = _ref.hls,
23
+ errorHandleAdapter = _ref.errorHandleAdapter;
24
+ var _useState = useState(0),
25
+ _useState2 = _slicedToArray(_useState, 2),
26
+ errorTimer = _useState2[0],
27
+ setErrorTime = _useState2[1];
28
+ var errorInfo = useRef(null);
29
+ var reloadTimer = useRef();
30
+ var errorHandle = function errorHandle() {
31
+ var _console;
32
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33
+ args[_key] = arguments[_key];
34
+ }
35
+ if (args[2] && args[2].msg && args[2].msg.includes('Unsupported audio')) {
36
+ return;
37
+ }
38
+ (_console = console).error.apply(_console, args);
39
+ errorInfo.current = args;
40
+ if (!(errorHandleAdapter !== null && errorHandleAdapter !== void 0 && errorHandleAdapter(args))) {
41
+ setErrorTime(errorTimer + 1);
42
+ }
43
+ };
44
+ var clearErrorTimer = function clearErrorTimer() {
45
+ return setErrorTime(0);
46
+ };
47
+ var reloadSuccess = function reloadSuccess() {
48
+ if (errorTimer > 0) {
49
+ console.warn('视频重连成功!');
50
+ event === null || event === void 0 ? void 0 : event.emit(EventName.RELOAD_SUCCESS);
51
+ clearErrorTimer();
52
+ }
53
+ };
54
+ useVideoEvent('error', errorHandle, event);
55
+ useVideoEvent('canplay', reloadSuccess, event);
56
+ useRegisterPlayerEvent(EventName.ERROR, errorHandle, event);
57
+ useRegisterPlayerEvent(EventName.CLEAR_ERROR_TIMER, clearErrorTimer, event);
58
+ useEffect(function () {
59
+ if (flv) {
60
+ flv.on(Flvjs.Events.ERROR, errorHandle);
61
+ }
62
+ if (hls) {
63
+ hls.on(Hls.Events.ERROR, errorHandle);
64
+ }
65
+ //事件销毁由flv、hls销毁时控制
66
+ // eslint-disable-next-line react-hooks/exhaustive-deps
67
+ }, [flv, hls]);
68
+ useEffect(function () {
69
+ if (errorTimer === 0) {
70
+ return undefined;
71
+ }
72
+ if (errorTimer > errorReloadTimer) {
73
+ unload();
74
+ event === null || event === void 0 ? void 0 : event.emit(EventName.RELOAD_FAIL);
75
+ return undefined;
76
+ }
77
+ console.warn("\u89C6\u9891\u64AD\u653E\u51FA\u9519\uFF0C\u6B63\u5728\u8FDB\u884C\u91CD\u8FDE".concat(errorTimer));
78
+ reloadTimer.current = setTimeout(function () {
79
+ event === null || event === void 0 ? void 0 : event.emit.apply(event, [EventName.ERROR_RELOAD, errorTimer].concat(_toConsumableArray(errorInfo.current)));
80
+ reload();
81
+ }, 2 * 1000);
82
+ return function () {
83
+ clearTimeout(reloadTimer.current);
84
+ };
85
+ // eslint-disable-next-line react-hooks/exhaustive-deps
86
+ }, [errorTimer, event, flv, hls]);
87
+ }
88
+ export default useErrorEvent;
@@ -0,0 +1,18 @@
1
+ declare const Events: {
2
+ RELOAD: string;
3
+ RELOAD_FAIL: string;
4
+ RELOAD_SUCCESS: string;
5
+ ERROR: string;
6
+ ERROR_RELOAD: string;
7
+ HISTORY_PLAY_END: string;
8
+ PLAY_ENDED: string;
9
+ SEEK: string;
10
+ TRANSFORM: string;
11
+ CHANGE_PLAY_INDEX: string;
12
+ HIDE_CONTRALLER: string;
13
+ SHOW_CONTRALLER: string;
14
+ CLEAR_ERROR_TIMER: string;
15
+ CANVAS_PAUSE: string;
16
+ CANVAS_PLAY: string;
17
+ };
18
+ export default Events;
@@ -0,0 +1,30 @@
1
+ var Events = {
2
+ RELOAD: 'reload',
3
+ //手动视频重载
4
+ RELOAD_FAIL: 'reloadFail',
5
+ // 视频出错,重连失败
6
+ RELOAD_SUCCESS: 'reloadSuccess',
7
+ //视频出错,重连成功
8
+ ERROR: 'error',
9
+ //视频出错
10
+ ERROR_RELOAD: 'errorRload',
11
+ //视频出错,自动重连
12
+ HISTORY_PLAY_END: 'historyPlayEnd',
13
+ //历史视频列表播放结束
14
+ PLAY_ENDED: 'play_ended',
15
+ //单个片断播放完毕
16
+ SEEK: 'seek',
17
+ //跳跃播放时间
18
+ TRANSFORM: 'transform',
19
+ //视频容器缩放
20
+ CHANGE_PLAY_INDEX: 'changePlayIndex',
21
+ //历史视频列表播放索引改变
22
+ HIDE_CONTRALLER: 'hideContraller',
23
+ SHOW_CONTRALLER: 'showContraller',
24
+ CLEAR_ERROR_TIMER: 'clearErrorTimer',
25
+ CANVAS_PAUSE: 'canvasPause',
26
+ // 逐帧暂停
27
+ CANVAS_PLAY: 'canvasPlay' //逐帧播放
28
+ };
29
+
30
+ export default Events;
@@ -0,0 +1,24 @@
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
+ type PlayEvent = VideoEventInstance;
19
+ export declare function usePlayerEvent(video?: HTMLVideoElement): PlayEvent | undefined;
20
+ export declare function useVideoEvent(eventName: string, handle: (event: any) => void, context?: VideoEventInstance): void;
21
+ export declare function useRegisterPlayerEvent(eventName: string, handle: (event: any) => void, context?: VideoEventInstance): void;
22
+ export declare function useVideoEvents(event?: VideoEventInstance, events?: CustomEvent[]): void;
23
+ export declare function useRegisterPlayerEvents(event?: VideoEventInstance, events?: CustomEvent[]): void;
24
+ export default VideoEventInstance;
@@ -0,0 +1,205 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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
+ 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); }
5
+ 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; }
6
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
10
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
+ /* eslint-disable @typescript-eslint/no-unused-expressions */
15
+ import { useLatest } from 'ahooks';
16
+ import { useContext, useEffect, useMemo, useState } from 'react';
17
+ import nextTick from "../../nextTick";
18
+ import { Context } from "../context";
19
+ var VideoEventInstance = /*#__PURE__*/function () {
20
+ function VideoEventInstance(video) {
21
+ _classCallCheck(this, VideoEventInstance);
22
+ _defineProperty(this, "video", void 0);
23
+ _defineProperty(this, "events", void 0);
24
+ _defineProperty(this, "playerEvents", void 0);
25
+ this.video = video;
26
+ this.events = {};
27
+ this.playerEvents = {};
28
+ }
29
+ _createClass(VideoEventInstance, [{
30
+ key: "on",
31
+ value: function on(eventName, handle) {
32
+ this.events && this.events[eventName] ? this.events[eventName].listener.push(handle) : this.events[eventName] = {
33
+ type: eventName,
34
+ listener: [handle]
35
+ };
36
+ }
37
+ }, {
38
+ key: "addEventListener",
39
+ value: function addEventListener(eventName, handle) {
40
+ if (this.video) {
41
+ this.playerEvents[eventName] ? this.playerEvents[eventName].push(handle) : this.playerEvents[eventName] = [handle];
42
+ this.video.addEventListener(eventName, handle, false);
43
+ }
44
+ }
45
+ }, {
46
+ key: "removeEventListener",
47
+ value: function removeEventListener(eventName, handle) {
48
+ if (this.video) {
49
+ if (!this.playerEvents || !this.playerEvents[eventName]) {
50
+ return;
51
+ }
52
+ var index = this.playerEvents[eventName].findIndex(function (v) {
53
+ return v === handle;
54
+ });
55
+ index > -1 && this.playerEvents[eventName].splice(index, 1);
56
+ this.video.removeEventListener(eventName, handle, false);
57
+ }
58
+ }
59
+ }, {
60
+ key: "emit",
61
+ value: function emit(eventName) {
62
+ for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
63
+ data[_key - 1] = arguments[_key];
64
+ }
65
+ if (!this.events || !this.events[eventName]) {
66
+ return;
67
+ }
68
+ this.events[eventName].listener.forEach(function (v) {
69
+ v.apply(void 0, data);
70
+ });
71
+ }
72
+ }, {
73
+ key: "off",
74
+ value: function off(eventName, handle) {
75
+ if (!this.events || !this.events.eventName) {
76
+ return;
77
+ }
78
+ var index = this.events[eventName].listener.findIndex(function (v) {
79
+ return v === handle;
80
+ });
81
+ index > -1 && this.events[eventName].listener.splice(index, 1);
82
+ }
83
+ }, {
84
+ key: "destroy",
85
+ value: function destroy() {
86
+ var _this = this;
87
+ Object.keys(this.playerEvents).forEach(function (key) {
88
+ _this.playerEvents[key].forEach(function (fn) {
89
+ _this.removeEventListener(key, fn);
90
+ });
91
+ });
92
+ this.playerEvents = {};
93
+ this.events = {};
94
+ this.video = null;
95
+ }
96
+ }]);
97
+ return VideoEventInstance;
98
+ }();
99
+ export function usePlayerEvent(video) {
100
+ var _useState = useState(undefined),
101
+ _useState2 = _slicedToArray(_useState, 2),
102
+ event = _useState2[0],
103
+ setEvent = _useState2[1];
104
+ useEffect(function () {
105
+ if (!video) {
106
+ console.debug('wait create event...');
107
+ return undefined;
108
+ }
109
+ var event = new VideoEventInstance(video);
110
+ setEvent(event);
111
+ return function () {
112
+ return nextTick(function () {
113
+ return event.destroy();
114
+ });
115
+ };
116
+ }, [video]);
117
+ return event;
118
+ }
119
+ export function useVideoEvent(eventName, handle, context) {
120
+ var ctx = useContext(Context);
121
+ var event = useMemo(function () {
122
+ var _ctx$event;
123
+ return (_ctx$event = ctx === null || ctx === void 0 ? void 0 : ctx.event) !== null && _ctx$event !== void 0 ? _ctx$event : context;
124
+ }, [context, ctx === null || ctx === void 0 ? void 0 : ctx.event]);
125
+ var handlerRef = useLatest(handle);
126
+ useEffect(function () {
127
+ if (!event) {
128
+ return undefined;
129
+ }
130
+ var eventListener = function eventListener(event) {
131
+ return handlerRef.current(event);
132
+ };
133
+ event.addEventListener(eventName, eventListener);
134
+ return function () {
135
+ return event.removeEventListener(eventName, eventListener);
136
+ };
137
+ // eslint-disable-next-line react-hooks/exhaustive-deps
138
+ }, [event, eventName]);
139
+ }
140
+ export function useRegisterPlayerEvent(eventName, handle, context) {
141
+ var ctx = useContext(Context);
142
+ var event = useMemo(function () {
143
+ var _ctx$event2;
144
+ return (_ctx$event2 = ctx === null || ctx === void 0 ? void 0 : ctx.event) !== null && _ctx$event2 !== void 0 ? _ctx$event2 : context;
145
+ }, [context, ctx === null || ctx === void 0 ? void 0 : ctx.event]);
146
+ var handlerRef = useLatest(handle);
147
+ useEffect(function () {
148
+ if (!event) {
149
+ return undefined;
150
+ }
151
+ var eventListener = function eventListener(event) {
152
+ return handlerRef.current(event);
153
+ };
154
+ event.on(eventName, eventListener);
155
+ return function () {
156
+ event.off(eventName, eventListener);
157
+ };
158
+ // eslint-disable-next-line react-hooks/exhaustive-deps
159
+ }, [event, eventName]);
160
+ }
161
+ export function useVideoEvents(event, events) {
162
+ useEffect(function () {
163
+ if (!event || !events) {
164
+ return undefined;
165
+ }
166
+ events.forEach(function (_ref) {
167
+ var _ref2 = _slicedToArray(_ref, 2),
168
+ eventName = _ref2[0],
169
+ handle = _ref2[1];
170
+ event.addEventListener(eventName, handle);
171
+ });
172
+ return function () {
173
+ events.forEach(function (_ref3) {
174
+ var _ref4 = _slicedToArray(_ref3, 2),
175
+ eventName = _ref4[0],
176
+ handle = _ref4[1];
177
+ event.removeEventListener(eventName, handle);
178
+ });
179
+ };
180
+ // eslint-disable-next-line react-hooks/exhaustive-deps
181
+ }, [event]);
182
+ }
183
+ export function useRegisterPlayerEvents(event, events) {
184
+ useEffect(function () {
185
+ if (!event || !events) {
186
+ return undefined;
187
+ }
188
+ events.forEach(function (_ref5) {
189
+ var _ref6 = _slicedToArray(_ref5, 2),
190
+ eventName = _ref6[0],
191
+ handle = _ref6[1];
192
+ event.on(eventName, handle);
193
+ });
194
+ return function () {
195
+ events.forEach(function (_ref7) {
196
+ var _ref8 = _slicedToArray(_ref7, 2),
197
+ eventName = _ref8[0],
198
+ handle = _ref8[1];
199
+ event.off(eventName, handle);
200
+ });
201
+ };
202
+ // eslint-disable-next-line react-hooks/exhaustive-deps
203
+ }, [event]);
204
+ }
205
+ export default VideoEventInstance;
@@ -0,0 +1,10 @@
1
+ import type Api from './api';
2
+ import type VideoEventInstance from './event';
3
+ interface IFPSPlay {
4
+ api?: Api;
5
+ event?: VideoEventInstance;
6
+ fpsDelay?: number;
7
+ fps?: number;
8
+ }
9
+ declare function FPSPlay({ api, event, fpsDelay, fps }: IFPSPlay): import("react/jsx-runtime").JSX.Element;
10
+ export default FPSPlay;
@@ -0,0 +1,88 @@
1
+ var _templateObject;
2
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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
+ 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); }
5
+ 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; }
6
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
9
+ import { css } from '@emotion/css';
10
+ import { useEffect, useMemo, useRef, useState } from 'react';
11
+ import useRafInterval from "../useRafInterval";
12
+ import { useRegisterPlayerEvent } from "./event";
13
+ import Events from "./event/eventName";
14
+ import { getDomStyleValue } from "./util";
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ var fpsPlayCanvasCss = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #000;\n"])));
17
+ var oneFps = 1 / 30;
18
+ function FPSPlay(_ref) {
19
+ var api = _ref.api,
20
+ event = _ref.event,
21
+ fpsDelay = _ref.fpsDelay,
22
+ fps = _ref.fps;
23
+ var _useState = useState(Date.now()),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ forceKey = _useState2[0],
26
+ update = _useState2[1];
27
+ var ref = useRef(null);
28
+ var timerRef = useRef();
29
+ var fps_second = useMemo(function () {
30
+ return fps ? 1 / fps : oneFps;
31
+ }, [fps]);
32
+ useEffect(function () {
33
+ var fpsCapture = function fpsCapture() {
34
+ if (!ref.current || !(event !== null && event !== void 0 && event.video) || !api) {
35
+ return;
36
+ }
37
+ var video = event.video;
38
+ var fpsTime = api.getCurrentTime() + fps_second;
39
+ video.currentTime = fpsTime;
40
+ if (video.currentTime >= api.getDuration()) {
41
+ clearInterval(timerRef.current);
42
+ video.currentTime = 0;
43
+ event.emit(Events.PLAY_ENDED);
44
+ }
45
+ var canvas = ref.current;
46
+ var ctx = canvas.getContext('2d');
47
+ var _video$getBoundingCli = video.getBoundingClientRect(),
48
+ width = _video$getBoundingCli.width,
49
+ height = _video$getBoundingCli.height;
50
+ canvas.width = width;
51
+ canvas.height = height;
52
+ var fit = getDomStyleValue(video, 'object-fit');
53
+ if (fit === 'fill') {
54
+ //全画面绘制,存在拉伸
55
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, width, height);
56
+ } else {
57
+ // 自适应绘制
58
+ var videoWidth = video.videoWidth;
59
+ var videoHeight = video.videoHeight;
60
+ var scale = height / videoHeight;
61
+ var s_vw = scale * videoWidth;
62
+ var paddingSize = (width - s_vw) / 2;
63
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, paddingSize, 0, s_vw, height);
64
+ }
65
+ };
66
+ fpsCapture();
67
+ timerRef.current = setInterval(fpsCapture, fpsDelay);
68
+ return function () {
69
+ clearInterval(timerRef.current);
70
+ };
71
+ }, [api, event, fpsDelay, forceKey, fps_second]);
72
+ useRegisterPlayerEvent(Events.CANVAS_PAUSE, function () {
73
+ clearInterval(timerRef.current);
74
+ });
75
+ useRegisterPlayerEvent(Events.CANVAS_PLAY, function () {
76
+ update(Date.now());
77
+ });
78
+
79
+ // TODO: 未知情况,video会自动播放,轮训检测并暂停零时解决
80
+ useRafInterval(function () {
81
+ return !(api !== null && api !== void 0 && api.paused) ? api === null || api === void 0 ? void 0 : api.pause() : null;
82
+ }, 10);
83
+ return /*#__PURE__*/_jsx("canvas", {
84
+ className: fpsPlayCanvasCss,
85
+ ref: ref
86
+ });
87
+ }
88
+ export default FPSPlay;
@@ -0,0 +1,7 @@
1
+ import type { IFrontendPlayerProps } from './player';
2
+ /**
3
+ * @desc 主组件,负责片段整体逻辑控制
4
+ * @return JSX.Element
5
+ */
6
+ declare function FrontendPlayer({ url, begin, end, onSeek, forwordRef, customTimeLine, onCanPlayerInit, ...props }: IFrontendPlayerProps): import("react/jsx-runtime").JSX.Element;
7
+ export default FrontendPlayer;
@@ -0,0 +1,71 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _excluded = ["url", "begin", "end", "onSeek", "forwordRef", "customTimeLine", "onCanPlayerInit"];
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
+ import { useMemoizedFn, useUpdate } from 'ahooks';
11
+ import React, { useMemo, useRef } from 'react';
12
+ import Events from "./event/eventName";
13
+ import FrontendTimeLine from "./frontend_timeline";
14
+ import SinglePlayer from "./single_player";
15
+
16
+ /**
17
+ * @desc 主组件,负责片段整体逻辑控制
18
+ * @return JSX.Element
19
+ */
20
+ import { jsx as _jsx } from "react/jsx-runtime";
21
+ import { Fragment as _Fragment } from "react/jsx-runtime";
22
+ function FrontendPlayer(_ref) {
23
+ var url = _ref.url,
24
+ begin = _ref.begin,
25
+ end = _ref.end,
26
+ onSeek = _ref.onSeek,
27
+ forwordRef = _ref.forwordRef,
28
+ customTimeLine = _ref.customTimeLine,
29
+ onCanPlayerInit = _ref.onCanPlayerInit,
30
+ props = _objectWithoutProperties(_ref, _excluded);
31
+ var update = useUpdate();
32
+ var ref = useRef(null);
33
+ var playRef = forwordRef ? forwordRef : ref;
34
+ var _ref2 = playRef.current || {},
35
+ api = _ref2.api,
36
+ event = _ref2.event;
37
+
38
+ // 转换毫秒
39
+ var duration = useMemo(function () {
40
+ return (end !== null && end !== void 0 ? end : 0 - (begin !== null && begin !== void 0 ? begin : 0)) / 1000;
41
+ }, [begin, end]); //单位s 秒
42
+
43
+ // 重置reload
44
+ var reload = useMemoizedFn(function () {
45
+ var _playRef$current, _playRef$current2;
46
+ (_playRef$current = playRef.current) === null || _playRef$current === void 0 ? void 0 : _playRef$current.event.emit(Events.RELOAD);
47
+ onSeek === null || onSeek === void 0 ? void 0 : onSeek(begin);
48
+ (_playRef$current2 = playRef.current) === null || _playRef$current2 === void 0 ? void 0 : _playRef$current2.api.reload();
49
+ });
50
+ var onInit = useMemoizedFn(function () {
51
+ update();
52
+ onCanPlayerInit === null || onCanPlayerInit === void 0 ? void 0 : onCanPlayerInit();
53
+ });
54
+ var hasReady = api && event;
55
+ var timeline = customTimeLine !== null && customTimeLine !== void 0 ? customTimeLine : /*#__PURE__*/_jsx(FrontendTimeLine, {
56
+ end: end !== null && end !== void 0 ? end : 0,
57
+ onSeek: onSeek,
58
+ begin: begin !== null && begin !== void 0 ? begin : 0,
59
+ duration: duration
60
+ });
61
+ return /*#__PURE__*/_jsx(SinglePlayer, _objectSpread({
62
+ ref: playRef,
63
+ url: url,
64
+ reload: reload,
65
+ onCanPlayerInit: onInit,
66
+ isLive: false,
67
+ type: "flv",
68
+ customTimeLine: hasReady ? timeline : /*#__PURE__*/_jsx(_Fragment, {})
69
+ }, props));
70
+ }
71
+ export default FrontendPlayer;
@@ -0,0 +1,8 @@
1
+ interface ITimeLineProps {
2
+ duration: number;
3
+ begin: number;
4
+ end: number;
5
+ onSeek?: (time: number) => void;
6
+ }
7
+ declare function FrontendTimeLine({ duration, begin, end, onSeek }: ITimeLineProps): import("react/jsx-runtime").JSX.Element;
8
+ export default FrontendTimeLine;