@cloud-app-dev/vidc 3.0.15 → 3.0.17
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/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 +22 -0
- package/es/Map/interface.d.ts +3 -0
- package/es/Player/event/errorEvent.d.ts +3 -3
- package/es/Player/event/errorEvent.js +22 -14
- package/es/Player/live_heart.d.ts +4 -4
- package/es/Player/live_heart.js +10 -7
- package/es/Player/message.js +1 -1
- package/es/Player/single_player.js +20 -16
- package/es/ScreenPlayer/Live.d.ts +1 -1
- package/es/ScreenPlayer/Live.js +37 -19
- package/es/ScreenPlayer/LiveTools.d.ts +9 -1
- package/es/ScreenPlayer/LiveTools.js +6 -3
- package/es/ScreenPlayer/Record.d.ts +1 -1
- package/es/ScreenPlayer/Record.js +41 -23
- package/es/ScreenPlayer/RecordTools.d.ts +9 -1
- package/es/ScreenPlayer/RecordTools.js +5 -3
- package/es/ScreenPlayer/interface.d.ts +55 -0
- package/package.json +3 -1
|
@@ -3,6 +3,7 @@ import './index.less';
|
|
|
3
3
|
interface IDisableMarkProps {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
disabled: boolean;
|
|
6
|
+
width?: string | number;
|
|
6
7
|
}
|
|
7
|
-
export default function DisableMark({ children, disabled }: IDisableMarkProps): JSX.Element;
|
|
8
|
+
export default function DisableMark({ children, disabled, width }: IDisableMarkProps): JSX.Element;
|
|
8
9
|
export {};
|
package/es/DisableMark/index.js
CHANGED
|
@@ -2,8 +2,12 @@ import React from 'react';
|
|
|
2
2
|
import "./index.css";
|
|
3
3
|
export default function DisableMark(_ref) {
|
|
4
4
|
var children = _ref.children,
|
|
5
|
-
disabled = _ref.disabled
|
|
5
|
+
disabled = _ref.disabled,
|
|
6
|
+
width = _ref.width;
|
|
6
7
|
return /*#__PURE__*/React.createElement(React.Fragment, null, disabled ? /*#__PURE__*/React.createElement("div", {
|
|
7
|
-
className: "disable-mark"
|
|
8
|
+
className: "disable-mark",
|
|
9
|
+
style: {
|
|
10
|
+
width: width
|
|
11
|
+
}
|
|
8
12
|
}) : null, children);
|
|
9
13
|
}
|
|
@@ -12,5 +12,8 @@ declare class AMapInstance implements IMapInstance {
|
|
|
12
12
|
getZoom(): number;
|
|
13
13
|
setCenter(center: [number, number]): void;
|
|
14
14
|
setZoomAndCenter(zoom: number, center: [number, number]): void;
|
|
15
|
+
on(type: string, fn: (e: any) => void): void;
|
|
16
|
+
off(type: string, fn: (e: any) => void): void;
|
|
17
|
+
setCursor(cursor: string): void;
|
|
15
18
|
}
|
|
16
19
|
export default AMapInstance;
|
|
@@ -66,13 +66,28 @@ var AMapInstance = /*#__PURE__*/function () {
|
|
|
66
66
|
}, {
|
|
67
67
|
key: "setCenter",
|
|
68
68
|
value: function setCenter(center) {
|
|
69
|
-
|
|
69
|
+
this.map.setCenter(center);
|
|
70
70
|
}
|
|
71
71
|
}, {
|
|
72
72
|
key: "setZoomAndCenter",
|
|
73
73
|
value: function setZoomAndCenter(zoom, center) {
|
|
74
74
|
this.map.setZoomAndCenter(zoom, center);
|
|
75
75
|
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "on",
|
|
78
|
+
value: function on(type, fn) {
|
|
79
|
+
this.map.on(type, fn);
|
|
80
|
+
}
|
|
81
|
+
}, {
|
|
82
|
+
key: "off",
|
|
83
|
+
value: function off(type, fn) {
|
|
84
|
+
this.map.off(type, fn);
|
|
85
|
+
}
|
|
86
|
+
}, {
|
|
87
|
+
key: "setCursor",
|
|
88
|
+
value: function setCursor(cursor) {
|
|
89
|
+
this.map.setDefaultCursor(cursor);
|
|
90
|
+
}
|
|
76
91
|
}]);
|
|
77
92
|
|
|
78
93
|
return AMapInstance;
|
|
@@ -8,8 +8,11 @@ declare class LeafletInstance implements IMapInstance {
|
|
|
8
8
|
destoryMap(): void;
|
|
9
9
|
setZoomAndCenter(zoom: number, center: [number, number] | LatLng): void;
|
|
10
10
|
mapReset(): void;
|
|
11
|
-
setZoom(zoom: number):
|
|
11
|
+
setZoom(zoom: number): void;
|
|
12
12
|
setCenter(center: [number, number] | LatLng): void;
|
|
13
13
|
getZoom(): number;
|
|
14
|
+
on(type: string, fn: (event: any) => void): void;
|
|
15
|
+
off(type: string, fn: (event: any) => void): void;
|
|
16
|
+
setCursor(cursor: string): void;
|
|
14
17
|
}
|
|
15
18
|
export default LeafletInstance;
|
|
@@ -78,18 +78,33 @@ var LeafletInstance = /*#__PURE__*/function () {
|
|
|
78
78
|
}, {
|
|
79
79
|
key: "setZoom",
|
|
80
80
|
value: function setZoom(zoom) {
|
|
81
|
-
|
|
81
|
+
this.map.setZoom(zoom);
|
|
82
82
|
}
|
|
83
83
|
}, {
|
|
84
84
|
key: "setCenter",
|
|
85
85
|
value: function setCenter(center) {
|
|
86
|
-
|
|
86
|
+
this.map.setCenter(center);
|
|
87
87
|
}
|
|
88
88
|
}, {
|
|
89
89
|
key: "getZoom",
|
|
90
90
|
value: function getZoom() {
|
|
91
91
|
return this.map.getZoom();
|
|
92
92
|
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "on",
|
|
95
|
+
value: function on(type, fn) {
|
|
96
|
+
this.map.on(type, fn);
|
|
97
|
+
}
|
|
98
|
+
}, {
|
|
99
|
+
key: "off",
|
|
100
|
+
value: function off(type, fn) {
|
|
101
|
+
this.map.off(type, fn);
|
|
102
|
+
}
|
|
103
|
+
}, {
|
|
104
|
+
key: "setCursor",
|
|
105
|
+
value: function setCursor(cursor) {
|
|
106
|
+
this.map.setDefaultCursor(cursor);
|
|
107
|
+
}
|
|
93
108
|
}]);
|
|
94
109
|
|
|
95
110
|
return LeafletInstance;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { LatLng, MapPoint } from '../interface';
|
|
2
3
|
import './index.less';
|
|
3
4
|
export interface ILevelCenter {
|
|
4
5
|
center?: [number, number];
|
|
5
6
|
zoom?: number;
|
|
6
7
|
points: MapPoint[];
|
|
8
|
+
enableClick?: boolean;
|
|
7
9
|
onLevelCenterChange?: (options: {
|
|
8
10
|
center: [number, number] | LatLng;
|
|
9
11
|
zoom: number;
|
|
10
12
|
}) => void;
|
|
13
|
+
children?: React.ReactNode;
|
|
11
14
|
}
|
|
12
15
|
declare const _default: (props: ILevelCenter) => JSX.Element;
|
|
13
16
|
export default _default;
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _useMount from "ahooks/es/useMount";
|
|
2
|
+
import React, { useCallback, useContext, useMemo } from 'react';
|
|
2
3
|
import ClusterLayer from '../ClusterLayer';
|
|
3
|
-
import FindPio from '../FindPio';
|
|
4
4
|
import ResetTools from '../ResetTools';
|
|
5
5
|
import DragMarker from './DragMarker';
|
|
6
6
|
import withMap from '../withMap';
|
|
7
7
|
import { mapContext } from '../Context';
|
|
8
|
+
import useMapEvent from '../hook/useMapEvent';
|
|
8
9
|
import "./index.css";
|
|
9
10
|
|
|
10
11
|
function LevelCenter(_ref) {
|
|
11
12
|
var center = _ref.center,
|
|
12
13
|
zoom = _ref.zoom,
|
|
13
14
|
points = _ref.points,
|
|
14
|
-
onLevelCenterChange = _ref.onLevelCenterChange
|
|
15
|
+
onLevelCenterChange = _ref.onLevelCenterChange,
|
|
16
|
+
enableClick = _ref.enableClick,
|
|
17
|
+
children = _ref.children;
|
|
15
18
|
|
|
16
19
|
var _useContext = useContext(mapContext),
|
|
17
20
|
instance = _useContext.instance;
|
|
@@ -21,22 +24,39 @@ function LevelCenter(_ref) {
|
|
|
21
24
|
}, [center, instance]);
|
|
22
25
|
var defaultZoom = useMemo(function () {
|
|
23
26
|
return zoom || instance.config.zoom;
|
|
24
|
-
}, [zoom, instance]);
|
|
27
|
+
}, [zoom, instance]); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
|
+
|
|
25
29
|
var mapRest = useCallback(function () {
|
|
26
30
|
return instance.setZoomAndCenter(defaultZoom, defaultCenter);
|
|
27
31
|
}, [defaultZoom, defaultCenter]);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
|
|
33
|
+
_useMount(function () {
|
|
34
|
+
if (enableClick) {
|
|
35
|
+
instance.setCursor('pointer');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
mapRest();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
useMapEvent('click', function (event) {
|
|
42
|
+
if (enableClick) {
|
|
43
|
+
var _center = [event.lnglat.lng, event.lnglat.lat];
|
|
44
|
+
instance.setCenter(_center);
|
|
45
|
+
onLevelCenterChange === null || onLevelCenterChange === void 0 ? void 0 : onLevelCenterChange({
|
|
46
|
+
center: _center,
|
|
47
|
+
zoom: defaultZoom
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
});
|
|
31
51
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ClusterLayer, {
|
|
32
52
|
points: points
|
|
33
|
-
}), /*#__PURE__*/React.createElement(
|
|
53
|
+
}), /*#__PURE__*/React.createElement(ResetTools, {
|
|
34
54
|
onMapReset: mapRest
|
|
35
55
|
}), /*#__PURE__*/React.createElement(DragMarker, {
|
|
36
56
|
center: defaultCenter,
|
|
37
57
|
zoom: defaultZoom,
|
|
38
58
|
onChange: onLevelCenterChange
|
|
39
|
-
}));
|
|
59
|
+
}), children);
|
|
40
60
|
}
|
|
41
61
|
|
|
42
62
|
export default withMap(LevelCenter, 'lv-center-map-container');
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _useMount from "ahooks/es/useMount";
|
|
2
|
+
import React, { useCallback, useContext, useMemo } from 'react';
|
|
2
3
|
import ResetTools from '../ResetTools';
|
|
3
4
|
import Marker from './Marker';
|
|
4
5
|
import withMap from '../withMap';
|
|
@@ -15,13 +16,15 @@ function SinglePoint(_ref) {
|
|
|
15
16
|
var type = useMapType();
|
|
16
17
|
var defaultCenter = useMemo(function () {
|
|
17
18
|
return type.AMap ? [point.longitude, point.latitude] : [point.latitude, point.longitude];
|
|
18
|
-
}, [
|
|
19
|
+
}, [type.AMap, point.longitude, point.latitude]);
|
|
19
20
|
var mapRest = useCallback(function () {
|
|
20
21
|
return instance.setZoomAndCenter(instance.config.zoom, defaultCenter);
|
|
21
|
-
}, [defaultCenter]);
|
|
22
|
-
|
|
22
|
+
}, [defaultCenter, instance]);
|
|
23
|
+
|
|
24
|
+
_useMount(function () {
|
|
23
25
|
return mapRest();
|
|
24
|
-
}
|
|
26
|
+
});
|
|
27
|
+
|
|
25
28
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResetTools, {
|
|
26
29
|
onMapReset: mapRest
|
|
27
30
|
}), /*#__PURE__*/React.createElement(Marker, {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import _useCreation from "ahooks/es/useCreation";
|
|
2
|
+
import { useContext, useEffect } from 'react';
|
|
3
|
+
import { mapContext } from '../Context';
|
|
4
|
+
|
|
5
|
+
function useMapEvent(type, fn) {
|
|
6
|
+
var action = _useCreation(function () {
|
|
7
|
+
return fn;
|
|
8
|
+
}, []);
|
|
9
|
+
|
|
10
|
+
var _useContext = useContext(mapContext),
|
|
11
|
+
instance = _useContext.instance;
|
|
12
|
+
|
|
13
|
+
useEffect(function () {
|
|
14
|
+
console.log(11111);
|
|
15
|
+
instance.on(type, action);
|
|
16
|
+
return function () {
|
|
17
|
+
return instance.off(type, action);
|
|
18
|
+
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
19
|
+
}, []);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default useMapEvent;
|
package/es/Map/interface.d.ts
CHANGED
|
@@ -32,6 +32,9 @@ export class IMapInstance {
|
|
|
32
32
|
setCenter(center: [number, number] | LatLng): void;
|
|
33
33
|
getZoom(): number;
|
|
34
34
|
setZoomAndCenter(zoom: number, center: [number, number] | LatLng): void;
|
|
35
|
+
on(type: string, fn: (e: any) => void): void;
|
|
36
|
+
off(type: string, fn: (e: any) => void): void;
|
|
37
|
+
setCursor(cursor: string);
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
export interface MapPoint {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type VideoEventInstance from '.';
|
|
3
2
|
import type Api from '../api';
|
|
4
3
|
import Flvjs from '@cloud-app-dev/flv.js';
|
|
@@ -11,6 +10,7 @@ interface IErrorEventProps {
|
|
|
11
10
|
hls: Hls;
|
|
12
11
|
reload: () => void;
|
|
13
12
|
unload: () => void;
|
|
13
|
+
errorHandleAdapter?: (errorInfo: any) => boolean;
|
|
14
14
|
}
|
|
15
|
-
declare function
|
|
16
|
-
export default
|
|
15
|
+
declare function useErrorEvent({ event, api, reload, unload, errorReloadTimer, flv, hls, errorHandleAdapter }: IErrorEventProps): void;
|
|
16
|
+
export default useErrorEvent;
|
|
@@ -18,19 +18,20 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
18
18
|
|
|
19
19
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
20
|
|
|
21
|
-
import
|
|
21
|
+
import { useState, useEffect, useRef } from 'react';
|
|
22
22
|
import EventName from './eventName';
|
|
23
23
|
import Flvjs from '@cloud-app-dev/flv.js';
|
|
24
24
|
import Hls from 'hls.js';
|
|
25
25
|
|
|
26
|
-
function
|
|
26
|
+
function useErrorEvent(_ref) {
|
|
27
27
|
var event = _ref.event,
|
|
28
28
|
api = _ref.api,
|
|
29
29
|
reload = _ref.reload,
|
|
30
30
|
unload = _ref.unload,
|
|
31
31
|
errorReloadTimer = _ref.errorReloadTimer,
|
|
32
32
|
flv = _ref.flv,
|
|
33
|
-
hls = _ref.hls
|
|
33
|
+
hls = _ref.hls,
|
|
34
|
+
errorHandleAdapter = _ref.errorHandleAdapter;
|
|
34
35
|
|
|
35
36
|
var _useState = useState(0),
|
|
36
37
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -54,7 +55,10 @@ function ErrorEvent(_ref) {
|
|
|
54
55
|
(_console = console).error.apply(_console, args);
|
|
55
56
|
|
|
56
57
|
errorInfo.current = args;
|
|
57
|
-
|
|
58
|
+
|
|
59
|
+
if (!(errorHandleAdapter === null || errorHandleAdapter === void 0 ? void 0 : errorHandleAdapter(args))) {
|
|
60
|
+
setErrorTime(errorTimer + 1);
|
|
61
|
+
}
|
|
58
62
|
};
|
|
59
63
|
|
|
60
64
|
var reloadSuccess = function reloadSuccess() {
|
|
@@ -77,17 +81,22 @@ function ErrorEvent(_ref) {
|
|
|
77
81
|
hls.on(Hls.Events.ERROR, errorHandle);
|
|
78
82
|
}
|
|
79
83
|
|
|
80
|
-
event
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
if (event) {
|
|
85
|
+
event.on(EventName.ERROR, errorHandle);
|
|
86
|
+
event.on(EventName.CLEAR_ERROR_TIMER, clearErrorTimer);
|
|
87
|
+
event.addEventListener('error', errorHandle); //获取video状态清除错误状态
|
|
88
|
+
|
|
89
|
+
event.addEventListener('canplay', reloadSuccess);
|
|
90
|
+
}
|
|
83
91
|
|
|
84
|
-
event.addEventListener('canplay', reloadSuccess);
|
|
85
92
|
return function () {
|
|
86
93
|
// flv, hls事件不用主动销毁,库内部自己处理
|
|
87
|
-
event
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
if (event) {
|
|
95
|
+
event.off(EventName.ERROR, errorHandle);
|
|
96
|
+
event.removeEventListener('error', errorHandle);
|
|
97
|
+
event.removeEventListener('canplay', reloadSuccess);
|
|
98
|
+
}
|
|
99
|
+
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
91
100
|
}, [event, flv, hls, errorTimer]);
|
|
92
101
|
useEffect(function () {
|
|
93
102
|
if (errorTimer === 0) {
|
|
@@ -109,7 +118,6 @@ function ErrorEvent(_ref) {
|
|
|
109
118
|
clearTimeout(reloadTimer.current);
|
|
110
119
|
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
111
120
|
}, [errorTimer, api, event, flv, hls]);
|
|
112
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
113
121
|
}
|
|
114
122
|
|
|
115
|
-
export default
|
|
123
|
+
export default useErrorEvent;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type Api from './api';
|
|
3
2
|
import type VideoEventInstance from './event';
|
|
4
|
-
declare function
|
|
3
|
+
declare function useLiveHeart({ api, event, isLive }: {
|
|
5
4
|
api: Api;
|
|
6
5
|
event: VideoEventInstance;
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
isLive: boolean;
|
|
7
|
+
}): void;
|
|
8
|
+
export default useLiveHeart;
|
package/es/Player/live_heart.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import _useRafInterval from "ahooks/es/useRafInterval";
|
|
2
2
|
import _useUpdateEffect from "ahooks/es/useUpdateEffect";
|
|
3
3
|
import _useDocumentVisibility from "ahooks/es/useDocumentVisibility";
|
|
4
|
-
import
|
|
4
|
+
import { useRef } from 'react';
|
|
5
5
|
import Events from './event/eventName';
|
|
6
6
|
|
|
7
|
-
function
|
|
7
|
+
function useLiveHeart(_ref) {
|
|
8
8
|
var api = _ref.api,
|
|
9
|
-
event = _ref.event
|
|
9
|
+
event = _ref.event,
|
|
10
|
+
isLive = _ref.isLive;
|
|
10
11
|
|
|
11
12
|
var documentVisibility = _useDocumentVisibility();
|
|
12
13
|
|
|
13
14
|
var cTimeRef = useRef(null);
|
|
14
15
|
|
|
15
16
|
var run = function run() {
|
|
17
|
+
if (!isLive && documentVisibility !== 'visible') {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
16
21
|
var current = api.getCurrentTime();
|
|
17
22
|
var buffered = api.getSecondsLoaded();
|
|
18
23
|
|
|
@@ -38,12 +43,10 @@ function LiveHeart(_ref) {
|
|
|
38
43
|
_useRafInterval(function () {
|
|
39
44
|
var cuurentTime = api.getCurrentTime();
|
|
40
45
|
|
|
41
|
-
if (!api.video.paused && cuurentTime === cTimeRef.current) {
|
|
46
|
+
if (!!isLive && !api.video.paused && cuurentTime === cTimeRef.current) {
|
|
42
47
|
event.emit(Events.ERROR);
|
|
43
48
|
}
|
|
44
49
|
}, 20 * 1000);
|
|
45
|
-
|
|
46
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
47
50
|
}
|
|
48
51
|
|
|
49
|
-
export default
|
|
52
|
+
export default useLiveHeart;
|
package/es/Player/message.js
CHANGED
|
@@ -134,7 +134,7 @@ function VideoMessage(_ref) {
|
|
|
134
134
|
event.off(EventName.HISTORY_PLAY_END, playEnd);
|
|
135
135
|
event.off(EventName.CLEAR_ERROR_TIMER, reloadSuccess);
|
|
136
136
|
};
|
|
137
|
-
}, [event]);
|
|
137
|
+
}, [api, event]);
|
|
138
138
|
var loading = state.loading,
|
|
139
139
|
status = state.status;
|
|
140
140
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -19,9 +19,9 @@ import { usePlayerEvent, useRegisterPlayerEvents, useVideoEvents } from './event
|
|
|
19
19
|
import EventName from './event/eventName';
|
|
20
20
|
import ContrallerBar from './contraller_bar';
|
|
21
21
|
import ContrallerEvent from './contraller_bar/contraller_event';
|
|
22
|
-
import
|
|
22
|
+
import useLiveHeart from './live_heart';
|
|
23
23
|
import VideoMessage from './message';
|
|
24
|
-
import
|
|
24
|
+
import useErrorEvent from './event/errorEvent';
|
|
25
25
|
import { getVideoType, playReload, playUnload } from './util';
|
|
26
26
|
import Timeline from './timeline';
|
|
27
27
|
import "./style/index.css";
|
|
@@ -85,7 +85,6 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
85
85
|
_usePlayerApi2 = _slicedToArray(_usePlayerApi, 2),
|
|
86
86
|
api = _usePlayerApi2[0],
|
|
87
87
|
_usePlayerApi2$ = _slicedToArray(_usePlayerApi2[1], 3),
|
|
88
|
-
_ = _usePlayerApi2$[0],
|
|
89
88
|
flv = _usePlayerApi2$[1],
|
|
90
89
|
hls = _usePlayerApi2$[2]; // 判断是否有链接传入
|
|
91
90
|
|
|
@@ -167,7 +166,23 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
167
166
|
onCanPlayerInit === null || onCanPlayerInit === void 0 ? void 0 : onCanPlayerInit();
|
|
168
167
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
169
168
|
|
|
170
|
-
}, [api, event, video]);
|
|
169
|
+
}, [api, event, video]); // 补货视频错误,自定义处理
|
|
170
|
+
|
|
171
|
+
useErrorEvent({
|
|
172
|
+
unload: unload,
|
|
173
|
+
flv: flv,
|
|
174
|
+
hls: hls,
|
|
175
|
+
api: playApi,
|
|
176
|
+
event: event,
|
|
177
|
+
reload: reload,
|
|
178
|
+
errorReloadTimer: errorReloadTimer
|
|
179
|
+
}); // 直播缓冲追回
|
|
180
|
+
|
|
181
|
+
useLiveHeart({
|
|
182
|
+
api: playApi,
|
|
183
|
+
event: event,
|
|
184
|
+
isLive: isLive
|
|
185
|
+
});
|
|
171
186
|
return /*#__PURE__*/React.createElement("div", {
|
|
172
187
|
className: "lm-player-container ".concat(className),
|
|
173
188
|
ref: domRef
|
|
@@ -204,18 +219,7 @@ var SinglePlayer = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
204
219
|
})), customTimeLine ? customTimeLine : !hideContrallerBar ? /*#__PURE__*/React.createElement(Timeline, {
|
|
205
220
|
api: playApi,
|
|
206
221
|
event: event
|
|
207
|
-
}) : null,
|
|
208
|
-
unload: unload,
|
|
209
|
-
flv: flv,
|
|
210
|
-
hls: hls,
|
|
211
|
-
api: playApi,
|
|
212
|
-
event: event,
|
|
213
|
-
reload: reload,
|
|
214
|
-
errorReloadTimer: errorReloadTimer
|
|
215
|
-
}), isLive && /*#__PURE__*/React.createElement(LiveHeart, {
|
|
216
|
-
api: playApi,
|
|
217
|
-
event: playEvent
|
|
218
|
-
})), children);
|
|
222
|
+
}) : null), children);
|
|
219
223
|
});
|
|
220
224
|
SinglePlayer.defaultProps = {
|
|
221
225
|
isLive: true,
|
|
@@ -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 }: 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
|
@@ -20,6 +20,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
20
20
|
|
|
21
21
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
22
22
|
|
|
23
|
+
import { __rest } from "tslib";
|
|
23
24
|
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
24
25
|
import { ScreenType, mergeFill } from './utils';
|
|
25
26
|
import { LivePlayerWithExt } from './PlayerWithExt';
|
|
@@ -27,16 +28,19 @@ import Tools from './LiveTools';
|
|
|
27
28
|
import useVideoFit from './useVideoFit';
|
|
28
29
|
import "./index.css";
|
|
29
30
|
|
|
30
|
-
function LivePlayer(
|
|
31
|
-
var list =
|
|
32
|
-
children =
|
|
33
|
-
onIndexChange =
|
|
34
|
-
onClose =
|
|
35
|
-
onCloseAll =
|
|
36
|
-
snapshot =
|
|
37
|
-
defaultScreen =
|
|
38
|
-
screenChange =
|
|
39
|
-
defaultSelectIndex =
|
|
31
|
+
function LivePlayer(_a) {
|
|
32
|
+
var list = _a.list,
|
|
33
|
+
children = _a.children,
|
|
34
|
+
onIndexChange = _a.onIndexChange,
|
|
35
|
+
onClose = _a.onClose,
|
|
36
|
+
onCloseAll = _a.onCloseAll,
|
|
37
|
+
snapshot = _a.snapshot,
|
|
38
|
+
defaultScreen = _a.defaultScreen,
|
|
39
|
+
screenChange = _a.screenChange,
|
|
40
|
+
defaultSelectIndex = _a.defaultSelectIndex,
|
|
41
|
+
oneWinExtTools = _a.oneWinExtTools,
|
|
42
|
+
allWinExtTools = _a.allWinExtTools,
|
|
43
|
+
options = __rest(_a, ["list", "children", "onIndexChange", "onClose", "onCloseAll", "snapshot", "defaultScreen", "screenChange", "defaultSelectIndex", "oneWinExtTools", "allWinExtTools"]);
|
|
40
44
|
|
|
41
45
|
var _useState = useState({
|
|
42
46
|
screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : 4,
|
|
@@ -51,18 +55,24 @@ function LivePlayer(_ref) {
|
|
|
51
55
|
|
|
52
56
|
var _useVideoFit = useVideoFit(domRef, []),
|
|
53
57
|
fit = _useVideoFit.fit,
|
|
54
|
-
toggleFit = _useVideoFit.toggleFit; //
|
|
58
|
+
toggleFit = _useVideoFit.toggleFit; // 若外部来控制screenNum 则由外部完全控制
|
|
55
59
|
|
|
56
60
|
|
|
61
|
+
var screenNum = useMemo(function () {
|
|
62
|
+
var _a;
|
|
63
|
+
|
|
64
|
+
return (_a = options.screenNum) !== null && _a !== void 0 ? _a : state.screenNum;
|
|
65
|
+
}, [options.screenNum, state.screenNum]); // 缓存所有player对象
|
|
66
|
+
|
|
57
67
|
var playerRef = useRef([]);
|
|
58
68
|
var screenType = useMemo(function () {
|
|
59
69
|
return ScreenType.find(function (v) {
|
|
60
|
-
return v.name ===
|
|
70
|
+
return v.name === screenNum;
|
|
61
71
|
});
|
|
62
|
-
}, [
|
|
72
|
+
}, [screenNum]);
|
|
63
73
|
var screenList = useMemo(function () {
|
|
64
|
-
return mergeFill(
|
|
65
|
-
}, [list,
|
|
74
|
+
return mergeFill(screenNum, list, {});
|
|
75
|
+
}, [list, screenNum]); // 获取选中player对象
|
|
66
76
|
|
|
67
77
|
var getPlayerItem = function getPlayerItem() {
|
|
68
78
|
var _a;
|
|
@@ -75,9 +85,15 @@ function LivePlayer(_ref) {
|
|
|
75
85
|
var obj = {};
|
|
76
86
|
|
|
77
87
|
if (newState.hasOwnProperty('screenNum')) {
|
|
78
|
-
|
|
88
|
+
if (options.screenNum) {
|
|
89
|
+
// 若外部控制,不需要update state
|
|
90
|
+
screenChange === null || screenChange === void 0 ? void 0 : screenChange(newState.screenNum);
|
|
91
|
+
} else {
|
|
92
|
+
obj.screenNum = newState.screenNum;
|
|
93
|
+
} // 修正选中索引
|
|
94
|
+
|
|
79
95
|
|
|
80
|
-
if (
|
|
96
|
+
if (newState.screenNum < state.selectIndex) {
|
|
81
97
|
obj.selectIndex = 0;
|
|
82
98
|
}
|
|
83
99
|
}
|
|
@@ -166,11 +182,13 @@ function LivePlayer(_ref) {
|
|
|
166
182
|
disabled: !segmentItem.url,
|
|
167
183
|
toggleFit: toggleFit,
|
|
168
184
|
getPlayerItem: getPlayerItem,
|
|
169
|
-
screenNum:
|
|
185
|
+
screenNum: screenNum,
|
|
170
186
|
mode: state.modes[state.selectIndex],
|
|
171
187
|
containerRef: domRef,
|
|
172
188
|
updateState: updateState,
|
|
173
|
-
snapshot: snapshot
|
|
189
|
+
snapshot: snapshot,
|
|
190
|
+
oneWinExtTools: oneWinExtTools,
|
|
191
|
+
allWinExtTools: allWinExtTools
|
|
174
192
|
}), children && /*#__PURE__*/React.cloneElement(children, {
|
|
175
193
|
selectIndex: state.selectIndex
|
|
176
194
|
}));
|
|
@@ -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, {
|
|
@@ -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, }: 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;
|
|
@@ -27,7 +27,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
27
27
|
|
|
28
28
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
29
29
|
|
|
30
|
-
import { __awaiter } from "tslib";
|
|
30
|
+
import { __awaiter, __rest } from "tslib";
|
|
31
31
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
32
32
|
import { ScreenType, mergeFill, differenceWithIndexs, FILTER_KEY } from './utils';
|
|
33
33
|
import { SegmentPlayerWithExt, FrontendPlayerWithExt } from './PlayerWithExt';
|
|
@@ -53,39 +53,48 @@ var defaultState = {
|
|
|
53
53
|
* @returns
|
|
54
54
|
*/
|
|
55
55
|
|
|
56
|
-
function RecordPlayer(
|
|
56
|
+
function RecordPlayer(_a) {
|
|
57
57
|
var _this = this;
|
|
58
58
|
|
|
59
|
-
var list =
|
|
60
|
-
children =
|
|
61
|
-
queryRecord =
|
|
62
|
-
onIndexChange =
|
|
63
|
-
onClose =
|
|
64
|
-
onCloseAll =
|
|
65
|
-
download =
|
|
66
|
-
snapshot =
|
|
67
|
-
defaultScreen =
|
|
68
|
-
screenChange =
|
|
69
|
-
defaultSelectIndex =
|
|
59
|
+
var list = _a.list,
|
|
60
|
+
children = _a.children,
|
|
61
|
+
queryRecord = _a.queryRecord,
|
|
62
|
+
onIndexChange = _a.onIndexChange,
|
|
63
|
+
onClose = _a.onClose,
|
|
64
|
+
onCloseAll = _a.onCloseAll,
|
|
65
|
+
download = _a.download,
|
|
66
|
+
snapshot = _a.snapshot,
|
|
67
|
+
defaultScreen = _a.defaultScreen,
|
|
68
|
+
screenChange = _a.screenChange,
|
|
69
|
+
defaultSelectIndex = _a.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"]);
|
|
70
73
|
|
|
71
74
|
var _useState = useState(Object.assign(Object.assign({}, defaultState), {
|
|
72
75
|
screenNum: defaultScreen !== null && defaultScreen !== void 0 ? defaultScreen : defaultState.screenNum
|
|
73
76
|
})),
|
|
74
77
|
_useState2 = _slicedToArray(_useState, 2),
|
|
75
78
|
state = _useState2[0],
|
|
76
|
-
setState = _useState2[1];
|
|
79
|
+
setState = _useState2[1]; // 若外部来控制screenNum 则由外部完全控制
|
|
77
80
|
|
|
81
|
+
|
|
82
|
+
var screenNum = useMemo(function () {
|
|
83
|
+
var _a;
|
|
84
|
+
|
|
85
|
+
return (_a = options.screenNum) !== null && _a !== void 0 ? _a : state.screenNum;
|
|
86
|
+
}, [options.screenNum, state.screenNum]);
|
|
78
87
|
var domRef = useRef(null);
|
|
79
88
|
var screenType = useMemo(function () {
|
|
80
89
|
return ScreenType.find(function (v) {
|
|
81
|
-
return v.name ===
|
|
90
|
+
return v.name === screenNum;
|
|
82
91
|
});
|
|
83
|
-
}, [
|
|
92
|
+
}, [screenNum]);
|
|
84
93
|
var screenList = useMemo(function () {
|
|
85
|
-
return mergeFill(
|
|
94
|
+
return mergeFill(screenNum, list, {
|
|
86
95
|
recordType: 1
|
|
87
96
|
});
|
|
88
|
-
}, [
|
|
97
|
+
}, [screenNum, list]);
|
|
89
98
|
|
|
90
99
|
var _useVideoFit = useVideoFit(domRef, []),
|
|
91
100
|
fit = _useVideoFit.fit,
|
|
@@ -198,9 +207,15 @@ function RecordPlayer(_ref) {
|
|
|
198
207
|
var obj = {};
|
|
199
208
|
|
|
200
209
|
if (newState.hasOwnProperty('screenNum')) {
|
|
201
|
-
|
|
210
|
+
if (options.screenNum) {
|
|
211
|
+
// 若外部控制,不需要update state
|
|
212
|
+
screenChange === null || screenChange === void 0 ? void 0 : screenChange(newState.screenNum);
|
|
213
|
+
} else {
|
|
214
|
+
obj.screenNum = newState.screenNum;
|
|
215
|
+
} // 修正选中索引
|
|
216
|
+
|
|
202
217
|
|
|
203
|
-
if (
|
|
218
|
+
if (newState.screenNum < state.selectIndex) {
|
|
204
219
|
obj.selectIndex = 0;
|
|
205
220
|
}
|
|
206
221
|
}
|
|
@@ -398,13 +413,14 @@ function RecordPlayer(_ref) {
|
|
|
398
413
|
})), /*#__PURE__*/React.createElement("div", {
|
|
399
414
|
className: "player-tools-group"
|
|
400
415
|
}, /*#__PURE__*/React.createElement(DisableMark, {
|
|
401
|
-
disabled: !segmentItem.cid
|
|
416
|
+
disabled: !segmentItem.cid,
|
|
417
|
+
width: "70%"
|
|
402
418
|
}, /*#__PURE__*/React.createElement(RecordTools, {
|
|
403
419
|
time: state.currentTimes[state.selectIndex],
|
|
404
420
|
fit: fit,
|
|
405
421
|
toggleFit: toggleFit,
|
|
406
422
|
getPlayerItem: getPlayerItem,
|
|
407
|
-
screenNum:
|
|
423
|
+
screenNum: screenNum,
|
|
408
424
|
mode: state.modes[state.selectIndex],
|
|
409
425
|
containerRef: domRef,
|
|
410
426
|
updateState: updateState,
|
|
@@ -413,7 +429,9 @@ function RecordPlayer(_ref) {
|
|
|
413
429
|
onCloseAll: onCloseAll,
|
|
414
430
|
timeMode: state.timeMode,
|
|
415
431
|
download: download,
|
|
416
|
-
snapshot: snapshot
|
|
432
|
+
snapshot: snapshot,
|
|
433
|
+
oneWinExtTools: oneWinExtTools,
|
|
434
|
+
allWinExtTools: allWinExtTools
|
|
417
435
|
}), /*#__PURE__*/React.createElement(SegmentTimeLine, {
|
|
418
436
|
begin: timeBegin,
|
|
419
437
|
updateState: updateState,
|
|
@@ -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, {
|
|
@@ -40,13 +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
|
+
*/
|
|
61
|
+
screenNum?: 1 | 4 | 6 | 9 | 16;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 默认选中窗口
|
|
65
|
+
* @default 0
|
|
66
|
+
*/
|
|
49
67
|
defaultSelectIndex?: number;
|
|
68
|
+
/**
|
|
69
|
+
* 单窗口拓展工具条,左侧
|
|
70
|
+
*/
|
|
71
|
+
oneWinExtTools?: JSX.Element;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* 全局窗口工具条,右侧
|
|
75
|
+
*/
|
|
76
|
+
allWinExtTools?: JSX.Element;
|
|
50
77
|
}
|
|
51
78
|
|
|
52
79
|
export interface IRecordPlayerState {
|
|
@@ -116,13 +143,41 @@ export interface ILivePlayerProps {
|
|
|
116
143
|
*/
|
|
117
144
|
onIndexChange?: (idx: number) => void;
|
|
118
145
|
|
|
146
|
+
/**
|
|
147
|
+
* 截图
|
|
148
|
+
*/
|
|
119
149
|
snapshot?: (base64: string) => void;
|
|
120
150
|
|
|
151
|
+
/**
|
|
152
|
+
* 窗口变化
|
|
153
|
+
*/
|
|
121
154
|
screenChange?: (num: number) => void;
|
|
122
155
|
|
|
156
|
+
/**
|
|
157
|
+
* 默认窗口数量
|
|
158
|
+
*/
|
|
123
159
|
defaultScreen?: 1 | 4 | 6 | 9 | 16;
|
|
124
160
|
|
|
161
|
+
/**
|
|
162
|
+
* 窗口数量,若有值由外部来完全控制
|
|
163
|
+
*/
|
|
164
|
+
screenNum?: 1 | 4 | 6 | 9 | 16;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* 默认选中窗口
|
|
168
|
+
* @default 0
|
|
169
|
+
*/
|
|
125
170
|
defaultSelectIndex?: number;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* 单窗口拓展工具条,左侧
|
|
174
|
+
*/
|
|
175
|
+
oneWinExtTools?: JSX.Element;
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* 全局窗口工具条,右侧
|
|
179
|
+
*/
|
|
180
|
+
allWinExtTools?: JSX.Element;
|
|
126
181
|
}
|
|
127
182
|
|
|
128
183
|
export interface ILivePlayerState {
|
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.
|
|
5
|
+
"version": "3.0.17",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"start": "dumi dev",
|
|
8
8
|
"docs:build": "dumi build",
|
|
@@ -42,6 +42,8 @@
|
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@cloud-app-dev/utils": "^4.0.1",
|
|
45
|
+
"@testing-library/react-hooks": "^8.0.1",
|
|
46
|
+
"@types/jest": "^29.0.1",
|
|
45
47
|
"@types/leaflet": "^1.7.11",
|
|
46
48
|
"@types/lodash-es": "^4.17.6",
|
|
47
49
|
"@types/node": "^18.7.6",
|