@cloud-app-dev/vidc 4.0.20 → 4.0.22

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 (234) hide show
  1. package/es/AppContext/Sync.js +42 -0
  2. package/es/AppContext/index.js +141 -0
  3. package/es/AppContext/interface.d.ts +41 -0
  4. package/es/AppContext/static.js +9 -0
  5. package/es/Auth/index.js +14 -0
  6. package/es/AutoExit/index.js +19 -0
  7. package/es/CheckGroupFixed/demo.js +22 -0
  8. package/es/CheckGroupFixed/index.js +140 -0
  9. package/es/CheckGroupFixed/index.less +56 -0
  10. package/es/Config/index.js +77 -0
  11. package/es/Config/interface.d.ts +65 -0
  12. package/es/Config/utils.js +33 -0
  13. package/es/ConfigContext/index.js +21 -0
  14. package/es/CustomRenderSelect/index.js +72 -0
  15. package/es/CustomRenderSelect/index.less +25 -0
  16. package/es/DBTools/index.js +336 -0
  17. package/es/DisableMark/index.js +19 -0
  18. package/es/DisableMark/index.less +9 -0
  19. package/es/DomMove/demo.js +16 -0
  20. package/es/DomMove/index.js +139 -0
  21. package/es/DomMove/utils.js +32 -0
  22. package/es/Drag/DragAndDropItem.js +133 -0
  23. package/es/Drag/DropItem.js +50 -0
  24. package/es/Drag/index.d.ts +9 -0
  25. package/es/Drag/index.js +7 -0
  26. package/es/Drag/interface.d.ts +16 -0
  27. package/es/DynamicGridList/Demo.js +77 -0
  28. package/es/DynamicGridList/index.js +67 -0
  29. package/es/DynamicList/demo.js +44 -0
  30. package/es/DynamicList/index.js +86 -0
  31. package/es/DynamicList/index.less +17 -0
  32. package/es/DynamicList/interface.d.ts +19 -0
  33. package/es/DynamicList/utils.js +6 -0
  34. package/es/ErrorFallback/index.js +31 -0
  35. package/es/ErrorFallback/inerface.d.ts +48 -0
  36. package/es/EventTools/index.js +12 -0
  37. package/es/FrontendPlayer/index.js +2 -0
  38. package/es/FullScreen/index.js +33 -0
  39. package/es/FullScreen/index.less +18 -0
  40. package/es/GridList/Demo.js +80 -0
  41. package/es/GridList/data.js +609 -0
  42. package/es/GridList/hook.js +270 -0
  43. package/es/GridList/index.js +44 -0
  44. package/es/GridList/index.less +8 -0
  45. package/es/GridList/interface.d.ts +59 -0
  46. package/es/GridList/utils.js +42 -0
  47. package/es/HightLevel/index.js +18 -0
  48. package/es/HightLevel/index.less +3 -0
  49. package/es/IconFont/index.js +54 -0
  50. package/es/ImageView/index.js +51 -0
  51. package/es/ImageView/index.less +11 -0
  52. package/es/InstanceHistory/index.js +7 -0
  53. package/es/LabelPlayer/111.png +0 -0
  54. package/es/LabelPlayer/demo.js +115 -0
  55. package/es/LabelPlayer/index.js +160 -0
  56. package/es/LabelPlayer/index.less +24 -0
  57. package/es/LabelValue/index.js +27 -0
  58. package/es/LabelValue/index.less +23 -0
  59. package/es/List/demo.js +23 -0
  60. package/es/List/index.js +28 -0
  61. package/es/List/index.less +20 -0
  62. package/es/ListWithSizeAnimate/demo.js +98 -0
  63. package/es/ListWithSizeAnimate/index.js +85 -0
  64. package/es/ListWithSizeAnimate/index.less +23 -0
  65. package/es/LoaderScript/index.js +34 -0
  66. package/es/LoaderScript/utils.js +179 -0
  67. package/es/Map/AMap.d.ts +7109 -0
  68. package/es/Map/BasicMap/AMapInstance.js +98 -0
  69. package/es/Map/BasicMap/LeafletInstance.js +111 -0
  70. package/es/Map/BasicMap/index.js +90 -0
  71. package/es/Map/BasicMap/index.less +29 -0
  72. package/es/Map/ClusterLayer/demo.js +18 -0
  73. package/es/Map/ClusterLayer/hook.js +123 -0
  74. package/es/Map/ClusterLayer/index.js +28 -0
  75. package/es/Map/ClusterLayer/index.less +29 -0
  76. package/es/Map/ClusterLayer/props.d.ts +8 -0
  77. package/es/Map/Config/index.js +48 -0
  78. package/es/Map/Config/utils.js +65 -0
  79. package/es/Map/Context/index.js +51 -0
  80. package/es/Map/FindPio/index.js +13 -0
  81. package/es/Map/FindPio/index.less +7 -0
  82. package/es/Map/InfoWindow/MakerLikeWindow.js +108 -0
  83. package/es/Map/InfoWindow/demo.js +70 -0
  84. package/es/Map/InfoWindow/index.js +62 -0
  85. package/es/Map/LevelCenter/DragMarker/index.js +42 -0
  86. package/es/Map/LevelCenter/demo.js +38 -0
  87. package/es/Map/LevelCenter/index.js +66 -0
  88. package/es/Map/LoaderMap/index.js +62 -0
  89. package/es/Map/MapDrawSelect/demo.js +71 -0
  90. package/es/Map/MapDrawSelect/index.js +56 -0
  91. package/es/Map/MouseTool/index.js +40 -0
  92. package/es/Map/MouseTool/useMouseTools.js +83 -0
  93. package/es/Map/ResetTools/index.js +57 -0
  94. package/es/Map/ResetTools/index.less +39 -0
  95. package/es/Map/SinglePoint/demo.js +14 -0
  96. package/es/Map/SinglePoint/index.js +52 -0
  97. package/es/Map/SinglePoint/index.less +41 -0
  98. package/es/Map/hook/useMapEvent.js +19 -0
  99. package/es/Map/hook/useMapType.js +12 -0
  100. package/es/Map/icon.js +10 -0
  101. package/es/Map/index.js +25 -0
  102. package/es/Map/interface.d.ts +74 -0
  103. package/es/Map/points.js +1 -0
  104. package/es/Map/useMarker/index.js +71 -0
  105. package/es/Map/withMap/index.js +10 -0
  106. package/es/Picture/component/DefaultRects/RectInfo.js +80 -0
  107. package/es/Picture/component/DefaultRects/index.js +52 -0
  108. package/es/Picture/component/DefaultRects/index.less +211 -0
  109. package/es/Picture/component/DefaultRects/utils.js +11 -0
  110. package/es/Picture/component/DrawRect/index.js +46 -0
  111. package/es/Picture/component/DrawRect/index.less +8 -0
  112. package/es/Picture/component/RectMenu/index.js +76 -0
  113. package/es/Picture/component/RectMenu/index.less +36 -0
  114. package/es/Picture/component/RectMenu/utils.js +19 -0
  115. package/es/Picture/component/Tools/index.js +73 -0
  116. package/es/Picture/component/Tools/index.less +49 -0
  117. package/es/Picture/component/WheelScale/index.js +27 -0
  118. package/es/Picture/demo.js +105 -0
  119. package/es/Picture/index.js +341 -0
  120. package/es/Picture/index.less +20 -0
  121. package/es/Picture/interface.d.ts +196 -0
  122. package/es/Picture/loadCaptureRectImage.js +99 -0
  123. package/es/Picture/useDraw.js +103 -0
  124. package/es/Picture/utils.js +143 -0
  125. package/es/Player/api/index.js +309 -0
  126. package/es/Player/context.js +24 -0
  127. package/es/Player/contraller_bar/bar.js +20 -0
  128. package/es/Player/contraller_bar/contraller_event.js +48 -0
  129. package/es/Player/contraller_bar/index.js +27 -0
  130. package/es/Player/contraller_bar/left_bar.js +83 -0
  131. package/es/Player/contraller_bar/right_bar.js +32 -0
  132. package/es/Player/contraller_bar/time.js +19 -0
  133. package/es/Player/contraller_bar/useBarStatus.js +43 -0
  134. package/es/Player/contraller_bar/volume.js +62 -0
  135. package/es/Player/demo.js +266 -0
  136. package/es/Player/empty.js +4 -0
  137. package/es/Player/event/errorEvent.js +88 -0
  138. package/es/Player/event/eventName.js +29 -0
  139. package/es/Player/event/index.js +205 -0
  140. package/es/Player/fps_play.js +83 -0
  141. package/es/Player/frontend_player.js +64 -0
  142. package/es/Player/frontend_timeline.js +132 -0
  143. package/es/Player/iconfont.js +16 -0
  144. package/es/Player/index.js +2 -0
  145. package/es/Player/live_heart.js +45 -0
  146. package/es/Player/message.js +133 -0
  147. package/es/Player/player.d.ts +233 -0
  148. package/es/Player/segment_player.js +228 -0
  149. package/es/Player/segment_timeline.js +173 -0
  150. package/es/Player/single_player.js +262 -0
  151. package/es/Player/style/bar.less +43 -0
  152. package/es/Player/style/iconfont.js +43 -0
  153. package/es/Player/style/index.less +34 -0
  154. package/es/Player/style/message.less +56 -0
  155. package/es/Player/style/slider.less +106 -0
  156. package/es/Player/style/timeline.less +117 -0
  157. package/es/Player/style/volume.less +24 -0
  158. package/es/Player/timeline.js +95 -0
  159. package/es/Player/util.js +189 -0
  160. package/es/PlayerExt/demo.js +154 -0
  161. package/es/PlayerExt/index.js +188 -0
  162. package/es/PlayerExt/index.less +10 -0
  163. package/es/Progress/index.d.ts +9 -0
  164. package/es/Progress/index.js +53 -0
  165. package/es/Progress/index.less +21 -0
  166. package/es/ROI/demo.js +16 -0
  167. package/es/ROI/index.js +54 -0
  168. package/es/ROI/index.less +33 -0
  169. package/es/RefDrawer/Footer.js +22 -0
  170. package/es/RefDrawer/demo.js +18 -0
  171. package/es/RefDrawer/index.js +71 -0
  172. package/es/RefModal/demo.js +18 -0
  173. package/es/RefModal/index.js +70 -0
  174. package/es/ScreenPlayer/Live.js +212 -0
  175. package/es/ScreenPlayer/LiveTools.js +151 -0
  176. package/es/ScreenPlayer/PlayerWithExt.js +231 -0
  177. package/es/ScreenPlayer/RatePick.js +29 -0
  178. package/es/ScreenPlayer/Record.js +442 -0
  179. package/es/ScreenPlayer/RecordTools.js +169 -0
  180. package/es/ScreenPlayer/ScreenSelect.js +46 -0
  181. package/es/ScreenPlayer/SegmentTimeLine.js +36 -0
  182. package/es/ScreenPlayer/TimeMode.js +26 -0
  183. package/es/ScreenPlayer/TimeSelect.js +88 -0
  184. package/es/ScreenPlayer/demo.js +21 -0
  185. package/es/ScreenPlayer/demo2.js +194 -0
  186. package/es/ScreenPlayer/index.js +9 -0
  187. package/es/ScreenPlayer/index.less +335 -0
  188. package/es/ScreenPlayer/interface.d.ts +216 -0
  189. package/es/ScreenPlayer/useTimeSlider.js +456 -0
  190. package/es/ScreenPlayer/useVideoFit.js +35 -0
  191. package/es/ScreenPlayer/utils.js +85 -0
  192. package/es/SegmentPlayer/index.js +2 -0
  193. package/es/Service/http.js +133 -0
  194. package/es/Service/index.js +11 -0
  195. package/es/Service/interface.d.ts +23 -0
  196. package/es/Service/middleware.js +22 -0
  197. package/es/SocketEmitter/eventEmitter.js +88 -0
  198. package/es/SocketEmitter/index.js +125 -0
  199. package/es/SocketEmitter/interface.d.ts +4 -0
  200. package/es/TableLayout/index.js +27 -0
  201. package/es/TableLayout/index.less +4 -0
  202. package/es/ThemeAntd/demo.js +81 -0
  203. package/es/ThemeAntd/demo.less +20 -0
  204. package/es/ThemeAntd/index.js +21 -0
  205. package/es/ThemeAntd/index.less +4 -0
  206. package/es/Timeout/index.js +65 -0
  207. package/es/bigNumberTransformCN/index.js +58 -0
  208. package/es/cache/index.js +94 -0
  209. package/es/copy/index.js +9 -0
  210. package/es/core.d.ts +0 -0
  211. package/es/getThemeStyle/index.js +5 -0
  212. package/es/index.js +62 -0
  213. package/es/likeGo/index.js +31 -0
  214. package/es/likeGoSync/index.js +10 -0
  215. package/es/logger/index.js +30 -0
  216. package/es/nextTick/index.js +3 -0
  217. package/es/recorder/demo.js +181 -0
  218. package/es/recorder/index.js +992 -0
  219. package/es/submidstr/index.js +14 -0
  220. package/es/treeHelper/index.js +188 -0
  221. package/es/typings.d.ts +2 -0
  222. package/es/useDrawROI/index.js +318 -0
  223. package/es/useEventEmitterHandle/index.js +17 -0
  224. package/es/useFullscreen/demo.js +43 -0
  225. package/es/useFullscreen/index.js +76 -0
  226. package/es/useHistory/index.js +9 -0
  227. package/es/useHistory/interface.d.ts +3 -0
  228. package/es/useInfiniteScroll/index.js +102 -0
  229. package/es/useRafInterval/index.js +70 -0
  230. package/es/useSimpleState/index.js +35 -0
  231. package/es/useVirtualList/index.js +136 -0
  232. package/es/utils.js +46 -0
  233. package/es/uuid/index.js +19 -0
  234. package/package.json +2 -3
