@vtx/player 1.2.14 → 1.3.1

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.
@@ -6,7 +6,7 @@ declare global {
6
6
  }
7
7
  }
8
8
  /** 视频流格式 */
9
- export declare type VideoType = 'flv' | 'hls' | 'hk_ws' | 'hkcar_ws' | 'icc_ws' | string;
9
+ export declare type VideoType = 'flv' | 'hls' | 'hk_ws' | 'hkcar_ws' | 'icc_ws' | 'webrtc' | string;
10
10
  interface ConstructorParams {
11
11
  url: string;
12
12
  /** 设备id */
@@ -11,6 +11,8 @@ var _PlayerManager = _interopRequireDefault(require("../icc/PlayerManager"));
11
11
 
12
12
  var _utils = require("../utils");
13
13
 
14
+ var _PlayerManager2 = _interopRequireDefault(require("../webrtc/PlayerManager"));
15
+
14
16
  var _flv = _interopRequireDefault(require("flv.js"));
15
17
 
16
18
  var _hls = _interopRequireDefault(require("hls.js"));
@@ -163,6 +165,18 @@ var Player = /*#__PURE__*/function () {
163
165
  num: 1
164
166
  });
165
167
  }
168
+
169
+ if (this.type === 'webrtc') {
170
+ video.autoplay = true;
171
+ var id = "".concat(container.id, "_").concat(Date.now());
172
+ video.id = id;
173
+ container.appendChild(video);
174
+ this.player = new _PlayerManager2["default"]({
175
+ el: id,
176
+ url: this.url,
177
+ type: live
178
+ });
179
+ }
166
180
  }
167
181
  /** 播放 */
168
182
 
@@ -206,6 +220,13 @@ var Player = /*#__PURE__*/function () {
206
220
  }, 100);
207
221
  }
208
222
 
223
+ if (this.type === 'webrtc') {
224
+ var _player2 = this.player;
225
+
226
+ _player2.play(); // document.getElementById('media_player')?.[0].prop('srcObject', 'livestream');/\
227
+
228
+ }
229
+
209
230
  return Promise.resolve();
210
231
  }
211
232
  /** 回放 */
@@ -223,9 +244,9 @@ var Player = /*#__PURE__*/function () {
223
244
  }, 1, (0, _utils.getHKTimeString)(this.startTime), (0, _utils.getHKTimeString)(this.endTime));
224
245
  return result;
