@cloud-app-dev/vidc 3.0.3 → 3.0.6

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 (57) hide show
  1. package/.umirc.ts +12 -7
  2. package/es/DisableMark/index.css +9 -0
  3. package/es/DisableMark/index.d.ts +8 -0
  4. package/es/DisableMark/index.js +10 -0
  5. package/es/Drawer/index.css +1 -0
  6. package/es/Map/AMap.d.ts +6841 -1308
  7. package/es/Map/BasicMap/AMapInstance.d.ts +4 -3
  8. package/es/Map/BasicMap/AMapInstance.js +18 -3
  9. package/es/Map/BasicMap/LeafletInstance.d.ts +3 -3
  10. package/es/Map/ClusterLayer/hook.d.ts +4 -4
  11. package/es/Map/ClusterLayer/hook.js +20 -24
  12. package/es/Map/ClusterLayer/index.d.ts +1 -0
  13. package/es/Map/ClusterLayer/index.js +1 -0
  14. package/es/Map/Config/utils.js +2 -2
  15. package/es/Map/InfoWindow/MakerLikeWindow.d.ts +4 -0
  16. package/es/Map/InfoWindow/MakerLikeWindow.js +103 -0
  17. package/es/Map/InfoWindow/demo.js +48 -21
  18. package/es/Map/InfoWindow/index.d.ts +7 -5
  19. package/es/Map/InfoWindow/index.js +7 -6
  20. package/es/Map/interface.d.ts +1 -1
  21. package/es/Map/useMarker/index.d.ts +2 -2
  22. package/es/Map/useMarker/index.js +3 -19
  23. package/es/Player/api/index.js +0 -1
  24. package/es/Player/demo.js +4 -3
  25. package/es/Player/event/errorEvent.js +3 -8
  26. package/es/Player/iconfont.d.ts +1 -1
  27. package/es/Player/iconfont.js +1 -1
  28. package/es/Player/live_heart.js +7 -32
  29. package/es/Player/single_player.js +6 -1
  30. package/es/Player/style/iconfont.ttf +0 -0
  31. package/es/Player/style/iconfont.woff +0 -0
  32. package/es/Player/style/iconfont.woff2 +0 -0
  33. package/es/ScreenPlayer/Live.d.ts +1 -1
  34. package/es/ScreenPlayer/Live.js +22 -4
  35. package/es/ScreenPlayer/LiveTools.d.ts +5 -1
  36. package/es/ScreenPlayer/LiveTools.js +87 -43
  37. package/es/ScreenPlayer/PlayerWithExt.js +29 -4
  38. package/es/ScreenPlayer/Record.d.ts +1 -1
  39. package/es/ScreenPlayer/Record.js +27 -8
  40. package/es/ScreenPlayer/RecordTools.d.ts +5 -1
  41. package/es/ScreenPlayer/RecordTools.js +103 -46
  42. package/es/ScreenPlayer/ScreenSelect.d.ts +7 -0
  43. package/es/ScreenPlayer/ScreenSelect.js +28 -0
  44. package/es/ScreenPlayer/SegmentTimeLine.d.ts +1 -2
  45. package/es/ScreenPlayer/SegmentTimeLine.js +9 -6
  46. package/es/ScreenPlayer/TimeSelect.d.ts +7 -0
  47. package/es/ScreenPlayer/TimeSelect.js +129 -0
  48. package/es/ScreenPlayer/demo.d.ts +1 -1
  49. package/es/ScreenPlayer/demo.js +9 -4
  50. package/es/ScreenPlayer/demo2.js +1 -1
  51. package/es/ScreenPlayer/index.css +62 -4
  52. package/es/ScreenPlayer/interface.d.ts +27 -0
  53. package/es/Timeout/index.d.ts +8 -9
  54. package/es/Timeout/index.js +17 -23
  55. package/es/index.d.ts +1 -0
  56. package/es/index.js +1 -0
  57. package/package.json +1 -1
