@cloud-app-dev/vidc 2.2.0-alpha.8 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/.eslintignore +1 -3
  2. package/.eslintrc +3 -0
  3. package/.prettierignore +1 -0
  4. package/.umirc.ts +74 -74
  5. package/es/Box/InfoBox/index.css +5 -6
  6. package/es/Box/TwoColumnBox/index.css +17 -24
  7. package/es/Box/TwoColumnBox/index.js +1 -4
  8. package/es/Box/index.css +1 -1
  9. package/es/Config/interface.d.ts +2 -1
  10. package/es/ConfigContext/index.d.ts +1 -1
  11. package/es/DomMove/demo.d.ts +2 -0
  12. package/es/DomMove/demo.js +16 -0
  13. package/es/DomMove/index.d.ts +16 -0
  14. package/es/DomMove/index.js +145 -0
  15. package/es/DomMove/utils.d.ts +8 -0
  16. package/es/{Picture/component/MoveContent → DomMove}/utils.js +19 -0
  17. package/es/Drawer/index.d.ts +2 -2
  18. package/es/Drawer/interface.d.ts +4 -174
  19. package/es/ErrorBoundary/index.d.ts +18 -0
  20. package/es/ErrorBoundary/index.js +79 -0
  21. package/es/List/DynamicGridList/Demo.js +40 -27
  22. package/es/List/DynamicGridList/index.d.ts +20 -29
  23. package/es/List/DynamicGridList/index.js +40 -63
  24. package/es/List/DynamicList/index.css +15 -0
  25. package/es/List/DynamicList/index.d.ts +14 -0
  26. package/es/List/DynamicList/index.js +105 -0
  27. package/es/List/DynamicList/interface.d.ts +19 -0
  28. package/es/List/DynamicList/utils.d.ts +4 -0
  29. package/es/List/DynamicList/utils.js +6 -0
  30. package/es/List/GridList/Demo.js +27 -4
  31. package/es/List/GridList/index.css +1 -0
  32. package/es/List/GridList/index.d.ts +2 -2
  33. package/es/List/GridList/index.js +8 -12
  34. package/es/List/GridList/interface.d.ts +1 -1
  35. package/es/List/VList/index.js +2 -3
  36. package/es/List/index.css +3 -55
  37. package/es/List/index.d.ts +6 -7
  38. package/es/List/index.js +15 -154
  39. package/es/List/interface.d.ts +3 -61
  40. package/es/LoaderApp/index.d.ts +1 -1
  41. package/es/LoaderApp/index.js +27 -46
  42. package/es/LoaderApp/interface.d.ts +3 -0
  43. package/es/LoaderApp/loader.d.ts +6 -7
  44. package/es/LoaderApp/loader.js +20 -30
  45. package/es/LoaderApp/sandbox.back.d.ts +18 -0
  46. package/es/LoaderApp/sandbox.back.js +356 -0
  47. package/es/LoaderApp/sandbox.d.ts +12 -0
  48. package/es/LoaderApp/sandbox.js +110 -0
  49. package/es/LoaderApp/utils.d.ts +5 -1
  50. package/es/LoaderApp/utils.js +98 -2
  51. package/es/Map/AMap.d.ts +1572 -0
  52. package/es/Map/BasicMap/AMapInstance.d.ts +15 -0
  53. package/es/Map/BasicMap/AMapInstance.js +66 -0
  54. package/es/Map/BasicMap/LeafletInstance.d.ts +15 -0
  55. package/es/Map/BasicMap/LeafletInstance.js +98 -0
  56. package/es/Map/BasicMap/index.css +24 -0
  57. package/es/Map/BasicMap/index.d.ts +9 -0
  58. package/es/Map/BasicMap/index.js +103 -0
  59. package/es/Map/ClusterLayer/hook.d.ts +5 -0
  60. package/es/Map/ClusterLayer/hook.js +144 -0
  61. package/es/Map/ClusterLayer/index.css +26 -0
  62. package/es/Map/ClusterLayer/index.d.ts +5 -0
  63. package/es/Map/ClusterLayer/index.js +31 -0
  64. package/es/Map/ClusterLayer/props.d.ts +8 -0
  65. package/es/Map/Config/index.d.ts +7 -0
  66. package/es/{InitialConfig → Map/Config}/index.js +35 -36
  67. package/es/Map/Config/utils.d.ts +2 -0
  68. package/es/{List/DynamicDeviceList → Map/Config}/utils.js +48 -45
  69. package/es/Map/Context/index.d.ts +11 -0
  70. package/es/Map/Context/index.js +66 -0
  71. package/es/Map/FindPio/index.css +7 -0
  72. package/es/Map/FindPio/index.d.ts +4 -0
  73. package/es/Map/FindPio/index.js +16 -0
  74. package/es/{WorkerFlow/Demo.d.ts → Map/InfoWindow/demo.d.ts} +0 -0
  75. package/es/{List/DynamicDeviceList/Demo.js → Map/InfoWindow/demo.js} +27 -25
  76. package/es/Map/InfoWindow/index.d.ts +8 -0
  77. package/es/Map/InfoWindow/index.js +74 -0
  78. package/es/Map/LevelCenter/DragMarker/index.d.ts +12 -0
  79. package/es/Map/LevelCenter/DragMarker/index.js +48 -0
  80. package/es/{List/DeviceList → Map/LevelCenter}/index.css +0 -0
  81. package/es/Map/LevelCenter/index.d.ts +13 -0
  82. package/es/Map/LevelCenter/index.js +42 -0
  83. package/es/Map/LoaderMap/index.d.ts +12 -0
  84. package/es/Map/LoaderMap/index.js +58 -0
  85. package/es/Map/ResetTools/index.css +32 -0
  86. package/es/Map/ResetTools/index.d.ts +9 -0
  87. package/es/Map/ResetTools/index.js +61 -0
  88. package/es/Map/SinglePoint/Marker/index.d.ts +7 -0
  89. package/es/Map/SinglePoint/Marker/index.js +29 -0
  90. package/es/Map/SinglePoint/icon/Place_icon_OnLine_Hover.svg +15 -0
  91. package/es/Map/SinglePoint/icon/Place_icon_OnLine_Normal.svg +15 -0
  92. package/es/Map/SinglePoint/icon/Place_icon_OutLine_Hover.svg +15 -0
  93. package/es/Map/SinglePoint/icon/Place_icon_OutLine_Normal.svg +15 -0
  94. package/es/Map/SinglePoint/index.css +29 -0
  95. package/es/Map/SinglePoint/index.d.ts +7 -0
  96. package/es/Map/SinglePoint/index.js +32 -0
  97. package/es/Map/hook/useMapType.d.ts +4 -0
  98. package/es/Map/hook/useMapType.js +13 -0
  99. package/es/Map/icon.d.ts +2 -0
  100. package/es/Map/icon.js +10 -0
  101. package/es/Map/index.d.ts +23 -0
  102. package/es/Map/index.js +25 -0
  103. package/es/Map/interface.d.ts +55 -0
  104. package/es/Map/points.json +61247 -0
  105. package/es/{Picture/component/MoveContent → Map/useMarker}/index.css +0 -0
  106. package/es/Map/useMarker/index.d.ts +11 -0
  107. package/es/{WorkerFlow/Form/FormAuth.js → Map/useMarker/index.js} +57 -80
  108. package/es/Map/withMap/index.d.ts +2 -0
  109. package/es/Map/withMap/index.js +12 -0
  110. package/es/Modal/index.css +1 -1
  111. package/es/Modal/index.d.ts +7 -7
  112. package/es/Modal/index.js +7 -5
  113. package/es/Picture/component/RectMenu/index.d.ts +1 -1
  114. package/es/Picture/index.d.ts +1 -1
  115. package/es/Picture/index.js +2 -2
  116. package/es/Player/api/index.d.ts +1 -8
  117. package/es/Player/api/index.js +27 -35
  118. package/es/Player/contraller_bar/left_bar.js +2 -2
  119. package/es/Player/contraller_bar/right_bar.d.ts +1 -1
  120. package/es/Player/contraller_bar/right_bar.js +13 -27
  121. package/es/Player/demo.js +13 -21
  122. package/es/Player/event/index.js +5 -1
  123. package/es/Player/frontend_player.d.ts +1 -1
  124. package/es/Player/frontend_player.js +20 -13
  125. package/es/Player/frontend_timeline.d.ts +1 -1
  126. package/es/Player/frontend_timeline.js +6 -5
  127. package/es/Player/live_heart.js +45 -12
  128. package/es/Player/message.js +23 -12
  129. package/es/Player/player.d.ts +31 -7
  130. package/es/Player/segment_player.d.ts +1 -1
  131. package/es/Player/segment_player.js +30 -18
  132. package/es/Player/segment_timeline.js +14 -13
  133. package/es/Player/single_player.js +50 -9
  134. package/es/Player/timeline.js +8 -6
  135. package/es/Player/util.d.ts +4 -25
  136. package/es/Player/util.js +47 -55
  137. package/es/PlayerExt/index.css +2 -2
  138. package/es/PlayerExt/index.d.ts +3 -1
  139. package/es/PlayerExt/index.js +19 -5
  140. package/es/ScreenPlayer/Live.d.ts +5 -0
  141. package/es/ScreenPlayer/Live.js +109 -0
  142. package/es/ScreenPlayer/LiveTools.d.ts +15 -0
  143. package/es/ScreenPlayer/LiveTools.js +95 -0
  144. package/es/ScreenPlayer/PlayerWithExt.d.ts +22 -0
  145. package/es/ScreenPlayer/PlayerWithExt.js +169 -0
  146. package/es/ScreenPlayer/Record.d.ts +5 -0
  147. package/es/{WorkerFlow/index.js → ScreenPlayer/Record.js} +290 -273
  148. package/es/ScreenPlayer/RecordTools.d.ts +17 -0
  149. package/es/ScreenPlayer/RecordTools.js +102 -0
  150. package/es/ScreenPlayer/SegmentTimeLine.d.ts +10 -0
  151. package/es/ScreenPlayer/SegmentTimeLine.js +40 -0
  152. package/es/ScreenPlayer/TimeSlider.d.ts +127 -0
  153. package/es/ScreenPlayer/TimeSlider.js +528 -0
  154. package/es/ScreenPlayer/demo.d.ts +2 -0
  155. package/es/ScreenPlayer/demo.js +25 -0
  156. package/es/ScreenPlayer/demo2.d.ts +2 -0
  157. package/es/ScreenPlayer/demo2.js +153 -0
  158. package/es/ScreenPlayer/index.css +50 -0
  159. package/es/ScreenPlayer/index.d.ts +5 -0
  160. package/es/ScreenPlayer/index.js +8 -0
  161. package/es/ScreenPlayer/interface.d.ts +81 -0
  162. package/es/ScreenPlayer/useRecordList.d.ts +3 -0
  163. package/es/{WorkerFlow/Form/UserAndGroupSelect.js → ScreenPlayer/useRecordList.js} +173 -176
  164. package/es/ScreenPlayer/useVideoFit.d.ts +5 -0
  165. package/es/{Tree/BaseTree/demo.js → ScreenPlayer/useVideoFit.js} +30 -55
  166. package/es/ScreenPlayer/utils.d.ts +25 -0
  167. package/es/ScreenPlayer/utils.js +84 -0
  168. package/es/ThemeAntd/index.css +58 -58
  169. package/es/ThemeAntd/style/button.css +1 -1
  170. package/es/ThemeAntd/style/checkbox.css +8 -8
  171. package/es/ThemeAntd/style/input.css +13 -13
  172. package/es/ThemeAntd/style/pagination.css +5 -5
  173. package/es/ThemeAntd/style/picker.css +11 -11
  174. package/es/ThemeAntd/style/popover.css +1 -1
  175. package/es/ThemeAntd/style/radio.css +4 -4
  176. package/es/ThemeAntd/style/scrollbar.css +3 -3
  177. package/es/ThemeAntd/style/select.css +11 -11
  178. package/es/ThemeAntd/style/table.css +1 -1
  179. package/es/Timeout/index.d.ts +33 -0
  180. package/es/Timeout/index.js +83 -0
  181. package/es/Tree/demo.js +9 -12
  182. package/es/Tree/index.css +55 -29
  183. package/es/Tree/index.d.ts +20 -19
  184. package/es/Tree/index.js +70 -185
  185. package/es/index.d.ts +8 -9
  186. package/es/index.js +8 -9
  187. package/es/useInfiniteScroll/index.d.ts +16 -0
  188. package/es/{useHttp → useInfiniteScroll}/index.js +79 -43
  189. package/es/useVirtualList/index.d.ts +13 -0
  190. package/es/useVirtualList/index.js +175 -0
  191. package/es/withErrorBoundary/index.d.ts +9 -0
  192. package/es/withErrorBoundary/index.js +45 -0
  193. package/package.json +19 -21
  194. package/release-build.sh +19 -0
  195. package/test.js +48 -0
  196. package/es/DeviceIcon/icon.d.ts +0 -9
  197. package/es/DeviceIcon/icon.js +0 -138
  198. package/es/DeviceIcon/index.css +0 -8
  199. package/es/DeviceIcon/index.d.ts +0 -14
  200. package/es/DeviceIcon/index.js +0 -37
  201. package/es/DeviceSelect/TreeType.d.ts +0 -7
  202. package/es/DeviceSelect/TreeType.js +0 -36
  203. package/es/DeviceSelect/demo.d.ts +0 -3
  204. package/es/DeviceSelect/demo.js +0 -22
  205. package/es/DeviceSelect/index.css +0 -11
  206. package/es/DeviceSelect/index.d.ts +0 -13
  207. package/es/DeviceSelect/index.js +0 -191
  208. package/es/Dict/cache.d.ts +0 -3
  209. package/es/Dict/cache.js +0 -21
  210. package/es/Dict/device.d.ts +0 -28
  211. package/es/Dict/device.js +0 -117
  212. package/es/Dict/hook.d.ts +0 -3
  213. package/es/Dict/hook.js +0 -98
  214. package/es/Dict/index.d.ts +0 -9
  215. package/es/Dict/index.js +0 -10
  216. package/es/Dict/interface.d.ts +0 -16
  217. package/es/Dict/utils.d.ts +0 -10
  218. package/es/Dict/utils.js +0 -44
  219. package/es/InitialConfig/index.d.ts +0 -8
  220. package/es/InitialConfig/utils.d.ts +0 -20
  221. package/es/InitialConfig/utils.js +0 -110
  222. package/es/InitialRequest/index.d.ts +0 -9
  223. package/es/InitialRequest/index.js +0 -97
  224. package/es/InitialRequest/utils.d.ts +0 -10
  225. package/es/InitialRequest/utils.js +0 -116
  226. package/es/List/CheckExt.d.ts +0 -9
  227. package/es/List/CheckExt.js +0 -36
  228. package/es/List/DeviceList/index.d.ts +0 -11
  229. package/es/List/DeviceList/index.js +0 -50
  230. package/es/List/DynamicDeviceList/Demo.d.ts +0 -3
  231. package/es/List/DynamicDeviceList/index.css +0 -39
  232. package/es/List/DynamicDeviceList/index.d.ts +0 -12
  233. package/es/List/DynamicDeviceList/index.js +0 -205
  234. package/es/List/DynamicDeviceList/interface.d.ts +0 -37
  235. package/es/List/DynamicDeviceList/utils.d.ts +0 -16
  236. package/es/List/ListExt/index.css +0 -3
  237. package/es/List/ListExt/index.d.ts +0 -19
  238. package/es/List/ListExt/index.js +0 -44
  239. package/es/Picture/component/MoveContent/index.d.ts +0 -39
  240. package/es/Picture/component/MoveContent/index.js +0 -244
  241. package/es/Picture/component/MoveContent/utils.d.ts +0 -4
  242. package/es/Title/index.css +0 -25
  243. package/es/Title/index.d.ts +0 -12
  244. package/es/Title/index.js +0 -30
  245. package/es/Tree/BaseTree/demo.d.ts +0 -3
  246. package/es/Tree/BaseTree/index.css +0 -64
  247. package/es/Tree/BaseTree/index.d.ts +0 -24
  248. package/es/Tree/BaseTree/index.js +0 -83
  249. package/es/UserSelect/demo.d.ts +0 -3
  250. package/es/UserSelect/demo.js +0 -21
  251. package/es/UserSelect/index.css +0 -16
  252. package/es/UserSelect/index.d.ts +0 -18
  253. package/es/UserSelect/index.js +0 -194
  254. package/es/WorkerFlow/Demo.js +0 -57
  255. package/es/WorkerFlow/Form/Approver.d.ts +0 -10
  256. package/es/WorkerFlow/Form/Approver.js +0 -33
  257. package/es/WorkerFlow/Form/Condition.d.ts +0 -11
  258. package/es/WorkerFlow/Form/Condition.js +0 -235
  259. package/es/WorkerFlow/Form/EmptyUserSet.d.ts +0 -8
  260. package/es/WorkerFlow/Form/EmptyUserSet.js +0 -137
  261. package/es/WorkerFlow/Form/FormAuth.d.ts +0 -8
  262. package/es/WorkerFlow/Form/GroupList.d.ts +0 -12
  263. package/es/WorkerFlow/Form/GroupList.js +0 -44
  264. package/es/WorkerFlow/Form/GroupSelect.d.ts +0 -8
  265. package/es/WorkerFlow/Form/GroupSelect.js +0 -167
  266. package/es/WorkerFlow/Form/GroupSelectModalContent.d.ts +0 -6
  267. package/es/WorkerFlow/Form/GroupSelectModalContent.js +0 -177
  268. package/es/WorkerFlow/Form/Handle.d.ts +0 -10
  269. package/es/WorkerFlow/Form/Handle.js +0 -33
  270. package/es/WorkerFlow/Form/LevelGroupSelect.d.ts +0 -12
  271. package/es/WorkerFlow/Form/LevelGroupSelect.js +0 -208
  272. package/es/WorkerFlow/Form/Notifier.d.ts +0 -8
  273. package/es/WorkerFlow/Form/Notifier.js +0 -16
  274. package/es/WorkerFlow/Form/UserAndGroupSelect.d.ts +0 -8
  275. package/es/WorkerFlow/Form/UserSelect.d.ts +0 -8
  276. package/es/WorkerFlow/Form/UserSelect.js +0 -150
  277. package/es/WorkerFlow/Form/UserSelectModalContent.d.ts +0 -6
  278. package/es/WorkerFlow/Form/UserSelectModalContent.js +0 -166
  279. package/es/WorkerFlow/Form/UserSet.d.ts +0 -14
  280. package/es/WorkerFlow/Form/UserSet.js +0 -308
  281. package/es/WorkerFlow/Form/UsersHandleType.d.ts +0 -7
  282. package/es/WorkerFlow/Form/UsersHandleType.js +0 -32
  283. package/es/WorkerFlow/Form/utils.d.ts +0 -3
  284. package/es/WorkerFlow/Form/utils.js +0 -47
  285. package/es/WorkerFlow/Nodes/Add.d.ts +0 -7
  286. package/es/WorkerFlow/Nodes/Add.js +0 -97
  287. package/es/WorkerFlow/Nodes/AddOption.d.ts +0 -10
  288. package/es/WorkerFlow/Nodes/AddOption.js +0 -23
  289. package/es/WorkerFlow/Nodes/AddOptionList.d.ts +0 -8
  290. package/es/WorkerFlow/Nodes/AddOptionList.js +0 -46
  291. package/es/WorkerFlow/Nodes/Approver.d.ts +0 -11
  292. package/es/WorkerFlow/Nodes/Approver.js +0 -53
  293. package/es/WorkerFlow/Nodes/Condition.d.ts +0 -10
  294. package/es/WorkerFlow/Nodes/Condition.js +0 -140
  295. package/es/WorkerFlow/Nodes/Constants.d.ts +0 -35
  296. package/es/WorkerFlow/Nodes/Constants.js +0 -150
  297. package/es/WorkerFlow/Nodes/End.d.ts +0 -7
  298. package/es/WorkerFlow/Nodes/End.js +0 -16
  299. package/es/WorkerFlow/Nodes/Handle.d.ts +0 -11
  300. package/es/WorkerFlow/Nodes/Handle.js +0 -52
  301. package/es/WorkerFlow/Nodes/Node.d.ts +0 -8
  302. package/es/WorkerFlow/Nodes/Node.js +0 -26
  303. package/es/WorkerFlow/Nodes/Notifier.d.ts +0 -11
  304. package/es/WorkerFlow/Nodes/Notifier.js +0 -52
  305. package/es/WorkerFlow/Nodes/Render.d.ts +0 -8
  306. package/es/WorkerFlow/Nodes/Render.js +0 -16
  307. package/es/WorkerFlow/Nodes/Start.d.ts +0 -12
  308. package/es/WorkerFlow/Nodes/Start.js +0 -26
  309. package/es/WorkerFlow/Nodes/TitleElement.d.ts +0 -10
  310. package/es/WorkerFlow/Nodes/TitleElement.js +0 -127
  311. package/es/WorkerFlow/Nodes/Wrap.d.ts +0 -13
  312. package/es/WorkerFlow/Nodes/Wrap.js +0 -35
  313. package/es/WorkerFlow/OperatorContext.d.ts +0 -4
  314. package/es/WorkerFlow/OperatorContext.js +0 -3
  315. package/es/WorkerFlow/Tools.d.ts +0 -8
  316. package/es/WorkerFlow/Tools.js +0 -78
  317. package/es/WorkerFlow/XML/CanvasTag.d.ts +0 -3
  318. package/es/WorkerFlow/XML/CanvasTag.js +0 -142
  319. package/es/WorkerFlow/XML/EndEvent.d.ts +0 -1
  320. package/es/WorkerFlow/XML/EndEvent.js +0 -14
  321. package/es/WorkerFlow/XML/ExclusiveGateway.d.ts +0 -9
  322. package/es/WorkerFlow/XML/ExclusiveGateway.js +0 -101
  323. package/es/WorkerFlow/XML/Root.d.ts +0 -1
  324. package/es/WorkerFlow/XML/Root.js +0 -5
  325. package/es/WorkerFlow/XML/StartEvent.d.ts +0 -5
  326. package/es/WorkerFlow/XML/StartEvent.js +0 -28
  327. package/es/WorkerFlow/XML/UserTask.d.ts +0 -5
  328. package/es/WorkerFlow/XML/UserTask.js +0 -93
  329. package/es/WorkerFlow/XML/index.d.ts +0 -4
  330. package/es/WorkerFlow/XML/index.js +0 -100
  331. package/es/WorkerFlow/XML/utils.d.ts +0 -6
  332. package/es/WorkerFlow/XML/utils.js +0 -97
  333. package/es/WorkerFlow/data.json +0 -83
  334. package/es/WorkerFlow/index.css +0 -779
  335. package/es/WorkerFlow/index.d.ts +0 -13
  336. package/es/WorkerFlow/interface.d.ts +0 -93
  337. package/es/WorkerFlow/template.d.ts +0 -2
  338. package/es/WorkerFlow/template.js +0 -17
  339. package/es/WorkerFlow/utils.d.ts +0 -7
  340. package/es/WorkerFlow/utils.js +0 -197
  341. package/es/useHttp/index.d.ts +0 -8
  342. package/pnpm-lock.yaml +0 -13662
