@cloud-app-dev/vidc 3.0.16 → 3.0.18

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 (71) hide show
  1. package/.umirc.ts +1 -1
  2. package/es/DisableMark/index.d.ts +2 -1
  3. package/es/DisableMark/index.js +6 -2
  4. package/es/Map/BasicMap/AMapInstance.d.ts +3 -0
  5. package/es/Map/BasicMap/AMapInstance.js +16 -1
  6. package/es/Map/BasicMap/LeafletInstance.d.ts +4 -1
  7. package/es/Map/BasicMap/LeafletInstance.js +17 -2
  8. package/es/Map/LevelCenter/index.d.ts +3 -0
  9. package/es/Map/LevelCenter/index.js +29 -9
  10. package/es/Map/SinglePoint/index.js +8 -5
  11. package/es/Map/hook/useMapEvent.d.ts +2 -0
  12. package/es/Map/hook/useMapEvent.js +23 -0
  13. package/es/Map/interface.d.ts +3 -0
  14. package/es/Player/api/index.d.ts +3 -1
  15. package/es/Player/api/index.js +27 -24
  16. package/es/Player/context.d.ts +21 -0
  17. package/es/Player/context.js +16 -0
  18. package/es/Player/contraller_bar/contraller_event.d.ts +1 -4
  19. package/es/Player/contraller_bar/contraller_event.js +37 -28
  20. package/es/Player/contraller_bar/index.d.ts +2 -7
  21. package/es/Player/contraller_bar/index.js +4 -12
  22. package/es/Player/contraller_bar/left_bar.d.ts +2 -7
  23. package/es/Player/contraller_bar/left_bar.js +26 -23
  24. package/es/Player/contraller_bar/right_bar.d.ts +1 -6
  25. package/es/Player/contraller_bar/right_bar.js +6 -3
  26. package/es/Player/contraller_bar/useBarStatus.js +17 -24
  27. package/es/Player/demo.js +5 -1
  28. package/es/Player/event/errorEvent.d.ts +3 -3
  29. package/es/Player/event/errorEvent.js +39 -40
  30. package/es/Player/event/eventName.d.ts +17 -2
  31. package/es/Player/event/eventName.js +5 -1
  32. package/es/Player/event/index.d.ts +2 -0
  33. package/es/Player/event/index.js +55 -3
  34. package/es/Player/fps_play.d.ts +10 -0
  35. package/es/Player/fps_play.js +80 -0
  36. package/es/Player/frontend_player.js +0 -2
  37. package/es/Player/frontend_timeline.d.ts +1 -5
  38. package/es/Player/frontend_timeline.js +8 -4
  39. package/es/Player/live_heart.d.ts +4 -4
  40. package/es/Player/live_heart.js +10 -7
  41. package/es/Player/message.js +69 -84
  42. package/es/Player/player.d.ts +10 -15
  43. package/es/Player/segment_player.js +13 -29
  44. package/es/Player/segment_timeline.d.ts +1 -6
  45. package/es/Player/segment_timeline.js +11 -7
  46. package/es/Player/single_player.js +94 -49
  47. package/es/Player/style/bar.css +1 -0
  48. package/es/Player/style/index.css +8 -0
  49. package/es/Player/timeline.d.ts +1 -1
  50. package/es/Player/timeline.js +26 -37
  51. package/es/Player/util.d.ts +1 -1
  52. package/es/Player/util.js +2 -5
  53. package/es/ScreenPlayer/Live.d.ts +1 -1
  54. package/es/ScreenPlayer/Live.js +6 -3
  55. package/es/ScreenPlayer/LiveTools.d.ts +9 -1
  56. package/es/ScreenPlayer/LiveTools.js +6 -3
  57. package/es/ScreenPlayer/PlayerWithExt.d.ts +1 -1
  58. package/es/ScreenPlayer/PlayerWithExt.js +2 -4
  59. package/es/ScreenPlayer/Record.d.ts +1 -1
  60. package/es/ScreenPlayer/Record.js +8 -4
  61. package/es/ScreenPlayer/RecordTools.d.ts +9 -1
  62. package/es/ScreenPlayer/RecordTools.js +5 -3
  63. package/es/ScreenPlayer/demo2.js +1 -1
  64. package/es/ScreenPlayer/interface.d.ts +51 -0
  65. package/es/index.d.ts +1 -0
  66. package/es/index.js +1 -0
  67. package/es/useRafInterval/index.d.ts +5 -0
  68. package/es/useRafInterval/index.js +94 -0
  69. package/package.json +1 -1
  70. package/es/Player/event/browserTabEvent.d.ts +0 -9
  71. package/es/Player/event/browserTabEvent.js +0 -57
