@cloud-app-dev/vidc 3.0.17 → 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 (51) hide show
  1. package/.umirc.ts +1 -1
  2. package/es/Map/hook/useMapEvent.js +9 -8
  3. package/es/Player/api/index.d.ts +3 -1
  4. package/es/Player/api/index.js +27 -24
  5. package/es/Player/context.d.ts +21 -0
  6. package/es/Player/context.js +16 -0
  7. package/es/Player/contraller_bar/contraller_event.d.ts +1 -4
  8. package/es/Player/contraller_bar/contraller_event.js +37 -28
  9. package/es/Player/contraller_bar/index.d.ts +2 -7
  10. package/es/Player/contraller_bar/index.js +4 -12
  11. package/es/Player/contraller_bar/left_bar.d.ts +2 -7
  12. package/es/Player/contraller_bar/left_bar.js +26 -23
  13. package/es/Player/contraller_bar/right_bar.d.ts +1 -6
  14. package/es/Player/contraller_bar/right_bar.js +6 -3
  15. package/es/Player/contraller_bar/useBarStatus.js +17 -24
  16. package/es/Player/demo.js +5 -1
  17. package/es/Player/event/errorEvent.js +34 -43
  18. package/es/Player/event/eventName.d.ts +17 -2
  19. package/es/Player/event/eventName.js +5 -1
  20. package/es/Player/event/index.d.ts +2 -0
  21. package/es/Player/event/index.js +55 -3
  22. package/es/Player/fps_play.d.ts +10 -0
  23. package/es/Player/fps_play.js +80 -0
  24. package/es/Player/frontend_player.js +0 -2
  25. package/es/Player/frontend_timeline.d.ts +1 -5
  26. package/es/Player/frontend_timeline.js +8 -4
  27. package/es/Player/live_heart.js +1 -1
  28. package/es/Player/message.js +69 -84
  29. package/es/Player/player.d.ts +10 -15
  30. package/es/Player/segment_player.js +13 -29
  31. package/es/Player/segment_timeline.d.ts +1 -6
  32. package/es/Player/segment_timeline.js +11 -7
  33. package/es/Player/single_player.js +76 -35
  34. package/es/Player/style/bar.css +1 -0
  35. package/es/Player/style/index.css +8 -0
  36. package/es/Player/timeline.d.ts +1 -1
  37. package/es/Player/timeline.js +26 -37
  38. package/es/Player/util.d.ts +1 -1
  39. package/es/Player/util.js +2 -5
  40. package/es/ScreenPlayer/Live.js +0 -1
  41. package/es/ScreenPlayer/PlayerWithExt.d.ts +1 -1
  42. package/es/ScreenPlayer/PlayerWithExt.js +2 -4
  43. package/es/ScreenPlayer/Record.js +0 -1
  44. package/es/ScreenPlayer/demo2.js +1 -1
  45. package/es/index.d.ts +1 -0
  46. package/es/index.js +1 -0
  47. package/es/useRafInterval/index.d.ts +5 -0
  48. package/es/useRafInterval/index.js +94 -0
  49. package/package.json +1 -1
  50. package/es/Player/event/browserTabEvent.d.ts +0 -9
  51. package/es/Player/event/browserTabEvent.js +0 -57
@@ -1,14 +1,6 @@
1
1
  import _useUpdate from "ahooks/es/useUpdate";
2
2
  import _useLatest from "ahooks/es/useLatest";
3
3
 
4
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
5
-
6
- 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."); }
7
-
8
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
-
10
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
11
-
12
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
5
 
14
6
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -26,13 +18,14 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
26
18
  import SinglePlayer from './single_player';
27
19
  import SegmentTimeLine from './segment_timeline';
28
20
  import Events from './event/eventName';
29
-
21
+ import { useRegisterPlayerEvent, useVideoEvent } from './event';
30
22
  /**
31
23
  * @desc 计算第一个url
32
24
  * @param segments
33
25
  * @param defaultIndex
34
26
  * @returns
35
27
  */