@@ -1,28 +1,10 @@
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';
1
+ import _useRafInterval from "ahooks/es/useRafInterval";
2
+ import React, { useEffect } from 'react';
16
3
  import BrowserTab from './event/browserTabEvent';
17
4
 
18
5
  function LiveHeart(_ref) {
19
6
  var api = _ref.api;
20
7
 
21
- var _useState = useState(Date.now()),
22
- _useState2 = _slicedToArray(_useState, 2),
23
- runDep = _useState2[0],
24
- setRundep = _useState2[1];
25
-
26
8
  var run = function run() {
27
9
  var current = api.getCurrentTime();
28
10
  var buffered = api.getSecondsLoaded();
@@ -30,6 +12,7 @@ function LiveHeart(_ref) {
30
12
  if (buffered - current > 5) {
31
13
  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
14
  api.seekTo(buffered - 2 > 0 ? buffered - 2 : 0);
15
+ api.play();
33
16
  }
34
17
  };
35
18
 
@@ -41,21 +24,13 @@ function LiveHeart(_ref) {
41
24
  BrowserTab.addEventListener(browserTabChange);
42
25
  return function () {
43
26
  BrowserTab.removeEventListener(browserTabChange);
44
- };
27
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
45
28
  }, [api]);
46
29
 
47
- _useUpdateEffect(function () {
48
- run();
49
- }, [runDep]);
30
+ _useRafInterval(function () {
31
+ return run();
32
+ }, 30 * 1000);
50
33
 
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
- }, []);
59
34
  return /*#__PURE__*/React.createElement(React.Fragment, null);
60
35
  }
61
36
 
@@ -16,6 +16,7 @@ import { __rest } from "tslib";
16
16
  import React, { useEffect, useMemo, useRef, useState, useImperativeHandle } from 'react';
17
17
  import { usePlayerApi } from './api';
18
18
  import { usePlayerEvent, useRegisterPlayerEvents, useVideoEvents } from './event';
19
+ import EventName from './event/eventName';
19
20
  import ContrallerBar from './contraller_bar';
20
21
  import ContrallerEvent from './contraller_bar/contraller_event';
21
22
  import LiveHeart from './live_heart';
@@ -99,7 +100,11 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
99
100
  container: domRef.current
100
101
  });
101
102
  });
102
- }, []); // 特殊接口实现 reload是可能被重写的,但是API只暴露原生的方法
103
+ }, []); // url 变化清理错误次数
104
+
105
+ useEffect(function () {
106
+ event && event.emit(EventName.CLEAR_ERROR_TIMER); // eslint-disable-next-line react-hooks/exhaustive-deps
107
+ }, [url]); // 特殊接口实现 reload是可能被重写的,但是API只暴露原生的方法
103
108
 
