@vtx/player 1.1.6 → 1.2.2
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/lib/live-player-image/index.d.ts +36 -0
- package/lib/live-player-image/index.js +237 -0
- package/lib/live-player-image/index.js.map +1 -0
- package/lib/live-player-image/style/css.js +8 -0
- package/lib/live-player-image/style/css.js.map +1 -0
- package/lib/live-player-image/style/index.css +74 -0
- package/lib/live-player-image/style/index.d.ts +3 -0
- package/lib/live-player-image/style/index.js +8 -0
- package/lib/live-player-image/style/index.js.map +1 -0
- package/lib/live-player-image/style/index.less +70 -0
- package/lib/player/index.js +1 -1
- package/lib/player/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CloudControlPanelProps } from '../controls';
|
|
3
|
+
import { VideoType } from '../player';
|
|
4
|
+
interface VtxPlayerProps {
|
|
5
|
+
/** 视频流地址 */
|
|
6
|
+
url: string;
|
|
7
|
+
/** 是否使用代理播放 */
|
|
8
|
+
enableAgent?: boolean;
|
|
9
|
+
/** 宽度 */
|
|
10
|
+
width?: number;
|
|
11
|
+
/** 高度 */
|
|
12
|
+
height?: number;
|
|
13
|
+
/** 视频流格式,如果为空则根据url自行判断 */
|
|
14
|
+
type?: VideoType;
|
|
15
|
+
/** 截图文件名 */
|
|
16
|
+
captureName?: string;
|
|
17
|
+
/** 通道号 */
|
|
18
|
+
channelNum?: string;
|
|
19
|
+
/** 设备id */
|
|
20
|
+
deviceId?: string;
|
|
21
|
+
/** 云台控制 */
|
|
22
|
+
cloudParams?: CloudControlPanelProps;
|
|
23
|
+
/** 是否展示信息 */
|
|
24
|
+
showInfo?: boolean | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
|
|
25
|
+
/** 信息 */
|
|
26
|
+
info?: Array<Array<string>>;
|
|
27
|
+
/** 截图回调 */
|
|
28
|
+
screenshot?: (dataURL: string) => void;
|
|
29
|
+
/** 重置视频大小 */
|
|
30
|
+
resize?: () => void;
|
|
31
|
+
/** 加载结束回调 */
|
|
32
|
+
loaded?: () => void;
|
|
33
|
+
}
|
|
34
|
+
export declare const LivePlayerImage: (props: VtxPlayerProps, selfRef: any) => JSX.Element;
|
|
35
|
+
declare const _default: React.ForwardRefExoticComponent<VtxPlayerProps & React.RefAttributes<unknown>>;
|
|
36
|
+
export default _default;
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.LivePlayerImage = void 0;
|
|
7
|
+
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _controls = require("../controls");
|
|
13
|
+
|
|
14
|
+
var _icons = require("../icons");
|
|
15
|
+
|
|
16
|
+
var _player = _interopRequireDefault(require("../player"));
|
|
17
|
+
|
|
18
|
+
var _utils = require("../utils");
|
|
19
|
+
|
|
20
|
+
var _ahooks = require("ahooks");
|
|
21
|
+
|
|
22
|
+
var _space = _interopRequireDefault(require("antd/lib/space"));
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
|
+
|
|
26
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
27
|
+
|
|
28
|
+
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."); }
|
|
29
|
+
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
35
|
+
|
|
36
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
37
|
+
|
|
38
|
+
var LivePlayerImage = function LivePlayerImage(props, selfRef) {
|
|
39
|
+
var url = props.url,
|
|
40
|
+
enableAgent = props.enableAgent,
|
|
41
|
+
_props$width = props.width,
|
|
42
|
+
width = _props$width === void 0 ? '100%' : _props$width,
|
|
43
|
+
_props$height = props.height,
|
|
44
|
+
height = _props$height === void 0 ? '100%' : _props$height,
|
|
45
|
+
captureName = props.captureName,
|
|
46
|
+
type = props.type,
|
|
47
|
+
channelNum = props.channelNum,
|
|
48
|
+
deviceId = props.deviceId,
|
|
49
|
+
cloudParams = props.cloudParams,
|
|
50
|
+
_props$showInfo = props.showInfo,
|
|
51
|
+
showInfo = _props$showInfo === void 0 ? false : _props$showInfo,
|
|
52
|
+
_props$info = props.info,
|
|
53
|
+
info = _props$info === void 0 ? [] : _props$info,
|
|
54
|
+
screenshot = props.screenshot,
|
|
55
|
+
loaded = props.loaded;
|
|
56
|
+
var ref = (0, _react.useRef)(null);
|
|
57
|
+
var wrapRef = (0, _react.useRef)(null);
|
|
58
|
+
var controlsRef = (0, _react.useRef)(null);
|
|
59
|
+
var playerRef = (0, _react.useRef)();
|
|
60
|
+
|
|
61
|
+
var _useFullscreen = (0, _ahooks.useFullscreen)(wrapRef),
|
|
62
|
+
_useFullscreen2 = _slicedToArray(_useFullscreen, 2),
|
|
63
|
+
isFullscreen = _useFullscreen2[0],
|
|
64
|
+
toggleFullscreen = _useFullscreen2[1].toggleFullscreen;
|
|
65
|
+
|
|
66
|
+
var _useSetState = (0, _ahooks.useSetState)({
|
|
67
|
+
play: false,
|
|
68
|
+
error: false,
|
|
69
|
+
loading: false,
|
|
70
|
+
id: 'vtx_hk_player_' + (0, _utils.guidGenerator)(),
|
|
71
|
+
volume: 0,
|
|
72
|
+
showCloudPanel: false
|
|
73
|
+
}),
|
|
74
|
+
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
75
|
+
state = _useSetState2[0],
|
|
76
|
+
setState = _useSetState2[1];
|
|
77
|
+
|
|
78
|
+
(0, _react.useImperativeHandle)(selfRef, function () {
|
|
79
|
+
return {
|
|
80
|
+
resize: function resize() {
|
|
81
|
+
var player = playerRef.current;
|
|
82
|
+
player && url && player.resize();
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
(0, _react.useEffect)(function () {
|
|
87
|
+
var container = ref.current;
|
|
88
|
+
|
|
89
|
+
if (!url || !container) {
|
|
90
|
+
playerRef.current && playerRef.current.destroy();
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var player = new _player["default"]({
|
|
95
|
+
url: url,
|
|
96
|
+
enableAgent: enableAgent,
|
|
97
|
+
container: container,
|
|
98
|
+
type: type
|
|
99
|
+
});
|
|
100
|
+
playerRef.current = player;
|
|
101
|
+
setState({
|
|
102
|
+
loading: true,
|
|
103
|
+
error: false
|
|
104
|
+
});
|
|
105
|
+
player.play().then(function () {
|
|
106
|
+
return setState({
|
|
107
|
+
play: true,
|
|
108
|
+
error: false
|
|
109
|
+
});
|
|
110
|
+
})["catch"](function () {
|
|
111
|
+
return setState({
|
|
112
|
+
error: true
|
|
113
|
+
});
|
|
114
|
+
})["finally"](function () {
|
|
115
|
+
setState({
|
|
116
|
+
loading: false
|
|
117
|
+
}), loaded && loaded();
|
|
118
|
+
});
|
|
119
|
+
return function () {
|
|
120
|
+
player.destroy();
|
|
121
|
+
setState({
|
|
122
|
+
error: false,
|
|
123
|
+
loading: false,
|
|
124
|
+
play: false
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
}, [url]);
|
|
128
|
+
(0, _react.useEffect)(function () {
|
|
129
|
+
var canvas = document.getElementById('canvas');
|
|
130
|
+
var ctx = canvas.getContext('2d');
|
|
131
|
+
var i = 0;
|
|
132
|
+
var timer = setInterval(function () {
|
|
133
|
+
ctx.beginPath();
|
|
134
|
+
var x = Math.random() * 300;
|
|
135
|
+
var x2 = Math.random() * 150;
|
|
136
|
+
var y = Math.random() * 300;
|
|
137
|
+
var y2 = Math.random() * 150;
|
|
138
|
+
ctx.strokeStyle = 'red';
|
|
139
|
+
ctx.lineWidth = 3;
|
|
140
|
+
ctx.rect(x, y, x2 > 20 ? x2 : 20, y2 > 20 ? y2 : 20);
|
|
141
|
+
i++;
|
|
142
|
+
ctx.stroke(); // ctx.closePath();
|
|
143
|
+
|
|
144
|
+
if (i > 5) {
|
|
145
|
+
timer && clearTimeout(timer);
|
|
146
|
+
}
|
|
147
|
+
}, 2000);
|
|
148
|
+
return function () {
|
|
149
|
+
timer && clearTimeout(timer);
|
|
150
|
+
};
|
|
151
|
+
}, []);
|
|
152
|
+
|
|
153
|
+
var handleCapture = function handleCapture(e) {
|
|
154
|
+
var player = playerRef.current;
|
|
155
|
+
player && player.capture(captureName, screenshot);
|
|
156
|
+
e.stopPropagation();
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var handleFullScreen = function handleFullScreen(e) {
|
|
160
|
+
toggleFullscreen();
|
|
161
|
+
var player = playerRef.current;
|
|
162
|
+
player && player.resize();
|
|
163
|
+
e.stopPropagation();
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
return (0, _jsxRuntime.jsxs)("div", Object.assign({
|
|
167
|
+
className: "vtx-live-player",
|
|
168
|
+
ref: wrapRef,
|
|
169
|
+
style: {
|
|
170
|
+
width: width,
|
|
171
|
+
height: height,
|
|
172
|
+
position: 'relative'
|
|
173
|
+
}
|
|
174
|
+
}, {
|
|
175
|
+
children: [(0, _jsxRuntime.jsx)("div", {
|
|
176
|
+
ref: ref,
|
|
177
|
+
style: {
|
|
178
|
+
height: '100%',
|
|
179
|
+
width: '100%'
|
|
180
|
+
},
|
|
181
|
+
id: state.id
|
|
182
|
+
}), (0, _jsxRuntime.jsx)("canvas", {
|
|
183
|
+
id: "canvas",
|
|
184
|
+
width: width,
|
|
185
|
+
height: height,
|
|
186
|
+
style: {
|
|
187
|
+
position: 'absolute',
|
|
188
|
+
top: 0,
|
|
189
|
+
left: 0,
|
|
190
|
+
right: 0,
|
|
191
|
+
bottom: 0
|
|
192
|
+
}
|
|
193
|
+
}), state.error && (0, _jsxRuntime.jsx)(_controls.ErrorState, {}), state.loading && (0, _jsxRuntime.jsx)(_controls.LoadingState, {}), state.showCloudPanel && cloudParams && (0, _jsxRuntime.jsx)(_controls.CloudControlPanel, Object.assign({}, cloudParams)), (0, _jsxRuntime.jsx)(_controls.InfoPanel, {
|
|
194
|
+
showInfo: showInfo,
|
|
195
|
+
info: info
|
|
196
|
+
}), (0, _jsxRuntime.jsx)("div", Object.assign({
|
|
197
|
+
className: "controls",
|
|
198
|
+
ref: controlsRef
|
|
199
|
+
}, {
|
|
200
|
+
children: (0, _jsxRuntime.jsxs)(_space["default"], Object.assign({
|
|
201
|
+
className: "right",
|
|
202
|
+
size: 12,
|
|
203
|
+
align: "center"
|
|
204
|
+
}, {
|
|
205
|
+
children: [(0, _jsxRuntime.jsx)(_controls.VolumeControl, {
|
|
206
|
+
player: playerRef.current,
|
|
207
|
+
container: controlsRef.current
|
|
208
|
+
}), !!screenshot && (0, _jsxRuntime.jsx)(_icons.CaptureIcon, {
|
|
209
|
+
onClick: handleCapture
|
|
210
|
+
}), channelNum && deviceId && (0, _jsxRuntime.jsx)(_controls.TalkControl, {
|
|
211
|
+
player: playerRef.current,
|
|
212
|
+
channelNum: channelNum,
|
|
213
|
+
deviceId: deviceId
|
|
214
|
+
}), (cloudParams === null || cloudParams === void 0 ? void 0 : cloudParams.type) !== 'none' && (0, _jsxRuntime.jsx)(_icons.CloudControlIcon, {
|
|
215
|
+
active: state.showCloudPanel,
|
|
216
|
+
onClick: function onClick() {
|
|
217
|
+
return setState({
|
|
218
|
+
showCloudPanel: !state.showCloudPanel
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}), isFullscreen ? (0, _jsxRuntime.jsx)(_icons.ExitFullScreenIcon, {
|
|
222
|
+
onClick: handleFullScreen
|
|
223
|
+
}) : (0, _jsxRuntime.jsx)(_icons.FullScreenIcon, {
|
|
224
|
+
onClick: handleFullScreen
|
|
225
|
+
})]
|
|
226
|
+
}))
|
|
227
|
+
}))]
|
|
228
|
+
}));
|
|
229
|
+
}; // LivePlayerImage.displayName = 'live-player';
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
exports.LivePlayerImage = LivePlayerImage;
|
|
233
|
+
|
|
234
|
+
var _default = /*#__PURE__*/(0, _react.forwardRef)(LivePlayerImage);
|
|
235
|
+
|
|
236
|
+
exports["default"] = _default;
|
|
237
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["LivePlayerImage","props","selfRef","url","enableAgent","width","height","captureName","type","channelNum","deviceId","cloudParams","showInfo","info","screenshot","loaded","ref","useRef","wrapRef","controlsRef","playerRef","useFullscreen","isFullscreen","toggleFullscreen","useSetState","play","error","loading","id","guidGenerator","volume","showCloudPanel","state","setState","useImperativeHandle","resize","player","current","useEffect","container","destroy","Player","then","canvas","document","getElementById","ctx","getContext","i","timer","setInterval","beginPath","x","Math","random","x2","y","y2","strokeStyle","lineWidth","rect","stroke","clearTimeout","handleCapture","e","capture","stopPropagation","handleFullScreen","_jsxs","Object","assign","className","style","position","children","_jsx","top","left","right","bottom","ErrorState","LoadingState","CloudControlPanel","InfoPanel","Space","size","align","VolumeControl","CaptureIcon","onClick","TalkControl","CloudControlIcon","active","ExitFullScreenIcon","FullScreenIcon","forwardRef"],"sources":["live-player-image/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { CloudControlPanel, ErrorState, InfoPanel, LoadingState, TalkControl, VolumeControl, } from '../controls';\nimport { CaptureIcon, CloudControlIcon, ExitFullScreenIcon, FullScreenIcon } from '../icons';\nimport Player from '../player';\nimport { guidGenerator } from '../utils';\nimport { useFullscreen, useSetState } from 'ahooks';\n// import { Space } from 'antd';\nimport Space from 'antd/lib/space';\nexport const LivePlayerImage = (props, selfRef) => {\n const { url, enableAgent, width = '100%', height = '100%', captureName, type, channelNum, deviceId, cloudParams, showInfo = false, info = [], screenshot, loaded, } = props;\n const ref = useRef(null);\n const wrapRef = useRef(null);\n const controlsRef = useRef(null);\n const playerRef = useRef();\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const [state, setState] = useSetState({\n play: false,\n error: false,\n loading: false,\n id: 'vtx_hk_player_' + guidGenerator(),\n volume: 0,\n showCloudPanel: false,\n });\n useImperativeHandle(selfRef, () => {\n return {\n resize: () => {\n const player = playerRef.current;\n player && url && player.resize();\n },\n };\n });\n useEffect(() => {\n const container = ref.current;\n if (!url || !container) {\n playerRef.current && playerRef.current.destroy();\n return;\n }\n const player = new Player({ url, enableAgent, container, type });\n playerRef.current = player;\n setState({ loading: true, error: false });\n player\n .play()\n .then(() => setState({ play: true, error: false }))\n .catch(() => setState({ error: true }))\n .finally(() => {\n setState({ loading: false }), loaded && loaded();\n });\n return () => {\n player.destroy();\n setState({ error: false, loading: false, play: false });\n };\n }, [url]);\n useEffect(() => {\n const canvas = document.getElementById('canvas');\n const ctx = canvas.getContext('2d');\n let i = 0;\n const timer = setInterval(() => {\n ctx.beginPath();\n const x = Math.random() * 300;\n const x2 = Math.random() * 150;\n const y = Math.random() * 300;\n const y2 = Math.random() * 150;\n ctx.strokeStyle = 'red';\n ctx.lineWidth = 3;\n ctx.rect(x, y, x2 > 20 ? x2 : 20, y2 > 20 ? y2 : 20);\n i++;\n ctx.stroke();\n // ctx.closePath();\n if (i > 5) {\n timer && clearTimeout(timer);\n }\n }, 2000);\n return () => {\n timer && clearTimeout(timer);\n };\n }, []);\n const handleCapture = (e) => {\n const player = playerRef.current;\n player && player.capture(captureName, screenshot);\n e.stopPropagation();\n };\n const handleFullScreen = (e) => {\n toggleFullscreen();\n const player = playerRef.current;\n player && player.resize();\n e.stopPropagation();\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-player\", ref: wrapRef, style: { width, height, position: 'relative' } }, { children: [_jsx(\"div\", { ref: ref, style: { height: '100%', width: '100%' }, id: state.id }), _jsx(\"canvas\", { id: \"canvas\", width: width, height: height, style: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n } }), state.error && _jsx(ErrorState, {}), state.loading && _jsx(LoadingState, {}), state.showCloudPanel && cloudParams && _jsx(CloudControlPanel, Object.assign({}, cloudParams)), _jsx(InfoPanel, { showInfo: showInfo, info: info }), _jsx(\"div\", Object.assign({ className: \"controls\", ref: controlsRef }, { children: _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(VolumeControl, { player: playerRef.current, container: controlsRef.current }), !!screenshot && _jsx(CaptureIcon, { onClick: handleCapture }), channelNum && deviceId && (_jsx(TalkControl, { player: playerRef.current, channelNum: channelNum, deviceId: deviceId })), (cloudParams === null || cloudParams === void 0 ? void 0 : cloudParams.type) !== 'none' && (_jsx(CloudControlIcon, { active: state.showCloudPanel, onClick: () => setState({ showCloudPanel: !state.showCloudPanel }) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: handleFullScreen })) : (_jsx(FullScreenIcon, { onClick: handleFullScreen }))] })) }))] })));\n};\n// LivePlayerImage.displayName = 'live-player';\nexport default forwardRef(LivePlayerImage);\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.js","names":[],"sources":["live-player-image/style/index.js"],"sourcesContent":["import \"antd/lib/space/style\";\nimport '../../controls/style';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA;;AACA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
.vtx-live-player {
|
|
2
|
+
position: relative;
|
|
3
|
+
background-color: #2b3d51;
|
|
4
|
+
border: 1px solid transparent;
|
|
5
|
+
}
|
|
6
|
+
.vtx-live-player .controls {
|
|
7
|
+
position: absolute;
|
|
8
|
+
bottom: 0;
|
|
9
|
+
display: -webkit-box;
|
|
10
|
+
display: -ms-flexbox;
|
|
11
|
+
display: flex;
|
|
12
|
+
-webkit-box-align: center;
|
|
13
|
+
-ms-flex-align: center;
|
|
14
|
+
align-items: center;
|
|
15
|
+
width: 100%;
|
|
16
|
+
height: 30px;
|
|
17
|
+
padding: 0 12px;
|
|
18
|
+
background-color: #131d27;
|
|
19
|
+
opacity: 0;
|
|
20
|
+
-webkit-transition: opacity 0.5s;
|
|
21
|
+
transition: opacity 0.5s;
|
|
22
|
+
}
|
|
23
|
+
.vtx-live-player .controls .right {
|
|
24
|
+
margin-left: auto;
|
|
25
|
+
}
|
|
26
|
+
.vtx-live-player .controls .right > div {
|
|
27
|
+
height: 24px;
|
|
28
|
+
}
|
|
29
|
+
.vtx-live-player:hover .controls {
|
|
30
|
+
opacity: 1;
|
|
31
|
+
}
|
|
32
|
+
.vtx-live-player video {
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: 100%;
|
|
35
|
+
-o-object-fit: fill;
|
|
36
|
+
object-fit: fill;
|
|
37
|
+
}
|
|
38
|
+
.vtx-live-player .sub-wnd {
|
|
39
|
+
width: 100% !important;
|
|
40
|
+
height: 100% !important;
|
|
41
|
+
background-color: #2b3d51 !important;
|
|
42
|
+
border: 1px solid transparent !important;
|
|
43
|
+
}
|
|
44
|
+
.vtx-live-player .error-container {
|
|
45
|
+
position: absolute;
|
|
46
|
+
top: 50%;
|
|
47
|
+
left: 50%;
|
|
48
|
+
display: -webkit-box;
|
|
49
|
+
display: -ms-flexbox;
|
|
50
|
+
display: flex;
|
|
51
|
+
-webkit-box-orient: vertical;
|
|
52
|
+
-webkit-box-direction: normal;
|
|
53
|
+
-ms-flex-direction: column;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
-webkit-box-align: center;
|
|
56
|
+
-ms-flex-align: center;
|
|
57
|
+
align-items: center;
|
|
58
|
+
-webkit-transform: translate(-50%, -50%);
|
|
59
|
+
-ms-transform: translate(-50%, -50%);
|
|
60
|
+
transform: translate(-50%, -50%);
|
|
61
|
+
}
|
|
62
|
+
.vtx-live-player .error-container .text {
|
|
63
|
+
margin: 20px 0;
|
|
64
|
+
font-size: 14px;
|
|
65
|
+
color: rgba(255, 255, 255, 0.65);
|
|
66
|
+
}
|
|
67
|
+
.vtx-live-player .loading-container {
|
|
68
|
+
position: absolute;
|
|
69
|
+
top: 50%;
|
|
70
|
+
left: 50%;
|
|
71
|
+
-webkit-transform: translate(-50%, -50%);
|
|
72
|
+
-ms-transform: translate(-50%, -50%);
|
|
73
|
+
transform: translate(-50%, -50%);
|
|
74
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["live-player-image/style/index.js"],"sourcesContent":["import \"antd/lib/space/style\";\nimport '../../controls/style';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA;;AACA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
.vtx-live-player {
|
|
2
|
+
position: relative;
|
|
3
|
+
// display: flex;
|
|
4
|
+
// align-items: center;
|
|
5
|
+
// justify-content: center;
|
|
6
|
+
background-color: #2b3d51;
|
|
7
|
+
border: 1px solid transparent;
|
|
8
|
+
.controls {
|
|
9
|
+
position: absolute;
|
|
10
|
+
bottom: 0;
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: 30px;
|
|
15
|
+
padding: 0 12px;
|
|
16
|
+
background-color: #131d27;
|
|
17
|
+
opacity: 0;
|
|
18
|
+
transition: opacity 0.5s;
|
|
19
|
+
|
|
20
|
+
.right {
|
|
21
|
+
margin-left: auto;
|
|
22
|
+
|
|
23
|
+
> div {
|
|
24
|
+
height: 24px;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:hover {
|
|
30
|
+
.controls {
|
|
31
|
+
opacity: 1;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
video {
|
|
36
|
+
width: 100%;
|
|
37
|
+
height: 100%;
|
|
38
|
+
object-fit: fill;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.sub-wnd {
|
|
42
|
+
width: 100% !important;
|
|
43
|
+
height: 100% !important;
|
|
44
|
+
background-color: #2b3d51 !important;
|
|
45
|
+
border: 1px solid transparent !important;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.error-container {
|
|
49
|
+
position: absolute;
|
|
50
|
+
top: 50%;
|
|
51
|
+
left: 50%;
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
align-items: center;
|
|
55
|
+
transform: translate(-50%, -50%);
|
|
56
|
+
|
|
57
|
+
.text {
|
|
58
|
+
margin: 20px 0;
|
|
59
|
+
font-size: 14px;
|
|
60
|
+
color: rgba(255, 255 ,255 , .65);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.loading-container {
|
|
65
|
+
position: absolute;
|
|
66
|
+
top: 50%;
|
|
67
|
+
left: 50%;
|
|
68
|
+
transform: translate(-50%, -50%);
|
|
69
|
+
}
|
|
70
|
+
}
|
package/lib/player/index.js
CHANGED
|
@@ -360,7 +360,7 @@ var Player = /*#__PURE__*/function () {
|
|
|
360
360
|
this.video.addEventListener('timeupdate', function () {
|
|
361
361
|
var currentTime = _this.video.currentTime;
|
|
362
362
|
|
|
363
|
-
if (_this.type === 'hk_ws' || _this.type === 'hkcar_ws' && _this.seekTime) {
|
|
363
|
+
if ((_this.type === 'hk_ws' || _this.type === 'hkcar_ws') && _this.seekTime) {
|
|
364
364
|
currentTime = currentTime + _this.seekTime.diff(_this.startTime, 'seconds');
|
|
365
365
|
}
|
|
366
366
|
|
package/lib/player/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","Player","params","player","preSpeed","url","enableAgent","container","live","type","startTime","endTime","playerParams","getPlayerParams","video","document","createElement","className","muted","FlvJs","isSupported","appendChild","createPlayer","isLive","attachMediaElement","load","Hls","loadSource","attachMedia","window","JSPlugin","szId","id","szBasePath","iMaxSplit","iCurrentSplit","wrapDiv","getElementById","getElementsByTagName","startsWith","JSPluginHkCar","iWidth","clientWidth","iHeight","clientHeight","oStyle","border","borderSelect","background","play","JS_Play","playURL","mode","getHKTimeString","destroy","remove","JS_Stop","JS_DestroyWorker","captureName","callback","time","name","moment","format","JS_CapturePicture","res","Capture","JS_Resize","volume","JS_SetVolume","speed","JS_Slow","JS_Fast","playbackRate","_a","addEventListener","currentTime","seekTime","diff","JS_SetWindowControlCallback","call","StreamEnd","add","JS_Seek","JS_Pause","pause","JS_Resume","JS_StartTalk","JS_StopTalk","canvas","width","videoWidth","height","videoHeight","context","getContext","drawImage","dataURL","toBlob","blob","URL","createObjectURL"],"sources":["player/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getHKTimeString, getPlayerParams } from '../utils';\nimport FlvJs from 'flv.js';\nimport Hls from 'hls.js';\nimport moment from 'moment';\n/**\n * 视频播放核心类\n */\nclass Player {\n constructor(params) {\n this.player = null;\n /** 之前的视频播放速度,用于处理海康音量控制 */\n this.preSpeed = 1;\n /** 视频播放流是否走代理 - 是强制走代理,否通过判断 http协议,走代理配置 */\n const { url, enableAgent = false, container, live = true, type, startTime, endTime, } = params;\n const playerParams = getPlayerParams(type, url, enableAgent, live);\n this.type = type || playerParams.type; // 如果不传递type,则通过url解析type值,1.1.2之后默认都传type\n this.url = playerParams.url;\n this.enableAgent = enableAgent;\n this.startTime = startTime;\n this.endTime = endTime;\n const video = document.createElement('video'); // 生成video元素\n video.className = 'vtx-player-video';\n video.muted = true; //设置静音\n this.video = video;\n if (this.type === 'flv' && FlvJs.isSupported() && video) {\n container.appendChild(video);\n this.player = FlvJs.createPlayer({\n type: 'flv',\n isLive: live,\n url: this.url,\n });\n this.player.attachMediaElement(this.video);\n this.player.load();\n }\n // 处理hls格式视频\n if (this.type === 'hls' && Hls.isSupported() && video) {\n container.appendChild(video);\n this.player = new Hls();\n this.player.loadSource(this.url);\n this.player.attachMedia(this.video);\n }\n // 处理海康视频\n if (this.type === 'hk_ws') {\n this.player = new window.JSPlugin({\n szId: container.id,\n szBasePath: './resources/',\n iMaxSplit: 1,\n iCurrentSplit: 1,\n });\n const wrapDiv = document.getElementById(container.id);\n this.video = wrapDiv.getElementsByTagName('video')[0];\n }\n // 处理海康视频\n if (this.type === 'hkcar_ws' && (url.startsWith('ws://') || url.startsWith('wss://'))) {\n const wrapDiv = document.getElementById(container.id);\n this.player = new window.JSPluginHkCar({\n szId: container.id,\n iWidth: wrapDiv.clientWidth,\n iHeight: wrapDiv.clientHeight,\n iMaxSplit: 1,\n iCurrentSplit: 1,\n szBasePath: './resources/hkcar/',\n oStyle: {\n border: 'transparent',\n borderSelect: 'transparent',\n background: '#2b3d51',\n },\n });\n }\n }\n /** 播放 */\n play() {\n if (this.type === 'flv') {\n const player = this.player;\n return player.play();\n }\n if (this.type === 'hls') {\n return this.video.play();\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 0 }, 0);\n return result;\n }\n return Promise.resolve();\n }\n /** 回放 */\n playBack() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 0 }, 1, getHKTimeString(this.startTime), getHKTimeString(this.endTime));\n return result;\n }\n else {\n return this.play();\n }\n }\n /** 销毁 */\n destroy() {\n if (this.type === 'flv') {\n const player = this.player;\n player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'hls') {\n const player = this.player;\n player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'hk_ws') {\n const player = this.player;\n player.JS_Stop(1);\n }\n if (this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_DestroyWorker();\n }\n }\n /** 截图 */\n capture(captureName = '视频截图', callback = null, time = true) {\n let name = captureName;\n if (time)\n name += `-${moment().format('YYYYMMDDHHmmss')}`;\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (player)\n player.JS_CapturePicture(1, name, 'JPEG', (res) => {\n callback && callback(res);\n });\n }\n else {\n Capture(this.video, name, callback);\n }\n }\n /** 尺寸重置 */\n resize() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Resize();\n }\n }\n /**\n * 设置音量\n * @param value\n */\n setVolume(value) {\n if (this.type === 'flv') {\n const player = this.player;\n player.volume = value / 100;\n }\n if (this.type === 'hls') {\n this.video.volume = value / 100;\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_SetVolume(1, value);\n }\n }\n /**\n * 设置播放速度\n * @param speed\n */\n setSpeed(speed) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (this.preSpeed / speed === 2) {\n player.JS_Slow(1);\n }\n if (this.preSpeed / speed === 4) {\n player.JS_Slow(1).then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 8) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 16) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (speed / this.preSpeed === 2) {\n player.JS_Fast(1);\n }\n if (speed / this.preSpeed === 4) {\n player.JS_Fast(1).then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 8) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 16) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n this.preSpeed = speed;\n }\n else {\n this.video.playbackRate = speed;\n }\n }\n /**\n * 时间更新事件\n * @param callback 回调函数\n */\n onTimeUpdate(callback) {\n var _a;\n this.video.addEventListener('timeupdate', () => {\n let currentTime = this.video.currentTime;\n if (this.type === 'hk_ws' || (this.type === 'hkcar_ws' && this.seekTime)) {\n currentTime = currentTime + this.seekTime.diff(this.startTime, 'seconds');\n }\n callback(currentTime, this.type === 'hk_ws' || this.type === 'hkcar_ws'\n ? this.preSpeed\n : this.video.playbackRate);\n });\n // 增加hw_ws 流播放结束回调\n const player = this.player;\n (_a = player === null || player === void 0 ? void 0 : player.JS_SetWindowControlCallback) === null || _a === void 0 ? void 0 : _a.call(player, {\n StreamEnd: () => {\n callback(moment(this.endTime).diff(this.startTime, 'seconds'), this.preSpeed);\n },\n });\n }\n /** 跳转到 */\n seekTo(time) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const seekTime = (_a = moment(this.startTime)) === null || _a === void 0 ? void 0 : _a.add(time, 'seconds');\n yield player.JS_Seek(1, getHKTimeString(seekTime), getHKTimeString(this.endTime));\n this.seekTime = seekTime;\n }\n else {\n this.video.currentTime = time;\n return Promise.resolve();\n }\n });\n }\n /**\n * 暂停播放\n * @param callback 回调函数\n */\n pause(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Pause(1).then(() => callback && callback());\n }\n else {\n this.video.pause();\n callback && callback();\n }\n }\n /**\n * 恢复播放\n * @param callback 回调函数\n */\n resume(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Resume(1).then(() => callback && callback());\n }\n else {\n this.video.play();\n callback && callback();\n }\n }\n /**\n * 开始对讲\n * @param url 对讲地址\n */\n startTalk(url) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StartTalk(url);\n }\n return Promise.reject();\n }\n /**\n * 开始对讲\n * @param state 状态\n */\n stopTalk() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StopTalk();\n }\n return Promise.reject();\n }\n}\n/**\n * 截图\n * @param video\n */\nconst Capture = (video, name, callback) => {\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const context = canvas.getContext('2d');\n if (context) {\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\n let dataURL;\n canvas.toBlob((blob) => {\n if (blob) {\n dataURL = URL.createObjectURL(blob);\n // const link = document.createElement('a');\n callback && callback(dataURL);\n // link.href = dataURL;\n // link.download = `${name}.png`;\n // link.style.display = 'none';\n // document.body.appendChild(link);\n // link.click();\n // document.body.removeChild(link);\n // URL.revokeObjectURL(dataURL);\n }\n });\n }\n};\nexport default Player;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","Player","params","player","preSpeed","url","enableAgent","container","live","type","startTime","endTime","playerParams","getPlayerParams","video","document","createElement","className","muted","FlvJs","isSupported","appendChild","createPlayer","isLive","attachMediaElement","load","Hls","loadSource","attachMedia","window","JSPlugin","szId","id","szBasePath","iMaxSplit","iCurrentSplit","wrapDiv","getElementById","getElementsByTagName","startsWith","JSPluginHkCar","iWidth","clientWidth","iHeight","clientHeight","oStyle","border","borderSelect","background","play","JS_Play","playURL","mode","getHKTimeString","destroy","remove","JS_Stop","JS_DestroyWorker","captureName","callback","time","name","moment","format","JS_CapturePicture","res","Capture","JS_Resize","volume","JS_SetVolume","speed","JS_Slow","JS_Fast","playbackRate","_a","addEventListener","currentTime","seekTime","diff","JS_SetWindowControlCallback","call","StreamEnd","add","JS_Seek","JS_Pause","pause","JS_Resume","JS_StartTalk","JS_StopTalk","canvas","width","videoWidth","height","videoHeight","context","getContext","drawImage","dataURL","toBlob","blob","URL","createObjectURL"],"sources":["player/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getHKTimeString, getPlayerParams } from '../utils';\nimport FlvJs from 'flv.js';\nimport Hls from 'hls.js';\nimport moment from 'moment';\n/**\n * 视频播放核心类\n */\nclass Player {\n constructor(params) {\n this.player = null;\n /** 之前的视频播放速度,用于处理海康音量控制 */\n this.preSpeed = 1;\n /** 视频播放流是否走代理 - 是强制走代理,否通过判断 http协议,走代理配置 */\n const { url, enableAgent = false, container, live = true, type, startTime, endTime, } = params;\n const playerParams = getPlayerParams(type, url, enableAgent, live);\n this.type = type || playerParams.type; // 如果不传递type,则通过url解析type值,1.1.2之后默认都传type\n this.url = playerParams.url;\n this.enableAgent = enableAgent;\n this.startTime = startTime;\n this.endTime = endTime;\n const video = document.createElement('video'); // 生成video元素\n video.className = 'vtx-player-video';\n video.muted = true; //设置静音\n this.video = video;\n if (this.type === 'flv' && FlvJs.isSupported() && video) {\n container.appendChild(video);\n this.player = FlvJs.createPlayer({\n type: 'flv',\n isLive: live,\n url: this.url,\n });\n this.player.attachMediaElement(this.video);\n this.player.load();\n }\n // 处理hls格式视频\n if (this.type === 'hls' && Hls.isSupported() && video) {\n container.appendChild(video);\n this.player = new Hls();\n this.player.loadSource(this.url);\n this.player.attachMedia(this.video);\n }\n // 处理海康视频\n if (this.type === 'hk_ws') {\n this.player = new window.JSPlugin({\n szId: container.id,\n szBasePath: './resources/',\n iMaxSplit: 1,\n iCurrentSplit: 1,\n });\n const wrapDiv = document.getElementById(container.id);\n this.video = wrapDiv.getElementsByTagName('video')[0];\n }\n // 处理海康视频\n if (this.type === 'hkcar_ws' && (url.startsWith('ws://') || url.startsWith('wss://'))) {\n const wrapDiv = document.getElementById(container.id);\n this.player = new window.JSPluginHkCar({\n szId: container.id,\n iWidth: wrapDiv.clientWidth,\n iHeight: wrapDiv.clientHeight,\n iMaxSplit: 1,\n iCurrentSplit: 1,\n szBasePath: './resources/hkcar/',\n oStyle: {\n border: 'transparent',\n borderSelect: 'transparent',\n background: '#2b3d51',\n },\n });\n }\n }\n /** 播放 */\n play() {\n if (this.type === 'flv') {\n const player = this.player;\n return player.play();\n }\n if (this.type === 'hls') {\n return this.video.play();\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 0 }, 0);\n return result;\n }\n return Promise.resolve();\n }\n /** 回放 */\n playBack() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 0 }, 1, getHKTimeString(this.startTime), getHKTimeString(this.endTime));\n return result;\n }\n else {\n return this.play();\n }\n }\n /** 销毁 */\n destroy() {\n if (this.type === 'flv') {\n const player = this.player;\n player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'hls') {\n const player = this.player;\n player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'hk_ws') {\n const player = this.player;\n player.JS_Stop(1);\n }\n if (this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_DestroyWorker();\n }\n }\n /** 截图 */\n capture(captureName = '视频截图', callback = null, time = true) {\n let name = captureName;\n if (time)\n name += `-${moment().format('YYYYMMDDHHmmss')}`;\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (player)\n player.JS_CapturePicture(1, name, 'JPEG', (res) => {\n callback && callback(res);\n });\n }\n else {\n Capture(this.video, name, callback);\n }\n }\n /** 尺寸重置 */\n resize() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Resize();\n }\n }\n /**\n * 设置音量\n * @param value\n */\n setVolume(value) {\n if (this.type === 'flv') {\n const player = this.player;\n player.volume = value / 100;\n }\n if (this.type === 'hls') {\n this.video.volume = value / 100;\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_SetVolume(1, value);\n }\n }\n /**\n * 设置播放速度\n * @param speed\n */\n setSpeed(speed) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (this.preSpeed / speed === 2) {\n player.JS_Slow(1);\n }\n if (this.preSpeed / speed === 4) {\n player.JS_Slow(1).then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 8) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 16) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (speed / this.preSpeed === 2) {\n player.JS_Fast(1);\n }\n if (speed / this.preSpeed === 4) {\n player.JS_Fast(1).then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 8) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 16) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n this.preSpeed = speed;\n }\n else {\n this.video.playbackRate = speed;\n }\n }\n /**\n * 时间更新事件\n * @param callback 回调函数\n */\n onTimeUpdate(callback) {\n var _a;\n this.video.addEventListener('timeupdate', () => {\n let currentTime = this.video.currentTime;\n if ((this.type === 'hk_ws' || this.type === 'hkcar_ws') && this.seekTime) {\n currentTime = currentTime + this.seekTime.diff(this.startTime, 'seconds');\n }\n callback(currentTime, this.type === 'hk_ws' || this.type === 'hkcar_ws'\n ? this.preSpeed\n : this.video.playbackRate);\n });\n // 增加hw_ws 流播放结束回调\n const player = this.player;\n (_a = player === null || player === void 0 ? void 0 : player.JS_SetWindowControlCallback) === null || _a === void 0 ? void 0 : _a.call(player, {\n StreamEnd: () => {\n callback(moment(this.endTime).diff(this.startTime, 'seconds'), this.preSpeed);\n },\n });\n }\n /** 跳转到 */\n seekTo(time) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const seekTime = (_a = moment(this.startTime)) === null || _a === void 0 ? void 0 : _a.add(time, 'seconds');\n yield player.JS_Seek(1, getHKTimeString(seekTime), getHKTimeString(this.endTime));\n this.seekTime = seekTime;\n }\n else {\n this.video.currentTime = time;\n return Promise.resolve();\n }\n });\n }\n /**\n * 暂停播放\n * @param callback 回调函数\n */\n pause(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Pause(1).then(() => callback && callback());\n }\n else {\n this.video.pause();\n callback && callback();\n }\n }\n /**\n * 恢复播放\n * @param callback 回调函数\n */\n resume(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Resume(1).then(() => callback && callback());\n }\n else {\n this.video.play();\n callback && callback();\n }\n }\n /**\n * 开始对讲\n * @param url 对讲地址\n */\n startTalk(url) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StartTalk(url);\n }\n return Promise.reject();\n }\n /**\n * 开始对讲\n * @param state 状态\n */\n stopTalk() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StopTalk();\n }\n return Promise.reject();\n }\n}\n/**\n * 截图\n * @param video\n */\nconst Capture = (video, name, callback) => {\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const context = canvas.getContext('2d');\n if (context) {\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\n let dataURL;\n canvas.toBlob((blob) => {\n if (blob) {\n dataURL = URL.createObjectURL(blob);\n // const link = document.createElement('a');\n callback && callback(dataURL);\n // link.href = dataURL;\n // link.download = `${name}.png`;\n // link.style.display = 'none';\n // document.body.appendChild(link);\n // link.click();\n // document.body.removeChild(link);\n // URL.revokeObjectURL(dataURL);\n }\n });\n }\n};\nexport default Player;\n"],"mappings":"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"}
|