@vtx/player 1.9.10 → 1.10.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.
Files changed (87) hide show
  1. package/lib/api/index.d.ts +2 -0
  2. package/lib/api/index.js +7 -1
  3. package/lib/api/index.js.map +1 -1
  4. package/lib/api/types.d.ts +5 -0
  5. package/lib/bd/PlayerManager.d.ts +1 -0
  6. package/lib/bd/PlayerManager.js +13 -0
  7. package/lib/bd/PlayerManager.js.map +1 -1
  8. package/lib/controls/index.d.ts +3 -4
  9. package/lib/controls/index.js +2 -1
  10. package/lib/controls/index.js.map +1 -1
  11. package/lib/history-control-v2/components/grid-item/index.js +29 -1
  12. package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
  13. package/lib/history-control-v2/components/panel/index.js +47 -13
  14. package/lib/history-control-v2/components/panel/index.js.map +1 -1
  15. package/lib/history-control-v2/interface.d.ts +2 -0
  16. package/lib/history-control-v2/utils.d.ts +1 -0
  17. package/lib/history-control-v2/utils.js +18 -4
  18. package/lib/history-control-v2/utils.js.map +1 -1
  19. package/lib/history-player/index.d.ts +4 -2
  20. package/lib/history-player/index.js +147 -45
  21. package/lib/history-player/index.js.map +1 -1
  22. package/lib/index.d.ts +0 -1
  23. package/lib/index.js +0 -7
  24. package/lib/index.js.map +1 -1
  25. package/lib/live-channel-player/index.js +3 -3
  26. package/lib/live-channel-player/index.js.map +1 -1
  27. package/lib/live-player/index.d.ts +1 -2
  28. package/lib/live-player/index.js +62 -6
  29. package/lib/live-player/index.js.map +1 -1
  30. package/lib/player/BdPlayer.d.ts +110 -0
  31. package/lib/player/BdPlayer.js +242 -0
  32. package/lib/player/BdPlayer.js.map +1 -0
  33. package/lib/player/FlvPlayer.d.ts +112 -0
  34. package/lib/player/FlvPlayer.js +210 -0
  35. package/lib/player/FlvPlayer.js.map +1 -0
  36. package/lib/player/H264Player.d.ts +109 -0
  37. package/lib/player/H264Player.js +218 -0
  38. package/lib/player/H264Player.js.map +1 -0
  39. package/lib/player/HkcarwsPlayer.d.ts +124 -0
  40. package/lib/player/HkcarwsPlayer.js +390 -0
  41. package/lib/player/HkcarwsPlayer.js.map +1 -0
  42. package/lib/player/HkwsPlayer.d.ts +124 -0
  43. package/lib/player/HkwsPlayer.js +376 -0
  44. package/lib/player/HkwsPlayer.js.map +1 -0
  45. package/lib/player/HlsPlayer.d.ts +115 -0
  46. package/lib/player/HlsPlayer.js +212 -0
  47. package/lib/player/HlsPlayer.js.map +1 -0
  48. package/lib/player/IccwsPlayer.d.ts +113 -0
  49. package/lib/player/IccwsPlayer.js +249 -0
  50. package/lib/player/IccwsPlayer.js.map +1 -0
  51. package/lib/player/IframePlayer.d.ts +60 -0
  52. package/lib/player/IframePlayer.js +45 -0
  53. package/lib/player/IframePlayer.js.map +1 -0
  54. package/lib/player/Mp4Player.d.ts +110 -0
  55. package/lib/player/Mp4Player.js +215 -0
  56. package/lib/player/Mp4Player.js.map +1 -0
  57. package/lib/player/RslPlayer.d.ts +112 -0
  58. package/lib/player/RslPlayer.js +230 -0
  59. package/lib/player/RslPlayer.js.map +1 -0
  60. package/lib/player/VtxHlsPlayer.d.ts +116 -0
  61. package/lib/player/VtxHlsPlayer.js +222 -0
  62. package/lib/player/VtxHlsPlayer.js.map +1 -0
  63. package/lib/player/VtxwhepPlayer.d.ts +110 -0
  64. package/lib/player/VtxwhepPlayer.js +223 -0
  65. package/lib/player/VtxwhepPlayer.js.map +1 -0
  66. package/lib/player/VtxwsPlayer.d.ts +114 -0
  67. package/lib/player/VtxwsPlayer.js +264 -0
  68. package/lib/player/VtxwsPlayer.js.map +1 -0
  69. package/lib/player/WebrtcPlayer.d.ts +109 -0
  70. package/lib/player/WebrtcPlayer.js +219 -0
  71. package/lib/player/WebrtcPlayer.js.map +1 -0
  72. package/lib/player/WfsPlayer.d.ts +109 -0
  73. package/lib/player/WfsPlayer.js +220 -0
  74. package/lib/player/WfsPlayer.js.map +1 -0
  75. package/lib/player/index.d.ts +16 -125
  76. package/lib/player/index.js +103 -836
  77. package/lib/player/index.js.map +1 -1
  78. package/lib/player/indexOld.d.ts +127 -0
  79. package/lib/player/indexOld.js +871 -0
  80. package/lib/player/indexOld.js.map +1 -0
  81. package/lib/utils/index.d.ts +7 -2
  82. package/lib/utils/index.js +24 -1
  83. package/lib/utils/index.js.map +1 -1
  84. package/lib/wfs/PlayerManager.d.ts +1 -0
  85. package/lib/wfs/PlayerManager.js +19 -2
  86. package/lib/wfs/PlayerManager.js.map +1 -1
  87. package/package.json +1 -1