104
109
  var reload = function reload() {
105
110
  return playReload(video, event, flv, hls, url);
Binary file
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { ILivePlayerProps } from './interface';
3
3
  import './index.less';
4
- declare function LivePlayer({ list, children }: ILivePlayerProps): JSX.Element;
4
+ declare function LivePlayer({ list, children, onIndexChange, onClose, onCloseAll }: ILivePlayerProps): JSX.Element;
5
5
  export default LivePlayer;
@@ -10,16 +10,20 @@ 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, { useMemo, useRef, useState } from 'react';
13
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
14
14
  import { ScreenType, mergeFill } from './utils';
15
15
  import { LivePlayerWithExt } from './PlayerWithExt';
16
16
  import Tools from './LiveTools';
17
+ import useVideoFit from './useVideoFit';
17
18
  import "./index.css";
18
19
 
19
20
  function LivePlayer(_ref) {
20
21
  var _ref$list = _ref.list,
21
22
  list = _ref$list === void 0 ? [] : _ref$list,
22
- children = _ref.children;
23
+ children = _ref.children,
24
+ onIndexChange = _ref.onIndexChange,
25
+ onClose = _ref.onClose,
26
+ onCloseAll = _ref.onCloseAll;
23
27
 
24
28
  var _useState = useState({
25
29
  screenNum: 4,
@@ -30,7 +34,12 @@ function LivePlayer(_ref) {
30
34
  state = _useState2[0],
31
35
  setState = _useState2[1];
32
36
 
33
- var domRef = useRef(null); // 缓存所有player对象
37
+ var domRef = useRef(null);
38
+
39
+ var _useVideoFit = useVideoFit(domRef, []),
40
+ fit = _useVideoFit.fit,
41
+ toggleFit = _useVideoFit.toggleFit; // 缓存所有player对象
42
+
34
43
 
35
44
  var playerRef = useRef([]);
36
45
  var screenType = useMemo(function () {
@@ -67,8 +76,13 @@ function LivePlayer(_ref) {
67
76
  setState(function (old) {
68
77
  return Object.assign(Object.assign({}, old), obj);
69
78
  });
70
- };
79
+ }; // index变化同步到父组件
80
+ // eslint-disable-next-line react-hooks/exhaustive-deps
81
+
71
82
 
83
+ useEffect(function () {
84
+ return onIndexChange(state.selectIndex);
85
+ }, [state.selectIndex]);
72
86
  return /*#__PURE__*/React.createElement("div", {
73
87
  className: "split-screen-player-wrapper",
74
88
  ref: domRef
@@ -96,6 +110,10 @@ function LivePlayer(_ref) {
96
110
  }
97
111
  }));
98
112
  })), /*#__PURE__*/React.createElement(Tools, {
113
+ onClose: onClose,
114
+ onCloseAll: onCloseAll,
115
+ fit: fit,
116
+ toggleFit: toggleFit,
99
117
  getPlayerItem: getPlayerItem,
100
118
  screenNum: state.screenNum,
101
119
  mode: state.mode,
@@ -10,6 +10,10 @@ interface IToolsProps {
10
10
  screenNum: number;
11
11
  mode: PlayModeType;
12
12
  getPlayerItem: () => ExportPlayerType | undefined;
13
+ fit?: string;
14
+ toggleFit?: () => void;
15
+ onClose?: () => void;
16
+ onCloseAll?: () => void;
13
17
  }
14
- declare function LiveTools({ containerRef, updateState, screenNum, getPlayerItem, mode }: IToolsProps): JSX.Element;
18
+ declare function LiveTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll }: IToolsProps): JSX.Element;
15
19
  export default LiveTools;
@@ -1,3 +1,4 @@
1
+ import _useUpdate from "ahooks/es/useUpdate";
1
2
  import _useFullscreen3 from "ahooks/es/useFullscreen";
2
3
 
3
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -13,29 +14,39 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
13
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
15
 
15
16
  import React from 'react';
16
- import { ScreenType } from './utils';
17
+ import IconFont from '../Player/iconfont';
18
+ import ScreenSelect from './ScreenSelect';
17
19
 
18
20
  function LiveTools(_ref) {
19
21
  var containerRef = _ref.containerRef,
20
22
  updateState = _ref.updateState,
21
23
  screenNum = _ref.screenNum,
22
24
  getPlayerItem = _ref.getPlayerItem,
23
- mode = _ref.mode;
25
+ mode = _ref.mode,
26
+ toggleFit = _ref.toggleFit,
27
+ fit = _ref.fit,
28
+ onClose = _ref.onClose,
29
+ onCloseAll = _ref.onCloseAll;
24
30
 
25
31
  var _useFullscreen = _useFullscreen3(containerRef),
26
32
  _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
27
33
  isFullscreen = _useFullscreen2[0],
28
- toggleFullscreen = _useFullscreen2[1].toggleFullscreen; // 播放状态控制
34
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
35
+
36
+ var update = _useUpdate(); // 播放状态控制
29
37
 
30
38
 
31
39
  var playToggle = function playToggle() {
32
- var player = getPlayerItem();
40
+ var player = getPlayerItem(); // eslint-disable-next-line @typescript-eslint/no-unused-expressions
41
+
33
42
  player ? player.video.paused ? player.api.play() : player.api.pause() : undefined;
43
+ update();
34
44
  }; // 重连
35
45
 
36
46
 
37
47
  var reload = function reload() {
38
- var player = getPlayerItem();
48
+ var player = getPlayerItem(); // eslint-disable-next-line @typescript-eslint/no-unused-expressions
49
+
39
50
  player ? player.reload ? player.reload() : player.api.reload() : undefined;
40
51
  };
41
52
 
@@ -44,52 +55,85 @@ function LiveTools(_ref) {
44
55
  return player ? player.api.snapshot() : undefined;
45
56
  };
46
57
 
58
+ var player = getPlayerItem();
47
59
  return /*#__PURE__*/React.createElement("div", {
48
60
  className: "player-tools"
49
61
  }, /*#__PURE__*/React.createElement("div", {
50
- className: "split-num"
51
- }, ScreenType.map(function (item) {
52
- return /*#__PURE__*/React.createElement("span", {
53
- key: "".concat(item.name),
54
- style: {
55
- padding: 6
56
- },
57
- onClick: function onClick() {
58
- return updateState({
59
- screenNum: item.name
60
- });
61
- }
62
- }, item.name);
63
- }), /*#__PURE__*/React.createElement("span", {
64
- style: {
65
- padding: 6
66
- },
67
- onClick: toggleFullscreen
68
- }, isFullscreen ? '退出' : '全屏'), /*#__PURE__*/React.createElement("span", {
69
- style: {
70
- padding: 6
71
- },
62
+ className: "player-tools-left"
63
+ }, /*#__PURE__*/React.createElement("span", {
64
+ className: "player-tools-item"
65
+ }, /*#__PURE__*/React.createElement(IconFont, {
66
+ type: "lm-player-volume-close",
67
+ title: "\u97F3\u91CF"
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: snapshot
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
+ })), /*#__PURE__*/React.createElement("span", {
81
+ className: "player-tools-item",
82
+ onClick: onClose
83
+ }, /*#__PURE__*/React.createElement(IconFont, {
84
+ type: "lm-player-YesorNo_No_Dark",
85
+ title: "\u5173\u95ED\u5F53\u524D"
86
+ }))), /*#__PURE__*/React.createElement("div", {
87
+ className: "player-tools-mid"
88
+ }, /*#__PURE__*/React.createElement("span", {
89
+ className: "player-tools-item",
90
+ onClick: playToggle
91
+ }, player && !player.video.paused ? /*#__PURE__*/React.createElement(IconFont, {
92
+ type: "lm-player-Pause_Main",
93
+ title: "\u6682\u505C"
94
+ }) : /*#__PURE__*/React.createElement(IconFont, {
95
+ type: "lm-player-Play_Main",
96
+ title: "\u64AD\u653E"
97
+ }))), /*#__PURE__*/React.createElement("div", {
98
+ className: "player-tools-right"
99
+ }, /*#__PURE__*/React.createElement("span", {
100
+ className: "player-tools-item",
101
+ onClick: onCloseAll
102
+ }, /*#__PURE__*/React.createElement(IconFont, {
103
+ type: "lm-player-YesorNo_No_Dark",
104
+ title: "\u5173\u95ED\u6240\u6709"
105
+ })), /*#__PURE__*/React.createElement("span", {
106
+ className: "player-tools-item",
72
107
  onClick: function onClick() {
73
108
  return updateState({
74
109
  mode: mode === 1 ? 2 : 1
75
110
  });
76
111
  }
77
- }, "\u5207\u6362", mode === 1 ? '插件' : '浏览器', "\u6A21\u5F0F"), /*#__PURE__*/React.createElement("span", {
78
- style: {
79
- padding: 6
80
- },
81
- onClick: playToggle
82
- }, "\u64AD\u653E/\u6682\u505C"), /*#__PURE__*/React.createElement("span", {
83
- style: {
84
- padding: 6
85
- },
86
- onClick: reload
87
- }, "\u91CD\u8FDE"), /*#__PURE__*/React.createElement("span", {
88
- style: {
89
- padding: 6
90
- },
91
- onClick: snapshot
92
- }, "\u622A\u56FE")));
112
+ }, /*#__PURE__*/React.createElement(IconFont, {
113
+ type: "lm-player-YesorNo_No_Dark",
114
+ title: "\u5207\u6362".concat(mode === 1 ? '插件' : '浏览器', "\u6A21\u5F0F")
115
+ })), /*#__PURE__*/React.createElement("span", {
116
+ className: "player-tools-item",
117
+ onClick: toggleFit
118
+ }, fit === 'fill' ? /*#__PURE__*/React.createElement(IconFont, {
119
+ type: "lm-player-S_View_ScreenSizeFull",
120
+ title: "\u81EA\u9002\u5E94"
121
+ }) : /*#__PURE__*/React.createElement(IconFont, {
122
+ type: "lm-player-S_View_ScreenSizeFull",
123
+ title: "\u586B\u5145"
124
+ })), /*#__PURE__*/React.createElement(ScreenSelect, {
125
+ screenNum: screenNum,
126
+ updateState: updateState
127
+ }), /*#__PURE__*/React.createElement("span", {
128
+ className: "player-tools-item",
129
+ onClick: toggleFullscreen
130
+ }, isFullscreen ? /*#__PURE__*/React.createElement(IconFont, {
131
+ type: "lm-player-ExitFull_Main",
132
+ title: "\u5168\u5C4F"
133
+ }) : /*#__PURE__*/React.createElement(IconFont, {
134
+ type: "lm-player-Full_Main",
135
+ title: "\u5168\u5C4F"
136
+ }))));
93
137
  }