225
246
  } else if (this.type === 'icc_ws') {
226
- var _player2 = this.player;
247
+ var _player3 = this.player;
227
248
  return new Promise(function (resolve) {
228
- _player2.playRecordVideo({
249
+ _player3.playRecordVideo({
229
250
  channelList: [{
230
251
  id: _this2.deviceCode + '$1$0$' + _this2.channelNum
231
252
  }],
@@ -254,24 +275,24 @@ var Player = /*#__PURE__*/function () {
254
275
  }
255
276
 
256
277
  if (this.type === 'hls') {
257
- var _player3 = this.player;
278
+ var _player4 = this.player;
258
279
 
259
- _player3.destroy();
280
+ _player4.destroy();
260
281
 
261
282
  this.player = null;
262
283
  this.video.remove();
263
284
  }
264
285
 
265
286
  if (this.type === 'hk_ws') {
266
- var _player4 = this.player;
287
+ var _player5 = this.player;
267
288
 
268
- _player4.JS_Stop(1);
289
+ _player5.JS_Stop(1);
269
290
  }
270
291
 
271
292
  if (this.type === 'hkcar_ws') {
272
- var _player5 = this.player;
293
+ var _player6 = this.player;
273
294
 
274
- _player5.JS_DestroyWorker();
295
+ _player6.JS_DestroyWorker();
275
296
  }
276
297
  }
277
298
  /** 截图 */
@@ -303,9 +324,9 @@ var Player = /*#__PURE__*/function () {
303
324
  var player = this.player;
304
325
  player.JS_Resize();
305
326
  } else if (this.type === 'icc_ws') {
306
- var _player6 = this.player;
327
+ var _player7 = this.player;
307
328
 
308
- _player6.setPlayerAdapter('selfAdaption');
329
+ _player7.setPlayerAdapter('selfAdaption');
309
330
  }
310
331
  }
311
332
  /**
@@ -326,9 +347,9 @@ var Player = /*#__PURE__*/function () {
326
347
  }
327
348
 
328
349
  if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
329
- var _player7 = this.player;
350
+ var _player8 = this.player;
330
351
 
331
- _player7.JS_SetVolume(1, value);
352
+ _player8.JS_SetVolume(1, value);
332
353
  }
333
354
  }
334
355
  /**
@@ -400,9 +421,9 @@ var Player = /*#__PURE__*/function () {
400
421
 
401
422
  this.preSpeed = speed;
402
423
  } else if (this.type === 'icc_ws') {
403
- var _player8 = this.player;
424
+ var _player9 = this.player;
404
425
 
405
- _player8.playSpeed(speed);
426
+ _player9.playSpeed(speed);
406
427
  } else {
407
428
  this.video.playbackRate = speed;
408
429
  }
@@ -444,7 +465,7 @@ var Player = /*#__PURE__*/function () {
444
465
  var _a, _b;
445
466
 
446
467
  return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
447
- var player, seekTime, _player9, _seekTime;
468
+ var player, seekTime, _player10, _seekTime;
448
469
 
449
470
  return _regeneratorRuntime().wrap(function _callee$(_context) {
450
471
  while (1) {
@@ -471,10 +492,10 @@ var Player = /*#__PURE__*/function () {
471
492
  break;
472
493
  }
473
494
 
474
- _player9 = this.player;
495
+ _player10 = this.player;
475
496
  _seekTime = (_b = (0, _moment["default"])(this.startTime)) === null || _b === void 0 ? void 0 : _b.add(time, 'seconds').format('HH:mm:ss');
476
497
 
477
- _player9.jumpPlayByTime(_seekTime);
498
+ _player10.jumpPlayByTime(_seekTime);
478
499
 
479
500
  _context.next = 16;
480
501
  break;
@@ -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","channelNum","deviceCode","enableAgent","container","live","type","startTime","endTime","streamType","deviceIp","devicePort","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","PlayerManager","ip","location","protocol","el","maxNum","num","play","JS_Play","playURL","mode","timer","setTimeout","playRealVideo","channelList","isOnline","Number","clearTimeout","getHKTimeString","playRecordVideo","moment","format","recordSource","destroy","remove","JS_Stop","JS_DestroyWorker","captureName","callback","time","name","JS_CapturePicture","res","Capture","JS_Resize","setPlayerAdapter","volume","JS_SetVolume","speed","JS_Slow","JS_Fast","playSpeed","playbackRate","_a","addEventListener","currentTime","seekTime","diff","JS_SetWindowControlCallback","call","StreamEnd","_b","add","JS_Seek","jumpPlayByTime","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 PlayerManager from '../icc/PlayerManager';\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, channelNum, deviceCode, enableAgent = false, container, live = true, type, startTime, endTime, streamType, deviceIp, devicePort, } = 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.channelNum = channelNum;\n this.deviceCode = deviceCode || '';\n this.streamType = streamType || '0'; // 默认主码流\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 if (this.type === 'icc_ws') {\n this.player = new PlayerManager({\n ip: window.location.protocol === 'http:' ? deviceIp : `${deviceIp || ''}:${devicePort || ''}`,\n el: container.id,\n type: live ? 'real' : 'record',\n maxNum: 1,\n num: 1,\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 if (this.type === 'icc_ws') {\n const timer = setTimeout(() => {\n const player = this.player;\n player.playRealVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n isOnline: true,\n },\n ],\n streamType: Number(this.streamType) + 1,\n });\n clearTimeout(timer);\n }, 100);\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 if (this.type === 'icc_ws') {\n const player = this.player;\n return new Promise((resolve) => {\n player.playRecordVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n },\n ],\n startTime: moment(this.startTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n endTime: moment(this.endTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n recordSource: '2',\n streamType: this.streamType,\n });\n resolve(true);\n });\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 else if (this.type === 'icc_ws') {\n const player = this.player;\n player.setPlayerAdapter('selfAdaption');\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 if (this.type === 'icc_ws') {\n const player = this.player;\n player.playSpeed(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, _b;\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 if (this.type === 'icc_ws') {\n const player = this.player;\n const seekTime = (_b = moment(this.startTime)) === null || _b === void 0 ? void 0 : _b.add(time, 'seconds').format('HH:mm:ss');\n player.jumpPlayByTime(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","channelNum","deviceCode","enableAgent","container","live","type","startTime","endTime","streamType","deviceIp","devicePort","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","PlayerManager","ip","location","protocol","el","maxNum","num","autoplay","Date","now","WebrtcPlayerManager","play","JS_Play","playURL","mode","timer","setTimeout","playRealVideo","channelList","isOnline","Number","clearTimeout","getHKTimeString","playRecordVideo","moment","format","recordSource","destroy","remove","JS_Stop","JS_DestroyWorker","captureName","callback","time","name","JS_CapturePicture","res","Capture","JS_Resize","setPlayerAdapter","volume","JS_SetVolume","speed","JS_Slow","JS_Fast","playSpeed","playbackRate","_a","addEventListener","currentTime","seekTime","diff","JS_SetWindowControlCallback","call","StreamEnd","_b","add","JS_Seek","jumpPlayByTime","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 PlayerManager from '../icc/PlayerManager';\nimport { getHKTimeString, getPlayerParams } from '../utils';\nimport WebrtcPlayerManager from '../webrtc/PlayerManager';\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, channelNum, deviceCode, enableAgent = false, container, live = true, type, startTime, endTime, streamType, deviceIp, devicePort, } = 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.channelNum = channelNum;\n this.deviceCode = deviceCode || '';\n this.streamType = streamType || '0'; // 默认主码流\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 if (this.type === 'icc_ws') {\n this.player = new PlayerManager({\n ip: window.location.protocol === 'http:' ? deviceIp : `${deviceIp || ''}:${devicePort || ''}`,\n el: container.id,\n type: live ? 'real' : 'record',\n maxNum: 1,\n num: 1,\n });\n }\n if (this.type === 'webrtc') {\n video.autoplay = true;\n const id = `${container.id}_${Date.now()}`;\n video.id = id;\n container.appendChild(video);\n this.player = new WebrtcPlayerManager({\n el: id,\n url: this.url,\n type: live,\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 if (this.type === 'icc_ws') {\n const timer = setTimeout(() => {\n const player = this.player;\n player.playRealVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n isOnline: true,\n },\n ],\n streamType: Number(this.streamType) + 1,\n });\n clearTimeout(timer);\n }, 100);\n }\n if (this.type === 'webrtc') {\n const player = this.player;\n player.play();\n // document.getElementById('media_player')?.[0].prop('srcObject', 'livestream');/\\\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 if (this.type === 'icc_ws') {\n const player = this.player;\n return new Promise((resolve) => {\n player.playRecordVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n },\n ],\n startTime: moment(this.startTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n endTime: moment(this.endTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n recordSource: '2',\n streamType: this.streamType,\n });\n resolve(true);\n });\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 else if (this.type === 'icc_ws') {\n const player = this.player;\n player.setPlayerAdapter('selfAdaption');\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 if (this.type === 'icc_ws') {\n const player = this.player;\n player.playSpeed(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, _b;\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 if (this.type === 'icc_ws') {\n const player = this.player;\n const seekTime = (_b = moment(this.startTime)) === null || _b === void 0 ? void 0 : _b.add(time, 'seconds').format('HH:mm:ss');\n player.jumpPlayByTime(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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"}
@@ -0,0 +1,56 @@
1
+ export declare class Webrtcplayer {
2
+ constructor();
3
+
4
+ /**
5
+ * 录像暂停
6
+ * 只有正在播放的录像调用才有效
7
+ */
8
+ pause(): void;
9
+
10
+ /**
11
+ * 录像暂停后播放
12
+ * 只有暂停后的录像调用才有效
13
+ */
14
+ play(): void;
15
+
16
+ /**
17
+ * 设置播放速度
18
+ * @param speed 倍速
19
+ */
20
+ playSpeed(speed: 0.125 | 0.25 | 0.5 | 1 | 2 | 4 | 8): void;
21
+
22
+ /**
23
+ * 关闭窗口
24
+ * @param index 窗口索引
25
+ */
26
+ close(index?: number): void;
27
+
28
+ /**
29
+ * 设置全屏
30
+ */
31
+ setFullScreen(): void;
32
+
33
+ /**
34
+ * 设置窗口自适应还是拉伸
35
+ * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸
36
+ */
37
+ setPlayerAdapter(playerAdapter: 'selfAdaption' | 'stretching'): void;
38
+
39
+ /**
40
+ * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数
41
+ * @param {number} number
42
+ */
43
+ setPlayerNum(num: 1 | 4 | 9 | 16 | 25): void;
44
+
45
+ /**
46
+ * 设置选中的播放器的索引
47
+ * @param {number} index
48
+ */
49
+ setSelectIndex(index: number);
50
+
51
+ /**
52
+ * 录像跳转播放
53
+ * @param {string} time HH:mm:ss格式
54
+ */
55
+ jumpPlayByTime(time: string);
56
+ }
@@ -97,6 +97,8 @@ var initProtocol = function initProtocol(url, enableAgent) {
97
97
  var _path3 = url.substring(url.indexOf('/'));
98
98
 
99
99
  src = 'wss://' + window.location.host + '/visProxy/' + _ipPort3 + '/play' + _path3;
100
+ } else {
101
+ src = url;
100
102
  }
101
103
  }
102
104
  }
@@ -130,15 +132,7 @@ var getPlayerParams = function getPlayerParams(type, url, enableAgent, live) {
130
132
 
131
133
  if (url.startsWith('rtsp://')) {
132
134
  playerType = 'flv';
133
- playerUrl = "/cloud/vic/convert/flv/live.flv?url=".concat(_jsBase.Base64.encode(url)); // if (live) {
134
- // playerUrl = `/cloud/vic/convert/flv/live.flv?url=${Base64.encode(
135
- // url
136
- // )}`;
137
- // } else {
138
- // playerUrl = `/cloud/vic/convert/flv/live.flv?url=${Base64.encode(
139
- // getFlvListUrl(url, startTime, endTime)
140
- // )}`;
141
- // }
135
+ playerUrl = "/cloud/vic/convert/flv/live.flv?url=".concat(_jsBase.Base64.encode(url));
142
136
  }
143
137
 
144
138
  if (url.indexOf('flv') > -1) {
@@ -151,6 +145,11 @@ var getPlayerParams = function getPlayerParams(type, url, enableAgent, live) {
151
145
  playerType = 'hls';
152
146
  }
153
147
 
148
+ if (url.indexOf('webrtc') > -1) {
149
+ playerUrl = url;
150
+ playerType = 'webrtc';
151
+ }
152
+
154
153
  return {
155
154
  url: initProtocol(playerUrl, enableAgent),
156
155
  type: playerType
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TimeFormat","guidGenerator","S4","Math","random","toString","substring","initProtocol","url","enableAgent","src","isHttps","document","location","protocol","startsWith","replace","ipPort","indexOf","path","window","host","getPlayerParams","type","live","playerUrl","playerType","split","Base64","encode","getUrlTableData","data","result","list","map","item","i","beginTime","moment","endTime","totalSeconds","diff","index","deviceName","deviceCode","devicePort","deviceIp","streamType","channelName","format","params","size","bytesToMegaBytes","duration","secondsToString","downloadUrl","playbackUrl","code","hkType","deviceId","channelNum","bytes","pow","toFixed","total","hour","floor","minute","second","secondsToTime","getHKTimeString","time","getHKListUrl","totalUrl","startTime","query","urlParams","URLSearchParams","set","getUrlParam","key","href","paramObj","matchList","match","len","length","r","guid","c","v"],"sources":["utils/index.js"],"sourcesContent":["import { Base64 } from 'js-base64';\nimport moment from 'moment';\n/** 时间格式枚举 */\nexport var TimeFormat;\n(function (TimeFormat) {\n TimeFormat[\"default\"] = \"YYYY-MM-DDTHH:mm:ss\";\n TimeFormat[\"params\"] = \"YYYY-MM-DD HH:mm:ss\";\n TimeFormat[\"url\"] = \"YYYYMMDDTHHmmss\";\n})(TimeFormat || (TimeFormat = {}));\n/** 生成随机ID */\nexport const guidGenerator = () => {\n const S4 = function () {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n};\nconst initProtocol = (url, enableAgent) => {\n let src = url;\n if (enableAgent) {\n const isHttps = 'https:' === document.location.protocol;\n if (url.startsWith('http:')) {\n url = url.replace('http://', '');\n if (url.startsWith('https:')) {\n url = url.replace('https://', '');\n }\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n src = '/visProxy/' + ipPort + '/play' + path;\n }\n else if (url.startsWith('ws:')) {\n url = url.replace('ws://', '');\n if (url.startsWith('wss:')) {\n url = url.replace('wss://', '');\n }\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n const protocol = isHttps ? 'wss://' : 'ws://';\n src = protocol + window.location.host + '/visProxy/' + ipPort + '/play' + path;\n }\n }\n else {\n const isHttps = 'https:' === document.location.protocol;\n if (isHttps) {\n if (url.startsWith('http:')) {\n url = url.replace('http://', '');\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n src = '/visProxy/' + ipPort + '/play' + path;\n }\n else if (url.startsWith('ws:')) {\n url = url.replace('ws://', '');\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n src = 'wss://' + window.location.host + '/visProxy/' + ipPort + '/play' + path;\n }\n }\n }\n return src;\n};\n/**\n * 获取视频直播地址及格式\n * @param url\n * @returns\n */\nexport const getPlayerParams = (type, url, enableAgent, live) => {\n let playerUrl = url;\n let playerType = 'flv';\n if (url.startsWith('ws://') || url.startsWith('wss://')) {\n if (type === 'hkcar_ws') {\n playerType = 'hkcar_ws';\n }\n else {\n playerType = 'hk_ws';\n }\n if (live) {\n playerUrl = url;\n }\n else {\n playerUrl = url.split('?')[0];\n }\n }\n if (url.startsWith('rtsp://')) {\n playerType = 'flv';\n playerUrl = `/cloud/vic/convert/flv/live.flv?url=${Base64.encode(url)}`;\n // if (live) {\n // playerUrl = `/cloud/vic/convert/flv/live.flv?url=${Base64.encode(\n // url\n // )}`;\n // } else {\n // playerUrl = `/cloud/vic/convert/flv/live.flv?url=${Base64.encode(\n // getFlvListUrl(url, startTime, endTime)\n // )}`;\n // }\n }\n if (url.indexOf('flv') > -1) {\n playerUrl = url;\n playerType = 'flv';\n }\n if (url.indexOf('m3u8') > -1) {\n playerUrl = url;\n playerType = 'hls';\n }\n return { url: initProtocol(playerUrl, enableAgent), type: playerType };\n};\n/**\n * 获取历史回放表格数据\n * @param data\n * @returns\n */\nexport const getUrlTableData = (data) => {\n const result = data.list.map((item, i) => {\n const beginTime = moment(item.beginTime);\n const endTime = moment(item.endTime);\n const totalSeconds = moment(endTime).diff(moment(beginTime), 'seconds');\n return {\n index: i + 1,\n deviceName: data.deviceName,\n deviceCode: data.deviceCode,\n devicePort: data.devicePort,\n deviceIp: data.deviceIp,\n streamType: data.streamType,\n channelName: data.channelName,\n beginTime: beginTime.format(TimeFormat.params),\n endTime: endTime.format(TimeFormat.params),\n size: bytesToMegaBytes(item.size),\n duration: secondsToString(totalSeconds),\n downloadUrl: '',\n url: item.playbackUrl || '',\n enableAgent: data.enableAgent || false,\n code: item.code,\n hkType: data.hkType,\n deviceId: data.deviceId,\n channelNum: data.channelNum\n };\n });\n return result;\n};\n/**\n * bytes转换mb\n * @param bytes\n * @returns\n */\nexport const bytesToMegaBytes = (bytes) => `${(bytes / Math.pow(1024, 2)).toFixed(2)}MB`;\n/**\n * 秒数=>0时0分0秒\n * @param total\n * @returns\n */\nexport const secondsToString = (total) => {\n const hour = Math.floor(total / 3600);\n const minute = Math.floor((total % 3600) / 60);\n const second = Math.floor(total % 60);\n const result = `${hour > 0 ? hour + '小时' : ''}${minute > 0 ? minute + '分' : ''}${second > 0 ? second + '秒' : ''}`;\n return result;\n};\n/**\n * 秒数=>00:00:00\n * @param total\n * @returns\n */\nexport const secondsToTime = (total) => {\n const hour = Math.floor(total / 3600);\n const minute = Math.floor((total % 3600) / 60);\n const second = Math.floor(total % 60);\n const result = `${hour >= 10 ? hour : '0' + hour}:${minute >= 10 ? minute : '0' + minute}:${second >= 10 ? second : '0' + second}`;\n return result;\n};\n/**\n * 获取海康时间参数\n * @param time 时间\n * @returns\n */\nexport const getHKTimeString = (time) => {\n return moment(time).format(TimeFormat.default) + 'Z';\n};\n/**\n * 获取海康分段播放地址\n * @param totalUrl 总播放地址\n * @param startTime 开始时间\n * @param endTime 结束时间\n * @returns\n */\nexport const getHKListUrl = (totalUrl, startTime, endTime) => {\n const [url, query] = totalUrl.split('?');\n const urlParams = new URLSearchParams(query);\n urlParams.set('beginTime', getHKTimeString(startTime));\n urlParams.set('endTime', getHKTimeString(endTime));\n return `${url}?${urlParams.toString()}`;\n};\n/**\n *\n * 获取flv格式分段播放地址\n * @param totalUrl 总播放地址\n * @param startTime 开始时间\n * @param endTime 结束时间\n * @returns\n */\n// export const getFlvListUrl = (\n// totalUrl: string,\n// startTime: moment.MomentInput,\n// endTime: moment.MomentInput\n// ) => {\n// const [url, query] = totalUrl.split('?');\n// const urlParams = new URLSearchParams(query);\n// urlParams.set('beginTime', moment(startTime).format(TimeFormat.url));\n// urlParams.set('endTime', moment(endTime).format(TimeFormat.url));\n// return `${url}?${urlParams.toString()}`;\n// };\n/**\n * 获取地址栏中的参数信息\n * @param key 字段key\n * @param href 链接\n * @returns 字段值\n */\nexport const getUrlParam = (key, href = window.location.href) => {\n const paramObj = {};\n const matchList = href.match(/([^\\?&]+)=([^\\?&#]+)/g) || [];\n for (let i = 0, len = matchList.length; i < len; i++) {\n const r = matchList[i].match(/([^\\?&]+)=([^\\?&]+)/);\n paramObj[r[1]] = r[2];\n }\n if (key) {\n return paramObj[key];\n }\n else {\n return paramObj;\n }\n};\n/**\n *\n * @returns 返回UUID\n */\nexport function guid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["TimeFormat","guidGenerator","S4","Math","random","toString","substring","initProtocol","url","enableAgent","src","isHttps","document","location","protocol","startsWith","replace","ipPort","indexOf","path","window","host","getPlayerParams","type","live","playerUrl","playerType","split","Base64","encode","getUrlTableData","data","result","list","map","item","i","beginTime","moment","endTime","totalSeconds","diff","index","deviceName","deviceCode","devicePort","deviceIp","streamType","channelName","format","params","size","bytesToMegaBytes","duration","secondsToString","downloadUrl","playbackUrl","code","hkType","deviceId","channelNum","bytes","pow","toFixed","total","hour","floor","minute","second","secondsToTime","getHKTimeString","time","getHKListUrl","totalUrl","startTime","query","urlParams","URLSearchParams","set","getUrlParam","key","href","paramObj","matchList","match","len","length","r","guid","c","v"],"sources":["utils/index.js"],"sourcesContent":["import { Base64 } from 'js-base64';\nimport moment from 'moment';\n/** 时间格式枚举 */\nexport var TimeFormat;\n(function (TimeFormat) {\n TimeFormat[\"default\"] = \"YYYY-MM-DDTHH:mm:ss\";\n TimeFormat[\"params\"] = \"YYYY-MM-DD HH:mm:ss\";\n TimeFormat[\"url\"] = \"YYYYMMDDTHHmmss\";\n})(TimeFormat || (TimeFormat = {}));\n/** 生成随机ID */\nexport const guidGenerator = () => {\n const S4 = function () {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n};\nconst initProtocol = (url, enableAgent) => {\n let src = url;\n if (enableAgent) {\n const isHttps = 'https:' === document.location.protocol;\n if (url.startsWith('http:')) {\n url = url.replace('http://', '');\n if (url.startsWith('https:')) {\n url = url.replace('https://', '');\n }\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n src = '/visProxy/' + ipPort + '/play' + path;\n }\n else if (url.startsWith('ws:')) {\n url = url.replace('ws://', '');\n if (url.startsWith('wss:')) {\n url = url.replace('wss://', '');\n }\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n const protocol = isHttps ? 'wss://' : 'ws://';\n src = protocol + window.location.host + '/visProxy/' + ipPort + '/play' + path;\n }\n }\n else {\n const isHttps = 'https:' === document.location.protocol;\n if (isHttps) {\n if (url.startsWith('http:')) {\n url = url.replace('http://', '');\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n src = '/visProxy/' + ipPort + '/play' + path;\n }\n else if (url.startsWith('ws:')) {\n url = url.replace('ws://', '');\n const ipPort = url.substring(0, url.indexOf('/'));\n const path = url.substring(url.indexOf('/'));\n src = 'wss://' + window.location.host + '/visProxy/' + ipPort + '/play' + path;\n }\n else {\n src = url;\n }\n }\n }\n return src;\n};\n/**\n * 获取视频直播地址及格式\n * @param url\n * @returns\n */\nexport const getPlayerParams = (type, url, enableAgent, live) => {\n let playerUrl = url;\n let playerType = 'flv';\n if (url.startsWith('ws://') || url.startsWith('wss://')) {\n if (type === 'hkcar_ws') {\n playerType = 'hkcar_ws';\n }\n else {\n playerType = 'hk_ws';\n }\n if (live) {\n playerUrl = url;\n }\n else {\n playerUrl = url.split('?')[0];\n }\n }\n if (url.startsWith('rtsp://')) {\n playerType = 'flv';\n playerUrl = `/cloud/vic/convert/flv/live.flv?url=${Base64.encode(url)}`;\n }\n if (url.indexOf('flv') > -1) {\n playerUrl = url;\n playerType = 'flv';\n }\n if (url.indexOf('m3u8') > -1) {\n playerUrl = url;\n playerType = 'hls';\n }\n if (url.indexOf('webrtc') > -1) {\n playerUrl = url;\n playerType = 'webrtc';\n }\n return { url: initProtocol(playerUrl, enableAgent), type: playerType };\n};\n/**\n * 获取历史回放表格数据\n * @param data\n * @returns\n */\nexport const getUrlTableData = (data) => {\n const result = data.list.map((item, i) => {\n const beginTime = moment(item.beginTime);\n const endTime = moment(item.endTime);\n const totalSeconds = moment(endTime).diff(moment(beginTime), 'seconds');\n return {\n index: i + 1,\n deviceName: data.deviceName,\n deviceCode: data.deviceCode,\n devicePort: data.devicePort,\n deviceIp: data.deviceIp,\n streamType: data.streamType,\n channelName: data.channelName,\n beginTime: beginTime.format(TimeFormat.params),\n endTime: endTime.format(TimeFormat.params),\n size: bytesToMegaBytes(item.size),\n duration: secondsToString(totalSeconds),\n downloadUrl: '',\n url: item.playbackUrl || '',\n enableAgent: data.enableAgent || false,\n code: item.code,\n hkType: data.hkType,\n deviceId: data.deviceId,\n channelNum: data.channelNum,\n };\n });\n return result;\n};\n/**\n * bytes转换mb\n * @param bytes\n * @returns\n */\nexport const bytesToMegaBytes = (bytes) => `${(bytes / Math.pow(1024, 2)).toFixed(2)}MB`;\n/**\n * 秒数=>0时0分0秒\n * @param total\n * @returns\n */\nexport const secondsToString = (total) => {\n const hour = Math.floor(total / 3600);\n const minute = Math.floor((total % 3600) / 60);\n const second = Math.floor(total % 60);\n const result = `${hour > 0 ? hour + '小时' : ''}${minute > 0 ? minute + '分' : ''}${second > 0 ? second + '秒' : ''}`;\n return result;\n};\n/**\n * 秒数=>00:00:00\n * @param total\n * @returns\n */\nexport const secondsToTime = (total) => {\n const hour = Math.floor(total / 3600);\n const minute = Math.floor((total % 3600) / 60);\n const second = Math.floor(total % 60);\n const result = `${hour >= 10 ? hour : '0' + hour}:${minute >= 10 ? minute : '0' + minute}:${second >= 10 ? second : '0' + second}`;\n return result;\n};\n/**\n * 获取海康时间参数\n * @param time 时间\n * @returns\n */\nexport const getHKTimeString = (time) => {\n return moment(time).format(TimeFormat.default) + 'Z';\n};\n/**\n * 获取海康分段播放地址\n * @param totalUrl 总播放地址\n * @param startTime 开始时间\n * @param endTime 结束时间\n * @returns\n */\nexport const getHKListUrl = (totalUrl, startTime, endTime) => {\n const [url, query] = totalUrl.split('?');\n const urlParams = new URLSearchParams(query);\n urlParams.set('beginTime', getHKTimeString(startTime));\n urlParams.set('endTime', getHKTimeString(endTime));\n return `${url}?${urlParams.toString()}`;\n};\n/**\n *\n * 获取flv格式分段播放地址\n * @param totalUrl 总播放地址\n * @param startTime 开始时间\n * @param endTime 结束时间\n * @returns\n */\n// export const getFlvListUrl = (\n// totalUrl: string,\n// startTime: moment.MomentInput,\n// endTime: moment.MomentInput\n// ) => {\n// const [url, query] = totalUrl.split('?');\n// const urlParams = new URLSearchParams(query);\n// urlParams.set('beginTime', moment(startTime).format(TimeFormat.url));\n// urlParams.set('endTime', moment(endTime).format(TimeFormat.url));\n// return `${url}?${urlParams.toString()}`;\n// };\n/**\n * 获取地址栏中的参数信息\n * @param key 字段key\n * @param href 链接\n * @returns 字段值\n */\nexport const getUrlParam = (key, href = window.location.href) => {\n const paramObj = {};\n const matchList = href.match(/([^\\?&]+)=([^\\?&#]+)/g) || [];\n for (let i = 0, len = matchList.length; i < len; i++) {\n const r = matchList[i].match(/([^\\?&]+)=([^\\?&]+)/);\n paramObj[r[1]] = r[2];\n }\n if (key) {\n return paramObj[key];\n }\n else {\n return paramObj;\n }\n};\n/**\n *\n * @returns 返回UUID\n */\nexport function guid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ export default WebrtcPlayerManager;
2
+ /**
3
+ * WSPlayer是核心组件
4
+ * API 封装了接口
5
+ */
6
+ declare class WebrtcPlayerManager {
7
+ constructor(opt: any);
8
+ el: any;
9
+ realPlayer: any;
10
+ recordPlayer: any;
11
+ player: any;
12
+ url: any;
13
+ type: any;
14
+ playNum: number;
15
+ playIndex: number;
16
+ currentChannelId: string;
17
+ recordList: any[];
18
+ init(opt: any): void;
19
+ /**
20
+ * 初始化实时预览播放器
21
+ */
22
+ initPlayer(opt: any): void;
23
+ /**
24
+ * 录像暂停
25
+ * 只有正在播放的录像调用才有效
26
+ */
27
+ pause(): void;
28
+ /**
29
+ * 录像暂停后播放
30
+ * 只有暂停后的录像调用才有效
31
+ */
32
+ play(): void;
33
+ /**
34
+ * 倍速播放
35
+ * @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率
36
+ */
37
+ playSpeed(speed: number): void;
38
+ /**
39
+ * 关闭播放器
40
+ * @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器
41
+ */
42
+ close(index: number): void;
43
+ /**
44
+ * 设置全屏
45
+ */
46
+ setFullScreen(): void;
47
+ /**
48
+ * 设置窗口自适应还是拉伸
49
+ * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸
50
+ */
51
+ setPlayerAdapter(playerAdapter: string): void;
52
+ /**
53
+ * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数
54
+ * @param {number} number
55
+ */
56
+ setPlayerNum(number: number): void;
57
+ /**
58
+ * 设置选中的播放器的索引
59
+ * @param {number} index
60
+ */
61
+ setSelectIndex(index: number): void;
62
+ /**
63
+ * 录像跳转播放
64
+ * @param {string} time HH:mm:ss格式
65
+ */
66
+ jumpPlayByTime(time: string): void;
67
+ }
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+
10
+ 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); } }
11
+
12
+ 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
+ var SrsRtcPlayerConstructor = SrsRtcPlayerAsync;
15
+ /**
16
+ * WSPlayer是核心组件
17
+ * API 封装了接口
18
+ */
19
+
20
+ var WebrtcPlayerManager = /*#__PURE__*/function () {
21
+ function WebrtcPlayerManager(opt) {
22
+ _classCallCheck(this, WebrtcPlayerManager);
23
+
24
+ // 播放器所在的容器ID
25
+ this.el = opt.el; // 实时预览播放器
26
+
27
+ this.realPlayer = null; // 录像回放播放器
28
+
29
+ this.recordPlayer = null;
30
+ this.player = null;
31
+ this.url = opt.url; // 实时预览还是录像回放播放器
32
+
33
+ this.type = opt.type; // 窗口的数量
34
+
35
+ this.playNum = 1; // 当前选中的窗口的索引
36
+
37
+ this.playIndex = 0; // 当前选中窗口正在播放视频的通道
38
+
39
+ this.currentChannelId = ''; // 索引对应窗口,保存当日录像信息
40
+
41
+ this.recordList = [];
42
+ this.init(opt);
43
+ }
44
+
45
+ _createClass(WebrtcPlayerManager, [{
46
+ key: "init",
47
+ value: function init(opt) {
48
+ this.initPlayer(opt);
49
+ }
50
+ /**
51
+ * 初始化实时预览播放器
52
+ */
53
+
54
+ }, {
55
+ key: "initPlayer",
56
+ value: function initPlayer(opt) {
57
+ this.playNum = opt.num;
58
+ this.realPlayer = new SrsRtcPlayerConstructor();
59
+
60
+ if (this.type) {
61
+ $("#".concat(this.el)).prop('srcObject', this.realPlayer.stream);
62
+ } else {
63
+ $("#".concat(this.el)).prop('src', this.realPlayer.stream);
64
+ }
65
+
66
+ this.realPlayer.play(this.url)["catch"](function (reason) {
67
+ this.realPlayer.close();
68
+ console.error(reason);
69
+ });
70
+ this.player = this.realPlayer;
71
+ }
72
+ /**
73
+ * 录像暂停
74
+ * 只有正在播放的录像调用才有效
75
+ */
76
+
77
+ }, {
78
+ key: "pause",
79
+ value: function pause() {
80
+ this.recordPlayer && this.recordPlayer.pause();
81
+ }
82
+ /**
83
+ * 录像暂停后播放
84
+ * 只有暂停后的录像调用才有效
85
+ */
86
+
87
+ }, {
88
+ key: "play",
89
+ value: function play() {
90
+ this.realPlayer && this.realPlayer.play(this.url);
91
+ }
92
+ /**
93
+ * 倍速播放
94
+ * @param {number} speed 速率 0.125 0.25 0.5 1 2 4 8 共7种速率
95
+ */
96
+
97
+ }, {
98
+ key: "playSpeed",
99
+ value: function playSpeed(speed) {
100
+ this.recordPlayer && this.recordPlayer.playSpeed(speed);
101
+ }
102
+ /**
103
+ * 关闭播放器
104
+ * @param {number} index 可选,关闭指定索引的窗口的播放器,不传则表示关闭所有播放器
105
+ */
106
+
107
+ }, {
108
+ key: "close",
109
+ value: function close(index) {
110
+ this.player && this.player.close(index);
111
+ }
112
+ /**
113
+ * 设置全屏
114
+ */
115
+
116
+ }, {
117
+ key: "setFullScreen",
118
+ value: function setFullScreen() {// this.player.setFullScreen();
119
+ }
120
+ /**
121
+ * 设置窗口自适应还是拉伸
122
+ * @param {string} playerAdapter selfAdaption 自适应 | stretching 拉伸
123
+ */
124
+
125
+ }, {
126
+ key: "setPlayerAdapter",
127
+ value: function setPlayerAdapter(playerAdapter) {// this.player.setPlayerAdapter(playerAdapter);
128
+ }
129
+ /**
130
+ * 控制视频播放器显示的路数: 1 4 9 16 25,不会超过最大显示路数
131
+ * @param {number} number
132
+ */
133
+
134
+ }, {
135
+ key: "setPlayerNum",
136
+ value: function setPlayerNum(number) {// this.player.setPlayerNum(number);
137
+ }
138
+ /**
139
+ * 设置选中的播放器的索引
140
+ * @param {number} index
141
+ */
142
+
143
+ }, {
144
+ key: "setSelectIndex",
145
+ value: function setSelectIndex(index) {// this.player.setSelectIndex(index);
146
+ }
147
+ /**
148
+ * 录像跳转播放
149
+ * @param {string} time HH:mm:ss格式
150
+ */
151
+
152
+ }, {
153
+ key: "jumpPlayByTime",
154
+ value: function jumpPlayByTime(time) {// this.player.jumpPlayByTime(time);
155
+ }
156
+ }]);
157
+
158
+ return WebrtcPlayerManager;
159
+ }();
160
+
161
+ var _default = WebrtcPlayerManager;
162
+ exports["default"] = _default;
163
+ //# sourceMappingURL=PlayerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerManager.js","names":["SrsRtcPlayerConstructor","SrsRtcPlayerAsync","WebrtcPlayerManager","opt","el","realPlayer","recordPlayer","player","url","type","playNum","playIndex","currentChannelId","recordList","init","initPlayer","num","$","prop","stream","play","reason","close","console","error","pause","speed","playSpeed","index","playerAdapter","number","time"],"sources":["webrtc/PlayerManager.js"],"sourcesContent":["let SrsRtcPlayerConstructor = SrsRtcPlayerAsync;\n/**\n * WSPlayer是核心组件\n * API 封装了接口\n */\nclass WebrtcPlayerManager {\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 this.url = opt.url;\n // 实时预览还是录像回放播放器\n this.type = opt.type;\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = '';\n // 索引对应窗口,保存当日录像信息\n this.recordList = [];\n this.init(opt);\n }\n init(opt) {\n this.initPlayer(opt);\n }\n /**\n * 初始化实时预览播放器\n */\n initPlayer(opt) {\n this.playNum = opt.num;\n this.realPlayer = new SrsRtcPlayerConstructor();\n if (this.type) {\n $(`#${this.el}`).prop('srcObject', this.realPlayer.stream);\n }\n else {\n $(`#${this.el}`).prop('src', this.realPlayer.stream);\n }\n this.realPlayer.play(this.url).catch(function (reason) {\n this.realPlayer.close();\n console.error(reason);\n });\n this.player = this.realPlayer;\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.recordPlayer && this.recordPlayer.pause();\n }\n /**\n * 录像暂停后播放\n * 只有暂停后的录像调用才有效\n */\n play() {\n this.realPlayer && this.realPlayer.play(this.url);\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}\nexport default WebrtcPlayerManager;\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAIA,uBAAuB,GAAGC,iBAA9B;AACA;AACA;AACA;AACA;;IACMC,mB;EACF,6BAAYC,GAAZ,EAAiB;IAAA;;IACb;IACA,KAAKC,EAAL,GAAUD,GAAG,CAACC,EAAd,CAFa,CAGb;;IACA,KAAKC,UAAL,GAAkB,IAAlB,CAJa,CAKb;;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,MAAL,GAAc,IAAd;IACA,KAAKC,GAAL,GAAWL,GAAG,CAACK,GAAf,CARa,CASb;;IACA,KAAKC,IAAL,GAAYN,GAAG,CAACM,IAAhB,CAVa,CAWb;;IACA,KAAKC,OAAL,GAAe,CAAf,CAZa,CAab;;IACA,KAAKC,SAAL,GAAiB,CAAjB,CAda,CAeb;;IACA,KAAKC,gBAAL,GAAwB,EAAxB,CAhBa,CAiBb;;IACA,KAAKC,UAAL,GAAkB,EAAlB;IACA,KAAKC,IAAL,CAAUX,GAAV;EACH;;;;WACD,cAAKA,GAAL,EAAU;MACN,KAAKY,UAAL,CAAgBZ,GAAhB;IACH;IACD;AACJ;AACA;;;;WACI,oBAAWA,GAAX,EAAgB;MACZ,KAAKO,OAAL,GAAeP,GAAG,CAACa,GAAnB;MACA,KAAKX,UAAL,GAAkB,IAAIL,uBAAJ,EAAlB;;MACA,IAAI,KAAKS,IAAT,EAAe;QACXQ,CAAC,YAAK,KAAKb,EAAV,EAAD,CAAiBc,IAAjB,CAAsB,WAAtB,EAAmC,KAAKb,UAAL,CAAgBc,MAAnD;MACH,CAFD,MAGK;QACDF,CAAC,YAAK,KAAKb,EAAV,EAAD,CAAiBc,IAAjB,CAAsB,KAAtB,EAA6B,KAAKb,UAAL,CAAgBc,MAA7C;MACH;;MACD,KAAKd,UAAL,CAAgBe,IAAhB,CAAqB,KAAKZ,GAA1B,WAAqC,UAAUa,MAAV,EAAkB;QACnD,KAAKhB,UAAL,CAAgBiB,KAAhB;QACAC,OAAO,CAACC,KAAR,CAAcH,MAAd;MACH,CAHD;MAIA,KAAKd,MAAL,GAAc,KAAKF,UAAnB;IACH;IACD;AACJ;AACA;AACA;;;;WACI,iBAAQ;MACJ,KAAKC,YAAL,IAAqB,KAAKA,YAAL,CAAkBmB,KAAlB,EAArB;IACH;IACD;AACJ;AACA;AACA;;;;WACI,gBAAO;MACH,KAAKpB,UAAL,IAAmB,KAAKA,UAAL,CAAgBe,IAAhB,CAAqB,KAAKZ,GAA1B,CAAnB;IACH;IACD;AACJ;AACA;AACA;;;;WACI,mBAAUkB,KAAV,EAAiB;MACb,KAAKpB,YAAL,IAAqB,KAAKA,YAAL,CAAkBqB,SAAlB,CAA4BD,KAA5B,CAArB;IACH;IACD;AACJ;AACA;AACA;;;;WACI,eAAME,KAAN,EAAa;MACT,KAAKrB,MAAL,IAAe,KAAKA,MAAL,CAAYe,KAAZ,CAAkBM,KAAlB,CAAf;IACH;IACD;AACJ;AACA;;;;WACI,yBAAgB,CACZ;IACH;IACD;AACJ;AACA;AACA;;;;WACI,0BAAiBC,aAAjB,EAAgC,CAC5B;IACH;IACD;AACJ;AACA;AACA;;;;WACI,sBAAaC,MAAb,EAAqB,CACjB;IACH;IACD;AACJ;AACA;AACA;;;;WACI,wBAAeF,KAAf,EAAsB,CAClB;IACH;IACD;AACJ;AACA;AACA;;;;WACI,wBAAeG,IAAf,EAAqB,CACjB;IACH;;;;;;eAEU7B,mB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/player",
3
- "version": "1.2.14",
3
+ "version": "1.3.1",
4
4
  "private": false,
5
5
  "description": "视频业务组件",
6
6
  "main": "./lib/index.js",
@@ -1,36 +0,0 @@
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;
@@ -1,238 +0,0 @@
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
- channelNum: channelNum,
97
- enableAgent: enableAgent,
98
- container: container,
99
- type: type
100
- });
101
- playerRef.current = player;
102
- setState({
103
- loading: true,
104
- error: false
105
- });
106
- player.play().then(function () {
107
- return setState({
108
- play: true,
109
- error: false
110
- });
111
- })["catch"](function () {
112
- return setState({
113
- error: true
114
- });
115
- })["finally"](function () {
116
- setState({
117
- loading: false
118
- }), loaded && loaded();
119
- });
120
- return function () {
121
- player.destroy();
122
- setState({
123
- error: false,
124
- loading: false,
125
- play: false
126
- });
127
- };
128
- }, [url]);
129
- (0, _react.useEffect)(function () {
130
- var canvas = document.getElementById('canvas');
131
- var ctx = canvas.getContext('2d');
132
- var i = 0;
133
- var timer = setInterval(function () {
134
- ctx.beginPath();
135
- var x = Math.random() * 300;
136
- var x2 = Math.random() * 150;
137
- var y = Math.random() * 300;
138
- var y2 = Math.random() * 150;
139
- ctx.strokeStyle = 'red';
140
- ctx.lineWidth = 3;
141
- ctx.rect(x, y, x2 > 20 ? x2 : 20, y2 > 20 ? y2 : 20);
142
- i++;
143
- ctx.stroke(); // ctx.closePath();
144
-
145
- if (i > 5) {
146
- timer && clearTimeout(timer);
147
- }
148
- }, 2000);
149
- return function () {
150
- timer && clearTimeout(timer);
151
- };
152
- }, []);
153
-
154
- var handleCapture = function handleCapture(e) {
155
- var player = playerRef.current;
156
- player && player.capture(captureName, screenshot);
157
- e.stopPropagation();
158
- };
159
-
160
- var handleFullScreen = function handleFullScreen(e) {
161
- toggleFullscreen();
162
- var player = playerRef.current;
163
- player && player.resize();
164
- e.stopPropagation();
165
- };
166
-
167
- return (0, _jsxRuntime.jsxs)("div", Object.assign({
168
- className: "vtx-live-player",
169
- ref: wrapRef,
170
- style: {
171
- width: width,
172
- height: height,
173
- position: 'relative'
174
- }
175
- }, {
176
- children: [(0, _jsxRuntime.jsx)("div", {
177
- ref: ref,
178
- style: {
179
- height: '100%',
180
- width: '100%'
181
- },
182
- id: state.id
183
- }), (0, _jsxRuntime.jsx)("canvas", {
184
- id: "canvas",
185
- width: width,
186
- height: height,
187
- style: {
188
- position: 'absolute',
189
- top: 0,
190
- left: 0,
191
- right: 0,
192
- bottom: 0
193
- }
194
- }), 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, {
195
- showInfo: showInfo,
196
- info: info
197
- }), (0, _jsxRuntime.jsx)("div", Object.assign({
198
- className: "controls",
199
- ref: controlsRef
200
- }, {
201
- children: (0, _jsxRuntime.jsxs)(_space["default"], Object.assign({
202
- className: "right",
203
- size: 12,
204
- align: "center"
205
- }, {
206
- children: [(0, _jsxRuntime.jsx)(_controls.VolumeControl, {
207
- player: playerRef.current,
208
- container: controlsRef.current
209
- }), !!screenshot && (0, _jsxRuntime.jsx)(_icons.CaptureIcon, {
210
- onClick: handleCapture
211
- }), channelNum && deviceId && (0, _jsxRuntime.jsx)(_controls.TalkControl, {
212
- player: playerRef.current,
213
- channelNum: channelNum,
214
- deviceId: deviceId
215
- }), (cloudParams === null || cloudParams === void 0 ? void 0 : cloudParams.type) !== 'none' && (0, _jsxRuntime.jsx)(_icons.CloudControlIcon, {
216
- active: state.showCloudPanel,
217
- onClick: function onClick() {
218
- return setState({
219
- showCloudPanel: !state.showCloudPanel
220
- });
221
- }
222
- }), isFullscreen ? (0, _jsxRuntime.jsx)(_icons.ExitFullScreenIcon, {
223
- onClick: handleFullScreen
224
- }) : (0, _jsxRuntime.jsx)(_icons.FullScreenIcon, {
225
- onClick: handleFullScreen
226
- })]
227
- }))
228
- }))]
229
- }));
230
- }; // LivePlayerImage.displayName = 'live-player';
231
-
232
-
233
- exports.LivePlayerImage = LivePlayerImage;
234
-
235
- var _default = /*#__PURE__*/(0, _react.forwardRef)(LivePlayerImage);
236
-
237
- exports["default"] = _default;
238
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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, channelNum, 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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"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- require("antd/lib/space/style/css");
4
-
5
- require("../../controls/style/css");
6
-
7
- require("./index.css");
8
- //# sourceMappingURL=css.js.map
@@ -1 +0,0 @@
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"}
@@ -1,74 +0,0 @@
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
- }
@@ -1,3 +0,0 @@
1
- import "antd/lib/space/style";
2
- import '../../controls/style';
3
- import './index.less';
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- require("antd/lib/space/style");
4
-
5
- require("../../controls/style");
6
-
7
- require("./index.less");
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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"}
@@ -1,70 +0,0 @@
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
- }