@@ -14,6 +14,7 @@ import { __rest } from "tslib";
14
14
  import React, { useMemo, useRef, useState } from 'react';
15
15
  import SinglePlayer from './single_player';
16
16
  import FrontendTimeLine from './frontend_timeline';
17
+ import Events from './event/eventName';
17
18
  /**
18
19
  * @desc 主组件,负责片段整体逻辑控制
19
20
  * @param param0
@@ -25,7 +26,10 @@ function FrontendPlayer(_a) {
25
26
  begin = _a.begin,
26
27
  end = _a.end,
27
28
  onSeek = _a.onSeek,
28
- props = __rest(_a, ["url", "begin", "end", "onSeek"]);
29
+ forwordRef = _a.forwordRef,
30
+ customTimeLine = _a.customTimeLine,
31
+ _onCanPlayerInit = _a.onCanPlayerInit,
32
+ props = __rest(_a, ["url", "begin", "end", "onSeek", "forwordRef", "customTimeLine", "onCanPlayerInit"]);
29
33
 
30
34
  var _useState = useState({
31
35
  forceKey: Date.now()
@@ -34,9 +38,10 @@ function FrontendPlayer(_a) {
34
38
  state = _useState2[0],
35
39
  setState = _useState2[1];
36
40
 
37
- var playerRef = useRef(null);
41
+ var ref = useRef(null);
42
+ var playRef = forwordRef ? forwordRef : ref;
38
43
 
39
- var _ref = playerRef.current || {},
44
+ var _ref = playRef.current || {},
40
45
  api = _ref.api,
41
46
  event = _ref.event; // 秒级别转换毫秒
42
47
 
@@ -53,8 +58,9 @@ function FrontendPlayer(_a) {
53
58
  // 重置reload
54
59
 
55
60
  var reload = function reload() {
56
- onSeek(beginTemp);
57
- playerRef.current.api.reload();
61
+ playRef.current.event.emit(Events.RELOAD);
62
+ onSeek && onSeek(beginTemp);
63
+ playRef.current.api.reload();
58
64
  setState(function (old) {
59
65
  return Object.assign(Object.assign({}, old), {
60
66
  forceKey: Date.now()
@@ -63,19 +69,20 @@ function FrontendPlayer(_a) {
63
69
  };
64
70
 
65
71
  return /*#__PURE__*/React.createElement(SinglePlayer, Object.assign({
66
- ref: playerRef,
72
+ ref: playRef,
67
73
  url: url,
68
74
  type: "flv",
69
75
  reload: reload,
70
- isLive: false,
76
+ isLive: true,
71
77
  onCanPlayerInit: function onCanPlayerInit() {
72
- return setState(function (old) {
73
- return Object.assign(Object.assign({}, old), {
74
- forceKey: Date.now()
75
- });
78
+ setState({
79
+ forceKey: Date.now()
80
+ });
81
+ _onCanPlayerInit && _onCanPlayerInit({
82
+ reload: reload
76
83
  });
77
84
  },
78
- customTimeLine: api && event ? /*#__PURE__*/React.createElement(FrontendTimeLine, {
85
+ customTimeLine: api && event && (customTimeLine || /*#__PURE__*/React.createElement(FrontendTimeLine, {
79
86
  end: endTemp,
80
87
  onSeek: onSeek,
81
88
  key: state.forceKey,
@@ -83,7 +90,7 @@ function FrontendPlayer(_a) {
83
90
  api: api,
84
91
  event: event,
85
92
  duration: duration
86
- }) : /*#__PURE__*/React.createElement(React.Fragment, null)
93
+ }))
87
94
  }, props));
88
95
  }
89
96
 
@@ -8,7 +8,7 @@ interface ITimeLineProps {
8
8
  duration: number;
9
9
  begin: number;
10
10
  end: number;
11
- onSeek(time: number): void;
11
+ onSeek?: (time: number) => void;
12
12
  }
13
13
  declare function FrontendTimeLine({ api, event, duration, begin, end, onSeek }: ITimeLineProps): JSX.Element;
14
14
  export default FrontendTimeLine;
@@ -13,7 +13,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  import React, { useCallback, useEffect, useMemo, useState, startTransition } from 'react';
14
14
  import useBarStatus from './contraller_bar/useBarStatus';
15
15
  import { useTimes } from './timeline';
16
- import { dateFormat } from './util';
16
+ import { FMT } from './util';
17
+ import moment from 'moment';
17
18
  import "./style/timeline.css";
18
19
 
19
20
  function FrontendTimeLine(_ref) {
@@ -52,7 +53,7 @@ function FrontendTimeLine(_ref) {
52
53
  }, [begin]);
53
54
  var playPercent = useMemo(function () {
54
55
  return rTime / duration * 100;
55
- }, [rTime]);
56
+ }, [duration, rTime]);
56
57
  var cTime = useMemo(function () {
57
58
  return begin + rTime * 1000;
58
59
  }, [begin, rTime]);