94
138
 
95
139
  export default LiveTools;
@@ -1,3 +1,5 @@
1
+ import _useFullscreen3 from "ahooks/es/useFullscreen";
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."); }
@@ -18,6 +20,8 @@ import FrontendPlayer from '../Player/frontend_player';
18
20
  import ExtModel from '../PlayerExt';
19
21
  import moment from 'moment';
20
22
  export function LivePlayerWithExt(_a) {
23
+ var _b;
24
+
21
25
  var mode = _a.mode,
22
26
  isLive = _a.isLive,
23
27
  url = _a.url,
@@ -33,10 +37,16 @@ export function LivePlayerWithExt(_a) {
33
37
  var update = useCallback(function () {
34
38
  return updatePlayer(ref);
35
39
  }, [updatePlayer]);
40
+
41
+ var _useFullscreen = _useFullscreen3((_b = ref.current) === null || _b === void 0 ? void 0 : _b.container),
42
+ _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
43
+ toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
44
+
36
45
  return /*#__PURE__*/React.createElement("div", {
37
46
  className: "player-with-ext-layout ".concat(className),
38
47
  style: style,
39
- onClick: onClick
48
+ onClick: onClick,
49
+ onDoubleClick: toggleFullscreen
40
50
  }, /*#__PURE__*/React.createElement(ExtModel, {
41
51
  url: url,
42
52
  mode: mode,
@@ -51,6 +61,8 @@ export function LivePlayerWithExt(_a) {
51
61
  }))));
52
62
  }
