@vtx/player 1.7.14 → 1.7.15
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/README.md +2 -2
- package/lib/api/fetch.js +91 -62
- package/lib/api/fetch.js.map +1 -1
- package/lib/api/index.js +63 -18
- package/lib/api/index.js.map +1 -1
- package/lib/api/types.d.ts +5 -5
- package/lib/bd/PlayerManager.js +68 -38
- package/lib/bd/PlayerManager.js.map +1 -1
- package/lib/bill-player/index.d.ts +1 -1
- package/lib/bill-player/index.js +121 -66
- package/lib/bill-player/index.js.map +1 -1
- package/lib/bill-player/style/css.js +9 -0
- package/lib/bill-player/style/css.js.map +1 -1
- package/lib/bill-player/style/index.js +9 -0
- package/lib/bill-player/style/index.js.map +1 -1
- package/lib/bill-player/style/index.less +297 -297
- package/lib/components/set-tag-video/index.js +34 -6
- package/lib/components/set-tag-video/index.js.map +1 -1
- package/lib/components/set-tag-video/style/css.js.map +1 -1
- package/lib/components/set-tag-video/style/index.js.map +1 -1
- package/lib/components/set-tag-video/style/index.less +125 -125
- package/lib/components/split-screen/index.d.ts +1 -1
- package/lib/components/split-screen/index.js +14 -3
- package/lib/components/split-screen/index.js.map +1 -1
- package/lib/components/split-screen/style/css.js.map +1 -1
- package/lib/components/split-screen/style/index.js.map +1 -1
- package/lib/components/tag-video/index.js +38 -10
- package/lib/components/tag-video/index.js.map +1 -1
- package/lib/components/tag-video/style/css.js.map +1 -1
- package/lib/components/tag-video/style/index.js.map +1 -1
- package/lib/components/tag-video/style/index.less +69 -69
- package/lib/components/video-scale/index.d.ts +1 -1
- package/lib/components/video-scale/index.js +9 -2
- package/lib/components/video-scale/index.js.map +1 -1
- package/lib/components/video-scale/style/css.js.map +1 -1
- package/lib/components/video-scale/style/index.js.map +1 -1
- package/lib/context/index.js +4 -0
- package/lib/context/index.js.map +1 -1
- package/lib/controls/index.d.ts +11 -11
- package/lib/controls/index.js +99 -34
- package/lib/controls/index.js.map +1 -1
- package/lib/controls/style/css.js +5 -0
- package/lib/controls/style/css.js.map +1 -1
- package/lib/controls/style/index.js +5 -0
- package/lib/controls/style/index.js.map +1 -1
- package/lib/controls/style/index.less +188 -188
- package/lib/h264/PlayerManager.js +27 -18
- package/lib/h264/PlayerManager.js.map +1 -1
- package/lib/history-control/index.d.ts +2 -2
- package/lib/history-control/index.js +121 -61
- package/lib/history-control/index.js.map +1 -1
- package/lib/history-control/style/css.js +6 -0
- package/lib/history-control/style/css.js.map +1 -1
- package/lib/history-control/style/index.js +6 -0
- package/lib/history-control/style/index.js.map +1 -1
- package/lib/history-control/style/index.less +252 -252
- package/lib/history-control-v2/components/grid-item/index.js +79 -38
- package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
- package/lib/history-control-v2/components/panel/index.js +114 -44
- package/lib/history-control-v2/components/panel/index.js.map +1 -1
- package/lib/history-control-v2/context.js +2 -0
- package/lib/history-control-v2/context.js.map +1 -1
- package/lib/history-control-v2/index.d.ts +4 -4
- package/lib/history-control-v2/index.js +166 -97
- package/lib/history-control-v2/index.js.map +1 -1
- package/lib/history-control-v2/style/css.js +10 -0
- package/lib/history-control-v2/style/css.js.map +1 -1
- package/lib/history-control-v2/style/index.js +10 -0
- package/lib/history-control-v2/style/index.js.map +1 -1
- package/lib/history-control-v2/style/index.less +437 -437
- package/lib/history-control-v2/utils.js +21 -1
- package/lib/history-control-v2/utils.js.map +1 -1
- package/lib/history-player/index.d.ts +3 -3
- package/lib/history-player/index.js +210 -146
- package/lib/history-player/index.js.map +1 -1
- package/lib/history-player/style/css.js +3 -0
- package/lib/history-player/style/css.js.map +1 -1
- package/lib/history-player/style/index.js +3 -0
- package/lib/history-player/style/index.js.map +1 -1
- package/lib/history-player/style/index.less +102 -102
- package/lib/hooks/useSettings.js +6 -1
- package/lib/hooks/useSettings.js.map +1 -1
- package/lib/icc/PlayerManager.js +57 -26
- package/lib/icc/PlayerManager.js.map +1 -1
- package/lib/icc/api.d.ts +68 -0
- package/lib/icc/api.js +16 -2
- package/lib/icc/api.js.map +1 -1
- package/lib/icons/index.d.ts +36 -36
- package/lib/icons/index.js +171 -23
- package/lib/icons/index.js.map +1 -1
- package/lib/icons/index.less +32 -32
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -1
- package/lib/live-channel-player/index.d.ts +1 -1
- package/lib/live-channel-player/index.js +67 -31
- package/lib/live-channel-player/index.js.map +1 -1
- package/lib/live-channel-player/style/css.js +1 -0
- package/lib/live-channel-player/style/css.js.map +1 -1
- package/lib/live-channel-player/style/index.js +1 -0
- package/lib/live-channel-player/style/index.js.map +1 -1
- package/lib/live-control/index.d.ts +2 -2
- package/lib/live-control/index.js +86 -35
- package/lib/live-control/index.js.map +1 -1
- package/lib/live-control/style/css.js +4 -0
- package/lib/live-control/style/css.js.map +1 -1
- package/lib/live-control/style/index.js +4 -0
- package/lib/live-control/style/index.js.map +1 -1
- package/lib/live-control/style/index.less +99 -99
- package/lib/live-control-v2/index.d.ts +3 -3
- package/lib/live-control-v2/index.js +141 -108
- package/lib/live-control-v2/index.js.map +1 -1
- package/lib/live-control-v2/style/css.js +7 -0
- package/lib/live-control-v2/style/css.js.map +1 -1
- package/lib/live-control-v2/style/index.js +7 -0
- package/lib/live-control-v2/style/index.js.map +1 -1
- package/lib/live-control-v2/style/index.less +192 -192
- package/lib/live-player/index.js +136 -95
- package/lib/live-player/index.js.map +1 -1
- package/lib/live-player/style/css.js +2 -0
- package/lib/live-player/style/css.js.map +1 -1
- package/lib/live-player/style/index.js +2 -0
- package/lib/live-player/style/index.js.map +1 -1
- package/lib/live-player/style/index.less +75 -75
- package/lib/player/index.d.ts +1 -1
- package/lib/player/index.js +244 -79
- package/lib/player/index.js.map +1 -1
- package/lib/rsl/PlayerManager.js +64 -18
- package/lib/rsl/PlayerManager.js.map +1 -1
- package/lib/typings/@vtx/utils/index.d.ts +28 -28
- package/lib/typings/h5player.d.ts +146 -146
- package/lib/typings/webrtcplayer.d.ts +56 -56
- package/lib/typings/wsplayer.d.ts +99 -99
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +91 -12
- package/lib/utils/index.js.map +1 -1
- package/lib/vite-env.d.ts +1 -1
- package/lib/vtxHls/PlayerManager.js +20 -6
- package/lib/vtxHls/PlayerManager.js.map +1 -1
- package/lib/vtxHls/WhepManager.js +72 -9
- package/lib/vtxHls/WhepManager.js.map +1 -1
- package/lib/webrtc/PlayerManager.js +41 -28
- package/lib/webrtc/PlayerManager.js.map +1 -1
- package/package.json +125 -125
package/lib/icc/PlayerManager.js
CHANGED
|
@@ -4,15 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
+
|
|
7
8
|
var _api = _interopRequireDefault(require("./api"));
|
|
9
|
+
|
|
8
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
|
|
11
|
+
|
|
10
12
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
|
-
|
|
13
|
+
|
|
14
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
15
|
+
|
|
12
16
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
13
|
-
|
|
14
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // WSPlayer 已经注册到window
|
|
17
|
+
|
|
15
18
|
var WSPlayerConstructor = WSPlayer;
|
|
19
|
+
|
|
16
20
|
if (WSPlayer === null || WSPlayer === void 0 ? void 0 : WSPlayer.WSPlayer) {
|
|
17
21
|
WSPlayerConstructor = WSPlayer.WSPlayer;
|
|
18
22
|
}
|
|
@@ -20,30 +24,34 @@ if (WSPlayer === null || WSPlayer === void 0 ? void 0 : WSPlayer.WSPlayer) {
|
|
|
20
24
|
* WSPlayer是核心组件
|
|
21
25
|
* API 封装了接口
|
|
22
26
|
*/
|
|
27
|
+
|
|
28
|
+
|
|
23
29
|
var PlayerManager = /*#__PURE__*/function () {
|
|
24
30
|
function PlayerManager(opt) {
|
|
25
31
|
_classCallCheck(this, PlayerManager);
|
|
32
|
+
|
|
26
33
|
// 播放器所在的容器ID
|
|
27
|
-
this.el = opt.el;
|
|
28
|
-
|
|
29
|
-
this.realPlayer = null;
|
|
30
|
-
|
|
34
|
+
this.el = opt.el; // 实时预览播放器
|
|
35
|
+
|
|
36
|
+
this.realPlayer = null; // 录像回放播放器
|
|
37
|
+
|
|
31
38
|
this.recordPlayer = null;
|
|
32
|
-
this.player = null;
|
|
33
|
-
|
|
34
|
-
this.type = 'real';
|
|
35
|
-
|
|
36
|
-
this.playNum = 1;
|
|
37
|
-
|
|
38
|
-
this.playIndex = 0;
|
|
39
|
-
|
|
40
|
-
this.currentChannelId = '';
|
|
41
|
-
|
|
42
|
-
this.recordList = [];
|
|
43
|
-
|
|
39
|
+
this.player = null; // 实时预览还是录像回放播放器
|
|
40
|
+
|
|
41
|
+
this.type = 'real'; // 窗口的数量
|
|
42
|
+
|
|
43
|
+
this.playNum = 1; // 当前选中的窗口的索引
|
|
44
|
+
|
|
45
|
+
this.playIndex = 0; // 当前选中窗口正在播放视频的通道
|
|
46
|
+
|
|
47
|
+
this.currentChannelId = ''; // 索引对应窗口,保存当日录像信息
|
|
48
|
+
|
|
49
|
+
this.recordList = []; // 如果是http协议,只需使用ip,不需要端口
|
|
50
|
+
|
|
44
51
|
this.serverIp = opt.ip;
|
|
45
52
|
this.init(opt);
|
|
46
53
|
}
|
|
54
|
+
|
|
47
55
|
_createClass(PlayerManager, [{
|
|
48
56
|
key: "init",
|
|
49
57
|
value: function init(opt) {
|
|
@@ -51,6 +59,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
51
59
|
case 'real':
|
|
52
60
|
this.initRealPlayer(opt);
|
|
53
61
|
break;
|
|
62
|
+
|
|
54
63
|
case 'record':
|
|
55
64
|
this.initRecordPlayer(opt);
|
|
56
65
|
break;
|
|
@@ -59,12 +68,14 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
59
68
|
/**
|
|
60
69
|
* 初始化实时预览播放器
|
|
61
70
|
*/
|
|
71
|
+
|
|
62
72
|
}, {
|
|
63
73
|
key: "initRealPlayer",
|
|
64
74
|
value: function initRealPlayer(opt) {
|
|
65
75
|
if (!this.serverIp) {
|
|
66
76
|
return;
|
|
67
77
|
}
|
|
78
|
+
|
|
68
79
|
this.playNum = opt.num;
|
|
69
80
|
this.type = 'real';
|
|
70
81
|
this.realPlayer = new WSPlayerConstructor({
|
|
@@ -80,10 +91,10 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
80
91
|
receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),
|
|
81
92
|
getRealRtsp: _api["default"].getRealmonitor,
|
|
82
93
|
getTalkRtsp: _api["default"].getTalkRtsp // 获取对讲rtsp接口
|
|
94
|
+
|
|
83
95
|
});
|
|
96
|
+
this.player = this.realPlayer; // 初始化云台控制组件
|
|
84
97
|
|
|
85
|
-
this.player = this.realPlayer;
|
|
86
|
-
// 初始化云台控制组件
|
|
87
98
|
if (opt.pztEl) {
|
|
88
99
|
this.realPlayer.initPanTilt({
|
|
89
100
|
// 云台控制容器的id
|
|
@@ -100,12 +111,14 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
100
111
|
/**
|
|
101
112
|
* 初始化录像回放播放器
|
|
102
113
|
*/
|
|
114
|
+
|
|
103
115
|
}, {
|
|
104
116
|
key: "initRecordPlayer",
|
|
105
117
|
value: function initRecordPlayer(opt) {
|
|
106
118
|
if (!this.serverIp) {
|
|
107
119
|
return;
|
|
108
120
|
}
|
|
121
|
+
|
|
109
122
|
this.playNum = opt.num;
|
|
110
123
|
this.type = 'record';
|
|
111
124
|
this.recordPlayer = new WSPlayerConstructor({
|
|
@@ -116,14 +129,14 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
116
129
|
num: opt.num,
|
|
117
130
|
maxNum: opt.maxNum,
|
|
118
131
|
showControl: opt.showControl // 默认是否显示工具栏
|
|
119
|
-
},
|
|
120
132
|
|
|
133
|
+
},
|
|
121
134
|
receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),
|
|
122
135
|
getRecords: _api["default"].getRecords,
|
|
123
136
|
getRecordRtspByTime: _api["default"].getRecordRtspByTime,
|
|
124
137
|
getRecordRtspByFile: _api["default"].getRecordRtspByFile // 根据文件形式获取录像rtsp接口
|
|
125
|
-
});
|
|
126
138
|
|
|
139
|
+
});
|
|
127
140
|
this.player = this.recordPlayer;
|
|
128
141
|
}
|
|
129
142
|
/**
|
|
@@ -141,6 +154,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
141
154
|
// cameraType: cameraType, // {String|Number} 摄像头类型 -- 用于云台,云台必填,无云台功能可不填
|
|
142
155
|
// capability: capability, // {String} 能力集 -- 用于云台,选填
|
|
143
156
|
// }]
|
|
157
|
+
|
|
144
158
|
}, {
|
|
145
159
|
key: "playRealVideo",
|
|
146
160
|
value: function playRealVideo(opt) {
|
|
@@ -158,6 +172,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
158
172
|
// channelList: [{
|
|
159
173
|
// id: channelCode, // {String} 通道编码 -- 用于回放,必填
|
|
160
174
|
// }]
|
|
175
|
+
|
|
161
176
|
}, {
|
|
162
177
|
key: "playRecordVideo",
|
|
163
178
|
value: function playRecordVideo(opt) {
|
|
@@ -167,6 +182,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
167
182
|
* 录像暂停
|
|
168
183
|
* 只有正在播放的录像调用才有效
|
|
169
184
|
*/
|
|
185
|
+
|
|
170
186
|
}, {
|
|
171
187
|
key: "pause",
|
|
172
188
|
value: function pause() {
|
|
@@ -176,6 +192,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
176
192
|
* 录像暂停后播放
|
|
177
193
|
* 只有暂停后的录像调用才有效
|
|
178
194
|
*/
|
|
195
|
+
|
|
179
196
|
}, {
|
|
180
197
|
key: "play",
|
|
181
198
|
value: function play() {
|
|
@@ -185,6 +202,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
185
202
|
* 倍速播放
|
|
186
203
|
* @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率
|
|
187
204
|
*/
|
|
205
|
+
|
|
188
206
|
}, {
|
|
189
207
|
key: "playSpeed",
|
|
190
208
|
value: function playSpeed(speed) {
|
|
@@ -194,6 +212,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
194
212
|
* 关闭播放器
|
|
195
213
|
* @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器
|
|
196
214
|
*/
|
|
215
|
+
|
|
197
216
|
}, {
|
|
198
217
|
key: "close",
|
|
199
218
|
value: function close(index) {
|
|
@@ -202,6 +221,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
202
221
|
/**
|
|
203
222
|
* 设置全屏
|
|
204
223
|
*/
|
|
224
|
+
|
|
205
225
|
}, {
|
|
206
226
|
key: "setFullScreen",
|
|
207
227
|
value: function setFullScreen() {
|
|
@@ -211,6 +231,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
211
231
|
* 设置窗口自适应还是拉伸
|
|
212
232
|
* @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸
|
|
213
233
|
*/
|
|
234
|
+
|
|
214
235
|
}, {
|
|
215
236
|
key: "setPlayerAdapter",
|
|
216
237
|
value: function setPlayerAdapter(playerAdapter) {
|
|
@@ -220,6 +241,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
220
241
|
* 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数
|
|
221
242
|
* @param {number} number
|
|
222
243
|
*/
|
|
244
|
+
|
|
223
245
|
}, {
|
|
224
246
|
key: "setPlayerNum",
|
|
225
247
|
value: function setPlayerNum(number) {
|
|
@@ -229,6 +251,7 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
229
251
|
* 设置选中的播放器的索引
|
|
230
252
|
* @param {number} index
|
|
231
253
|
*/
|
|
254
|
+
|
|
232
255
|
}, {
|
|
233
256
|
key: "setSelectIndex",
|
|
234
257
|
value: function setSelectIndex(index) {
|
|
@@ -238,12 +261,13 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
238
261
|
* 录像跳转播放
|
|
239
262
|
* @param {string} time HH:mm:ss格式
|
|
240
263
|
*/
|
|
264
|
+
|
|
241
265
|
}, {
|
|
242
266
|
key: "jumpPlayByTime",
|
|
243
267
|
value: function jumpPlayByTime(time) {
|
|
244
268
|
this.player.jumpPlayByTime(time);
|
|
245
|
-
}
|
|
246
|
-
|
|
269
|
+
} // ----------------- 播放器事件 ------------------------
|
|
270
|
+
|
|
247
271
|
}, {
|
|
248
272
|
key: "__receiveMessageFromWSPlayer",
|
|
249
273
|
value: function __receiveMessageFromWSPlayer(method, data) {
|
|
@@ -254,10 +278,12 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
254
278
|
this.currentChannelId = data.channelId;
|
|
255
279
|
this.playIndex = data.playIndex;
|
|
256
280
|
break;
|
|
281
|
+
|
|
257
282
|
case 'windowNumChanged':
|
|
258
283
|
// 播放器显示的路数发生改变
|
|
259
284
|
this.playNum = data;
|
|
260
285
|
break;
|
|
286
|
+
|
|
261
287
|
case 'closeVideo':
|
|
262
288
|
// 视频关闭
|
|
263
289
|
// 点击关闭按钮引发的视频关闭进行提示
|
|
@@ -265,10 +291,13 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
265
291
|
if (!data.changeVideoFlag) {
|
|
266
292
|
console.log("\u7A97\u53E3".concat(data.selectIndex, "\u7684\u89C6\u9891\u5DF2\u5173\u95ED"));
|
|
267
293
|
}
|
|
294
|
+
|
|
268
295
|
break;
|
|
296
|
+
|
|
269
297
|
case 'statusChanged':
|
|
270
298
|
// 视频状态发生改变
|
|
271
299
|
break;
|
|
300
|
+
|
|
272
301
|
case 'errorInfo':
|
|
273
302
|
// 错误信息提示
|
|
274
303
|
// data = {
|
|
@@ -280,8 +309,10 @@ var PlayerManager = /*#__PURE__*/function () {
|
|
|
280
309
|
}
|
|
281
310
|
}
|
|
282
311
|
}]);
|
|
312
|
+
|
|
283
313
|
return PlayerManager;
|
|
284
314
|
}();
|
|
315
|
+
|
|
285
316
|
var _default = PlayerManager;
|
|
286
317
|
exports["default"] = _default;
|
|
287
318
|
//# sourceMappingURL=PlayerManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerManager.js","names":["_api","_interopRequireDefault","require","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","Number","WSPlayerConstructor","WSPlayer","PlayerManager","opt","el","realPlayer","recordPlayer","player","type","playNum","playIndex","currentChannelId","recordList","serverIp","ip","init","value","initRealPlayer","initRecordPlayer","num","config","maxNum","showControl","isDynamicLoadLib","receiveMessageFromWSPlayer","__receiveMessageFromWSPlayer","bind","getRealRtsp","API","getRealmonitor","getTalkRtsp","pztEl","initPanTilt","setPtzDirection","setPtzCamera","controlSitPosition","getRecords","getRecordRtspByTime","getRecordRtspByFile","playRealVideo","channelList","streamType","windowIndex","playRecordVideo","getRecordList","pause","play","playSpeed","speed","close","index","setFullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","jumpPlayByTime","time","method","data","channelId","changeVideoFlag","console","log","concat","selectIndex","_default","exports"],"sources":["icc/PlayerManager.js"],"sourcesContent":["// WSPlayer 已经注册到window\nimport API from './api';\nlet WSPlayerConstructor = WSPlayer;\nif (WSPlayer === null || WSPlayer === void 0 ? void 0 : WSPlayer.WSPlayer) {\n WSPlayerConstructor = WSPlayer.WSPlayer;\n}\n/**\n * WSPlayer是核心组件\n * API 封装了接口\n */\nclass PlayerManager {\n constructor(opt) {\n // 播放器所在的容器ID\n this.el = opt.el;\n // 实时预览播放器\n this.realPlayer = null;\n // 录像回放播放器\n this.recordPlayer = null;\n this.player = null;\n // 实时预览还是录像回放播放器\n this.type = 'real';\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = '';\n // 索引对应窗口,保存当日录像信息\n this.recordList = [];\n // 如果是http协议,只需使用ip,不需要端口\n this.serverIp = opt.ip;\n this.init(opt);\n }\n init(opt) {\n switch (opt.type) {\n case 'real':\n this.initRealPlayer(opt);\n break;\n case 'record':\n this.initRecordPlayer(opt);\n break;\n }\n }\n /**\n * 初始化实时预览播放器\n */\n initRealPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = 'real';\n this.realPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'real',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl,\n isDynamicLoadLib: false,\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRealRtsp: API.getRealmonitor,\n getTalkRtsp: API.getTalkRtsp, // 获取对讲rtsp接口\n });\n this.player = this.realPlayer;\n // 初始化云台控制组件\n if (opt.pztEl) {\n this.realPlayer.initPanTilt({\n // 云台控制容器的id\n el: opt.pztEl,\n // 云台区域控制接口\n setPtzDirection: API.setPtzDirection,\n // 云台镜头控制接口\n setPtzCamera: API.setPtzCamera,\n // 云台三维定位接口\n controlSitPosition: API.controlSitPosition,\n });\n }\n }\n /**\n * 初始化录像回放播放器\n */\n initRecordPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = 'record';\n this.recordPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'record',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl, // 默认是否显示工具栏\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRecords: API.getRecords,\n getRecordRtspByTime: API.getRecordRtspByTime,\n getRecordRtspByFile: API.getRecordRtspByFile, // 根据文件形式获取录像rtsp接口\n });\n this.player = this.recordPlayer;\n }\n /**\n * 播放实时预览视频\n * @param opt.channelList: {Array<Object>} 必填,通道列表\n * @param opt.streamType: {Number|String} 选填,码流类型,不填默认播放辅码流1,若不存在辅码流1,则自动切换到主码流 1-主码流 2-辅码流1 3-辅码流2\n * @param opt.windowIndex: {Number} 选填,指定从哪个窗口开始播放。不填默认从选中的窗口开始播放\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于预览,必填\n // isOnline: true, // {Boolean} 是否在线,非在线无法播放 -- 用于预览,必填\n // deviceCode: deviceCode, // {String} 设备编码 -- 用于对讲,对讲必填,无对讲功能可不填\n // deviceType: deviceType, // {String} 设备类型 -- 用于对讲,对讲必填,无对讲功能可不填\n // channelSeq: channelSeq, // {String|Number} 通道序号 -- 用于对讲,对讲必填,无对讲功能可不填\n // cameraType: cameraType, // {String|Number} 摄像头类型 -- 用于云台,云台必填,无云台功能可不填\n // capability: capability, // {String} 能力集 -- 用于云台,选填\n // }]\n playRealVideo(opt) {\n this.realPlayer &&\n this.realPlayer.playRealVideo(opt.channelList, opt.streamType, opt.windowIndex);\n }\n /**\n * 播放录像回放\n * @param opt.channelList {Array<Object>} 通道集合 必填\n * @param opt.startTime {String|Number} 开始时间 必选 timestamp到秒\n * @param opt.endTime {String|Number} 结束时间 必选 timestamp到秒\n * @param opt.recordSource {String|Number} 录像来源 必选 2表示设备录像 3表示中心录像\n * @param opt.streamType {String|Number} 码流类型 可选\n * @param opt.recordType {String|Number} 录像类型 可选\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于回放,必填\n // }]\n playRecordVideo(opt) {\n this.recordPlayer && this.recordPlayer.getRecordList(opt);\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.recordPlayer && this.recordPlayer.pause();\n }\n /**\n * 录像暂停后播放\n * 只有暂停后的录像调用才有效\n */\n play() {\n this.recordPlayer && this.recordPlayer.play();\n }\n /**\n * 倍速播放\n * @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率\n */\n playSpeed(speed) {\n this.recordPlayer && this.recordPlayer.playSpeed(speed);\n }\n /**\n * 关闭播放器\n * @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器\n */\n close(index) {\n this.player && this.player.close(index);\n }\n /**\n * 设置全屏\n */\n setFullScreen() {\n this.player.setFullScreen();\n }\n /**\n * 设置窗口自适应还是拉伸\n * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸\n */\n setPlayerAdapter(playerAdapter) {\n this.player.setPlayerAdapter(playerAdapter);\n }\n /**\n * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数\n * @param {number} number\n */\n setPlayerNum(number) {\n this.player.setPlayerNum(number);\n }\n /**\n * 设置选中的播放器的索引\n * @param {number} index\n */\n setSelectIndex(index) {\n this.player.setSelectIndex(index);\n }\n /**\n * 录像跳转播放\n * @param {string} time HH:mm:ss格式\n */\n jumpPlayByTime(time) {\n this.player.jumpPlayByTime(time);\n }\n // ----------------- 播放器事件 ------------------------\n __receiveMessageFromWSPlayer(method, data) {\n switch (method) {\n // ------------- 公共事件 ---------------------\n case 'selectWindowChanged': // 选中的窗口发生改变\n this.currentChannelId = data.channelId;\n this.playIndex = data.playIndex;\n break;\n case 'windowNumChanged': // 播放器显示的路数发生改变\n this.playNum = data;\n break;\n case 'closeVideo': // 视频关闭\n // 点击关闭按钮引发的视频关闭进行提示\n // 切换视频引发的视频关闭不进行提示\n if (!data.changeVideoFlag) {\n console.log(`窗口${data.selectIndex}的视频已关闭`);\n }\n break;\n case 'statusChanged': // 视频状态发生改变\n break;\n case 'errorInfo': // 错误信息提示\n // data = {\n // errorCode: xxx,\n // errorMsg: \"\",\n // channelList: [],\n // }\n break;\n }\n }\n}\nexport default PlayerManager;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlayerManager.js","names":["WSPlayerConstructor","WSPlayer","PlayerManager","opt","el","realPlayer","recordPlayer","player","type","playNum","playIndex","currentChannelId","recordList","serverIp","ip","init","initRealPlayer","initRecordPlayer","num","config","maxNum","showControl","isDynamicLoadLib","receiveMessageFromWSPlayer","__receiveMessageFromWSPlayer","bind","getRealRtsp","API","getRealmonitor","getTalkRtsp","pztEl","initPanTilt","setPtzDirection","setPtzCamera","controlSitPosition","getRecords","getRecordRtspByTime","getRecordRtspByFile","playRealVideo","channelList","streamType","windowIndex","getRecordList","pause","play","speed","playSpeed","index","close","setFullScreen","playerAdapter","setPlayerAdapter","number","setPlayerNum","setSelectIndex","time","jumpPlayByTime","method","data","channelId","changeVideoFlag","console","log","selectIndex"],"sources":["icc/PlayerManager.js"],"sourcesContent":["// WSPlayer 已经注册到window\nimport API from './api';\nlet WSPlayerConstructor = WSPlayer;\nif (WSPlayer === null || WSPlayer === void 0 ? void 0 : WSPlayer.WSPlayer) {\n WSPlayerConstructor = WSPlayer.WSPlayer;\n}\n/**\n * WSPlayer是核心组件\n * API 封装了接口\n */\nclass PlayerManager {\n constructor(opt) {\n // 播放器所在的容器ID\n this.el = opt.el;\n // 实时预览播放器\n this.realPlayer = null;\n // 录像回放播放器\n this.recordPlayer = null;\n this.player = null;\n // 实时预览还是录像回放播放器\n this.type = 'real';\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = '';\n // 索引对应窗口,保存当日录像信息\n this.recordList = [];\n // 如果是http协议,只需使用ip,不需要端口\n this.serverIp = opt.ip;\n this.init(opt);\n }\n init(opt) {\n switch (opt.type) {\n case 'real':\n this.initRealPlayer(opt);\n break;\n case 'record':\n this.initRecordPlayer(opt);\n break;\n }\n }\n /**\n * 初始化实时预览播放器\n */\n initRealPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = 'real';\n this.realPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'real',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl,\n isDynamicLoadLib: false,\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRealRtsp: API.getRealmonitor,\n getTalkRtsp: API.getTalkRtsp, // 获取对讲rtsp接口\n });\n this.player = this.realPlayer;\n // 初始化云台控制组件\n if (opt.pztEl) {\n this.realPlayer.initPanTilt({\n // 云台控制容器的id\n el: opt.pztEl,\n // 云台区域控制接口\n setPtzDirection: API.setPtzDirection,\n // 云台镜头控制接口\n setPtzCamera: API.setPtzCamera,\n // 云台三维定位接口\n controlSitPosition: API.controlSitPosition,\n });\n }\n }\n /**\n * 初始化录像回放播放器\n */\n initRecordPlayer(opt) {\n if (!this.serverIp) {\n return;\n }\n this.playNum = opt.num;\n this.type = 'record';\n this.recordPlayer = new WSPlayerConstructor({\n el: this.el,\n type: 'record',\n serverIp: this.serverIp,\n config: {\n num: opt.num,\n maxNum: opt.maxNum,\n showControl: opt.showControl, // 默认是否显示工具栏\n },\n receiveMessageFromWSPlayer: opt.receiveMessageFromWSPlayer || this.__receiveMessageFromWSPlayer.bind(this),\n getRecords: API.getRecords,\n getRecordRtspByTime: API.getRecordRtspByTime,\n getRecordRtspByFile: API.getRecordRtspByFile, // 根据文件形式获取录像rtsp接口\n });\n this.player = this.recordPlayer;\n }\n /**\n * 播放实时预览视频\n * @param opt.channelList: {Array<Object>} 必填,通道列表\n * @param opt.streamType: {Number|String} 选填,码流类型,不填默认播放辅码流1,若不存在辅码流1,则自动切换到主码流 1-主码流 2-辅码流1 3-辅码流2\n * @param opt.windowIndex: {Number} 选填,指定从哪个窗口开始播放。不填默认从选中的窗口开始播放\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于预览,必填\n // isOnline: true, // {Boolean} 是否在线,非在线无法播放 -- 用于预览,必填\n // deviceCode: deviceCode, // {String} 设备编码 -- 用于对讲,对讲必填,无对讲功能可不填\n // deviceType: deviceType, // {String} 设备类型 -- 用于对讲,对讲必填,无对讲功能可不填\n // channelSeq: channelSeq, // {String|Number} 通道序号 -- 用于对讲,对讲必填,无对讲功能可不填\n // cameraType: cameraType, // {String|Number} 摄像头类型 -- 用于云台,云台必填,无云台功能可不填\n // capability: capability, // {String} 能力集 -- 用于云台,选填\n // }]\n playRealVideo(opt) {\n this.realPlayer &&\n this.realPlayer.playRealVideo(opt.channelList, opt.streamType, opt.windowIndex);\n }\n /**\n * 播放录像回放\n * @param opt.channelList {Array<Object>} 通道集合 必填\n * @param opt.startTime {String|Number} 开始时间 必选 timestamp到秒\n * @param opt.endTime {String|Number} 结束时间 必选 timestamp到秒\n * @param opt.recordSource {String|Number} 录像来源 必选 2表示设备录像 3表示中心录像\n * @param opt.streamType {String|Number} 码流类型 可选\n * @param opt.recordType {String|Number} 录像类型 可选\n */\n // channelList: [{\n // id: channelCode, // {String} 通道编码 -- 用于回放,必填\n // }]\n playRecordVideo(opt) {\n this.recordPlayer && this.recordPlayer.getRecordList(opt);\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.recordPlayer && this.recordPlayer.pause();\n }\n /**\n * 录像暂停后播放\n * 只有暂停后的录像调用才有效\n */\n play() {\n this.recordPlayer && this.recordPlayer.play();\n }\n /**\n * 倍速播放\n * @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率\n */\n playSpeed(speed) {\n this.recordPlayer && this.recordPlayer.playSpeed(speed);\n }\n /**\n * 关闭播放器\n * @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器\n */\n close(index) {\n this.player && this.player.close(index);\n }\n /**\n * 设置全屏\n */\n setFullScreen() {\n this.player.setFullScreen();\n }\n /**\n * 设置窗口自适应还是拉伸\n * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸\n */\n setPlayerAdapter(playerAdapter) {\n this.player.setPlayerAdapter(playerAdapter);\n }\n /**\n * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数\n * @param {number} number\n */\n setPlayerNum(number) {\n this.player.setPlayerNum(number);\n }\n /**\n * 设置选中的播放器的索引\n * @param {number} index\n */\n setSelectIndex(index) {\n this.player.setSelectIndex(index);\n }\n /**\n * 录像跳转播放\n * @param {string} time HH:mm:ss格式\n */\n jumpPlayByTime(time) {\n this.player.jumpPlayByTime(time);\n }\n // ----------------- 播放器事件 ------------------------\n __receiveMessageFromWSPlayer(method, data) {\n switch (method) {\n // ------------- 公共事件 ---------------------\n case 'selectWindowChanged': // 选中的窗口发生改变\n this.currentChannelId = data.channelId;\n this.playIndex = data.playIndex;\n break;\n case 'windowNumChanged': // 播放器显示的路数发生改变\n this.playNum = data;\n break;\n case 'closeVideo': // 视频关闭\n // 点击关闭按钮引发的视频关闭进行提示\n // 切换视频引发的视频关闭不进行提示\n if (!data.changeVideoFlag) {\n console.log(`窗口${data.selectIndex}的视频已关闭`);\n }\n break;\n case 'statusChanged': // 视频状态发生改变\n break;\n case 'errorInfo': // 错误信息提示\n // data = {\n // errorCode: xxx,\n // errorMsg: \"\",\n // channelList: [],\n // }\n break;\n }\n }\n}\nexport default PlayerManager;\n"],"mappings":"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"}
|
package/lib/icc/api.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export default API;
|
|
2
2
|
declare namespace API {
|
|
3
|
+
/**
|
|
4
|
+
* 获取token
|
|
5
|
+
*/
|
|
6
|
+
function getToken(params: any): Promise<any>;
|
|
3
7
|
/**
|
|
4
8
|
* 获取token
|
|
5
9
|
*/
|
|
@@ -8,10 +12,28 @@ declare namespace API {
|
|
|
8
12
|
* 请求实时视频流地址
|
|
9
13
|
*/
|
|
10
14
|
function getRealmonitor(realmonitorParam: any): Promise<any>;
|
|
15
|
+
/**
|
|
16
|
+
* 请求实时视频流地址
|
|
17
|
+
*/
|
|
18
|
+
function getRealmonitor(realmonitorParam: any): Promise<any>;
|
|
11
19
|
/**
|
|
12
20
|
* 获取对讲的rtsp
|
|
13
21
|
*/
|
|
14
22
|
function getTalkRtsp(talkPram: any): Promise<any>;
|
|
23
|
+
/**
|
|
24
|
+
* 获取对讲的rtsp
|
|
25
|
+
*/
|
|
26
|
+
function getTalkRtsp(talkPram: any): Promise<any>;
|
|
27
|
+
/**
|
|
28
|
+
* 根据时间查询设备上的录像
|
|
29
|
+
* @param recordByTimeParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
30
|
+
* @param recordByTimeParam.recordSource 录像来源:1=全部,2=设备,3=中心
|
|
31
|
+
* @param recordByTimeParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅
|
|
32
|
+
* @param recordByTimeParam.channelId 通道code
|
|
33
|
+
* @param recordByTimeParam.startTime 开始时间
|
|
34
|
+
* @param recordByTimeParam.endTime 结束时间
|
|
35
|
+
*/
|
|
36
|
+
function getRecordRtspByTime(recordByTimeParam: any): Promise<any>;
|
|
15
37
|
/**
|
|
16
38
|
* 根据时间查询设备上的录像
|
|
17
39
|
* @param recordByTimeParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
@@ -32,6 +54,26 @@ declare namespace API {
|
|
|
32
54
|
* @param recordByFileParam.endTime 结束时间 timestamp到秒
|
|
33
55
|
*/
|
|
34
56
|
function getRecordRtspByFile(recordByFileParam: any): Promise<any>;
|
|
57
|
+
/**
|
|
58
|
+
* 根据文件形式回放录像
|
|
59
|
+
* @param recordByFileParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
60
|
+
* @param recordByFileParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅
|
|
61
|
+
* @param recordByFileParam.recordSource 录像来源:1=全部,2=设备,3=中心
|
|
62
|
+
* @param recordByFileParam.channelId 通道code
|
|
63
|
+
* @param recordByFileParam.startTime 开始时间 timestamp到秒
|
|
64
|
+
* @param recordByFileParam.endTime 结束时间 timestamp到秒
|
|
65
|
+
*/
|
|
66
|
+
function getRecordRtspByFile(recordByFileParam: any): Promise<any>;
|
|
67
|
+
/**
|
|
68
|
+
* 查询中心录像上的录像文件信息
|
|
69
|
+
* @param recordsParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
70
|
+
* @param recordsParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅
|
|
71
|
+
* @param recordsParam.recordSource 录像来源:1=全部,2=设备,3=中心
|
|
72
|
+
* @param recordsParam.channelId 通道code
|
|
73
|
+
* @param recordsParam.startTime 开始时间 timestamp到秒
|
|
74
|
+
* @param recordsParam.endTime 结束时间 timestamp到秒
|
|
75
|
+
*/
|
|
76
|
+
function getRecords(recordsParam: any): Promise<any>;
|
|
35
77
|
/**
|
|
36
78
|
* 查询中心录像上的录像文件信息
|
|
37
79
|
* @param recordsParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
@@ -48,6 +90,18 @@ declare namespace API {
|
|
|
48
90
|
* @returns {Promise<unknown>}
|
|
49
91
|
*/
|
|
50
92
|
function setPtzDirection(directionParam: any): Promise<unknown>;
|
|
93
|
+
/**
|
|
94
|
+
* 云台方向控制
|
|
95
|
+
* @param directionParam
|
|
96
|
+
* @returns {Promise<unknown>}
|
|
97
|
+
*/
|
|
98
|
+
function setPtzDirection(directionParam: any): Promise<unknown>;
|
|
99
|
+
/**
|
|
100
|
+
* 云台镜头控制
|
|
101
|
+
* @param cameraParam
|
|
102
|
+
* @returns {Promise<unknown>}
|
|
103
|
+
*/
|
|
104
|
+
function setPtzCamera(cameraParam: any): Promise<unknown>;
|
|
51
105
|
/**
|
|
52
106
|
* 云台镜头控制
|
|
53
107
|
* @param cameraParam
|
|
@@ -60,6 +114,12 @@ declare namespace API {
|
|
|
60
114
|
* @returns {Promise<unknown>}
|
|
61
115
|
*/
|
|
62
116
|
function controlSitPosition(positionParam: any): Promise<unknown>;
|
|
117
|
+
/**
|
|
118
|
+
* 云台三维定位接口
|
|
119
|
+
* @param positionParam
|
|
120
|
+
* @returns {Promise<unknown>}
|
|
121
|
+
*/
|
|
122
|
+
function controlSitPosition(positionParam: any): Promise<unknown>;
|
|
63
123
|
/**
|
|
64
124
|
* 请求
|
|
65
125
|
* @param {*} opt
|
|
@@ -67,5 +127,13 @@ declare namespace API {
|
|
|
67
127
|
* @param {*} opt.data 参数
|
|
68
128
|
*/
|
|
69
129
|
function ajaxRequest(opt: any): Promise<any>;
|
|
130
|
+
/**
|
|
131
|
+
* 请求
|
|
132
|
+
* @param {*} opt
|
|
133
|
+
* @param {*} opt.url 接口地址
|
|
134
|
+
* @param {*} opt.data 参数
|
|
135
|
+
*/
|
|
136
|
+
function ajaxRequest(opt: any): Promise<any>;
|
|
137
|
+
function refreshToken(): Promise<any>;
|
|
70
138
|
function refreshToken(): Promise<any>;
|
|
71
139
|
}
|
package/lib/icc/api.js
CHANGED
|
@@ -4,8 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
+
|
|
7
8
|
var _fetch = _interopRequireDefault(require("../api/fetch"));
|
|
9
|
+
|
|
8
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
+
|
|
9
12
|
// 跟平台相关的业务JS
|
|
10
13
|
var API = {
|
|
11
14
|
/**
|
|
@@ -16,6 +19,7 @@ var API = {
|
|
|
16
19
|
data: Object.assign({}, params)
|
|
17
20
|
});
|
|
18
21
|
},
|
|
22
|
+
|
|
19
23
|
/**
|
|
20
24
|
* 请求实时视频流地址
|
|
21
25
|
*/
|
|
@@ -31,6 +35,7 @@ var API = {
|
|
|
31
35
|
});
|
|
32
36
|
});
|
|
33
37
|
},
|
|
38
|
+
|
|
34
39
|
/**
|
|
35
40
|
* 获取对讲的rtsp
|
|
36
41
|
*/
|
|
@@ -46,6 +51,7 @@ var API = {
|
|
|
46
51
|
});
|
|
47
52
|
});
|
|
48
53
|
},
|
|
54
|
+
|
|
49
55
|
/**
|
|
50
56
|
* 根据时间查询设备上的录像
|
|
51
57
|
* @param recordByTimeParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
@@ -67,6 +73,7 @@ var API = {
|
|
|
67
73
|
});
|
|
68
74
|
});
|
|
69
75
|
},
|
|
76
|
+
|
|
70
77
|
/**
|
|
71
78
|
* 根据文件形式回放录像
|
|
72
79
|
* @param recordByFileParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
@@ -88,6 +95,7 @@ var API = {
|
|
|
88
95
|
});
|
|
89
96
|
});
|
|
90
97
|
},
|
|
98
|
+
|
|
91
99
|
/**
|
|
92
100
|
* 查询中心录像上的录像文件信息
|
|
93
101
|
* @param recordsParam.recordType 录像类型:1=一般录像,2=报警录像
|
|
@@ -109,6 +117,7 @@ var API = {
|
|
|
109
117
|
});
|
|
110
118
|
});
|
|
111
119
|
},
|
|
120
|
+
|
|
112
121
|
/**
|
|
113
122
|
* 云台方向控制
|
|
114
123
|
* @param directionParam
|
|
@@ -126,6 +135,7 @@ var API = {
|
|
|
126
135
|
});
|
|
127
136
|
});
|
|
128
137
|
},
|
|
138
|
+
|
|
129
139
|
/**
|
|
130
140
|
* 云台镜头控制
|
|
131
141
|
* @param cameraParam
|
|
@@ -143,6 +153,7 @@ var API = {
|
|
|
143
153
|
});
|
|
144
154
|
});
|
|
145
155
|
},
|
|
156
|
+
|
|
146
157
|
/**
|
|
147
158
|
* 云台三维定位接口
|
|
148
159
|
* @param positionParam
|
|
@@ -160,6 +171,7 @@ var API = {
|
|
|
160
171
|
});
|
|
161
172
|
});
|
|
162
173
|
},
|
|
174
|
+
|
|
163
175
|
/**
|
|
164
176
|
* 请求
|
|
165
177
|
* @param {*} opt
|
|
@@ -214,9 +226,11 @@ var API = {
|
|
|
214
226
|
client_secret: 'web_client'
|
|
215
227
|
};
|
|
216
228
|
var param = '';
|
|
229
|
+
|
|
217
230
|
for (var i in value) {
|
|
218
231
|
param += '&' + i + '=' + value[i];
|
|
219
232
|
}
|
|
233
|
+
|
|
220
234
|
param = param.slice(1);
|
|
221
235
|
return new Promise(function (resolve, reject) {
|
|
222
236
|
$.ajax({
|
|
@@ -232,8 +246,8 @@ var API = {
|
|
|
232
246
|
if (res.code === '0') {
|
|
233
247
|
localStorage.setItem('accessToken', res.data.access_token);
|
|
234
248
|
localStorage.setItem('refreshToken', res.data.refresh_token);
|
|
235
|
-
localStorage.setItem('expiresTime', new Date().getTime() + res.data.expires_in * 1000);
|
|
236
|
-
|
|
249
|
+
localStorage.setItem('expiresTime', new Date().getTime() + res.data.expires_in * 1000); // 登录保活
|
|
250
|
+
|
|
237
251
|
API.ajaxRequest({
|
|
238
252
|
url: "/evo-apigw/evo-brm/1.2.0/user/keepalive",
|
|
239
253
|
data: {
|
package/lib/icc/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":["_fetch","_interopRequireDefault","require","obj","__esModule","API","getToken","params","fetch","data","Object","assign","getRealmonitor","realmonitorParam","Promise","resolve","reject","ajaxRequest","url","then","res","errMsg","getTalkRtsp","talkPram","getRecordRtspByTime","recordByTimeParam","getRecordRtspByFile","recordByFileParam","getRecords","recordsParam","setPtzDirection","directionParam","setPtzCamera","cameraParam","controlSitPosition","positionParam","opt","accessToken","localStorage","getItem","userId","split","headers","$","ajax","type","dataType","JSON","stringify","Authorization","proxyip","contentType","crossDomain","success","code","refreshToken","clientId","value","refresh_token","grant_type","client_id","client_secret","param","i","slice","setItem","access_token","Date","getTime","expires_in","clientType","magicId","timeout","console","error","window","open","location","origin","_default","exports"],"sources":["icc/api.js"],"sourcesContent":["import fetch from '../api/fetch';\n// 跟平台相关的业务JS\nconst API = {\n /**\n * 获取token\n */\n getToken(params) {\n return fetch('/cloud/vis/base/cp/artemis/token.smvc', 'GET', {\n data: Object.assign({}, params),\n });\n },\n /**\n * 请求实时视频流地址\n */\n getRealmonitor(realmonitorParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/MTS/Video/StartVideo',\n data: realmonitorParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 获取对讲的rtsp\n */\n getTalkRtsp(talkPram) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/MTS/Audio/StartTalk',\n data: talkPram,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res);\n });\n });\n },\n /**\n * 根据时间查询设备上的录像\n * @param recordByTimeParam.recordType 录像类型:1=一般录像,2=报警录像\n * @param recordByTimeParam.recordSource 录像来源:1=全部,2=设备,3=中心\n * @param recordByTimeParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅\n * @param recordByTimeParam.channelId 通道code\n * @param recordByTimeParam.startTime 开始时间\n * @param recordByTimeParam.endTime 结束时间\n */\n getRecordRtspByTime(recordByTimeParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/SS/Playback/StartPlaybackByTime',\n data: recordByTimeParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 根据文件形式回放录像\n * @param recordByFileParam.recordType 录像类型:1=一般录像,2=报警录像\n * @param recordByFileParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅\n * @param recordByFileParam.recordSource 录像来源:1=全部,2=设备,3=中心\n * @param recordByFileParam.channelId 通道code\n * @param recordByFileParam.startTime 开始时间 timestamp到秒\n * @param recordByFileParam.endTime 结束时间 timestamp到秒\n */\n getRecordRtspByFile(recordByFileParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/SS/Playback/StartPlaybackByFile',\n data: recordByFileParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 查询中心录像上的录像文件信息\n * @param recordsParam.recordType 录像类型:1=一般录像,2=报警录像\n * @param recordsParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅\n * @param recordsParam.recordSource 录像来源:1=全部,2=设备,3=中心\n * @param recordsParam.channelId 通道code\n * @param recordsParam.startTime 开始时间 timestamp到秒\n * @param recordsParam.endTime 结束时间 timestamp到秒\n */\n getRecords(recordsParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/SS/Record/QueryRecords',\n data: recordsParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 云台方向控制\n * @param directionParam\n * @returns {Promise<unknown>}\n */\n setPtzDirection(directionParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/DMS/Ptz/OperateDirect',\n data: directionParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 云台镜头控制\n * @param cameraParam\n * @returns {Promise<unknown>}\n */\n setPtzCamera(cameraParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/DMS/Ptz/OperateCamera',\n data: cameraParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 云台三维定位接口\n * @param positionParam\n * @returns {Promise<unknown>}\n */\n controlSitPosition(positionParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/DMS/Ptz/SitPosition',\n data: positionParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res);\n });\n });\n },\n /**\n * 请求\n * @param {*} opt\n * @param {*} opt.url 接口地址\n * @param {*} opt.data 参数\n */\n ajaxRequest(opt) {\n var accessToken = localStorage.getItem('accessToken');\n var userId = accessToken ? accessToken.split(':')[0] : '';\n opt.headers = opt.headers ? opt.headers : {};\n return new Promise((resolve, reject) => {\n $.ajax({\n url: opt.url,\n type: opt.type ? opt.type : 'post',\n dataType: opt.dataType ? opt.dataType : 'json',\n data: JSON.stringify(opt.data),\n headers: Object.assign({\n Authorization: 'bearer ' + accessToken,\n 'User-Id': userId,\n 'Content-Type': 'application/json',\n proxyip: localStorage['proxyIp'],\n }, opt.headers),\n contentType: 'application/json;charset=utf-8',\n crossDomain: true,\n success: function (res) {\n if (res.code == 1000 || res.code == '0') {\n resolve(res);\n }\n else if (res.code == '27001007') {\n // token过期,刷新token\n API.refreshToken().then(() => {\n // token刷新后,重新请求\n API.ajaxRequest(opt).then((data) => {\n // 重新请求后,需要处理原始请求的resolve\n resolve(data);\n });\n });\n }\n else {\n reject(res);\n }\n },\n });\n });\n },\n // 刷新token\n refreshToken() {\n var refreshToken = localStorage.getItem('refreshToken');\n var clientId = localStorage.getItem('checked') ? 'web_client_remember' : 'web_client';\n var value = {\n refresh_token: refreshToken,\n grant_type: 'refresh_token',\n client_id: clientId,\n client_secret: 'web_client',\n };\n var param = '';\n for (var i in value) {\n param += '&' + i + '=' + value[i];\n }\n param = param.slice(1);\n return new Promise((resolve, reject) => {\n $.ajax({\n url: '/evo-apigw/evo-oauth/oauth/token',\n type: 'post',\n dataType: 'json',\n data: param,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded',\n proxyip: localStorage['proxyIp'],\n },\n success: function (res) {\n if (res.code === '0') {\n localStorage.setItem('accessToken', res.data.access_token);\n localStorage.setItem('refreshToken', res.data.refresh_token);\n localStorage.setItem('expiresTime', new Date().getTime() + res.data.expires_in * 1000);\n // 登录保活\n API.ajaxRequest({\n url: `/evo-apigw/evo-brm/1.2.0/user/keepalive`,\n data: {\n clientType: 1,\n magicId: localStorage.magicId,\n timeout: 10000,\n },\n });\n resolve();\n }\n else {\n console.error(`refreshToken 失效,请登录平台`);\n window.open(location.origin);\n reject();\n }\n },\n });\n });\n },\n};\nexport default API;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","names":["API","getToken","params","fetch","data","Object","assign","getRealmonitor","realmonitorParam","Promise","resolve","reject","ajaxRequest","url","then","res","errMsg","getTalkRtsp","talkPram","getRecordRtspByTime","recordByTimeParam","getRecordRtspByFile","recordByFileParam","getRecords","recordsParam","setPtzDirection","directionParam","setPtzCamera","cameraParam","controlSitPosition","positionParam","opt","accessToken","localStorage","getItem","userId","split","headers","$","ajax","type","dataType","JSON","stringify","Authorization","proxyip","contentType","crossDomain","success","code","refreshToken","clientId","value","refresh_token","grant_type","client_id","client_secret","param","i","slice","setItem","access_token","Date","getTime","expires_in","clientType","magicId","timeout","console","error","window","open","location","origin"],"sources":["icc/api.js"],"sourcesContent":["import fetch from '../api/fetch';\n// 跟平台相关的业务JS\nconst API = {\n /**\n * 获取token\n */\n getToken(params) {\n return fetch('/cloud/vis/base/cp/artemis/token.smvc', 'GET', {\n data: Object.assign({}, params),\n });\n },\n /**\n * 请求实时视频流地址\n */\n getRealmonitor(realmonitorParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/MTS/Video/StartVideo',\n data: realmonitorParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 获取对讲的rtsp\n */\n getTalkRtsp(talkPram) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/MTS/Audio/StartTalk',\n data: talkPram,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res);\n });\n });\n },\n /**\n * 根据时间查询设备上的录像\n * @param recordByTimeParam.recordType 录像类型:1=一般录像,2=报警录像\n * @param recordByTimeParam.recordSource 录像来源:1=全部,2=设备,3=中心\n * @param recordByTimeParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅\n * @param recordByTimeParam.channelId 通道code\n * @param recordByTimeParam.startTime 开始时间\n * @param recordByTimeParam.endTime 结束时间\n */\n getRecordRtspByTime(recordByTimeParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/SS/Playback/StartPlaybackByTime',\n data: recordByTimeParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 根据文件形式回放录像\n * @param recordByFileParam.recordType 录像类型:1=一般录像,2=报警录像\n * @param recordByFileParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅\n * @param recordByFileParam.recordSource 录像来源:1=全部,2=设备,3=中心\n * @param recordByFileParam.channelId 通道code\n * @param recordByFileParam.startTime 开始时间 timestamp到秒\n * @param recordByFileParam.endTime 结束时间 timestamp到秒\n */\n getRecordRtspByFile(recordByFileParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/SS/Playback/StartPlaybackByFile',\n data: recordByFileParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 查询中心录像上的录像文件信息\n * @param recordsParam.recordType 录像类型:1=一般录像,2=报警录像\n * @param recordsParam.streamType 码流类型:1=主码流, 2=辅码流 使用辅码流 码率低更加流畅\n * @param recordsParam.recordSource 录像来源:1=全部,2=设备,3=中心\n * @param recordsParam.channelId 通道code\n * @param recordsParam.startTime 开始时间 timestamp到秒\n * @param recordsParam.endTime 结束时间 timestamp到秒\n */\n getRecords(recordsParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/SS/Record/QueryRecords',\n data: recordsParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 云台方向控制\n * @param directionParam\n * @returns {Promise<unknown>}\n */\n setPtzDirection(directionParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/DMS/Ptz/OperateDirect',\n data: directionParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 云台镜头控制\n * @param cameraParam\n * @returns {Promise<unknown>}\n */\n setPtzCamera(cameraParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/DMS/Ptz/OperateCamera',\n data: cameraParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res.errMsg);\n });\n });\n },\n /**\n * 云台三维定位接口\n * @param positionParam\n * @returns {Promise<unknown>}\n */\n controlSitPosition(positionParam) {\n return new Promise((resolve, reject) => {\n API.ajaxRequest({\n url: '/evo-apigw/admin/API/DMS/Ptz/SitPosition',\n data: positionParam,\n })\n .then((res) => {\n resolve(res.data);\n })\n .catch((res) => {\n reject(res);\n });\n });\n },\n /**\n * 请求\n * @param {*} opt\n * @param {*} opt.url 接口地址\n * @param {*} opt.data 参数\n */\n ajaxRequest(opt) {\n var accessToken = localStorage.getItem('accessToken');\n var userId = accessToken ? accessToken.split(':')[0] : '';\n opt.headers = opt.headers ? opt.headers : {};\n return new Promise((resolve, reject) => {\n $.ajax({\n url: opt.url,\n type: opt.type ? opt.type : 'post',\n dataType: opt.dataType ? opt.dataType : 'json',\n data: JSON.stringify(opt.data),\n headers: Object.assign({\n Authorization: 'bearer ' + accessToken,\n 'User-Id': userId,\n 'Content-Type': 'application/json',\n proxyip: localStorage['proxyIp'],\n }, opt.headers),\n contentType: 'application/json;charset=utf-8',\n crossDomain: true,\n success: function (res) {\n if (res.code == 1000 || res.code == '0') {\n resolve(res);\n }\n else if (res.code == '27001007') {\n // token过期,刷新token\n API.refreshToken().then(() => {\n // token刷新后,重新请求\n API.ajaxRequest(opt).then((data) => {\n // 重新请求后,需要处理原始请求的resolve\n resolve(data);\n });\n });\n }\n else {\n reject(res);\n }\n },\n });\n });\n },\n // 刷新token\n refreshToken() {\n var refreshToken = localStorage.getItem('refreshToken');\n var clientId = localStorage.getItem('checked') ? 'web_client_remember' : 'web_client';\n var value = {\n refresh_token: refreshToken,\n grant_type: 'refresh_token',\n client_id: clientId,\n client_secret: 'web_client',\n };\n var param = '';\n for (var i in value) {\n param += '&' + i + '=' + value[i];\n }\n param = param.slice(1);\n return new Promise((resolve, reject) => {\n $.ajax({\n url: '/evo-apigw/evo-oauth/oauth/token',\n type: 'post',\n dataType: 'json',\n data: param,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded',\n proxyip: localStorage['proxyIp'],\n },\n success: function (res) {\n if (res.code === '0') {\n localStorage.setItem('accessToken', res.data.access_token);\n localStorage.setItem('refreshToken', res.data.refresh_token);\n localStorage.setItem('expiresTime', new Date().getTime() + res.data.expires_in * 1000);\n // 登录保活\n API.ajaxRequest({\n url: `/evo-apigw/evo-brm/1.2.0/user/keepalive`,\n data: {\n clientType: 1,\n magicId: localStorage.magicId,\n timeout: 10000,\n },\n });\n resolve();\n }\n else {\n console.error(`refreshToken 失效,请登录平台`);\n window.open(location.origin);\n reject();\n }\n },\n });\n });\n },\n};\nexport default API;\n"],"mappings":"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"}
|