@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.
- package/.umirc.ts +1 -1
- package/es/Map/hook/useMapEvent.js +9 -8
- package/es/Player/api/index.d.ts +3 -1
- package/es/Player/api/index.js +27 -24
- package/es/Player/context.d.ts +21 -0
- package/es/Player/context.js +16 -0
- package/es/Player/contraller_bar/contraller_event.d.ts +1 -4
- package/es/Player/contraller_bar/contraller_event.js +37 -28
- package/es/Player/contraller_bar/index.d.ts +2 -7
- package/es/Player/contraller_bar/index.js +4 -12
- package/es/Player/contraller_bar/left_bar.d.ts +2 -7
- package/es/Player/contraller_bar/left_bar.js +26 -23
- package/es/Player/contraller_bar/right_bar.d.ts +1 -6
- package/es/Player/contraller_bar/right_bar.js +6 -3
- package/es/Player/contraller_bar/useBarStatus.js +17 -24
- package/es/Player/demo.js +5 -1
- package/es/Player/event/errorEvent.js +34 -43
- package/es/Player/event/eventName.d.ts +17 -2
- package/es/Player/event/eventName.js +5 -1
- package/es/Player/event/index.d.ts +2 -0
- package/es/Player/event/index.js +55 -3
- package/es/Player/fps_play.d.ts +10 -0
- package/es/Player/fps_play.js +80 -0
- package/es/Player/frontend_player.js +0 -2
- package/es/Player/frontend_timeline.d.ts +1 -5
- package/es/Player/frontend_timeline.js +8 -4
- package/es/Player/live_heart.js +1 -1
- package/es/Player/message.js +69 -84
- package/es/Player/player.d.ts +10 -15
- package/es/Player/segment_player.js +13 -29
- package/es/Player/segment_timeline.d.ts +1 -6
- package/es/Player/segment_timeline.js +11 -7
- package/es/Player/single_player.js +76 -35
- package/es/Player/style/bar.css +1 -0
- package/es/Player/style/index.css +8 -0
- package/es/Player/timeline.d.ts +1 -1
- package/es/Player/timeline.js +26 -37
- package/es/Player/util.d.ts +1 -1
- package/es/Player/util.js +2 -5
- package/es/ScreenPlayer/Live.js +0 -1
- package/es/ScreenPlayer/PlayerWithExt.d.ts +1 -1
- package/es/ScreenPlayer/PlayerWithExt.js +2 -4
- package/es/ScreenPlayer/Record.js +0 -1
- package/es/ScreenPlayer/demo2.js +1 -1
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/useRafInterval/index.d.ts +5 -0
- package/es/useRafInterval/index.js +94 -0
- package/package.json +1 -1
- package/es/Player/event/browserTabEvent.d.ts +0 -9
- 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
|
-
|
|
98
|
-
|
|
99
|
-
return
|
|
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
|
-
|
|
111
|
-
|
|
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({
|
|
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
|
|
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,
|
|
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
|
-
|
|
187
|
-
|
|
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
|
-
}
|
|
203
|
-
|
|
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
|
-
|
|
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;
|
package/es/Player/style/bar.css
CHANGED
|
@@ -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%;
|
package/es/Player/timeline.d.ts
CHANGED
|
@@ -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,
|
|
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;
|
package/es/Player/timeline.js
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
var seekendPlay = function seekendPlay() {
|
|
44
|
+
return !isFpsPlay && api.play();
|
|
45
|
+
};
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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;
|
package/es/Player/util.d.ts
CHANGED
|
@@ -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:
|
|
22
|
-
fragLoadingMaxRetry: 0,
|
|
23
|
-
manifestLoadingMaxRetry: 0,
|
|
24
|
-
levelLoadingMaxRetry: 0,
|
|
21
|
+
liveDurationInfinity: isLive,
|
|
25
22
|
enableWorker: true
|
|
26
23
|
}, hlsConfig));
|
|
27
24
|
player.loadSource(url);
|
package/es/ScreenPlayer/Live.js
CHANGED
|
@@ -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,
|
|
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", "
|
|
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:
|
|
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, {
|
package/es/ScreenPlayer/demo2.js
CHANGED
|
@@ -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.
|
|
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';
|