28
+
36
29
  function getFirstUrlIndex(segments) {
37
30
  var defaultIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
38
31
 
@@ -94,24 +87,16 @@ function usePlayIndex(event, segments) {
94
87
  }
95
88
  }, [segments, state.index]); // 监听片段播放状态,自动跳转下一个片段
96
89
 
97
- useEffect(function () {
98
- if (!event) {
99
- return undefined;
100
- }
101
-
102
- var fn = function fn() {
103
- return setState(function (old) {
104
- return Object.assign(Object.assign({}, old), {
105
- index: old.index + 1 < segments.length ? old.index + 1 : old.index
106
- });
90
+ var endHandle = function endHandle() {
91
+ return setState(function (old) {
92
+ return Object.assign(Object.assign({}, old), {
93
+ index: old.index + 1 < segments.length ? old.index + 1 : old.index
107
94
  });
108
- };
95
+ });
96
+ };
109
97
 
110
- event.addEventListener('ended', fn);
111
- return function () {
112
- return event.removeEventListener('ended', fn);
113
- }; // eslint-disable-next-line react-hooks/exhaustive-deps
114
- }, [event, segments].concat(_toConsumableArray(deps)));
98
+ useVideoEvent('ended', endHandle, event);
99
+ useRegisterPlayerEvent(Events.PLAY_ENDED, endHandle, event);
115
100
  return {
116
101
  index: state.index,
117
102
  setIndex: function setIndex(i) {
@@ -214,21 +199,20 @@ function SegmentPlayer(_a) {
214
199
  var hasReady = api && event;
215
200
  var timeline = customTimeLine !== null && customTimeLine !== void 0 ? customTimeLine : /*#__PURE__*/React.createElement(SegmentTimeLine, {
216
201
  begin: begin,
217
- api: api,
218
- event: event,
219
202
  seekTo: seekTo,
220
203
  index: index,
221
204
  segments: segments,
222
- duration: duration,
223
- setIndex: setIndex
205
+ duration: duration
224
206
  });
225
207
  var onInit = useCallback(function () {
226
208
  update();
227
209
  onCanPlayerInit === null || onCanPlayerInit === void 0 ? void 0 : onCanPlayerInit(); // eslint-disable-next-line react-hooks/exhaustive-deps
228
210
  }, []);
211
+ console.log(playRef);
229
212
  return /*#__PURE__*/React.createElement(SinglePlayer, Object.assign({
230
213
  ref: playRef,
231
214
  url: url,
215
+ isLive: false,
232
216
  onCanPlayerInit: onInit,
233
217
  reload: reload,
234
218
  extActions: {
@@ -1,17 +1,12 @@
1
1
  /// <reference types="react" />
2
- import type Api from './api';
3
- import type VideoEventInstance from './event';
4
2
  import type { ISegmentType } from './player';
5
3
  import './style/timeline.less';
6
4
  interface ITimeLineProps {
7
- api: Api;
8
- event: VideoEventInstance;
9
5
  index: number;
10
6
  segments: ISegmentType[];
11
7
  duration: number;
12
- setIndex: (i: number) => void;
13
8
  begin: number;
14
9
  seekTo: (time: number) => void;
15
10
  }
16
- declare function SegmentTimeLine({ api, event, index, segments, duration, begin, setIndex, seekTo }: ITimeLineProps): JSX.Element;
11
+ declare function SegmentTimeLine({ index, segments, duration, begin, seekTo }: ITimeLineProps): JSX.Element;
17
12
  export default SegmentTimeLine;
@@ -13,25 +13,29 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
13
13
 
14
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
15
 
16
- import React, { useCallback, useMemo } from 'react';
16
+ import React, { useCallback, useContext, useMemo } from 'react';
17
17
  import { useTimes } from './timeline';
18
18
  import useBarStatus from './contraller_bar/useBarStatus';
19
19
  import moment from 'moment';
20
20
  import { FMT } from './util';
21
+ import { Context } from './context';
21
22
  import "./style/timeline.css";
22
23
 
23
24
  function SegmentTimeLine(_ref) {
24
- var api = _ref.api,
25
- event = _ref.event,
26
- index = _ref.index,
25
+ var index = _ref.index,
27
26
  segments = _ref.segments,
28
27
  duration = _ref.duration,
29
28
  begin = _ref.begin,
30
- setIndex = _ref.setIndex,
31
29
  seekTo = _ref.seekTo;
30
+
31
+ var _useContext = useContext(Context),
32
+ api = _useContext.api,
33
+ event = _useContext.event,
34
+ isFpsPlay = _useContext.isFpsPlay;
35
+
32
36
  var status = useBarStatus(event);
33
37
 
34
- var _useTimes = useTimes(api, event),
38
+ var _useTimes = useTimes(api, event, isFpsPlay),
35
39
  _useTimes2 = _slicedToArray(_useTimes, 2),
36
40
  currentTime = _useTimes2[0],
37
41
  buffered = _useTimes2[1];
@@ -62,7 +66,7 @@ function SegmentTimeLine(_ref) {
62
66
  var duration = segments[i].endTime - segments[i].beginTime;
63
67
  var currentTime = current / rect.width * duration;
64
68
  seekTo(Math.round(currentTime + pTime));
65
- }, [segments, api, index, setIndex]);
69
+ }, [segments, begin, seekTo]);
66
70
  return /*#__PURE__*/React.createElement("div", {
67
71
  className: "player-timeline-layout player-segment-timeline-layout ".concat(status === 0 ? 'hide-time-line' : '')
68
72
  }, /*#__PURE__*/React.createElement("div", {
@@ -1,3 +1,4 @@
1
+ import _useUpdateEffect from "ahooks/es/useUpdateEffect";
1
2
  import _useToggle3 from "ahooks/es/useToggle";
2
3
 
3
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -24,6 +25,8 @@ import VideoMessage from './message';
24
25
  import useErrorEvent from './event/errorEvent';
25
26
  import { getVideoType, playReload, playUnload } from './util';
26
27
  import Timeline from './timeline';
28
+ import FPSPlay from './fps_play';
29
+ import { Provider } from './context';
27
30
  import "./style/index.css";
28
31
  var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
29
32
  var _b;
@@ -53,10 +56,13 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
53
56
  var flvConfig = props.flvConfig,
54
57
  hlsConfig = props.hlsConfig,
55
58
  videoEvents = props.videoEvents,
56
- playerEvents = props.playerEvents;
59
+ playerEvents = props.playerEvents,
60
+ oneFpsPlay = props.oneFpsPlay,
61
+ fpsDelay = props.fpsDelay;
57
62
 
58
63
  var _useState = useState({
59
- container: null
64
+ container: null,
65
+ isFpsPlay: false
60
66
  }),
61
67
  _useState2 = _slicedToArray(_useState, 2),
62
68
  state = _useState2[0],
@@ -111,6 +117,23 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
111
117
 
112
118
  var unload = function unload() {
113
119
  return playUnload(video, flv, hls);
120
+ };
121
+
122
+ var openFpsPlay = function openFpsPlay() {
123
+ setState(function (old) {
124
+ return Object.assign(Object.assign({}, old), {
125
+ isFpsPlay: true
126
+ });
127
+ });
128
+ api.pause();
129
+ };
130
+
131
+ var closeFpsPlay = function closeFpsPlay() {
132
+ return setState(function (old) {
133
+ return Object.assign(Object.assign({}, old), {
134
+ isFpsPlay: false
135
+ });
136
+ });
114
137
  }; // 合并api,加上代理
115
138
 
116
139
 
@@ -122,7 +145,9 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
122
145
  var map = Object.assign({
123
146
  reload: reload,
124
147
  unload: unload,
125
- toggleFit: toggle
148
+ toggleFit: toggle,
149
+ openFpsPlay: openFpsPlay,
150
+ closeFpsPlay: closeFpsPlay
126
151
  }, extActions);
127
152
  return new Proxy(api, {
128
153
  get: function get(target, key) {
@@ -161,13 +186,12 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
161
186
  fit: fit
162
187
  };
163
188
  }, [video, state.container, playApi, playEvent, flv, hls, fit]);
164
- useEffect(function () {
165
- if (api && event && video) {
166
- onCanPlayerInit === null || onCanPlayerInit === void 0 ? void 0 : onCanPlayerInit();
167
- } // eslint-disable-next-line react-hooks/exhaustive-deps
168
189
 
190
+ _useUpdateEffect(function () {
191
+ return api && event && video ? onCanPlayerInit === null || onCanPlayerInit === void 0 ? void 0 : onCanPlayerInit() : undefined;
169
192
  }, [api, event, video]); // 补货视频错误,自定义处理
170
193
 
194
+
171
195
  useErrorEvent({
172
196
  unload: unload,
173
197
  flv: flv,
@@ -183,44 +207,59 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
183
207
  event: event,
184
208
  isLive: isLive
185
209
  });
186
- return /*#__PURE__*/React.createElement("div", {
187
- className: "lm-player-container ".concat(className),
188
- ref: domRef
189
- }, /*#__PURE__*/React.createElement("div", {
190
- className: "player-mask-layout"
191
- }, /*#__PURE__*/React.createElement("video", {
192
- style: {
193
- objectFit: fit
194
- },
195
- autoPlay: autoPlay,
210
+ var videoProps = {
211
+ autoPlay: state.isFpsPlay ? false : autoPlay,
196
212
  preload: preload,
197
- muted: muted,
213
+ muted: state.isFpsPlay ? false : muted,
198
214
  poster: poster,
199
215
  controls: false,
200
216
  playsInline: playsInline,
201
- loop: loop
202
- })), api && event && hasLink && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(VideoMessage, {
203
- api: playApi,
204
- event: event
205
- }), !hideContrallerBar && /*#__PURE__*/React.createElement(ContrallerEvent, {
206
- event: event,
207
- container: state.container
208
- }, /*#__PURE__*/React.createElement(ContrallerBar, {
209
- api: playApi,
210
- event: event,
211
- isLive: isLive,
212
- container: state.container,
217
+ loop: state.isFpsPlay ? false : loop
218
+ };
219
+ var contrallerProps = {
213
220
  rightExtContents: rightExtContents,
214
221
  rightMidExtContents: rightMidExtContents,
215
- leftExtContents: leftExtContents,
216
222
  leftMidExtContents: leftMidExtContents,
223
+ leftExtContents: leftExtContents,
217
224
  reload: (_b = props.reload) !== null && _b !== void 0 ? _b : reload,
218
- hideTimeProgress: !!customTimeLine
219
- })), customTimeLine ? customTimeLine : !hideContrallerBar ? /*#__PURE__*/React.createElement(Timeline, {
225
+ hideTimeProgress: !!customTimeLine,
226
+ oneFpsPlay: oneFpsPlay
227
+ };
228
+ return /*#__PURE__*/React.createElement(Provider, {
229
+ api: playApi,
230
+ event: event,
231
+ container: state.container,
232
+ isLive: isLive,
233
+ isFpsPlay: state.isFpsPlay
234
+ }, /*#__PURE__*/React.createElement("div", {
235
+ className: "lm-player-container ".concat(className),
236
+ ref: domRef
237
+ }, /*#__PURE__*/React.createElement("div", {
238
+ className: "player-mask-layout"
239
+ }, /*#__PURE__*/React.createElement("video", Object.assign({}, videoProps, {
240
+ style: {
241
+ objectFit: fit,
242
+ visibility: state.isFpsPlay ? 'hidden' : 'unset'
243
+ }
244
+ })), api && event && hasLink && state.isFpsPlay ? /*#__PURE__*/React.createElement(FPSPlay, {
245
+ event: event,
246
+ api: playApi,
247
+ fpsDelay: fpsDelay
248
+ }) : /*#__PURE__*/React.createElement(Empty, null)), api && event && hasLink ? /*#__PURE__*/React.createElement(VideoMessage, {
249
+ api: playApi,
250
+ event: event
251
+ }) : /*#__PURE__*/React.createElement(Empty, null), api && event && hasLink && !hideContrallerBar ? /*#__PURE__*/React.createElement(ContrallerEvent, {
252
+ children: /*#__PURE__*/React.createElement(ContrallerBar, Object.assign({}, contrallerProps))
253
+ }) : /*#__PURE__*/React.createElement(Empty, null), customTimeLine ? customTimeLine : !hideContrallerBar ? /*#__PURE__*/React.createElement(Timeline, {
220
254
  api: playApi,
221
255
  event: event
222
- }) : null), children);
256
+ }) : /*#__PURE__*/React.createElement(Empty, null), children));
223
257
  });
258
+
259
+ function Empty() {
260
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
261
+ }
262
+
224
263
  SinglePlayer.defaultProps = {
225
264
  isLive: true,
226
265
  errorReloadTimer: 5,
@@ -236,6 +275,8 @@ SinglePlayer.defaultProps = {
236
275
  config: {}
237
276
  },
238
277
  hlsConfig: {},
239
- extActions: {}
278
+ extActions: {},
279
+ oneFpsPlay: false,
280
+ fpsDelay: 100
240
281
  };
241
282
  export default SinglePlayer;
@@ -34,4 +34,5 @@
34
34
  line-height: 28px;
35
35
  color: #fff;
36
36
  font-size: 10px;
37
+ padding: 0 6px;
37
38
  }
@@ -8,6 +8,14 @@
8
8
  .lm-player-container .lm-player-iconfont {
9
9
  color: #fff;
10
10
  }
11
+ .lm-player-container .fps-play-canvas {
12
+ width: 100%;
13
+ height: 100%;
14
+ position: absolute;
15
+ left: 0;
16
+ top: 0;
17
+ background-color: #000;
18
+ }
11
19
  .lm-player-container .player-mask-layout {
12
20
  width: 100%;
13
21
  height: 100%;
@@ -6,6 +6,6 @@ interface ITimeLineProps {
6
6
  api: Api;
7
7
  event: VideoEventInstance;
8
8
  }
9
- export declare function useTimes(api: Api, event: VideoEventInstance, isHide?: boolean): number[];
9
+ export declare function useTimes(api: Api, event: VideoEventInstance, isFpsPlay?: boolean): number[];
10
10
  declare function TimeLine({ api, event }: ITimeLineProps): JSX.Element;
11
11
  export default TimeLine;
@@ -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);
@@ -157,7 +157,6 @@ function LivePlayer(_a) {
157
157
 
158
158
  return /*#__PURE__*/React.createElement(LivePlayerWithExt, Object.assign({}, item, {
159
159
  mode: (_a = item.mode) !== null && _a !== void 0 ? _a : state.modes[index],
160
- isLive: true,
161
160
  key: "".concat(item.url, "-").concat(index),
162
161
  updatePlayer: function updatePlayer(player) {
163
162
  return playerRef.current[index] = player;
@@ -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,
@@ -436,7 +436,6 @@ function RecordPlayer(_a) {
436
436
  begin: timeBegin,
437
437
  updateState: updateState,
438
438
  segments: segmentItem.segments,
439
- key: state.selectIndex,
440
439
  onTimeChange: onTimeChange,
441
440
  timeMode: state.timeMode
442
441
  }))), children && /*#__PURE__*/React.cloneElement(children, {
@@ -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) {
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;