@@ -67,7 +68,7 @@ function FrontendTimeLine(_ref) {
67
68
  time: cTime - currentTime
68
69
  });
69
70
  });
70
- }, [api, duration, begin, onSeek, currentTime]);
71
+ }, [duration, begin, onSeek, currentTime]);
71
72
  var onLineMouseOver = useCallback(function (e) {
72
73
  var rect = e.currentTarget.getBoundingClientRect();
73
74
  var left = e.pageX - rect.left;
@@ -78,7 +79,7 @@ function FrontendTimeLine(_ref) {
78
79
  markTime: begin + mTime * 1000
79
80
  });
80
81
  });
81
- }, [begin]);
82
+ }, [begin, duration]);
82
83
  var onLineMouseOut = useCallback(function (e) {
83
84
  startTransition(function () {
84
85
  return setState(function (old) {
@@ -132,7 +133,7 @@ function TipTitle(_ref2) {
132
133
  style: {
133
134
  fontWeight: 600
134
135
  }
135
- }, "\u5F55\u50CF\u4FE1\u606F"), /*#__PURE__*/React.createElement("div", null, "\u5F00\u59CB\uFF1A", dateFormat(begin)), /*#__PURE__*/React.createElement("div", null, "\u7ED3\u675F\uFF1A", dateFormat(end)), /*#__PURE__*/React.createElement("div", null, "\u523B\u5EA6\uFF1A", dateFormat(markTime)), /*#__PURE__*/React.createElement("div", null, "\u5F53\u524D\uFF1A", dateFormat(current)));
136
+ }, "\u5F55\u50CF\u4FE1\u606F"), /*#__PURE__*/React.createElement("div", null, "\u5F00\u59CB\uFF1A", moment(begin).format(FMT)), /*#__PURE__*/React.createElement("div", null, "\u7ED3\u675F\uFF1A", moment(end).format(FMT)), /*#__PURE__*/React.createElement("div", null, "\u523B\u5EA6\uFF1A", moment(markTime).format(FMT)), /*#__PURE__*/React.createElement("div", null, "\u5F53\u524D\uFF1A", moment(current).format(FMT)));
136
137
  }