@@ -0,0 +1,871 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _PlayerManager = _interopRequireDefault(require("../bd/PlayerManager"));
8
+ var _config = _interopRequireDefault(require("../config"));
9
+ var _PlayerManager2 = _interopRequireDefault(require("../h264/PlayerManager"));
10
+ var _PlayerManager3 = _interopRequireDefault(require("../icc/PlayerManager"));
11
+ var _PlayerManager4 = _interopRequireDefault(require("../mpegts/PlayerManager"));
12
+ var _PlayerManager5 = _interopRequireDefault(require("../rsl/PlayerManager"));
13
+ var _utils = require("../utils");
14
+ var _PlayerManager6 = _interopRequireDefault(require("../vtxHls/PlayerManager"));
15
+ var _WhepManager = _interopRequireDefault(require("../vtxHls/WhepManager"));
16
+ var _PlayerManager7 = _interopRequireDefault(require("../webrtc/PlayerManager"));
17
+ var _PlayerManager8 = _interopRequireDefault(require("../wfs/PlayerManager"));
18
+ var _hls = _interopRequireDefault(require("hls.js"));
19
+ var _moment = _interopRequireDefault(require("moment"));
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
21
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
22
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
23
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
24
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
25
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
26
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
27
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
28
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
29
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
30
+ function adopt(value) {
31
+ return value instanceof P ? value : new P(function (resolve) {
32
+ resolve(value);
33
+ });
34
+ }
35
+ return new (P || (P = Promise))(function (resolve, reject) {
36
+ function fulfilled(value) {
37
+ try {
38
+ step(generator.next(value));
39
+ } catch (e) {
40
+ reject(e);
41
+ }
42
+ }
43
+ function rejected(value) {
44
+ try {
45
+ step(generator["throw"](value));
46
+ } catch (e) {
47
+ reject(e);
48
+ }
49
+ }
50
+ function step(result) {
51
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
52
+ }
53
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
54
+ });
55
+ };
56
+ /* eslint-disable @typescript-eslint/no-explicit-any */
57
+ /**
58
+ * 视频播放核心类
59
+ */
60
+ var Player = /*#__PURE__*/function () {
61
+ function Player(params) {
62
+ _classCallCheck(this, Player);
63
+ var _a, _b, _c, _d, _e, _f;
64
+ this.player = null;
65
+ /** 之前的视频播放速度,用于处理海康音量控制 */
66
+ this.preSpeed = 1;
67
+ this.containerId = '';
68
+ // 海康窗口下标
69
+ this.windowIndex = 0;
70
+ /** 视频播放流是否走代理 - 是强制走代理,否通过判断 http协议,走代理配置 */
71
+ var url = params.url,
72
+ originalUrl = params.originalUrl,
73
+ channelNum = params.channelNum,
74
+ deviceCode = params.deviceCode,
75
+ _params$enableAgent = params.enableAgent,
76
+ enableAgent = _params$enableAgent === void 0 ? false : _params$enableAgent,
77
+ container = params.container,
78
+ _params$live = params.live,
79
+ live = _params$live === void 0 ? true : _params$live,
80
+ type = params.type,
81
+ startTime = params.startTime,
82
+ endTime = params.endTime,
83
+ streamType = params.streamType,
84
+ deviceIp = params.deviceIp,
85
+ devicePort = params.devicePort,
86
+ reload = params.reload,
87
+ onClose = params.onClose;
88
+ this.reload = reload;
89
+ this.onClose = onClose;
90
+ this.containerId = container.id;
91
+ var playerParams = (0, _utils.getPlayerParams)(type, url, enableAgent, live);
92
+ this.type = type || playerParams.type; // 如果不传递type,则通过url解析type值,1.1.2之后默认都传type
93
+ this.url = playerParams.url;
94
+ this.originalUrl = originalUrl;
95
+ this.channelNum = channelNum;
96
+ this.deviceCode = deviceCode || '';
97
+ this.streamType = streamType || '0'; // 默认主码流
98
+ this.enableAgent = enableAgent;
99
+ this.startTime = startTime;
100
+ this.endTime = endTime;
101
+ var video = document.createElement('video'); // 生成video元素
102
+ video.className = 'vtx-player-video';
103
+ video.muted = true; //设置静音
104
+ this.video = video;
105
+ if (this.type === 'flv' && video) {
106
+ container.appendChild(video);
107
+ this.player = new _PlayerManager4["default"]({
108
+ el: this.video,
109
+ url: this.url.replace('SZGJ_HTTPS', "".concat(window.location.host)),
110
+ type: 'flv'
111
+ });
112
+ }
113
+ // 处理hls格式视频
114
+ if (this.type === 'hls' && _hls["default"].isSupported() && video) {
115
+ container.appendChild(video);
116
+ this.player = new _hls["default"]();
117
+ this.player.loadSource(this.url);
118
+ this.player.attachMedia(this.video);
119
+ }
120
+ if (this.type === 'vtxhls' && _hls["default"].isSupported() && video) {
121
+ var dd = document.getElementById(container.id);
122
+ while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {
123
+ dd.removeChild(dd.firstChild);
124
+ }
125
+ container.appendChild(video);
126
+ this.player = new _PlayerManager6["default"]({
127
+ url: this.url,
128
+ video: video
129
+ });
130
+ }
131
+ if (this.type === 'vtxwhep' && video) {
132
+ var _dd = document.getElementById(container.id);
133
+ while (_dd === null || _dd === void 0 ? void 0 : _dd.hasChildNodes()) {
134
+ _dd.removeChild(_dd.firstChild);
135
+ }
136
+ this.video.autoplay = true;
137
+ container.appendChild(this.video);
138
+ this.player = new _WhepManager["default"]({
139
+ url: this.url,
140
+ video: this.video
141
+ });
142
+ }
143
+ // 处理海康视频
144
+ if (this.type === 'hk_ws') {
145
+ this.player = new window.JSPlugin({
146
+ szId: container.id,
147
+ szBasePath: "".concat(_config["default"].visPlugin, "/"),
148
+ iMaxSplit: 1,
149
+ iCurrentSplit: 1
150
+ });
151
+ var wrapDiv = document.getElementById(container.id);
152
+ this.video = wrapDiv.getElementsByTagName('video')[0];
153
+ this.video.preload = 'auto';
154
+ }
155
+ // 处理海康视频
156
+ if (this.type === 'hkcar_ws' && (url.startsWith('ws://') || url.startsWith('wss://'))) {
157
+ var _wrapDiv = document.getElementById(container.id);
158
+ this.player = new window.JSPluginHkCar({
159
+ szId: container.id,
160
+ iWidth: _wrapDiv.clientWidth,
161
+ iHeight: _wrapDiv.clientHeight,
162
+ iMaxSplit: 1,
163
+ iCurrentSplit: 1,
164
+ szBasePath: "".concat(_config["default"].visPlugin, "/hkcar/"),
165
+ oStyle: {
166
+ border: 'transparent',
167
+ borderSelect: 'transparent',
168
+ background: '#2b3d51'
169
+ }
170
+ });
171
+ }
172
+ // 处理ws视频
173
+ if (this.type === 'vtx_ws') {
174
+ var $container = document.getElementById(container.id);
175
+ this.player = new window.Jessibuca({
176
+ container: $container,
177
+ videoBuffer: 3,
178
+ timeout: 10,
179
+ isResize: false,
180
+ isFlv: true,
181
+ decoder: "".concat(_config["default"].visPlugin, "/jessibuca/decoder.js"),
182
+ useMSE: true,
183
+ debug: false,
184
+ hasAudio: false,
185
+ useWCS: false,
186
+ autoWasm: true,
187
+ isNotMute: true //是否开启声音
188
+ });
189
+ }
190
+ if (this.type === 'icc_ws') {
191
+ var _dd2 = document.getElementById(container.id);
192
+ while (_dd2 === null || _dd2 === void 0 ? void 0 : _dd2.hasChildNodes()) {
193
+ _dd2.removeChild(_dd2.firstChild);
194
+ }
195
+ this.player = new _PlayerManager3["default"]({
196
+ ip: window.location.protocol === 'http:' ? deviceIp : "".concat(deviceIp || '', ":").concat(devicePort || ''),
197
+ el: container.id,
198
+ type: live ? 'real' : 'record',
199
+ maxNum: 1,
200
+ num: 1
201
+ });
202
+ }
203
+ if (this.type === 'webrtc') {
204
+ var _dd3 = document.getElementById(container.id);
205
+ ((_a = _dd3 === null || _dd3 === void 0 ? void 0 : _dd3.children) === null || _a === void 0 ? void 0 : _a.length) > 0 && _dd3.removeChild(_dd3.firstChild);
206
+ video.autoplay = true;
207
+ var id = "".concat(container.id, "_").concat(Date.now());
208
+ video.id = id;
209
+ container.appendChild(video);
210
+ this.player = new _PlayerManager7["default"]({
211
+ el: id,
212
+ url: this.url,
213
+ type: live
214
+ });
215
+ }
216
+ if (this.type === 'wfs') {
217
+ var _dd4 = document.getElementById(container.id);
218
+ ((_b = _dd4 === null || _dd4 === void 0 ? void 0 : _dd4.children) === null || _b === void 0 ? void 0 : _b.length) > 0 && _dd4.removeChild(_dd4.firstChild);
219
+ video.autoplay = true;
220
+ var _id = "".concat(container.id, "_").concat(Date.now());
221
+ video.id = _id;
222
+ container.appendChild(video);
223
+ this.player = new _PlayerManager8["default"]({
224
+ el: _id,
225
+ url: this.url,
226
+ type: live ? 'live' : 'record'
227
+ });
228
+ }
229
+ if (this.type === 'h264') {
230
+ var _dd5 = document.getElementById(container.id);
231
+ ((_c = _dd5 === null || _dd5 === void 0 ? void 0 : _dd5.children) === null || _c === void 0 ? void 0 : _c.length) > 0 && _dd5.removeChild(_dd5.firstChild);
232
+ video.autoplay = true;
233
+ var _id2 = 'playerh264';
234
+ video.id = _id2;
235
+ container.appendChild(video);
236
+ this.player = new _PlayerManager2["default"]({
237
+ id: _id2,
238
+ url: this.url
239
+ });
240
+ }
241
+ if (this.type === 'bd') {
242
+ this.player = new _PlayerManager["default"]({
243
+ el: container.id,
244
+ type: live,
245
+ url: this.url
246
+ });
247
+ }
248
+ if (this.type === 'mp4') {
249
+ var _dd6 = document.getElementById(container.id);
250
+ ((_d = _dd6 === null || _dd6 === void 0 ? void 0 : _dd6.children) === null || _d === void 0 ? void 0 : _d.length) > 0 && _dd6.removeChild(_dd6.firstChild);
251
+ this.video.src = this.url;
252
+ this.video.autoplay = true;
253
+ var _id3 = 'mp4';
254
+ this.video.id = _id3;
255
+ container.appendChild(this.video);
256
+ }
257
+ if (this.type === 'iframe') {
258
+ var _dd7 = document.getElementById(container.id);
259
+ ((_e = _dd7 === null || _dd7 === void 0 ? void 0 : _dd7.children) === null || _e === void 0 ? void 0 : _e.length) > 0 && _dd7.removeChild(_dd7.firstChild);
260
+ var iframe = document.createElement('iframe');
261
+ iframe.width = '100%';
262
+ iframe.height = '100%';
263
+ iframe.frameBorder = '0';
264
+ iframe.src = this.url;
265
+ container.appendChild(iframe);
266
+ }
267
+ if (this.type === 'rsl') {
268
+ var _dd8 = document.getElementById(container.id);
269
+ ((_f = _dd8 === null || _dd8 === void 0 ? void 0 : _dd8.children) === null || _f === void 0 ? void 0 : _f.length) > 0 && _dd8.removeChild(_dd8.firstChild);
270
+ var canvas = document.createElement('canvas');
271
+ canvas.id = 'myCanvas';
272
+ canvas.style.width = '100%';
273
+ canvas.style.height = '100%';
274
+ container.appendChild(canvas);
275
+ this.player = new _PlayerManager5["default"]({
276
+ url: this.url,
277
+ canvasId: 'myCanvas',
278
+ callback: function callback(code, message) {
279
+ console.log(code, message);
280
+ }
281
+ });
282
+ }
283
+ }
284
+ /** 播放 */
285
+ return _createClass(Player, [{
286
+ key: "play",
287
+ value: function play() {
288
+ if (this.type === 'flv') {
289
+ var player = this.player;
290
+ player.play();
291
+ }
292
+ if (this.type === 'hls') {
293
+ return this.video.play();
294
+ }
295
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
296
+ var _player = this.player;
297
+ var result = _player.JS_Play(this.url, {
298
+ playURL: this.url,
299
+ mode: 1
300
+ }, 0);
301
+ this.windowIndex = 0;
302
+ var reload = this.reload;
303
+ _player.JS_SetWindowControlCallback({
304
+ pluginErrorHandler: function pluginErrorHandler(index, iErrorCode) {
305
+ //插件错误回调
306
+ // 流中断
307
+ if (iErrorCode === '0x12f910011' || iErrorCode === '0x12f910027') {
308
+ reload && reload();
309
+ }
310
+ }
311
+ });
312
+ return result;
313
+ }
314
+ if (this.type === 'icc_ws') {
315
+ var _player2 = this.player;
316
+ _player2.playRealVideo({
317
+ channelList: [{
318
+ id: this.deviceCode + '$1$0$' + this.channelNum,
319
+ isOnline: true
320
+ }],
321
+ streamType: Number(this.streamType) + 1
322
+ });
323
+ }
324
+ if (this.type === 'webrtc') {
325
+ var _player3 = this.player;
326
+ _player3.play();
327
+ }
328
+ if (this.type === 'wfs') {
329
+ var _player4 = this.player;
330
+ _player4.play();
331
+ }
332
+ if (this.type === 'bd') {
333
+ var _player5 = this.player;
334
+ _player5.playRealVideo();
335
+ }
336
+ if (this.type === 'mp4') {
337
+ //
338
+ }
339
+ if (this.type === 'vtx_ws') {
340
+ var _player6 = this.player;
341
+ _player6.play(this.url);
342
+ var onClose = this.onClose;
343
+ var _reload = this.reload;
344
+ var index = 0;
345
+ _player6.on('stats', function (s) {
346
+ if ((s === null || s === void 0 ? void 0 : s.buf) < 0 && s.fps < 10 || !s.vbps) {
347
+ index++;
348
+ } else {
349
+ index = 0;
350
+ }
351
+ // 超过5秒无数据,则认为播放失败,则重连
352
+ if (index > 4) {
353
+ index = 0;
354
+ console.log(s, 'stats > 4');
355
+ _reload && _reload();
356
+ }
357
+ });
358
+ _player6.on('timeout', function (err) {
359
+ console.log(err, 'timeout');
360
+ _reload && _reload();
361
+ });
362
+ // 当play()的时候,如果没有数据返回,则回调
363
+ _player6.on('loadingTimeout', function () {
364
+ console.log('当play的时候,没有数据返回,reload');
365
+ _reload && _reload();
366
+ });
367
+ // 当播放过程中,如果超过timeout之后没有数据渲染,则抛出异常。
368
+ _player6.on('delayTimeout', function () {
369
+ console.log('超过timeout之后没有数据渲染,reload');
370
+ _reload && _reload();
371
+ });
372
+ _player6.on('error', function (error) {
373
+ console.log('自定义error:', error);
374
+ if (error === 'streamEnd') {
375
+ _reload && _reload();
376
+ }
377
+ if (error === 'websocketError') {
378
+ onClose && onClose();
379
+ }
380
+ });
381
+ }
382
+ if (this.type === 'rsl') {
383
+ var _player7 = this.player;
384
+ _player7.play();
385
+ }
386
+ return Promise.resolve();
387
+ }
388
+ /** 回放 */
389
+ }, {
390
+ key: "playBack",
391
+ value: function playBack() {
392
+ var _this = this;
393
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
394
+ var player = this.player;
395
+ var result = player.JS_Play(this.url, {
396
+ playURL: this.url,
397
+ mode: 1
398
+ }, 0, (0, _utils.getHKTimeString)(this.startTime), (0, _utils.getHKTimeString)(this.endTime));
399
+ this.seekTime = (0, _moment["default"])(this.startTime);
400
+ this.windowIndex = 0;
401
+ var reload = this.reload;
402
+ player.JS_SetWindowControlCallback({
403
+ pluginErrorHandler: function pluginErrorHandler(index, iErrorCode) {
404
+ //插件错误回调
405
+ // 流中断
406
+ if (iErrorCode === '0x12f910011' || iErrorCode === '0x12f910027') {
407
+ reload && reload();
408
+ }
409
+ }
410
+ });
411
+ return result;
412
+ } else if (this.type === 'icc_ws') {
413
+ var _player8 = this.player;
414
+ return new Promise(function (resolve) {
415
+ _player8.playRecordVideo({
416
+ channelList: [{
417
+ id: _this.deviceCode + '$1$0$' + _this.channelNum
418
+ }],
419
+ startTime: (0, _moment["default"])(_this.startTime, 'YYYY-MM-DD HH:mm:ss').format('X'),
420
+ endTime: (0, _moment["default"])(_this.endTime, 'YYYY-MM-DD HH:mm:ss').format('X'),
421
+ recordSource: '2',
422
+ streamType: _this.streamType
423
+ });
424
+ resolve(true);
425
+ });
426
+ } else if (this.type === 'bd') {
427
+ var _player9 = this.player;
428
+ return new Promise(function (resolve) {
429
+ var res = _player9.playRecordVideo();
430
+ resolve(res);
431
+ });
432
+ } else {
433
+ return this.play();
434
+ }
435
+ }
436
+ /** 销毁 */
437
+ }, {
438
+ key: "destroy",
439
+ value: function destroy() {
440
+ var _this2 = this;
441
+ var _a, _b, _c;
442
+ if (!this.player) return;
443
+ if (this.type === 'flv') {
444
+ var player = this.player;
445
+ player.destroy();
446
+ this.player = null;
447
+ this.video.remove();
448
+ }
449
+ if (this.type === 'hls') {
450
+ var _player0 = this.player;
451
+ _player0 && _player0.destroy();
452
+ this.player = null;
453
+ this.video.remove();
454
+ }
455
+ if (this.type === 'vtxhls' || this.type === 'vtxwhep') {
456
+ this.video.remove();
457
+ this.player = null;
458
+ var dd = document.getElementById(this.containerId);
459
+ while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {
460
+ dd.removeChild(dd.firstChild);
461
+ }
462
+ }
463
+ if (this.type === 'hk_ws') {
464
+ var _player1 = this.player;
465
+ _player1 && _player1.JS_Stop(0).then(function () {
466
+ _this2.player = null;
467
+ });
468
+ var _dd9 = document.getElementById(this.containerId);
469
+ _dd9 && _dd9.childNodes && _dd9.childNodes[0] && _dd9.removeChild(_dd9.childNodes[0]);
470
+ }
471
+ if (this.type === 'hkcar_ws') {
472
+ var _player10 = this.player;
473
+ _player10.JS_DestroyWorker();
474
+ var _dd0 = document.getElementById(this.containerId);
475
+ (_dd0 === null || _dd0 === void 0 ? void 0 : _dd0.childNodes) && _dd0.childNodes[0] && _dd0.removeChild(_dd0.childNodes[0]);
476
+ }
477
+ if (this.type === 'icc_ws') {
478
+ var _player11 = this.player;
479
+ _player11.close();
480
+ }
481
+ if (this.type === 'webrtc') {
482
+ var _player12 = this.player;
483
+ _player12.close();
484
+ }
485
+ if (this.type === 'wfs') {
486
+ var _player13 = this.player;
487
+ _player13.close();
488
+ }
489
+ if (this.type === 'h264') {
490
+ var _player14 = this.player;
491
+ _player14.close();
492
+ }
493
+ if (this.type === 'bd') {
494
+ var _player15 = this.player;
495
+ _player15.close(0);
496
+ }
497
+ if (this.type === 'mp4') {
498
+ this.video = null;
499
+ var _dd1 = document.getElementById(this.containerId);
500
+ ((_a = _dd1 === null || _dd1 === void 0 ? void 0 : _dd1.children) === null || _a === void 0 ? void 0 : _a.length) > 0 && _dd1.removeChild(_dd1.firstChild);
501
+ }
502
+ if (this.type === 'vtx_ws') {
503
+ var _player16 = this.player;
504
+ _player16.destroy();
505
+ }
506
+ if (this.type === 'iframe') {
507
+ var _dd10 = document.getElementById(this.containerId);
508
+ ((_b = _dd10 === null || _dd10 === void 0 ? void 0 : _dd10.children) === null || _b === void 0 ? void 0 : _b.length) > 0 && _dd10.removeChild(_dd10.firstChild);
509
+ }
510
+ if (this.type === 'rsl') {
511
+ var _player17 = this.player;
512
+ _player17.destroy();
513
+ var _dd11 = document.getElementById(this.containerId);
514
+ ((_c = _dd11 === null || _dd11 === void 0 ? void 0 : _dd11.children) === null || _c === void 0 ? void 0 : _c.length) > 0 && _dd11.removeChild(_dd11.firstChild);
515
+ }
516
+ }
517
+ /** 截图 */
518
+ }, {
519
+ key: "capture",
520
+ value: function capture() {
521
+ var captureName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '视频截图';
522
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
523
+ var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
524
+ var name = captureName;
525
+ if (time) name += "-".concat((0, _moment["default"])().format('YYYYMMDDHHmmss'));
526
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
527
+ var player = this.player;
528
+ if (player) player.JS_CapturePicture(1, name, 'JPEG', function (res) {
529
+ callback && callback(res);
530
+ });
531
+ } else if (this.type === 'bd') {
532
+ var DPlayer = this.player.dp;
533
+ var canvas = DPlayer.container.querySelector('canvas');
534
+ if (canvas) {
535
+ canvas.toBlob(function (blob) {
536
+ if (blob) {
537
+ callback === null || callback === void 0 ? void 0 : callback(URL.createObjectURL(blob));
538
+ }
539
+ });
540
+ }
541
+ } else if (this.type === 'vtx_ws') {
542
+ var _player18 = this.player;
543
+ if (_player18) {
544
+ var fileBlob = _player18.screenshot(captureName, 'blob');
545
+ callback && callback(URL.createObjectURL(fileBlob));
546
+ }
547
+ } else {
548
+ Capture(this.video, name, callback);
549
+ }
550
+ }
551
+ /** 尺寸重置 */
552
+ }, {
553
+ key: "resize",
554
+ value: function resize() {
555
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
556
+ var player = this.player;
557
+ setTimeout(function () {
558
+ player.JS_Resize();
559
+ }, 500);
560
+ } else if (this.type === 'icc_ws') {
561
+ var _player19 = this.player;
562
+ _player19.setPlayerAdapter('selfAdaption');
563
+ }
564
+ }
565
+ /**
566
+ * 设置音量
567
+ * @param value
568
+ */
569
+ }, {
570
+ key: "setVolume",
571
+ value: function setVolume(value) {
572
+ if (this.type === 'flv') {
573
+ var player = this.player;
574
+ player.setVolume(value / 100);
575
+ }
576
+ if (this.type === 'hls') {
577
+ this.video.volume = value / 100;
578
+ }
579
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
580
+ var _player20 = this.player;
581
+ if (value < 1) {
582
+ _player20.JS_CloseSound(this.windowIndex);
583
+ } else {
584
+ _player20.JS_OpenSound(this.windowIndex).then(function () {
585
+ console.info('JS_OpenSound success');
586
+ }, function (err) {
587
+ console.log(err);
588
+ });
589
+ _player20.JS_SetVolume(this.windowIndex, value);
590
+ }
591
+ // if (player.iCurrentSoundWnd !== this.windowIndex) {
592
+ // player.JS_OpenSound(this.windowIndex);
593
+ // }
594
+ }
595
+ if (this.type === 'bd') {
596
+ var _player21 = this.player.dp;
597
+ if (!_player21.ttxplayer.enableAudio) _player21.ttxplayer.openAudio();
598
+ _player21.ttxplayer.setVolume(value);
599
+ }
600
+ }
601
+ /**
602
+ * 设置播放速度
603
+ * @param speed
604
+ */
605
+ }, {
606
+ key: "setSpeed",
607
+ value: function setSpeed(speed) {
608
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
609
+ var player = this.player;
610
+ if (this.preSpeed / speed === 2) {
611
+ player.JS_Slow(1);
612
+ }
613
+ if (this.preSpeed / speed === 4) {
614
+ player.JS_Slow(1).then(function () {
615
+ return player.JS_Slow(1);
616
+ });
617
+ }
618
+ if (this.preSpeed / speed === 8) {
619
+ player.JS_Slow(1).then(function () {
620
+ return player.JS_Slow(1);
621
+ }).then(function () {
622
+ return player.JS_Slow(1);
623
+ });
624
+ }
625
+ if (this.preSpeed / speed === 16) {
626
+ player.JS_Slow(1).then(function () {
627
+ return player.JS_Slow(1);
628
+ }).then(function () {
629
+ return player.JS_Slow(1);
630
+ }).then(function () {
631
+ return player.JS_Slow(1);
632
+ });
633
+ }
634
+ if (speed / this.preSpeed === 2) {
635
+ player.JS_Fast(1);
636
+ }
637
+ if (speed / this.preSpeed === 4) {
638
+ player.JS_Fast(1).then(function () {
639
+ return player.JS_Fast(1);
640
+ });
641
+ }
642
+ if (speed / this.preSpeed === 8) {
643
+ player.JS_Fast(1).then(function () {
644
+ return player.JS_Fast(1);
645
+ }).then(function () {
646
+ return player.JS_Fast(1);
647
+ });
648
+ }
649
+ if (speed / this.preSpeed === 16) {
650
+ player.JS_Fast(1).then(function () {
651
+ return player.JS_Fast(1);
652
+ }).then(function () {
653
+ return player.JS_Fast(1);
654
+ }).then(function () {
655
+ return player.JS_Fast(1);
656
+ });
657
+ }
658
+ this.preSpeed = speed;
659
+ } else if (this.type === 'icc_ws') {
660
+ var _player22 = this.player;
661
+ _player22.playSpeed(speed);
662
+ } else if (this.type === 'bd') {
663
+ // todo
664
+ } else {
665
+ this.video.playbackRate = speed;
666
+ }
667
+ }
668
+ /**
669
+ * 时间更新事件
670
+ * @param callback 回调函数
671
+ */
672
+ }, {
673
+ key: "onTimeUpdate",
674
+ value: function onTimeUpdate(callback) {
675
+ var _this3 = this;
676
+ var _a;
677
+ if (this.type === 'vtx_ws') {
678
+ var player = this.player;
679
+ player.on('stats', function (s) {
680
+ // ts 单位是毫秒,当前时间戳
681
+ callback((s.ts || 0) / 1000, 1);
682
+ });
683
+ } else {
684
+ this.video.addEventListener('timeupdate', function () {
685
+ var currentTime = _this3.video.currentTime;
686
+ if ((_this3.type === 'hk_ws' || _this3.type === 'hkcar_ws') && _this3.seekTime) {
687
+ currentTime = currentTime + _this3.seekTime.diff(_this3.startTime, 'seconds');
688
+ }
689
+ callback(currentTime, _this3.type === 'hk_ws' || _this3.type === 'hkcar_ws' ? _this3.preSpeed : _this3.video.playbackRate);
690
+ });
691
+ // 增加hw_ws 流播放结束回调
692
+ var _player23 = this.player;
693
+ (_a = _player23 === null || _player23 === void 0 ? void 0 : _player23.JS_SetWindowControlCallback) === null || _a === void 0 ? void 0 : _a.call(_player23, {
694
+ StreamEnd: function StreamEnd() {
695
+ callback((0, _moment["default"])(_this3.endTime).diff(_this3.startTime, 'seconds'), _this3.preSpeed);
696
+ }
697
+ });
698
+ }
699
+ }
700
+ /** 跳转到 */
701
+ }, {
702
+ key: "seekTo",
703
+ value: function seekTo(time) {
704
+ var _a, _b;
705
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
706
+ var player, seekTime, _player24, _seekTime, _player25, url;
707
+ return _regenerator().w(function (_context) {
708
+ while (1) switch (_context.n) {
709
+ case 0:
710
+ if (!(this.type === 'hk_ws' || this.type === 'hkcar_ws')) {
711
+ _context.n = 2;
712
+ break;
713
+ }
714
+ player = this.player;
715
+ seekTime = (_a = (0, _moment["default"])(this.startTime)) === null || _a === void 0 ? void 0 : _a.add(time, 'seconds');
716
+ this.seekTime = seekTime;
717
+ _context.n = 1;
718
+ return player.JS_Seek(1, (0, _utils.getHKTimeString)(seekTime), (0, _utils.getHKTimeString)(this.endTime));
719
+ case 1:
720
+ _context.n = 3;
721
+ break;
722
+ case 2:
723
+ if (this.type === 'icc_ws') {
724
+ _player24 = this.player;
725
+ _seekTime = (_b = (0, _moment["default"])(this.startTime)) === null || _b === void 0 ? void 0 : _b.add(time, 'seconds').format('HH:mm:ss');
726
+ _player24.jumpPlayByTime(_seekTime);
727
+ } else if (this.type === 'bd') {
728
+ _player25 = this.player;
729
+ _player25.close(0);
730
+ this.player = null;
731
+ url = this.url.replace('PLAYBEG=0', "PLAYBEG=".concat(time * 1000)); // .replace('PLAYEND=0', `PLAYEND=2700000`);
732
+ this.player = new _PlayerManager["default"]({
733
+ el: this.containerId,
734
+ type: false,
735
+ url: url
736
+ });
737
+ this.player.playRecordVideo();
738
+ } else if (this.type === 'vtx_ws') {
739
+ // vtx_ws
740
+ } else {
741
+ this.video.currentTime = time;
742
+ }
743
+ case 3:
744
+ return _context.a(2, Promise.resolve());
745
+ }
746
+ }, _callee, this);
747
+ }));
748
+ }
749
+ /**
750
+ * 暂停播放
751
+ * @param callback 回调函数
752
+ */
753
+ }, {
754
+ key: "pause",
755
+ value: function pause(callback) {
756
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
757
+ var player = this.player;
758
+ player.JS_Pause(0).then(function () {
759
+ return callback && callback();
760
+ });
761
+ } else if (this.type === 'bd') {
762
+ var _player26 = this.player;
763
+ _player26.pause();
764
+ } else if (this.type === 'vtx_ws') {
765
+ var _player27 = this.player;
766
+ _player27.pause();
767
+ } else {
768
+ this.video.pause();
769
+ }
770
+ callback && callback();
771
+ }
772
+ /**
773
+ * 恢复播放
774
+ * @param callback 回调函数
775
+ */
776
+ }, {
777
+ key: "resume",
778
+ value: function resume(callback) {
779
+ var tp = this.type;
780
+ var player = null;
781
+ switch (tp) {
782
+ case 'hkcar_ws':
783
+ case 'hk_ws':
784
+ player = this.player;
785
+ player.JS_Resume(0).then(function () {
786
+ return callback && callback();
787
+ });
788
+ break;
789
+ case 'bd':
790
+ player = this.player;
791
+ player.resume();
792
+ callback && callback();
793
+ break;
794
+ case 'vtx_ws':
795
+ callback && callback();
796
+ break;
797
+ default:
798
+ this.video.play();
799
+ callback && callback();
800
+ break;
801
+ }
802
+ }
803
+ /**
804
+ * 开始对讲
805
+ * @param url 对讲地址
806
+ */
807
+ }, {
808
+ key: "startTalk",
809
+ value: function startTalk(url) {
810
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
811
+ var player = this.player;
812
+ return player.JS_StartTalk(url).then(function () {
813
+ console.log('talkStart success');
814
+ Promise.resolve();
815
+ }, function (e) {
816
+ console.error(e);
817
+ });
818
+ }
819
+ return Promise.reject();
820
+ }
821
+ /**
822
+ * 开始对讲
823
+ * @param state 状态
824
+ */
825
+ }, {
826
+ key: "stopTalk",
827
+ value: function stopTalk() {
828
+ if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
829
+ var player = this.player;
830
+ return player.JS_StopTalk().then(function () {
831
+ console.info('JS_StopTalk success');
832
+ // do you want...
833
+ }, function (err) {
834
+ console.info('JS_StopTalk failed');
835
+ // do you want...
836
+ });
837
+ }
838
+ return Promise.reject();
839
+ }
840
+ }]);
841
+ }();
842
+ /**
843
+ * 截图
844
+ * @param video
845
+ */
846
+ var Capture = function Capture(video, name, callback) {
847
+ var canvas = document.createElement('canvas');
848
+ canvas.width = video.videoWidth;
849
+ canvas.height = video.videoHeight;
850
+ var context = canvas.getContext('2d');
851
+ if (context) {
852
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
853
+ var dataURL;
854
+ canvas.toBlob(function (blob) {
855
+ if (blob) {
856
+ dataURL = URL.createObjectURL(blob);
857
+ // const link = document.createElement('a');
858
+ callback && callback(dataURL);
859
+ // link.href = dataURL;
860
+ // link.download = `${name}.png`;
861
+ // link.style.display = 'none';
862
+ // document.body.appendChild(link);
863
+ // link.click();
864
+ // document.body.removeChild(link);
865
+ // URL.revokeObjectURL(dataURL);
866
+ }
867
+ });
868
+ }
869
+ };
870
+ var _default = exports["default"] = Player;
871
+ //# sourceMappingURL=indexOld.js.map