53
63
  export function SegmentPlayerWithExt(_a) {
64
+ var _b;
65
+
54
66
  var begin = _a.begin,
55
67
  style = _a.style,
56
68
  className = _a.className,
@@ -63,10 +75,16 @@ export function SegmentPlayerWithExt(_a) {
63
75
  var update = useCallback(function () {
64
76
  return updatePlayer(ref);
65
77
  }, [updatePlayer]);
78
+
79
+ var _useFullscreen4 = _useFullscreen3((_b = ref.current) === null || _b === void 0 ? void 0 : _b.container),
80
+ _useFullscreen5 = _slicedToArray(_useFullscreen4, 2),
81
+ toggleFullscreen = _useFullscreen5[1].toggleFullscreen;
82
+
66
83
  return /*#__PURE__*/React.createElement("div", {
67
84
  className: "player-with-ext-layout ".concat(className),
68
85
  style: style,
69
- onClick: onClick
86
+ onClick: onClick,
87
+ onDoubleClick: toggleFullscreen
70
88
  }, /*#__PURE__*/React.createElement(ExtModel, {
71
89
  segments: segments,
72
90
  mode: 1
@@ -90,6 +108,8 @@ export function FrontendPlayerWithExt(_ref) {
90
108
  onClick = _ref.onClick,
91
109
  pluginDownloadUrl = _ref.pluginDownloadUrl;
92
110
 
111
+ var _a;
112
+
93
113
  var _useState = useState({
94
114
  begin: 0,
95
115
  end: 0,
@@ -136,11 +156,16 @@ export function FrontendPlayerWithExt(_ref) {
136
156
  var update = useCallback(function () {
137
157
  return updatePlayer(ref);
138
158
  }, [updatePlayer]);
139
- console.log(state.url);
159
+
160
+ var _useFullscreen6 = _useFullscreen3((_a = ref.current) === null || _a === void 0 ? void 0 : _a.container),
161
+ _useFullscreen7 = _slicedToArray(_useFullscreen6, 2),
162
+ toggleFullscreen = _useFullscreen7[1].toggleFullscreen;
163
+
140
164
  return /*#__PURE__*/React.createElement("div", {
141
165
  className: "player-with-ext-layout ".concat(className),
142
166
  style: style,
143
- onClick: onClick
167
+ onClick: onClick,
168
+ onDoubleClick: toggleFullscreen
144
169
  }, /*#__PURE__*/React.createElement(ExtModel, {
145
170
  segments: segments,
146
171
  mode: mode,
@@ -6,5 +6,5 @@ import './index.less';
6
6
  * @param param0
7
7
  * @returns
8
8
  */
9
- declare function RecordPlayer({ list, children, queryRecord, onIndexChange }: IRecordPlayerProps): JSX.Element;
9
+ declare function RecordPlayer({ list, children, queryRecord, onIndexChange, onClose, onCloseAll }: IRecordPlayerProps): JSX.Element;
10
10
  export default RecordPlayer;
@@ -32,6 +32,7 @@ import RecordTools from './RecordTools';
32
32
  import SegmentTimeLine from './SegmentTimeLine';
33
33
  import useRecordList from './useRecordList';
34
34
  import useVideoFit from './useVideoFit';
35
+ import DisableMark from '../DisableMark';
35
36
  import "./index.css";
36
37
  /**
37
38
  * @desc 录像设计的时间全部需要到毫秒
@@ -45,7 +46,9 @@ function RecordPlayer(_ref) {
45
46
  var list = _ref.list,
46
47
  children = _ref.children,
47
48
  queryRecord = _ref.queryRecord,
48
- onIndexChange = _ref.onIndexChange;
49
+ onIndexChange = _ref.onIndexChange,
50
+ onClose = _ref.onClose,
51
+ onCloseAll = _ref.onCloseAll;
49
52
 
50
53
  var _useState = useState({
51
54
  screenNum: 4,
@@ -278,7 +281,16 @@ function RecordPlayer(_ref) {
278
281
  }, _callee);
279
282
  }));
280
283
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
281
- [segmentItem.cid, segmentItem.recordType, segmentItem.segments, state.loading]); // index变化同步到父组件
284
+ [segmentItem.cid, segmentItem.recordType, segmentItem.segments, state.loading]);
285
+
286
+ var _updatePlayer = function updatePlayer(player, index) {
287
+ playerRef.current[index] = player;
288
+ setState(function (old) {
289
+ return Object.assign({}, old);
290
+ });
291
+ };
292
+
293
+ console.log(segmentItem.cid); // index变化同步到父组件
282
294
  // eslint-disable-next-line react-hooks/exhaustive-deps
283
295
 
284
296
  useEffect(function () {
@@ -297,7 +309,7 @@ function RecordPlayer(_ref) {
297
309
  key: "".concat((_b = item === null || item === void 0 ? void 0 : item.date) !== null && _b !== void 0 ? _b : '', "-").concat((_c = item.cid) !== null && _c !== void 0 ? _c : '', "-").concat(index),
298
310
  className: state.selectIndex === index ? 'player-current-index' : '',
299
311
  updatePlayer: function updatePlayer(player) {
300
- return playerRef.current[index] = player;
312
+ return _updatePlayer(player, index);
301
313
  },
302
314
  onClick: function onClick() {
303
315
  return setState(function (old) {
@@ -314,7 +326,7 @@ function RecordPlayer(_ref) {
314
326
  className: state.selectIndex === index ? 'player-current-index' : '',
315
327
  segments: ((_d = recordList[index]) === null || _d === void 0 ? void 0 : _d.segments) || [],
316
328
  updatePlayer: function updatePlayer(player) {
317
- return playerRef.current[index] = player;
329
+ return _updatePlayer(player, index);
318
330
  },
319
331
  onClick: function onClick() {
320
332
  return setState(function (old) {
@@ -330,21 +342,28 @@ function RecordPlayer(_ref) {
330
342
  height: screenType.height
331
343
  }
332
344
  }));
333
- })), /*#__PURE__*/React.createElement(RecordTools, {
345
+ })), /*#__PURE__*/React.createElement("div", {
346
+ className: "player-tools-group"
347
+ }, /*#__PURE__*/React.createElement(DisableMark, {
348
+ disabled: !segmentItem.cid
349
+ }, /*#__PURE__*/React.createElement(RecordTools, {
350
+ time: state.currentTimes[state.selectIndex],
334
351
  fit: fit,
335
352
  toggleFit: toggleFit,
336
353
  getPlayerItem: getPlayerItem,
337
354
  screenNum: state.screenNum,
338
355
  mode: state.mode,
339
356
  containerRef: domRef,
340
- updateState: updateState
357
+ updateState: updateState,
358
+ onTimeChange: onTimeChange,
359
+ onClose: onClose,
360
+ onCloseAll: onCloseAll
341
361
  }), /*#__PURE__*/React.createElement(SegmentTimeLine, {
342
- disabled: !!segmentItem.cid,
343
362
  begin: timeBegin,
344
363
  timeCell: segmentItem.segments,
345
364
  key: state.selectIndex,
346
365
  onTimeChange: onTimeChange
347
- }), children && /*#__PURE__*/React.cloneElement(children, {
366
+ }))), children && /*#__PURE__*/React.cloneElement(children, {
348
367
  selectIndex: state.selectIndex
349
368
  }));
350
369
  }
@@ -12,6 +12,10 @@ interface IToolsProps {
12
12
  getPlayerItem: () => ExportPlayerType | undefined;
13
13
  fit?: string;
14
14
  toggleFit?: () => void;
15
+ time?: number;
16
+ onTimeChange?: (time: number) => void;
17
+ onClose?: () => void;
18
+ onCloseAll?: () => void;
15
19
  }
16
- declare function RecordTools({ containerRef, updateState, screenNum, getPlayerItem, mode, fit, toggleFit }: IToolsProps): JSX.Element;
20
+ declare function RecordTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, time, onTimeChange, onClose, onCloseAll }: IToolsProps): JSX.Element;
17
21
  export default RecordTools;