137
138
 
138
139
  export default FrontendTimeLine;
@@ -1,21 +1,41 @@
1
- import React, { useEffect } from 'react';
1
+ import _useUpdateEffect from "ahooks/es/useUpdateEffect";
2
+
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
+
5
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10
+
11
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
+
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+
15
+ import React, { useEffect, useState } from 'react';
2
16
  import BrowserTab from './event/browserTabEvent';
3
17
 
4
18
  function LiveHeart(_ref) {
5
19
  var api = _ref.api;
6
- useEffect(function () {
7
- var browserTabChange = function browserTabChange() {
8
- if (BrowserTab.visibilityState() !== 'visible') {
9
- return;
10
- }
11
20
 
12
- var current = api.getCurrentTime();
13
- var buffered = api.getSecondsLoaded();
21
+ var _useState = useState(Date.now()),
22
+ _useState2 = _slicedToArray(_useState, 2),
23
+ runDep = _useState2[0],
24
+ setRundep = _useState2[1];
14
25
 
15
- if (buffered - current > 5) {
16
- console.warn("\u5F53\u524D\u5EF6\u65F6\u8FC7\u5927current->".concat(current, " buffered->").concat(buffered, ", \u57FA\u4E8E\u89C6\u9891\u5F53\u524D\u7F13\u5B58\u65F6\u95F4\u66F4\u65B0\u5F53\u524D\u64AD\u653E\u65F6\u95F4 updateTime -> ").concat(buffered - 2));
17
- api.seekTo(buffered - 2 > 0 ? buffered - 2 : 0);
18
- }
26
+ var run = function run() {
27
+ var current = api.getCurrentTime();
28
+ var buffered = api.getSecondsLoaded();
29
+
30
+ if (buffered - current > 5) {
31
+ console.debug("\u5F53\u524D\u5EF6\u65F6\u8FC7\u5927current->".concat(current, " buffered->").concat(buffered, ", \u57FA\u4E8E\u89C6\u9891\u5F53\u524D\u7F13\u5B58\u65F6\u95F4\u66F4\u65B0\u5F53\u524D\u64AD\u653E\u65F6\u95F4 updateTime -> ").concat(buffered - 2));
32
+ api.seekTo(buffered - 2 > 0 ? buffered - 2 : 0);
33
+ }
34
+ };
35
+
36
+ useEffect(function () {
37
+ var browserTabChange = function browserTabChange() {
38
+ BrowserTab.visibilityState() === 'visible' && run();
19
39
  };
20
40
 
21
41
  BrowserTab.addEventListener(browserTabChange);
@@ -23,6 +43,19 @@ function LiveHeart(_ref) {
23
43
  BrowserTab.removeEventListener(browserTabChange);
24
44
  };
25
45
  }, [api]);
46
+
47
+ _useUpdateEffect(function () {
48
+ run();
49
+ }, [runDep]);
50
+
51
+ useEffect(function () {
52
+ var timer = setInterval(function () {
53
+ return setRundep(Date.now());
54
+ }, 30 * 1000);
55
+ return function () {
56
+ return clearInterval(timer);
57
+ };
58
+ }, []);
26
59
  return /*#__PURE__*/React.createElement(React.Fragment, null);
27
60
  }
28
61
 
@@ -10,7 +10,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
10
10
 
11
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
12
 
13
- import React, { useEffect, useState, useMemo } from 'react';
13
+ import React, { useEffect, useState, useMemo, useRef } from 'react';
14
14
  import IconFont from './iconfont';
15
15
  import EventName from './event/eventName';
16
16
  import "./style/message.css";
@@ -28,28 +28,35 @@ function VideoMessage(_ref) {
28
28
  state = _useState2[0],
29
29
  setState = _useState2[1];
30
30
 
31
+ var timeRef = useRef(null);
31
32
  var message = useMemo(function () {
32
33
  if (state.status === 'fail') {
33
- return '视频错误';
34
+ console.warn("\u89C6\u9891\u9519\u8BEF\uFF0C\u8BF7\u624B\u52A8\u5237\u65B0\u91CD\u8BD5\uFF01");
35
+ return '请稍后重试!';
34
36
  }
35
37
 
36
38
  if (state.status === 'reload') {
37
- return "\u89C6\u9891\u52A0\u8F7D\u5931\u8D25\uFF0C\u6B63\u5728\u8FDB\u884C\u91CD\u8FDE\u7B2C".concat(state.errorTimer, "\u6B21\u91CD\u8FDE");
39
+ console.warn("\u7B2C".concat(state.errorTimer, "\u6B21\u91CD\u8FDE"));
40
+ return "\u6B63\u5728\u5237\u65B0...";
38
41
  }
39
42
 
40
43
  return '';
41
44
  }, [state.errorTimer, state.status]);
42
45
  useEffect(function () {
43
46
  var openLoading = function openLoading() {
44
- return setState(function (old) {
45
- return Object.assign(Object.assign({}, old), {
46
- loading: true
47
+ clearTimeout(timeRef.current);
48
+ timeRef.current = setTimeout(function () {
49
+ return setState(function (old) {
50
+ return Object.assign(Object.assign({}, old), {
51
+ loading: true
52
+ });
47
53
  });
48
- });
54
+ }, 200);
49
55
  };
50
56
 
51
57
  var closeLoading = function closeLoading() {
52
- return setState(function (old) {
58
+ clearTimeout(timeRef.current);
59
+ setState(function (old) {
53
60
  return Object.assign(Object.assign({}, old), {
54
61
  loading: false
55
62
  });
@@ -57,7 +64,8 @@ function VideoMessage(_ref) {
57
64
  };
58
65
 
59
66
  var errorReload = function errorReload(timer) {
60
- return setState(function () {
67
+ clearTimeout(timeRef.current);
68
+ setState(function () {
61
69
  return {
62
70
  status: 'reload',
63
71
  errorTimer: timer,
@@ -85,18 +93,21 @@ function VideoMessage(_ref) {
85
93
  var reload = function reload() {
86
94
  return setState(function (old) {
87
95
  return Object.assign(Object.assign({}, old), {
88
- status: 'reload'
96
+ status: 'reload',
97
+ loading: true
89
98
  });
90
99
  });
91
100
  };
92
101
 
93
102
  var playEnd = function playEnd() {
94
- return setState(function (old) {
103
+ clearTimeout(timeRef.current);
104
+ setState(function (old) {
95
105
  return Object.assign(Object.assign({}, old), {
96
106
  status: null,
97
107
  loading: false
98
108
  });
99
- }), api.pause();
109
+ });
110
+ api.pause();
100
111
  };
101
112
 
102
113
  event.addEventListener('loadstart', openLoading);
@@ -129,9 +129,7 @@ export interface ISinglePlayerProps {
129
129
  playerEvents?: CustomEvent[];
130
130
  }
131
131
 
132
- type OmitPlayerProps = 'customTimeLine' | 'onCanPlayerInit' | 'isLive' | 'reload' | 'type';
133
-
134
- export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlayerProps> {
132
+ export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, 'isLive' | 'reload' | 'type'> {
135
133
  /**
136
134
  * 前端录像开始时间
137
135
  */
@@ -145,10 +143,19 @@ export interface IFrontendPlayerProps extends Omit<ISinglePlayerProps, OmitPlaye
145
143
  /**
146
144
  * 录像时间轴发生变化回调
147
145
  */
148
- onSeek(time: number): void;
146
+ onSeek?: (time: number) => void;
147
+
148
+ forwordRef?: React.MutableRefObject<ExportPlayerType>;
149
+
150
+ /**
151
+ * 视频可播放时执行钩子
152
+ */
153
+ onCanPlayerInit?: (data: any) => void;
149
154
  }
150
155
 
151
- export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'customTimeLine' | 'onCanPlayerInit'> {
156
+ export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'onCanPlayerInit'> {
157
+ onCanPlayerInit?: (ext: { [key: string]: any }) => void;
158
+
152
159
  /**
153
160
  * 云录像片段信息
154
161
  */
@@ -158,6 +165,10 @@ export interface ISegmentPlayerProps extends Omit<ISinglePlayerProps, 'url' | 'c
158
165
  * 云录像开始时间
159
166
  */
160
167
  begin?: number;
168
+
169
+ forwordRef?: React.MutableRefObject<ExportPlayerType>;
170
+
171
+ defaultIndex?: number;
161
172
  }
162
173
 
163
174
  export const SinglePlayer: React.FunctionComponent<ISinglePlayerProps>;
@@ -190,17 +201,30 @@ export type ExportPlayerType = {
190
201
  api: Api;
191
202
  event: VideoEventInstance;
192
203
  plugins: [FlvJs.Player, Hls];
204
+ fit?: string;
205
+ setIndex?: (i: number) => void;
206
+ seekTo?: (i: number) => void;
207
+ reload?: () => void;
193
208
  };
194
209
 
195
210
  export interface ISegmentType {
211
+ id?: string;
196
212
  /**
197
213
  * 视频片段地址
198
214
  */
199
215
  url?: string;
216
+
200
217
  /**
201
- * 视频片段长度 单位s(秒)
218
+ * 片段开始时间
202
219
  */
203
- duration: number;
220
+ beginTime: number;
221
+
222
+ /**
223
+ * 片段结束时间
224
+ */
225
+ endTime: number;
226
+
227
+ style?: any;
204
228
  }
205
229
 
206
230
  export const ISegmentTypeDemo: React.FC<ISegmentType>;
@@ -5,5 +5,5 @@ import type { ISegmentPlayerProps } from './player';
5
5
  * @param param0
6
6
  * @returns
7
7
  */
8
- declare function SegmentPlayer({ segments, begin, ...props }: ISegmentPlayerProps): JSX.Element;
8
+ declare function SegmentPlayer({ segments, begin, forwordRef, onCanPlayerInit, defaultIndex, customTimeLine, ...props }: ISegmentPlayerProps): JSX.Element;
9
9
  export default SegmentPlayer;
@@ -22,6 +22,7 @@ import { __rest } from "tslib";
22
22
  import React, { useEffect, useMemo, useRef, useState } from 'react';
23
23
  import SinglePlayer from './single_player';
24
24
  import SegmentTimeLine from './segment_timeline';
25
+ import Events from './event/eventName';
25
26
  /**
26
27
  * @desc 计算第一个url
27
28
  * @param segments
@@ -57,9 +58,12 @@ function getFirstUrlIndex(segments) {
57
58
  */
58
59
 
59
60
 
60
- function usePlayIndex(event, segments, deps) {
61
+ function usePlayIndex(event, segments) {
62
+ var defaultIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
63
+ var deps = arguments.length > 3 ? arguments[3] : undefined;
64
+
61
65
  var _useState = useState({
62
- index: getFirstUrlIndex(segments, 0)
66
+ index: getFirstUrlIndex(segments, defaultIndex)
63
67
  }),
64
68
  _useState2 = _slicedToArray(_useState, 2),
65
69
  state = _useState2[0],
@@ -124,11 +128,20 @@ function usePlayIndex(event, segments, deps) {
124
128
 
125
129
 
126
130
  function SegmentPlayer(_a) {
127
- var _b;
128
-
129
131
  var segments = _a.segments,
130
132
  begin = _a.begin,
131
- props = __rest(_a, ["segments", "begin"]);
133
+ forwordRef = _a.forwordRef,
134
+ _onCanPlayerInit = _a.onCanPlayerInit,
135
+ defaultIndex = _a.defaultIndex,
136
+ customTimeLine = _a.customTimeLine,
137
+ props = __rest(_a, ["segments", "begin", "forwordRef", "onCanPlayerInit", "defaultIndex", "customTimeLine"]);
138
+
139
+ var ref = useRef(null);
140
+ var playRef = forwordRef ? forwordRef : ref;
141
+
142
+ var _ref = playRef.current || {},
143
+ api = _ref.api,
144
+ event = _ref.event;
132
145
 
133
146
  var _useState3 = useState({
134
147
  forceKey: Date.now()
@@ -139,14 +152,13 @@ function SegmentPlayer(_a) {
139
152
 
140
153
  var duration = useMemo(function () {
141
154
  return segments === null || segments === void 0 ? void 0 : segments.map(function (v) {
142
- return v.duration;
155
+ return (v.endTime - v.beginTime) / 1000;
143
156
  }).reduce(function (a, b) {
144
157
  return a + b;
145
158
  }, 0);
146
159
  }, [segments]);
147
- var playerRef = useRef(null);
148
160
 
149
- var _usePlayIndex = usePlayIndex((_b = playerRef.current) === null || _b === void 0 ? void 0 : _b.event, segments, [state.forceKey]),
161
+ var _usePlayIndex = usePlayIndex(event, segments, defaultIndex, [state.forceKey]),
150
162
  index = _usePlayIndex.index,
151
163
  setIndex = _usePlayIndex.setIndex;
152
164
 
@@ -155,28 +167,28 @@ function SegmentPlayer(_a) {
155
167
  }, [segments, index]); // 重置reload
156
168
 
157
169
  var reload = function reload() {
170
+ playRef.current.event.emit(Events.RELOAD);
158
171
  setIndex(0);
159
- playerRef.current.api.reload();
160
- };
161
-
162
- var _ref = playerRef.current || {},
163
- api = _ref.api,
164
- event = _ref.event; // 秒级别转换
172
+ playRef.current.api.reload();
173
+ }; // 秒级别转换
165
174
 
166
175
 
167
176
  var beginTemp = useMemo(function () {
168
177
  return begin ? String(begin).length === 10 ? Math.floor(begin * 1000) : begin : begin;
169
178
  }, []);
170
179
  return /*#__PURE__*/React.createElement(SinglePlayer, Object.assign({
171
- ref: playerRef,
180
+ ref: playRef,
172
181
  url: url,
173
182
  reload: reload,
174
183
  onCanPlayerInit: function onCanPlayerInit() {
175
- return setState({
184
+ setState({
176
185
  forceKey: Date.now()
177
186
  });
187
+ _onCanPlayerInit && _onCanPlayerInit({
188
+ setIndex: setIndex
189
+ });
178
190
  },
179
- customTimeLine: api && event ? /*#__PURE__*/React.createElement(SegmentTimeLine, {
191
+ customTimeLine: api && event && (customTimeLine || /*#__PURE__*/React.createElement(SegmentTimeLine, {
180
192
  begin: beginTemp,
181
193
  api: api,
182
194
  event: event,
@@ -184,7 +196,7 @@ function SegmentPlayer(_a) {
184
196
  segments: segments,
185
197
  duration: duration,
186
198
  setIndex: setIndex
187
- }) : /*#__PURE__*/React.createElement(React.Fragment, null)
199
+ }))
188
200
  }, props));
189
201
  }
190
202
 
@@ -16,7 +16,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
16
  import React, { useCallback, useMemo } from 'react';
17
17
  import { useTimes } from './timeline';
18
18
  import useBarStatus from './contraller_bar/useBarStatus';
19
- import { dateFormat } from './util';
19
+ import moment from 'moment';
20
+ import { FMT } from './util';
20
21
  import "./style/timeline.css";
21
22
 
22
23
  function SegmentTimeLine(_ref) {
@@ -36,11 +37,11 @@ function SegmentTimeLine(_ref) {
36
37
 
37
38
  var indexDuration = useMemo(function () {
38
39
  return segments.map(function (v) {
39
- return v.duration;
40
+ return (v.endTime - v.beginTime) / 1000;
40
41
  }).reduce(function (a, b, i) {
41
42
  return i >= index ? a : a + b;
42
43
  }, 0);
43
- }, [index]);
44
+ }, [index, segments]);
44
45
  var playPercent = useMemo(function () {
45
46
  return (currentTime + indexDuration) / duration * 100;
46
47
  }, [currentTime, duration, indexDuration]);
@@ -66,7 +67,7 @@ function SegmentTimeLine(_ref) {
66
67
  } else {
67
68
  api.seekTo(currentTime);
68
69
  }
69
- }, [api, segments, index]);
70
+ }, [segments, api, index, setIndex]);
70
71
  return /*#__PURE__*/React.createElement("div", {
71
72
  className: "player-timeline-layout player-segment-timeline-layout ".concat(status === 0 ? 'hide-time-line' : '')
72
73
  }, /*#__PURE__*/React.createElement("div", {
@@ -85,7 +86,7 @@ function SegmentTimeLine(_ref) {
85
86
  return seekWithLine(e, i);
86
87
  },
87
88
  style: {
88
- width: "".concat(v.duration / duration * 100, "%")
89
+ width: "".concat((v.endTime / 1000 - v.beginTime / 1000) / duration * 100, "%")
89
90
  }
90
91
  }));
91
92
  }), /*#__PURE__*/React.createElement("div", {
@@ -110,24 +111,24 @@ function TipTitle(_ref2) {
110
111
  if (index === 0) {
111
112
  var _start = begin;
112
113
 
113
- var _end = begin + segments[0].duration * 1000;
114
+ var _end = begin + (segments[0].endTime - segments[0].beginTime);
114
115
 
115
116
  return {
116
- start: dateFormat(_start),
117
- end: dateFormat(_end)
117
+ start: moment(_start).format(FMT),
118
+ end: moment(_end).format(FMT)
118
119
  };
119
120
  }
120
121
 
121
122
  var indexDuration = segments.map(function (v) {
122
- return v.duration;
123
+ return v.endTime - v.beginTime;
123
124
  }).reduce(function (a, b, i) {
124
125
  return i >= index ? a : a + b;
125
126
  }, 0);
126
- var start = begin + indexDuration * 1000;
127
- var end = start + segments[index].duration * 1000;
127
+ var start = begin + indexDuration;
128
+ var end = start + (segments[index].endTime - segments[index].beginTime);
128
129
  return {
129
- start: dateFormat(start),
130
- end: dateFormat(end)
130
+ start: moment(start).format(FMT),
131
+ end: moment(end).format(FMT)
131
132
  };
132
133
  }, [index, segments, begin]),
133
134
  start = _useMemo.start,
@@ -1,3 +1,5 @@
1
+ import _useToggle3 from "ahooks/es/useToggle";
2
+
1
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
4
 
3
5
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -55,7 +57,12 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
55
57
  }),
56
58
  _useState2 = _slicedToArray(_useState, 2),
57
59
  state = _useState2[0],
58
- setState = _useState2[1]; // 视频格式判断,外部可以强制指定,也可以通过url自动判断
60
+ setState = _useState2[1];
61
+
62
+ var _useToggle = _useToggle3('contain', 'fill'),
63
+ _useToggle2 = _slicedToArray(_useToggle, 2),
64
+ fit = _useToggle2[0],
65
+ toggle = _useToggle2[1].toggle; // 视频格式判断,外部可以强制指定,也可以通过url自动判断
59
66
 
60
67
 
61
68
  var vType = useMemo(function () {
@@ -93,30 +100,61 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
93
100
  }, []); // 特殊接口实现 reload是可能被重写的,但是API只暴露原生的方法
94
101
 
95
102
  var reload = function reload() {
96
- return playReload(video, flv, hls, url);
103
+ return playReload(video, event, flv, hls, url);
97
104
  };
98
105
 
99
106
  var unload = function unload() {
100
107
  return playUnload(video, flv, hls);
101
- }; // 合并api
108
+ }; // 合并api,加上代理
102
109
 
103
110
 
104
111
  var playApi = useMemo(function () {
105
- return Object.assign(Object.assign({}, api), {
112
+ if (!api) {
113
+ return undefined;
114
+ }
115
+
116
+ var map = {
106
117
  reload: reload,
107
- unload: unload
118
+ unload: unload,
119
+ toggleFit: toggle
120
+ };
121
+ return new Proxy(api, {
122
+ get: function get(target, key) {
123
+ var _a;
124
+
125
+ return (_a = map[key]) !== null && _a !== void 0 ? _a : target[key];
126
+ },
127
+ set: function set() {
128
+ return true;
129
+ }
108
130
  });
109
- }, [api]); // ref暴露接口
131
+ }, [api]); // 代理Event
132
+
133
+ var playEvent = useMemo(function () {
134
+ if (!event) {
135
+ return undefined;
136
+ }
137
+
138
+ return new Proxy(event, {
139
+ get: function get(target, key) {
140
+ return target[key];
141
+ },
142
+ set: function set() {
143
+ return true;
144
+ }
145
+ });
146
+ }, [event]); // ref暴露接口
110
147
 
111
148
  useImperativeHandle(ref, function () {
112
149
  return {
113
150
  video: video,
114
151
  container: state.container,
115
152
  api: playApi,
116
- event: event,
117
- plugins: [flv, hls]
153
+ event: playEvent,
154
+ plugins: [flv, hls],
155
+ fit: fit
118
156
  };
119
- }, [api, event, video]);
157
+ }, [api, event, video, fit]);
120
158
  useEffect(function () {
121
159
  if (api && event && video) {
122
160
  props.onCanPlayerInit && props.onCanPlayerInit();
@@ -128,6 +166,9 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
128
166
  }, /*#__PURE__*/React.createElement("div", {
129
167
  className: "player-mask-layout"
130
168
  }, /*#__PURE__*/React.createElement("video", {
169
+ style: {
170
+ objectFit: fit
171
+ },
131
172
  autoPlay: autoPlay,
132
173
  preload: preload,
133
174
  muted: muted,