@@ -0,0 +1,212 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["list", "children", "oneWinExtTools", "allWinExtTools"];
3
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ 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; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
+ 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."); }
11
+ 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); }
12
+ 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; }
13
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
14
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
+ 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; }
16
+ 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; }
17
+ import { useMemoizedFn, useUpdateEffect } from 'ahooks';
18
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
19
+ import DisableMark from "../DisableMark";
20
+ import Tools from "./LiveTools";
21
+ import { LivePlayerWithExt } from "./PlayerWithExt";
22
+ import useVideoFit from "./useVideoFit";
23
+ import { ScreenType, mergeFill } from "./utils";
24
+ import "./index.less";
25
+ function LivePlayer(_ref) {
26
+ var _props$defaultScreen, _props$defaultSelectI;
27
+ var _ref$list = _ref.list,
28
+ list = _ref$list === void 0 ? [] : _ref$list,
29
+ children = _ref.children,
30
+ oneWinExtTools = _ref.oneWinExtTools,
31
+ allWinExtTools = _ref.allWinExtTools,
32
+ props = _objectWithoutProperties(_ref, _excluded);
33
+ var _useState = useState({
34
+ screenNum: (_props$defaultScreen = props.defaultScreen) !== null && _props$defaultScreen !== void 0 ? _props$defaultScreen : 4,
35
+ selectIndex: (_props$defaultSelectI = props.defaultSelectIndex) !== null && _props$defaultSelectI !== void 0 ? _props$defaultSelectI : 0,
36
+ modes: {}
37
+ }),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ state = _useState2[0],
40
+ setState = _useState2[1];
41
+ var domRef = useRef(null);
42
+ var _useVideoFit = useVideoFit(domRef, []),
43
+ fit = _useVideoFit.fit,
44
+ toggleFit = _useVideoFit.toggleFit;
45
+
46
+ // 若外部来控制screenNum 则由外部完全控制
47
+ var screenNum = useMemo(function () {
48
+ var _props$screenNum;
49
+ return (_props$screenNum = props.screenNum) !== null && _props$screenNum !== void 0 ? _props$screenNum : state.screenNum;
50
+ }, [props.screenNum, state.screenNum]);
51
+
52
+ // 缓存所有player对象
53
+ var playerRef = useRef({});
54
+ var screenType = useMemo(function () {
55
+ return ScreenType.find(function (v) {
56
+ return v.name === screenNum;
57
+ });
58
+ }, [screenNum]);
59
+ var screenList = useMemo(function () {
60
+ return mergeFill(screenNum, list, {});
61
+ }, [list, screenNum]);
62
+
63
+ // 获取选中player对象
64
+ var getPlayerItem = function getPlayerItem() {
65
+ var _playerRef$current;
66
+ var item = list ? list[state.selectIndex] : {};
67
+ var cid = item === null || item === void 0 ? void 0 : item.cid;
68
+ return cid ? (_playerRef$current = playerRef.current) === null || _playerRef$current === void 0 || (_playerRef$current = _playerRef$current[cid]) === null || _playerRef$current === void 0 ? void 0 : _playerRef$current.current : undefined;
69
+ };
70
+
71
+ // 更新状态
72
+ var updateState = function updateState(newState) {
73
+ var obj = {};
74
+ if (newState.hasOwnProperty('screenNum')) {
75
+ if (props.screenNum) {
76
+ var _props$screenChange;
77
+ // 若外部控制,不需要update state
78
+ (_props$screenChange = props.screenChange) === null || _props$screenChange === void 0 || _props$screenChange.call(props, newState.screenNum);
79
+ } else {
80
+ obj.screenNum = newState.screenNum;
81
+ }
82
+
83
+ // 修正选中索引
84
+ if (newState.screenNum && newState.screenNum < state.selectIndex) {
85
+ obj.selectIndex = 0;
86
+ }
87
+ }
88
+ if (newState.hasOwnProperty('mode')) {
89
+ var item = list === null || list === void 0 ? void 0 : list[state.selectIndex];
90
+ var newModes = _objectSpread({}, state.modes);
91
+ var cid = item === null || item === void 0 ? void 0 : item.cid;
92
+ if (cid) {
93
+ newModes[cid] = newState.mode;
94
+ obj.modes = newModes;
95
+ }
96
+ }
97
+ setState(function (old) {
98
+ return _objectSpread(_objectSpread({}, old), obj);
99
+ });
100
+ };
101
+
102
+ // 当前窗口信息
103
+ var segmentItem = useMemo(function () {
104
+ return (list === null || list === void 0 ? void 0 : list[state.selectIndex]) || {};
105
+ }, [state.selectIndex, list]);
106
+
107
+ /**
108
+ * 同步外部的selectIndex变化
109
+ */
110
+ useEffect(function () {
111
+ if (typeof props.defaultSelectIndex !== 'number') {
112
+ return;
113
+ }
114
+ setState(function (old) {
115
+ if (old.selectIndex !== props.defaultSelectIndex) {
116
+ return _objectSpread(_objectSpread({}, old), {}, {
117
+ selectIndex: props.defaultSelectIndex
118
+ });
119
+ }
120
+ return old;
121
+ });
122
+ }, [props.defaultSelectIndex]);
123
+
124
+ // index变化同步到父组件
125
+ // eslint-disable-next-line react-hooks/exhaustive-deps
126
+ useUpdateEffect(function () {
127
+ var _props$onIndexChange;
128
+ return (_props$onIndexChange = props.onIndexChange) === null || _props$onIndexChange === void 0 ? void 0 : _props$onIndexChange.call(props, state.selectIndex);
129
+ }, [state.selectIndex]);
130
+
131
+ /**
132
+ * 通知screenNum变化
133
+ */
134
+ useUpdateEffect(function () {
135
+ var _props$screenChange2;
136
+ return (_props$screenChange2 = props.screenChange) === null || _props$screenChange2 === void 0 ? void 0 : _props$screenChange2.call(props, state.screenNum);
137
+ }, [state.screenNum]);
138
+ var onClose = useMemoizedFn(function () {
139
+ var _props$onClose;
140
+ setState(function (old) {
141
+ var item = screenList[old.selectIndex];
142
+ if (item && item.cid) {
143
+ var modes = _objectSpread({}, old.modes);
144
+ delete modes["".concat(item.cid)];
145
+ return _objectSpread(_objectSpread({}, old), {}, {
146
+ modes: modes
147
+ });
148
+ } else {
149
+ return old;
150
+ }
151
+ });
152
+ (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);
153
+ });
154
+ var onCloseAll = useMemoizedFn(function () {
155
+ var _props$onCloseAll;
156
+ setState(function (old) {
157
+ return _objectSpread(_objectSpread({}, old), {}, {
158
+ modes: {},
159
+ currentTimes: {}
160
+ });
161
+ });
162
+ (_props$onCloseAll = props.onCloseAll) === null || _props$onCloseAll === void 0 || _props$onCloseAll.call(props);
163
+ });
164
+ return /*#__PURE__*/React.createElement("div", {
165
+ className: "split-screen-player-wrapper split-screen-player-live-wrapper"
166
+ }, /*#__PURE__*/React.createElement("div", {
167
+ className: "player-layout container".concat(screenType === null || screenType === void 0 ? void 0 : screenType.name),
168
+ ref: domRef
169
+ }, screenList.map(function (item, index) {
170
+ var _item$url;
171
+ var className = state.selectIndex === index ? "item".concat(screenType === null || screenType === void 0 ? void 0 : screenType.name, "-").concat(index + 1, " player-current-index") : "item".concat(screenType === null || screenType === void 0 ? void 0 : screenType.name, "-").concat(index + 1);
172
+ var itemClick = function itemClick() {
173
+ return setState(function (old) {
174
+ return _objectSpread(_objectSpread({}, old), {}, {
175
+ selectIndex: index
176
+ });
177
+ });
178
+ };
179
+ return /*#__PURE__*/React.createElement(LivePlayerWithExt, _extends({}, item, {
180
+ mode: item.cid && state.modes[item.cid] ? state.modes[item.cid] : item.mode,
181
+ key: (_item$url = item.url) !== null && _item$url !== void 0 ? _item$url : "".concat(index),
182
+ updatePlayer: function updatePlayer(player) {
183
+ if (item.cid) {
184
+ playerRef.current[item.cid] = player;
185
+ }
186
+ },
187
+ className: className,
188
+ onClick: itemClick,
189
+ pluginDownloadUrl: props.pluginDownloadUrl
190
+ }));
191
+ })), /*#__PURE__*/React.createElement(DisableMark, {
192
+ disabled: !segmentItem.url,
193
+ width: "70%"
194
+ }, /*#__PURE__*/React.createElement(Tools, {
195
+ onClose: onClose,
196
+ onCloseAll: onCloseAll,
197
+ fit: fit,
198
+ toggleFit: toggleFit,
199
+ getPlayerItem: getPlayerItem,
200
+ screenNum: screenNum,
201
+ mode: segmentItem !== null && segmentItem !== void 0 && segmentItem.cid ? state.modes[segmentItem === null || segmentItem === void 0 ? void 0 : segmentItem.cid] : segmentItem === null || segmentItem === void 0 ? void 0 : segmentItem.mode,
202
+ containerRef: domRef,
203
+ updateState: updateState,
204
+ snapshot: props.snapshot,
205
+ oneWinExtTools: oneWinExtTools,
206
+ allWinExtTools: allWinExtTools,
207
+ hasPlugin: !!props.pluginDownloadUrl
208
+ }), children && /*#__PURE__*/React.cloneElement(children, {
209
+ selectIndex: state.selectIndex
210
+ })));
211
+ }
212
+ export default LivePlayer;
@@ -0,0 +1,151 @@
1
+ var _excluded = ["containerRef", "oneWinExtTools", "allWinExtTools", "screenNum", "mode", "fit", "hasPlugin"];
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(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
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 { useInterval, useUpdate } from 'ahooks';
11
+ import React from 'react';
12
+ import Volume from "../Player/contraller_bar/volume";
13
+ import IconFont from "../Player/iconfont";
14
+ import useFullscreen from "../useFullscreen";
15
+ import ScreenSelect from "./ScreenSelect";
16
+ function LiveTools(_ref) {
17
+ var containerRef = _ref.containerRef,
18
+ oneWinExtTools = _ref.oneWinExtTools,
19
+ allWinExtTools = _ref.allWinExtTools,
20
+ screenNum = _ref.screenNum,
21
+ _ref$mode = _ref.mode,
22
+ mode = _ref$mode === void 0 ? 1 : _ref$mode,
23
+ fit = _ref.fit,
24
+ hasPlugin = _ref.hasPlugin,
25
+ props = _objectWithoutProperties(_ref, _excluded);
26
+ var _useFullscreen = useFullscreen(containerRef),
27
+ _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
28
+ isFullscreen = _useFullscreen2[0],
29
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
30
+ var update = useUpdate();
31
+ // 播放状态控制
32
+ var playToggle = function playToggle() {
33
+ var player = props.getPlayerItem();
34
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
35
+ player ? player.video.paused ? player.api.play() : player.api.pause() : undefined;
36
+ update();
37
+ };
38
+
39
+ // 重连
40
+ var reload = function reload() {
41
+ var player = props.getPlayerItem();
42
+ player === null || player === void 0 || player.api.reload();
43
+ };
44
+ var snapshotaction = function snapshotaction() {
45
+ var player = props.getPlayerItem();
46
+ var base64 = player === null || player === void 0 ? void 0 : player.api.snapshot();
47
+ if (base64) {
48
+ var _props$snapshot;
49
+ (_props$snapshot = props.snapshot) === null || _props$snapshot === void 0 || _props$snapshot.call(props, base64);
50
+ }
51
+ };
52
+ var player = props.getPlayerItem();
53
+
54
+ /**
55
+ * 定时获取play状态
56
+ */
57
+ useInterval(function () {
58
+ return update();
59
+ }, 2000);
60
+ return /*#__PURE__*/React.createElement("div", {
61
+ className: "player-tools"
62
+ }, /*#__PURE__*/React.createElement("div", {
63
+ className: "player-tools-left"
64
+ }, /*#__PURE__*/React.createElement("span", {
65
+ className: "player-tools-item"
66
+ }, /*#__PURE__*/React.createElement(Volume, {
67
+ api: player === null || player === void 0 ? void 0 : player.api
68
+ })), /*#__PURE__*/React.createElement("span", {
69
+ className: "player-tools-item"
70
+ }, /*#__PURE__*/React.createElement(IconFont, {
71
+ type: "lm-player-xiangji1fill",
72
+ title: "\u622A\u56FE",
73
+ onClick: snapshotaction
74
+ })), /*#__PURE__*/React.createElement("span", {
75
+ className: "player-tools-item",
76
+ onClick: reload
77
+ }, /*#__PURE__*/React.createElement(IconFont, {
78
+ type: "lm-player-Refresh_Main",
79
+ title: "\u91CD\u8F7D"
80
+ })), hasPlugin && /*#__PURE__*/React.createElement("span", {
81
+ className: "player-tools-item",
82
+ onClick: function onClick() {
83
+ return props.updateState({
84
+ mode: mode !== 2 ? 2 : 1
85
+ });
86
+ }
87
+ }, /*#__PURE__*/React.createElement(IconFont, {
88
+ type: "lm-player-S_Device_shezhi",
89
+ className: "icon-chajian",
90
+ style: mode === 2 ? {
91
+ color: 'var(--primary)'
92
+ } : undefined,
93
+ title: "\u5207\u6362".concat(mode === 1 ? '插件' : '浏览器', "\u6A21\u5F0F")
94
+ })), /*#__PURE__*/React.createElement("div", {
95
+ className: "player-tools-item",
96
+ onClick: props.onClose,
97
+ style: {
98
+ marginRight: 6
99
+ }
100
+ }, /*#__PURE__*/React.createElement(IconFont, {
101
+ type: "lm-player-close",
102
+ title: "\u5173\u95ED"
103
+ })), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
104
+ className: "player-tools-mid"
105
+ }, /*#__PURE__*/React.createElement("div", {
106
+ className: "player-tools-item",
107
+ onClick: playToggle,
108
+ style: {
109
+ marginLeft: 6
110
+ }
111
+ }, player && !player.video.paused ? /*#__PURE__*/React.createElement(IconFont, {
112
+ type: "lm-player-Pause_Main",
113
+ title: "\u6682\u505C"
114
+ }) : /*#__PURE__*/React.createElement(IconFont, {
115
+ type: "lm-player-bofang",
116
+ title: "\u64AD\u653E"
117
+ }))), /*#__PURE__*/React.createElement("div", {
118
+ className: "player-tools-right"
119
+ }, allWinExtTools, /*#__PURE__*/React.createElement("span", {
120
+ className: "player-tools-item",
121
+ onClick: props.onCloseAll
122
+ }, /*#__PURE__*/React.createElement(IconFont, {
123
+ type: "lm-player-quanbuguanbi",
124
+ title: "\u5173\u95ED\u6240\u6709"
125
+ })), /*#__PURE__*/React.createElement("span", {
126
+ className: "player-tools-item",
127
+ onClick: props.toggleFit
128
+ }, fit === 'fill' ? /*#__PURE__*/React.createElement(IconFont, {
129
+ type: "lm-player-huamianshiying",
130
+ title: "\u81EA\u9002\u5E94"
131
+ }) : /*#__PURE__*/React.createElement(IconFont, {
132
+ type: "lm-player-huamianshiying",
133
+ title: "\u586B\u5145"
134
+ })), /*#__PURE__*/React.createElement(ScreenSelect, {
135
+ screenNum: screenNum,
136
+ updateState: props.updateState
137
+ }), /*#__PURE__*/React.createElement("span", {
138
+ className: "player-tools-item",
139
+ onClick: toggleFullscreen,
140
+ style: {
141
+ marginRight: 0
142
+ }
143
+ }, isFullscreen ? /*#__PURE__*/React.createElement(IconFont, {
144
+ type: "lm-player-quanping",
145
+ title: "\u5168\u5C4F"
146
+ }) : /*#__PURE__*/React.createElement(IconFont, {
147
+ type: "lm-player-quanping",
148
+ title: "\u5168\u5C4F"
149
+ }))));
150
+ }
151
+ export default LiveTools;
@@ -0,0 +1,231 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["mode", "url", "type", "style", "className", "updatePlayer", "onClick", "pluginDownloadUrl"],
3
+ _excluded2 = ["begin", "style", "className", "segments", "mode", "fpsDelay", "fps", "httpLoading"],
4
+ _excluded3 = ["mode", "style", "className", "segments", "pluginDownloadUrl", "screenIndex", "httpLoading"];
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ 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; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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
+ 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
+ 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; }
15
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
+ 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; }
18
+ 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; }
19
+ import { useLatest, useMemoizedFn, useUpdate } from 'ahooks';
20
+ import moment from 'dayjs';
21
+ import React, { useEffect, useRef, useState } from 'react';
22
+ import FrontendPlayer from "../Player/frontend_player";
23
+ import SegmentPlayer from "../Player/segment_player";
24
+ import LivePlayer from "../Player/single_player";
25
+ import ExtModel from "../PlayerExt";
26
+ import useFullscreen from "../useFullscreen";
27
+ export function LivePlayerWithExt(_ref) {
28
+ var _ref$current;
29
+ var mode = _ref.mode,
30
+ url = _ref.url,
31
+ type = _ref.type,
32
+ style = _ref.style,
33
+ className = _ref.className,
34
+ updatePlayer = _ref.updatePlayer,
35
+ onClick = _ref.onClick,
36
+ pluginDownloadUrl = _ref.pluginDownloadUrl,
37
+ props = _objectWithoutProperties(_ref, _excluded);
38
+ var forceUpdate = useUpdate();
39
+ var ref = useRef();
40
+ var update = function update() {
41
+ updatePlayer(ref);
42
+ forceUpdate();
43
+ };
44
+ var _useFullscreen = useFullscreen((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.container),
45
+ _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
46
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
47
+ return /*#__PURE__*/React.createElement("div", {
48
+ className: "player-with-ext-layout ".concat(className),
49
+ style: style,
50
+ onClick: onClick,
51
+ onDoubleClick: toggleFullscreen
52
+ }, /*#__PURE__*/React.createElement(ExtModel, {
53
+ url: url,
54
+ mode: mode,
55
+ pluginDownloadUrl: pluginDownloadUrl
56
+ }, /*#__PURE__*/React.createElement(LivePlayer, _extends({}, props, {
57
+ type: type,
58
+ url: url,
59
+ isLive: true,
60
+ hideContrallerBar: true,
61
+ onCanPlayerInit: update,
62
+ ref: ref
63
+ }))));
64
+ }
65
+ export function SegmentPlayerWithExt(_ref2) {
66
+ var _ref$current2;
67
+ var begin = _ref2.begin,
68
+ style = _ref2.style,
69
+ className = _ref2.className,
70
+ segments = _ref2.segments,
71
+ mode = _ref2.mode,
72
+ fpsDelay = _ref2.fpsDelay,
73
+ fps = _ref2.fps,
74
+ httpLoading = _ref2.httpLoading,
75
+ props = _objectWithoutProperties(_ref2, _excluded2);
76
+ var forceUpdate = useUpdate();
77
+ var ref = useRef();
78
+ var update = function update() {
79
+ props.updatePlayer(ref);
80
+ forceUpdate();
81
+ };
82
+ var _useFullscreen3 = useFullscreen((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.container),
83
+ _useFullscreen4 = _slicedToArray(_useFullscreen3, 2),
84
+ toggleFullscreen = _useFullscreen4[1].toggleFullscreen;
85
+ return /*#__PURE__*/React.createElement("div", {
86
+ className: "player-with-ext-layout ".concat(className),
87
+ style: style,
88
+ onClick: props.onClick,
89
+ onDoubleClick: toggleFullscreen
90
+ }, /*#__PURE__*/React.createElement(ExtModel, {
91
+ mode: mode,
92
+ loading: httpLoading,
93
+ segments: segments
94
+ }, /*#__PURE__*/React.createElement(SegmentPlayer, _extends({}, props, {
95
+ segments: segments,
96
+ type: "hls",
97
+ hideContrallerBar: true,
98
+ forwordRef: ref,
99
+ begin: begin,
100
+ onCanPlayerInit: update,
101
+ fps: fps,
102
+ fpsDelay: fpsDelay,
103
+ customTimeLine: /*#__PURE__*/React.createElement(React.Fragment, null)
104
+ }))));
105
+ }
106
+ export function FrontendPlayerWithExt(_ref3) {
107
+ var _ref$current3;
108
+ var mode = _ref3.mode,
109
+ style = _ref3.style,
110
+ className = _ref3.className,
111
+ segments = _ref3.segments,
112
+ pluginDownloadUrl = _ref3.pluginDownloadUrl,
113
+ screenIndex = _ref3.screenIndex,
114
+ httpLoading = _ref3.httpLoading,
115
+ props = _objectWithoutProperties(_ref3, _excluded3);
116
+ var _useState = useState({
117
+ begin: 0,
118
+ end: 0,
119
+ url: undefined
120
+ }),
121
+ _useState2 = _slicedToArray(_useState, 2),
122
+ state = _useState2[0],
123
+ setState = _useState2[1];
124
+ var latestUrl = useLatest(state.url);
125
+ useEffect(function () {
126
+ var _segments$index$url, _segments$index;
127
+ if (!(Array.isArray(segments) && segments.length > 0)) {
128
+ return undefined;
129
+ }
130
+ var index = segments.findIndex(function (v) {
131
+ return !!v.url;
132
+ });
133
+ if (index === -1) {
134
+ return undefined;
135
+ }
136
+ var _ref4 = [segments[0].beginTime, segments[segments.length - 1].endTime],
137
+ begin = _ref4[0],
138
+ end = _ref4[1];
139
+ var videoUrl = new URL((_segments$index$url = (_segments$index = segments[index]) === null || _segments$index === void 0 ? void 0 : _segments$index.url) !== null && _segments$index$url !== void 0 ? _segments$index$url : '');
140
+ var url;
141
+ if (props.getLocalRecordUrl) {
142
+ props.getLocalRecordUrl({
143
+ url: videoUrl,
144
+ begin: moment(begin).unix(),
145
+ end: moment(end).unix(),
146
+ screenIndex: screenIndex
147
+ }).then(function (url) {
148
+ return setState({
149
+ begin: begin,
150
+ end: end,
151
+ url: url
152
+ });
153
+ });
154
+ } else {
155
+ videoUrl.searchParams.set('begin', "".concat(moment(begin).unix()));
156
+ videoUrl.searchParams.set('end', "".concat(moment(end).unix()));
157
+ url = videoUrl.toString();
158
+ setState({
159
+ begin: begin,
160
+ end: end,
161
+ url: url
162
+ });
163
+ }
164
+
165
+ // eslint-disable-next-line react-hooks/exhaustive-deps
166
+ }, [segments]);
167
+ var seekTo = useMemoizedFn(function (time) {
168
+ if (!latestUrl.current) {
169
+ return;
170
+ }
171
+ var end = moment().unix();
172
+ var begin = moment(time).unix();
173
+ var videoUrl = new URL(latestUrl.current);
174
+ if (props.getLocalRecordUrl) {
175
+ props.getLocalRecordUrl({
176
+ url: videoUrl,
177
+ begin: begin,
178
+ end: end,
179
+ screenIndex: screenIndex
180
+ }).then(function (url) {
181
+ return setState(function (old) {
182
+ return _objectSpread(_objectSpread({}, old), {}, {
183
+ url: url
184
+ });
185
+ });
186
+ });
187
+ } else {
188
+ videoUrl.searchParams.set('begin', "".concat(begin));
189
+ videoUrl.searchParams.set('end', "".concat(end));
190
+ var url = videoUrl.toString();
191
+ setState(function (old) {
192
+ return _objectSpread(_objectSpread({}, old), {}, {
193
+ url: url
194
+ });
195
+ });
196
+ }
197
+ });
198
+ var forceUpdate = useUpdate();
199
+ var ref = useRef();
200
+ var update = useMemoizedFn(function () {
201
+ props.updatePlayer(ref);
202
+ forceUpdate();
203
+ });
204
+ var _useFullscreen5 = useFullscreen((_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.container),
205
+ _useFullscreen6 = _slicedToArray(_useFullscreen5, 2),
206
+ toggleFullscreen = _useFullscreen6[1].toggleFullscreen;
207
+ return /*#__PURE__*/React.createElement("div", {
208
+ className: "player-with-ext-layout ".concat(className),
209
+ style: style,
210
+ onClick: props.onClick,
211
+ onDoubleClick: toggleFullscreen
212
+ }, /*#__PURE__*/React.createElement(ExtModel, {
213
+ url: state.url,
214
+ mode: mode,
215
+ pluginDownloadUrl: pluginDownloadUrl,
216
+ loading: httpLoading
217
+ }, /*#__PURE__*/React.createElement(FrontendPlayer, {
218
+ onSeek: seekTo,
219
+ url: state.url,
220
+ hideContrallerBar: true,
221
+ forwordRef: ref,
222
+ extActions: {
223
+ seekTo: seekTo
224
+ },
225
+ begin: state.begin,
226
+ end: state.end,
227
+ onCanPlayerInit: update,
228
+ customTimeLine: /*#__PURE__*/React.createElement(React.Fragment, null),
229
+ type: "flv"
230
+ })));
231
+ }
@@ -0,0 +1,29 @@
1
+ import { Select } from 'antd';
2
+ import React from 'react';
3
+ import CustomRenderSelect from "../CustomRenderSelect";
4
+ function RatePick(_ref) {
5
+ var onChange = _ref.onChange,
6
+ value = _ref.value,
7
+ _ref$multipleList = _ref.multipleList,
8
+ multipleList = _ref$multipleList === void 0 ? [8, 6, 4, 2, 1.5, 1, 0.5] : _ref$multipleList;
9
+ return /*#__PURE__*/React.createElement(CustomRenderSelect, {
10
+ value: value,
11
+ popupClassName: "rate-select-dropdown ",
12
+ customRender: function customRender() {
13
+ return /*#__PURE__*/React.createElement("span", {
14
+ className: "select-current-rate-item"
15
+ }, "\u500D\u901F x".concat(value));
16
+ },
17
+ onChange: onChange,
18
+ placement: "topLeft",
19
+ style: {
20
+ width: 80
21
+ }
22
+ }, multipleList === null || multipleList === void 0 ? void 0 : multipleList.map(function (v, i) {
23
+ return /*#__PURE__*/React.createElement(Select.Option, {
24
+ value: v,
25
+ key: i
26
+ }, "x", v, "\u500D");
27
+ }));
28
+ }
29
+ export default RatePick;