@@ -10,10 +10,11 @@ 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, { useCallback, useEffect, useMemo, useState } from 'react';
13
+ import React, { useCallback, useMemo, useState } from 'react';
14
14
  import useBarStatus from './contraller_bar/useBarStatus';
15
+ import { useVideoEvent } from './event';
15
16
  import "./style/timeline.css";
16
- export function useTimes(api, event, isHide) {
17
+ export function useTimes(api, event, isFpsPlay) {
17
18
  var _useState = useState({
18
19
  currentTime: 0,
19
20
  buffered: 0
@@ -22,46 +23,34 @@ export function useTimes(api, event, isHide) {
22
23
  state = _useState2[0],
23
24
  setState = _useState2[1];
24
25
 
25
- useEffect(function () {
26
- if (isHide) {
27
- return undefined;
28
- }
29
-
30
- var getCurrentTime = function getCurrentTime() {
31
- return setState(function (old) {
32
- return Object.assign(Object.assign({}, old), {
33
- currentTime: api.getCurrentTime(),
34
- buffered: api.getSecondsLoaded()
35
- });
26
+ var getCurrentTime = function getCurrentTime() {
27
+ return setState(function (old) {
28
+ return Object.assign(Object.assign({}, old), {
29
+ currentTime: api.getCurrentTime(),
30
+ buffered: api.getSecondsLoaded()
36
31
  });
37
- };
32
+ });
33
+ };
38
34
 
39
- var getBuffered = function getBuffered() {
40
- return setState(function (old) {
41
- return Object.assign(Object.assign({}, old), {
42
- buffered: api.getSecondsLoaded()
43
- });
35
+ var getBuffered = function getBuffered() {
36
+ return setState(function (old) {
37
+ return Object.assign(Object.assign({}, old), {
38
+ buffered: api.getSecondsLoaded()
44
39
  });
45
- };
40
+ });
41
+ };
46
42
 
47
- var seekendPlay = function seekendPlay() {
48
- return api.play();
49
- };
43
+ var seekendPlay = function seekendPlay() {
44
+ return !isFpsPlay && api.play();
45
+ };
50
46
 
51
- event.addEventListener('timeupdate', getCurrentTime);
52
- event.addEventListener('progress', getBuffered);
53
- event.addEventListener('suspend', getBuffered);
54
- event.addEventListener('seeked', seekendPlay);
55
- return function () {
56
- event.removeEventListener('timeupdate', getCurrentTime);
57
- event.removeEventListener('progress', getBuffered);
58
- event.removeEventListener('suspend', getBuffered);
59
- event.removeEventListener('seeked', seekendPlay);
60
- };
61
- }, [event, api, isHide]);
47
+ useVideoEvent('timeupdate', getCurrentTime);
48
+ useVideoEvent('progress', getBuffered);
49
+ useVideoEvent('suspend', getBuffered);
50
+ useVideoEvent('seeked', seekendPlay);
62
51
  return useMemo(function () {
63
52
  return [state.currentTime, state.buffered, api.getDuration()];
64
- }, [state.currentTime, state.buffered]);
53
+ }, [state.currentTime, state.buffered, api]);
65
54
  }
66
55
 
67
56
  function TimeLine(_ref) {
@@ -77,10 +66,10 @@ function TimeLine(_ref) {
77
66
 
78
67
  var playPercent = useMemo(function () {
79
68
  return currentTime / duration * 100;
80
- }, [currentTime]);
69
+ }, [currentTime, duration]);
81
70
  var bufferedPercent = useMemo(function () {
82
71
  return buffered / duration * 100;
83
- }, [buffered]);
72
+ }, [buffered, duration]);
84
73
  var seekWithLine = useCallback(function (e) {
85
74
  var rect = e.currentTarget.getBoundingClientRect();
86
75
  var current = e.pageX - rect.left;
@@ -7,7 +7,7 @@ import type { FlvPlayerConfig } from './player';
7
7
  * @param {*} video
8
8
  * @param {*} URL
9
9
  */
10
- export declare function createHlsPlayer(video: HTMLVideoElement, url: string, hlsConfig: HlsConfig): Hls;
10
+ export declare function createHlsPlayer(video: HTMLVideoElement, url: string, isLive: boolean, hlsConfig: HlsConfig): Hls;
11
11
  /**
12
12
  * 创建FLV对象
13
13
  * @param {*} video
package/es/Player/util.js CHANGED
@@ -12,16 +12,13 @@ import Events from './event/eventName';
12
12
  * @param {*} URL
13
13
  */
14
14
 
15
- export function createHlsPlayer(video, url, hlsConfig) {
15
+ export function createHlsPlayer(video, url, isLive, hlsConfig) {
16
16
  if (!Hls.isSupported()) {
17
17
  return undefined;
18
18
  }
19
19
 
20
20
  var player = new Hls(Object.assign({
21
- liveDurationInfinity: true,
22
- fragLoadingMaxRetry: 0,
23
- manifestLoadingMaxRetry: 0,
24
- levelLoadingMaxRetry: 0,
21
+ liveDurationInfinity: isLive,
25
22
  enableWorker: true
26
23
  }, hlsConfig));
27
24
  player.loadSource(url);
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { ILivePlayerProps } from './interface';
3
3
  import './index.less';
4
- declare function LivePlayer({ list, children, onIndexChange, onClose, onCloseAll, snapshot, defaultScreen, screenChange, defaultSelectIndex, ...options }: ILivePlayerProps): JSX.Element;
4
+ declare function LivePlayer({ list, children, onIndexChange, onClose, onCloseAll, snapshot, defaultScreen, screenChange, defaultSelectIndex, oneWinExtTools, allWinExtTools, ...options }: ILivePlayerProps): JSX.Element;
5
5
  declare namespace LivePlayer {
6
6
  var defaultProps: {
7
7
  list: any[];
@@ -38,7 +38,9 @@ function LivePlayer(_a) {
38
38
  defaultScreen = _a.defaultScreen,
39
39
  screenChange = _a.screenChange,
40
40
  defaultSelectIndex = _a.defaultSelectIndex,
41
- options = __rest(_a, ["list", "children", "onIndexChange", "onClose", "onCloseAll", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex"]);
41
+ oneWinExtTools = _a.oneWinExtTools,
42
+ allWinExtTools = _a.allWinExtTools,
43
+ options = __rest(_a, ["list", "children", "onIndexChange", "onClose", "onCloseAll", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex", "oneWinExtTools", "allWinExtTools"]);
42
44
 
43
45
  var _useState = useState({
44
46
  screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : 4,
@@ -155,7 +157,6 @@ function LivePlayer(_a) {
155
157
 
156
158
  return /*#__PURE__*/React.createElement(LivePlayerWithExt, Object.assign({}, item, {
157
159
  mode: (_a = item.mode) !== null && _a !== void 0 ? _a : state.modes[index],
158
- isLive: true,
159
160
  key: "".concat(item.url, "-").concat(index),
160
161
  updatePlayer: function updatePlayer(player) {
161
162
  return playerRef.current[index] = player;
@@ -184,7 +185,9 @@ function LivePlayer(_a) {
184
185
  mode: state.modes[state.selectIndex],
185
186
  containerRef: domRef,
186
187
  updateState: updateState,
187
- snapshot: snapshot
188
+ snapshot: snapshot,
189
+ oneWinExtTools: oneWinExtTools,
190
+ allWinExtTools: allWinExtTools
188
191
  }), children && /*#__PURE__*/React.cloneElement(children, {
189
192
  selectIndex: state.selectIndex
190
193
  }));
@@ -16,6 +16,14 @@ interface IToolsProps {
16
16
  onCloseAll?: () => void;
17
17
  disabled: boolean;
18
18
  snapshot?: (base64?: string) => void;
19
+ /**
20
+ * 单窗口拓展工具条,左侧
21
+ */
22
+ oneWinExtTools?: JSX.Element;
23
+ /**
24
+ * 全局窗口工具条,右侧
25
+ */
26
+ allWinExtTools?: JSX.Element;
19
27
  }
20
- declare function LiveTools({ containerRef, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll, disabled, snapshot }: IToolsProps): JSX.Element;
28
+ declare function LiveTools({ containerRef, oneWinExtTools, allWinExtTools, updateState, screenNum, getPlayerItem, mode, toggleFit, fit, onClose, onCloseAll, disabled, snapshot, }: IToolsProps): JSX.Element;
21
29
  export default LiveTools;
@@ -21,6 +21,8 @@ import useFullscreen from '../useFullscreen';
21
21
 
22
22
  function LiveTools(_ref) {
23
23
  var containerRef = _ref.containerRef,
24
+ oneWinExtTools = _ref.oneWinExtTools,
25
+ allWinExtTools = _ref.allWinExtTools,
24
26
  updateState = _ref.updateState,
25
27
  screenNum = _ref.screenNum,
26
28
  getPlayerItem = _ref.getPlayerItem,
@@ -71,7 +73,8 @@ function LiveTools(_ref) {
71
73
  return /*#__PURE__*/React.createElement("div", {
72
74
  className: "player-tools"
73
75
  }, /*#__PURE__*/React.createElement(DisableMark, {
74
- disabled: disabled
76
+ disabled: disabled,
77
+ width: "70%"
75
78
  }, /*#__PURE__*/React.createElement("div", {
76
79
  className: "player-tools-left"
77
80
  }, /*#__PURE__*/React.createElement("span", {
@@ -120,7 +123,7 @@ function LiveTools(_ref) {
120
123
  position: 'relative',
121
124
  top: 1
122
125
  }
123
- }))), /*#__PURE__*/React.createElement("div", {
126
+ })), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
124
127
  className: "player-tools-mid"
125
128
  }, /*#__PURE__*/React.createElement("div", {
126
129
  className: "player-tools-item",
@@ -147,7 +150,7 @@ function LiveTools(_ref) {
147
150
  title: "\u64AD\u653E"
148
151
  }))), /*#__PURE__*/React.createElement("div", {
149
152
  className: "player-tools-right"
150
- }, /*#__PURE__*/React.createElement("span", {
153
+ }, allWinExtTools, /*#__PURE__*/React.createElement("span", {
151
154
  className: "player-tools-item",
152
155
  onClick: onCloseAll
153
156
  }, /*#__PURE__*/React.createElement(IconFont, {
@@ -8,7 +8,7 @@ interface ILivePlayerWithExtProps extends ISinglePlayerProps {
8
8
  updatePlayer: (obj: React.MutableRefObject<ExportPlayerType>) => void;
9
9
  pluginDownloadUrl?: string;
10
10
  }
11
- export declare function LivePlayerWithExt({ mode, isLive, url, type, style, className, updatePlayer, onClick, pluginDownloadUrl, ...props }: ILivePlayerWithExtProps): JSX.Element;
11
+ export declare function LivePlayerWithExt({ mode, url, type, style, className, updatePlayer, onClick, pluginDownloadUrl, ...props }: ILivePlayerWithExtProps): JSX.Element;
12
12
  interface ISegmentPlayerWithExtProps extends Omit<ILivePlayerWithExtProps, 'url'> {
13
13
  segments?: ISegmentType[];
14
14
  begin?: number;
@@ -24,7 +24,6 @@ export function LivePlayerWithExt(_a) {
24
24
  var _b;
25
25
 
26
26
  var mode = _a.mode,
27
- isLive = _a.isLive,
28
27
  url = _a.url,
29
28
  type = _a.type,
30
29
  style = _a.style,
@@ -32,7 +31,7 @@ export function LivePlayerWithExt(_a) {
32
31
  updatePlayer = _a.updatePlayer,
33
32
  onClick = _a.onClick,
34
33
  pluginDownloadUrl = _a.pluginDownloadUrl,
35
- props = __rest(_a, ["mode", "isLive", "url", "type", "style", "className", "updatePlayer", "onClick", "pluginDownloadUrl"]);
34
+ props = __rest(_a, ["mode", "url", "type", "style", "className", "updatePlayer", "onClick", "pluginDownloadUrl"]);
36
35
 
37
36
  var forceUpdate = _useUpdate();
38
37
 
@@ -59,7 +58,7 @@ export function LivePlayerWithExt(_a) {
59
58
  }, /*#__PURE__*/React.createElement(LivePlayer, Object.assign({}, props, {
60
59
  type: type,
61
60
  url: url,
62
- isLive: isLive,
61
+ isLive: true,
63
62
  hideContrallerBar: true,
64
63
  onCanPlayerInit: update,
65
64
  ref: ref
@@ -101,7 +100,6 @@ export function SegmentPlayerWithExt(_a) {
101
100
  }, /*#__PURE__*/React.createElement(SegmentPlayer, Object.assign({}, props, {
102
101
  segments: segments,
103
102
  type: "hls",
104
- isLive: false,
105
103
  hideContrallerBar: true,
106
104
  forwordRef: ref,
107
105
  begin: begin,
@@ -6,5 +6,5 @@ import './index.less';
6
6
  * @param param0
7
7
  * @returns
8
8
  */
9
- declare function RecordPlayer({ list, children, queryRecord, onIndexChange, onClose, onCloseAll, download, snapshot, defaultScreen, screenChange, defaultSelectIndex, ...options }: IRecordPlayerProps): JSX.Element;
9
+ declare function RecordPlayer({ list, children, queryRecord, onIndexChange, onClose, onCloseAll, download, snapshot, defaultScreen, screenChange, defaultSelectIndex, oneWinExtTools, allWinExtTools, ...options }: IRecordPlayerProps): JSX.Element;
10
10
  export default RecordPlayer;
@@ -67,7 +67,9 @@ function RecordPlayer(_a) {
67
67
  defaultScreen = _a.defaultScreen,
68
68
  screenChange = _a.screenChange,
69
69
  defaultSelectIndex = _a.defaultSelectIndex,
70
- options = __rest(_a, ["list", "children", "queryRecord", "onIndexChange", "onClose", "onCloseAll", "download", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex"]);
70
+ oneWinExtTools = _a.oneWinExtTools,
71
+ allWinExtTools = _a.allWinExtTools,
72
+ options = __rest(_a, ["list", "children", "queryRecord", "onIndexChange", "onClose", "onCloseAll", "download", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex", "oneWinExtTools", "allWinExtTools"]);
71
73
 
72
74
  var _useState = useState(Object.assign(Object.assign({}, defaultState), {
73
75
  screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : defaultState.screenNum
@@ -411,7 +413,8 @@ function RecordPlayer(_a) {
411
413
  })), /*#__PURE__*/React.createElement("div", {
412
414
  className: "player-tools-group"
413
415
  }, /*#__PURE__*/React.createElement(DisableMark, {
414
- disabled: !segmentItem.cid
416
+ disabled: !segmentItem.cid,
417
+ width: "70%"
415
418
  }, /*#__PURE__*/React.createElement(RecordTools, {
416
419
  time: state.currentTimes[state.selectIndex],
417
420
  fit: fit,
@@ -426,12 +429,13 @@ function RecordPlayer(_a) {
426
429
  onCloseAll: onCloseAll,
427
430
  timeMode: state.timeMode,
428
431
  download: download,
429
- snapshot: snapshot
432
+ snapshot: snapshot,
433
+ oneWinExtTools: oneWinExtTools,
434
+ allWinExtTools: allWinExtTools
430
435
  }), /*#__PURE__*/React.createElement(SegmentTimeLine, {
431
436
  begin: timeBegin,
432
437
  updateState: updateState,
433
438
  segments: segmentItem.segments,
434
- key: state.selectIndex,
435
439
  onTimeChange: onTimeChange,
436
440
  timeMode: state.timeMode
437
441
  }))), children && /*#__PURE__*/React.cloneElement(children, {
@@ -20,6 +20,14 @@ interface IToolsProps {
20
20
  timeMode: number;
21
21
  download?: () => void;
22
22
  snapshot?: (base64: string) => void;
23
+ /**
24
+ * 单窗口拓展工具条,左侧
25
+ */
26
+ oneWinExtTools?: JSX.Element;
27
+ /**
28
+ * 全局窗口工具条,右侧
29
+ */
30
+ allWinExtTools?: JSX.Element;
23
31
  }
24
- declare function RecordTools({ containerRef, updateState, download, screenNum, timeMode, getPlayerItem, mode, toggleFit, fit, time, onTimeChange, onClose, onCloseAll, snapshot, }: IToolsProps): JSX.Element;
32
+ declare function RecordTools({ containerRef, updateState, download, screenNum, timeMode, getPlayerItem, mode, toggleFit, fit, time, onTimeChange, onClose, onCloseAll, snapshot, oneWinExtTools, allWinExtTools, }: IToolsProps): JSX.Element;
25
33
  export default RecordTools;
@@ -34,7 +34,9 @@ function RecordTools(_ref) {
34
34
  onTimeChange = _ref.onTimeChange,
35
35
  onClose = _ref.onClose,
36
36
  onCloseAll = _ref.onCloseAll,
37
- snapshot = _ref.snapshot;
37
+ snapshot = _ref.snapshot,
38
+ oneWinExtTools = _ref.oneWinExtTools,
39
+ allWinExtTools = _ref.allWinExtTools;
38
40
 
39
41
  var _useFullscreen = useFullscreen(containerRef),
40
42
  _useFullscreen2 = _slicedToArray(_useFullscreen, 2),
@@ -114,7 +116,7 @@ function RecordTools(_ref) {
114
116
  },
115
117
  type: "lm-player-S_Device_shezhi",
116
118
  title: "\u5207\u6362".concat(mode === 1 ? '插件' : '浏览器', "\u6A21\u5F0F")
117
- }))), /*#__PURE__*/React.createElement("div", {
119
+ })), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
118
120
  className: "player-tools-mid"
119
121
  }, /*#__PURE__*/React.createElement("div", {
120
122
  className: "player-tools-item",
@@ -148,7 +150,7 @@ function RecordTools(_ref) {
148
150
  title: "\u64AD\u653E"
149
151
  }))), /*#__PURE__*/React.createElement("div", {
150
152
  className: "player-tools-right"
151
- }, /*#__PURE__*/React.createElement("span", {
153
+ }, allWinExtTools, /*#__PURE__*/React.createElement("span", {
152
154
  className: "player-tools-item",
153
155
  onClick: onCloseAll
154
156
  }, /*#__PURE__*/React.createElement(IconFont, {
@@ -28,7 +28,7 @@ import RecordPlayer from './Record';
28
28
  import moment from 'moment';
29
29
  import Service from '../Service';
30
30
  import { completionSegments } from './utils';
31
- var token = "eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDEwMTAwMDQ0NSIsImV4dCI6MTY2MjI1ODMwNzUxNSwidWlkIjoiMTAxMDAwMDAwNjk5IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA1MTgsMTAwMDAwMTEwNzI4XSwidmFsaWRUaW1lIjoxNzA0MzgzOTk5MDAwLCJvcHRDZW50ZXJJZCI6IjEwMDEwMDAwMDIzMyIsInVzZXJUeXBlIjoxMDA3MDQsImlhdCI6MTY2MTk5OTEwNzUxNX0.uk_G3vqBCFqxQM2jbV6CSN-z9YNVt_cx5nWXkSuCOIA";
31
+ var token = "eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDEwMTAwMDQ0NSIsImV4dCI6MTY2MzQwNTM5ODYzOCwidWlkIjoiMTAxMDAwMDAwNjk5IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA1MTgsMTAwMDAwMTEwNzI4XSwidmFsaWRUaW1lIjoxNzA0MzgzOTk5MDAwLCJvcHRDZW50ZXJJZCI6IjEwMDEwMDAwMDIzMyIsInVzZXJUeXBlIjoxMDA3MDQsImlhdCI6MTY2MzE0NjE5ODYzOH0.EPh_1eNPNFl-fmLODbHo0mu5R_1kKdt3UUu_0qfBGFY";
32
32
  var cids = ['538509097', '539172446'];
33
33
 
34
34
  var query = function query(_ref) {
@@ -40,15 +40,40 @@ export interface IRecordPlayerProps {
40
40
  */
41
41
  download?: () => void;
42
42
 
43
+ /**
44
+ * 截图
45
+ */
43
46
  snapshot?: (base64: string) => void;
44
47
 
48
+ /**
49
+ * 窗口变化
50
+ */
45
51
  screenChange?: (num: number) => void;
46
52
 
53
+ /**
54
+ * 默认窗口数量
55
+ */
47
56
  defaultScreen?: 1 | 4 | 6 | 9 | 16;
48
57
 
58
+ /**
59
+ * 窗口数量,若有值数量将由外部控制
60
+ */
49
61
  screenNum?: 1 | 4 | 6 | 9 | 16;
50
62
 
63
+ /**
64
+ * 默认选中窗口
65
+ * @default 0
66
+ */
51
67
  defaultSelectIndex?: number;
68
+ /**
69
+ * 单窗口拓展工具条,左侧
70
+ */
71
+ oneWinExtTools?: JSX.Element;
72
+
73
+ /**
74
+ * 全局窗口工具条,右侧
75
+ */
76
+ allWinExtTools?: JSX.Element;
52
77
  }
53
78
 
54
79
  export interface IRecordPlayerState {
@@ -118,15 +143,41 @@ export interface ILivePlayerProps {
118
143
  */
119
144
  onIndexChange?: (idx: number) => void;
120
145
 
146
+ /**
147
+ * 截图
148
+ */
121
149
  snapshot?: (base64: string) => void;
122
150
 
151
+ /**
152
+ * 窗口变化
153
+ */
123
154
  screenChange?: (num: number) => void;
124
155
 
156
+ /**
157
+ * 默认窗口数量
158
+ */
125
159
  defaultScreen?: 1 | 4 | 6 | 9 | 16;
126
160
 
161
+ /**
162
+ * 窗口数量,若有值由外部来完全控制
163
+ */
127
164
  screenNum?: 1 | 4 | 6 | 9 | 16;
128
165
 
166
+ /**
167
+ * 默认选中窗口
168
+ * @default 0
169
+ */
129
170
  defaultSelectIndex?: number;
171
+
172
+ /**
173
+ * 单窗口拓展工具条,左侧
174
+ */
175
+ oneWinExtTools?: JSX.Element;
176
+
177
+ /**
178
+ * 全局窗口工具条,右侧
179
+ */
180
+ allWinExtTools?: JSX.Element;
130
181
  }
131
182
 
132
183
  export interface ILivePlayerState {
package/es/index.d.ts CHANGED
@@ -39,4 +39,5 @@ export { default as Tree } from './Tree';
39
39
  export { default as useFullscreen } from './useFullscreen';
40
40
  export { default as useHistory } from './useHistory';
41
41
  export { default as useInfiniteScroll } from './useInfiniteScroll';
42
+ export { default as useRafInterval } from './useRafInterval';
42
43
  export { default as useVirtualList } from './useVirtualList';
package/es/index.js CHANGED
@@ -39,4 +39,5 @@ export { default as Tree } from './Tree';
39
39
  export { default as useFullscreen } from './useFullscreen';
40
40
  export { default as useHistory } from './useHistory';
41
41
  export { default as useInfiniteScroll } from './useInfiniteScroll';
42
+ export { default as useRafInterval } from './useRafInterval';
42
43
  export { default as useVirtualList } from './useVirtualList';
@@ -0,0 +1,5 @@
1
+ declare function useRafInterval(fn: () => void, delay: number | undefined, options?: {
2
+ immediate?: boolean;
3
+ deps?: any[];
4
+ }): () => void;
5
+ export default useRafInterval;
@@ -0,0 +1,94 @@
1
+ import _useLatest from "ahooks/es/useLatest";
2
+
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+
5
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
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 _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
10
+
11
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
12
+
13
+ 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; }
14
+
15
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
16
+
17
+ import { useCallback, useEffect, useRef } from 'react';
18
+ import { isNumber } from 'lodash-es';
19
+
20
+ var setRafInterval = function setRafInterval(callback) {
21
+ var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
22
+
23
+ if ((typeof requestAnimationFrame === "undefined" ? "undefined" : _typeof(requestAnimationFrame)) === (typeof undefined === "undefined" ? "undefined" : _typeof(undefined))) {
24
+ return {
25
+ id: setInterval(callback, delay)
26
+ };
27
+ }
28
+
29
+ var start = new Date().getTime();
30
+ var handle = {
31
+ id: 0
32
+ };
33
+
34
+ var loop = function loop() {
35
+ var current = new Date().getTime();
36
+
37
+ if (current - start >= delay) {
38
+ callback();
39
+ start = new Date().getTime();
40
+ }
41
+
42
+ handle.id = requestAnimationFrame(loop);
43
+ };
44
+
45
+ handle.id = requestAnimationFrame(loop);
46
+ return handle;
47
+ };
48
+
49
+ function cancelAnimationFrameIsNotDefined(t) {
50
+ return (typeof cancelAnimationFrame === "undefined" ? "undefined" : _typeof(cancelAnimationFrame)) === (typeof undefined === "undefined" ? "undefined" : _typeof(undefined));
51
+ }
52
+
53
+ var clearRafInterval = function clearRafInterval(handle) {
54
+ if (cancelAnimationFrameIsNotDefined(handle.id)) {
55
+ return clearInterval(handle.id);
56
+ }
57
+
58
+ cancelAnimationFrame(handle.id);
59
+ };
60
+
61
+ function useRafInterval(fn, delay, options) {
62
+ var _a;
63
+
64
+ var immediate = options === null || options === void 0 ? void 0 : options.immediate;
65
+ var deps = (_a = options === null || options === void 0 ? void 0 : options.deps) !== null && _a !== void 0 ? _a : [];
66
+
67
+ var fnRef = _useLatest(fn);
68
+
69
+ var timerRef = useRef();
70
+ useEffect(function () {
71
+ if (!isNumber(delay) || delay < 0) return undefined;
72
+
73
+ if (immediate) {
74
+ fnRef.current();
75
+ }
76
+
77
+ timerRef.current = setRafInterval(function () {
78
+ fnRef.current();
79
+ }, delay);
80
+ return function () {
81
+ if (timerRef.current) {
82
+ clearRafInterval(timerRef.current);
83
+ }
84
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
85
+ }, [delay].concat(_toConsumableArray(deps)));
86
+ var clear = useCallback(function () {
87
+ if (timerRef.current) {
88
+ clearRafInterval(timerRef.current);
89
+ }
90
+ }, []);
91
+ return clear;
92
+ }
93
+
94
+ export default useRafInterval;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "@cloud-app-dev/vidc",
4
4
  "description": "Video Image Data Componennts",
5
- "version": "3.0.16",
5
+ "version": "3.0.18",
6
6
  "scripts": {
7
7
  "start": "dumi dev",
8
8
  "docs:build": "dumi build",
@@ -1,9 +0,0 @@
1
- declare function visibilityState(): any;
2
- declare function addEventListener(listener: () => void): void;
3
- declare function removeEventListener(listener: () => void): void;
4
- declare const _default: {
5
- addEventListener: typeof addEventListener;
6
- removeEventListener: typeof removeEventListener;
7
- visibilityState: typeof visibilityState;
8
- };
9
- export default _default;
@@ -1,57 +0,0 @@
1
- function getHiddenProp() {
2
- var prefixes = ['webkit', 'moz', 'ms', 'o']; // 如果hidden 属性是原生支持的,我们就直接返回
3
-
4
- if ('hidden' in document) {
5
- return 'hidden';
6
- } // 其他的情况就循环现有的浏览器前缀,拼接我们所需要的属性
7
-
8
-
9
- for (var i = 0; i < prefixes.length; i++) {
10
- // 如果当前的拼接的前缀在 document对象中存在 返回即可
11
- if (prefixes[i] + 'Hidden' in document) {
12
- return prefixes[i] + 'Hidden';
13
- }
14
- } // 其他的情况 直接返回null
15
-
16
-
17
- return undefined;
18
- }
19
-
20
- function getVisibilityState() {
21
- var prefixes = ['webkit', 'moz', 'ms', 'o'];
22
-
23
- if ('visibilityState' in document) {
24
- return 'visibilityState';
25
- }
26
-
27
- for (var i = 0; i < prefixes.length; i++) {
28
- if (prefixes[i] + 'VisibilityState' in document) {
29
- return prefixes[i] + 'VisibilityState';
30
- }
31
- } // 找不到返回 null
32
-
33
-
34
- return null;
35
- }
36
-
37
- function visibilityState() {
38
- return document[getVisibilityState()];
39
- }
40
-
41
- function addEventListener(listener) {
42
- var visProp = getHiddenProp();
43
- var evtname = visProp.replace(/[H|h]idden/, '') + 'visibilitychange';
44
- document.addEventListener(evtname, listener, false);
45
- }
46
-
47
- function removeEventListener(listener) {
48
- var visProp = getHiddenProp();
49
- var evtname = visProp.replace(/[H|h]idden/, '') + 'visibilitychange';
50
- document.removeEventListener(evtname, listener, false);
51
- }
52
-
53
- export default {
54
- addEventListener: addEventListener,
55
- removeEventListener: removeEventListener,
56
- visibilityState: visibilityState
57
- };