@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.
- package/.umirc.ts +1 -1
- package/es/DisableMark/index.d.ts +2 -1
- package/es/DisableMark/index.js +6 -2
- package/es/Map/BasicMap/AMapInstance.d.ts +3 -0
- package/es/Map/BasicMap/AMapInstance.js +16 -1
- package/es/Map/BasicMap/LeafletInstance.d.ts +4 -1
- package/es/Map/BasicMap/LeafletInstance.js +17 -2
- package/es/Map/LevelCenter/index.d.ts +3 -0
- package/es/Map/LevelCenter/index.js +29 -9
- package/es/Map/SinglePoint/index.js +8 -5
- package/es/Map/hook/useMapEvent.d.ts +2 -0
- package/es/Map/hook/useMapEvent.js +23 -0
- package/es/Map/interface.d.ts +3 -0
- 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.d.ts +3 -3
- package/es/Player/event/errorEvent.js +39 -40
- 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.d.ts +4 -4
- package/es/Player/live_heart.js +10 -7
- 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 +94 -49
- 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.d.ts +1 -1
- package/es/ScreenPlayer/Live.js +6 -3
- package/es/ScreenPlayer/LiveTools.d.ts +9 -1
- package/es/ScreenPlayer/LiveTools.js +6 -3
- package/es/ScreenPlayer/PlayerWithExt.d.ts +1 -1
- package/es/ScreenPlayer/PlayerWithExt.js +2 -4
- package/es/ScreenPlayer/Record.d.ts +1 -1
- package/es/ScreenPlayer/Record.js +8 -4
- package/es/ScreenPlayer/RecordTools.d.ts +9 -1
- package/es/ScreenPlayer/RecordTools.js +5 -3
- package/es/ScreenPlayer/demo2.js +1 -1
- package/es/ScreenPlayer/interface.d.ts +51 -0
- 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
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);
|
|
@@ -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[];
|
package/es/ScreenPlayer/Live.js
CHANGED
|
@@ -38,7 +38,9 @@ function LivePlayer(_a) {
|
|
|
38
38
|
defaultScreen = _a.defaultScreen,
|
|
39
39
|
screenChange = _a.screenChange,
|
|
40
40
|
defaultSelectIndex = _a.defaultSelectIndex,
|
|
41
|
-
|
|
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,
|
|
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,
|
|
@@ -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
|
-
|
|
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, {
|
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) {
|
|
@@ -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,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
|
@@ -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
|
-
};
|