@vtx/player 1.7.33 → 1.8.0

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 (105) hide show
  1. package/README.md +2 -2
  2. package/lib/api/fetch.js +69 -67
  3. package/lib/api/fetch.js.map +1 -1
  4. package/lib/api/index.js +47 -34
  5. package/lib/api/index.js.map +1 -1
  6. package/lib/api/types.d.ts +5 -5
  7. package/lib/api/types.js +1 -0
  8. package/lib/api/types.js.map +1 -1
  9. package/lib/bd/PlayerManager.js +7 -8
  10. package/lib/bd/PlayerManager.js.map +1 -1
  11. package/lib/bill-player/index.d.ts +1 -1
  12. package/lib/bill-player/index.js +11 -9
  13. package/lib/bill-player/index.js.map +1 -1
  14. package/lib/bill-player/style/index.less +320 -320
  15. package/lib/components/set-tag-video/index.js +8 -7
  16. package/lib/components/set-tag-video/index.js.map +1 -1
  17. package/lib/components/set-tag-video/style/index.less +125 -125
  18. package/lib/components/split-screen/index.d.ts +1 -1
  19. package/lib/components/split-screen/index.js +5 -3
  20. package/lib/components/split-screen/index.js.map +1 -1
  21. package/lib/components/tag-video/index.js +11 -10
  22. package/lib/components/tag-video/index.js.map +1 -1
  23. package/lib/components/tag-video/style/index.less +69 -69
  24. package/lib/components/video-scale/index.d.ts +1 -1
  25. package/lib/components/video-scale/index.js +3 -2
  26. package/lib/components/video-scale/index.js.map +1 -1
  27. package/lib/context/index.js +5 -3
  28. package/lib/context/index.js.map +1 -1
  29. package/lib/controls/index.d.ts +11 -11
  30. package/lib/controls/index.js +22 -14
  31. package/lib/controls/index.js.map +1 -1
  32. package/lib/controls/style/index.less +192 -192
  33. package/lib/h264/PlayerManager.js +7 -8
  34. package/lib/h264/PlayerManager.js.map +1 -1
  35. package/lib/history-control/index.d.ts +2 -2
  36. package/lib/history-control/index.js +10 -8
  37. package/lib/history-control/index.js.map +1 -1
  38. package/lib/history-control/style/index.less +252 -252
  39. package/lib/history-control-v2/components/grid-item/index.js +11 -10
  40. package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
  41. package/lib/history-control-v2/components/panel/VideoTable.d.ts +1 -1
  42. package/lib/history-control-v2/components/panel/VideoTable.js +54 -51
  43. package/lib/history-control-v2/components/panel/VideoTable.js.map +1 -1
  44. package/lib/history-control-v2/components/panel/index.js +14 -13
  45. package/lib/history-control-v2/components/panel/index.js.map +1 -1
  46. package/lib/history-control-v2/context.js +2 -1
  47. package/lib/history-control-v2/context.js.map +1 -1
  48. package/lib/history-control-v2/index.d.ts +4 -4
  49. package/lib/history-control-v2/index.js +75 -71
  50. package/lib/history-control-v2/index.js.map +1 -1
  51. package/lib/history-control-v2/style/index.less +437 -437
  52. package/lib/history-control-v2/utils.js +18 -12
  53. package/lib/history-control-v2/utils.js.map +1 -1
  54. package/lib/history-player/index.d.ts +1 -1
  55. package/lib/history-player/index.js +112 -109
  56. package/lib/history-player/index.js.map +1 -1
  57. package/lib/history-player/style/index.less +102 -102
  58. package/lib/hooks/useSettings.js +2 -1
  59. package/lib/hooks/useSettings.js.map +1 -1
  60. package/lib/icc/PlayerManager.js +8 -9
  61. package/lib/icc/PlayerManager.js.map +1 -1
  62. package/lib/icc/api.d.ts +68 -0
  63. package/lib/icc/api.js +3 -2
  64. package/lib/icc/api.js.map +1 -1
  65. package/lib/icons/index.d.ts +36 -36
  66. package/lib/icons/index.js +73 -37
  67. package/lib/icons/index.js.map +1 -1
  68. package/lib/icons/index.less +32 -32
  69. package/lib/index.js +1 -1
  70. package/lib/index.js.map +1 -1
  71. package/lib/live-channel-player/index.d.ts +1 -1
  72. package/lib/live-channel-player/index.js +32 -29
  73. package/lib/live-channel-player/index.js.map +1 -1
  74. package/lib/live-control/index.d.ts +2 -2
  75. package/lib/live-control/index.js +13 -12
  76. package/lib/live-control/index.js.map +1 -1
  77. package/lib/live-control/style/index.less +99 -99
  78. package/lib/live-control-v2/index.d.ts +3 -3
  79. package/lib/live-control-v2/index.js +20 -18
  80. package/lib/live-control-v2/index.js.map +1 -1
  81. package/lib/live-control-v2/style/index.less +192 -192
  82. package/lib/live-player/index.js +63 -61
  83. package/lib/live-player/index.js.map +1 -1
  84. package/lib/live-player/style/index.less +75 -75
  85. package/lib/player/index.d.ts +1 -1
  86. package/lib/player/index.js +59 -55
  87. package/lib/player/index.js.map +1 -1
  88. package/lib/rsl/PlayerManager.d.ts +1 -1
  89. package/lib/rsl/PlayerManager.js +7 -8
  90. package/lib/rsl/PlayerManager.js.map +1 -1
  91. package/lib/typings/@vtx/utils/index.d.ts +28 -28
  92. package/lib/typings/h5player.d.ts +150 -150
  93. package/lib/typings/webrtcplayer.d.ts +56 -56
  94. package/lib/typings/wsplayer.d.ts +99 -99
  95. package/lib/utils/index.d.ts +1 -1
  96. package/lib/utils/index.js +23 -14
  97. package/lib/utils/index.js.map +1 -1
  98. package/lib/vite-env.d.ts +1 -1
  99. package/lib/vtxHls/PlayerManager.js +7 -8
  100. package/lib/vtxHls/PlayerManager.js.map +1 -1
  101. package/lib/vtxHls/WhepManager.js +10 -11
  102. package/lib/vtxHls/WhepManager.js.map +1 -1
  103. package/lib/webrtc/PlayerManager.js +7 -8
  104. package/lib/webrtc/PlayerManager.js.map +1 -1
  105. package/package.json +126 -126
@@ -11,27 +11,29 @@ exports.loadJs = loadJs;
11
11
  exports.secondsToTime = exports.secondsToString = void 0;
12
12
  var _jsBase = require("js-base64");
13
13
  var _moment = _interopRequireDefault(require("moment"));
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
16
  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."); }
17
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
17
+ 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); }
18
+ 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; }
19
+ 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; }
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
21
  /** 时间格式枚举 */
22
22
  var TimeFormat;
23
+ exports.TimeFormat = TimeFormat;
23
24
  (function (TimeFormat) {
24
25
  TimeFormat["default"] = "YYYY-MM-DDTHH:mm:ss";
25
26
  TimeFormat["params"] = "YYYY-MM-DD HH:mm:ss";
26
27
  TimeFormat["url"] = "YYYYMMDDTHHmmss";
27
28
  })(TimeFormat || (exports.TimeFormat = TimeFormat = {}));
28
29
  /** 生成随机ID */
29
- var guidGenerator = exports.guidGenerator = function guidGenerator() {
30
+ var guidGenerator = function guidGenerator() {
30
31
  var S4 = function S4() {
31
32
  return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
32
33
  };
33
34
  return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();
34
35
  };
36
+ exports.guidGenerator = guidGenerator;
35
37
  var initProtocol = function initProtocol(url, enableAgent) {
36
38
  var src = url;
37
39
  if (enableAgent) {
@@ -79,7 +81,7 @@ var initProtocol = function initProtocol(url, enableAgent) {
79
81
  * @param url
80
82
  * @returns
81
83
  */
82
- var getPlayerParams = exports.getPlayerParams = function getPlayerParams(type, url, enableAgent, live) {
84
+ var getPlayerParams = function getPlayerParams(type, url, enableAgent, live) {
83
85
  var playerUrl = url;
84
86
  var playerType = 'mp4';
85
87
  if (type === 'bd') {
@@ -165,7 +167,8 @@ var getPlayerParams = exports.getPlayerParams = function getPlayerParams(type, u
165
167
  * @param data
166
168
  * @returns
167
169
  */
168
- var getUrlTableData = exports.getUrlTableData = function getUrlTableData(data) {
170
+ exports.getPlayerParams = getPlayerParams;
171
+ var getUrlTableData = function getUrlTableData(data) {
169
172
  var result = data.list.map(function (item, i) {
170
173
  var beginTime = (0, _moment["default"])(item.beginTime);
171
174
  var endTime = (0, _moment["default"])(item.endTime);
@@ -198,7 +201,8 @@ var getUrlTableData = exports.getUrlTableData = function getUrlTableData(data) {
198
201
  * @param bytes
199
202
  * @returns
200
203
  */
201
- var bytesToMegaBytes = exports.bytesToMegaBytes = function bytesToMegaBytes(bytes) {
204
+ exports.getUrlTableData = getUrlTableData;
205
+ var bytesToMegaBytes = function bytesToMegaBytes(bytes) {
202
206
  return "".concat((bytes / Math.pow(1024, 2)).toFixed(2), "MB");
203
207
  };
204
208
  /**
@@ -206,7 +210,8 @@ var bytesToMegaBytes = exports.bytesToMegaBytes = function bytesToMegaBytes(byte
206
210
  * @param total
207
211
  * @returns
208
212
  */
209
- var secondsToString = exports.secondsToString = function secondsToString(total) {
213
+ exports.bytesToMegaBytes = bytesToMegaBytes;
214
+ var secondsToString = function secondsToString(total) {
210
215
  var hour = Math.floor(total / 3600);
211
216
  var minute = Math.floor(total % 3600 / 60);
212
217
  var second = Math.floor(total % 60);
@@ -218,7 +223,8 @@ var secondsToString = exports.secondsToString = function secondsToString(total)
218
223
  * @param total
219
224
  * @returns
220
225
  */
221
- var secondsToTime = exports.secondsToTime = function secondsToTime(total) {
226
+ exports.secondsToString = secondsToString;
227
+ var secondsToTime = function secondsToTime(total) {
222
228
  var hour = Math.floor(total / 3600);
223
229
  var minute = Math.floor(total % 3600 / 60);
224
230
  var second = Math.floor(total % 60);
@@ -230,7 +236,8 @@ var secondsToTime = exports.secondsToTime = function secondsToTime(total) {
230
236
  * @param time 时间
231
237
  * @returns
232
238
  */
233
- var getHKTimeString = exports.getHKTimeString = function getHKTimeString(time) {
239
+ exports.secondsToTime = secondsToTime;
240
+ var getHKTimeString = function getHKTimeString(time) {
234
241
  return (0, _moment["default"])(time).format(TimeFormat["default"]) + 'Z';
235
242
  };
236
243
  /**
@@ -240,7 +247,8 @@ var getHKTimeString = exports.getHKTimeString = function getHKTimeString(time) {
240
247
  * @param endTime 结束时间
241
248
  * @returns
242
249
  */
243
- var getHKListUrl = exports.getHKListUrl = function getHKListUrl(totalUrl, startTime, endTime) {
250
+ exports.getHKTimeString = getHKTimeString;
251
+ var getHKListUrl = function getHKListUrl(totalUrl, startTime, endTime) {
244
252
  var _totalUrl$split = totalUrl.split('?'),
245
253
  _totalUrl$split2 = _slicedToArray(_totalUrl$split, 2),
246
254
  url = _totalUrl$split2[0],
@@ -273,6 +281,7 @@ var getHKListUrl = exports.getHKListUrl = function getHKListUrl(totalUrl, startT
273
281
  *
274
282
  * @returns 返回UUID
275
283
  */
284
+ exports.getHKListUrl = getHKListUrl;
276
285
  function guid() {
277
286
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
278
287
  var r = Math.random() * 16 | 0,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_jsBase","require","_moment","_interopRequireDefault","e","__esModule","_slicedToArray","r","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","TimeFormat","exports","guidGenerator","S4","Math","random","substring","initProtocol","url","enableAgent","src","isHttps","document","location","protocol","startsWith","replace","ipPort","indexOf","path","window","host","getPlayerParams","type","live","playerUrl","playerType","concat","origin","split","baseUrlPrefix","process","env","PREFIX","Base64","encode","getUrlTableData","data","result","list","map","item","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","_totalUrl$split","_totalUrl$split2","query","urlParams","URLSearchParams","set","guid","c","v","loadJs","Error","head","getElementsByTagName","script","createElement","appendChild","loadCss","link","href","rel"],"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 = 'mp4';\n if (type === 'bd') {\n if (url.startsWith('http')) {\n return {\n type: 'bd',\n url,\n };\n }\n return {\n type: 'bd',\n url: `${window.location.origin}${url}`,\n };\n }\n if (type === 'vtx_ws') {\n return {\n type: 'vtx_ws',\n url,\n };\n }\n else 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 const baseUrlPrefix = process.env.PREFIX ? `${process.env.PREFIX}` : '';\n playerType = 'flv';\n playerUrl = baseUrlPrefix + `/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 // 特殊类型\n if (url.indexOf('vtxm3u8') > -1) {\n playerUrl = url;\n playerType = 'vtxhls';\n }\n // 特殊类型\n if (url.indexOf('vtxwhep') > -1) {\n playerUrl = url;\n playerType = 'vtxwhep';\n }\n if (url.indexOf('webrtc') > -1) {\n playerUrl = url;\n playerType = 'webrtc';\n }\n if (url.indexOf('h264') > -1 || url.indexOf('cloudFile') > -1) {\n playerUrl = url;\n playerType = 'h264';\n }\n // rsl\n if (playerType === 'mp4' || playerType === 'iframe' || playerType === 'rsl') {\n return {\n type: playerType,\n url,\n };\n }\n if (playerType === 'tab') {\n return {\n type: playerType,\n url,\n };\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 * @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}\nexport function loadJs(path) {\n if (!path || path.length === 0) {\n throw new Error('argument \"path\" is required !');\n }\n const head = document.getElementsByTagName('head')[0];\n const script = document.createElement('script');\n script.src = path;\n script.type = 'text/javascript';\n head.appendChild(script);\n}\nexport function loadCss(path) {\n if (!path || path.length === 0) {\n throw new Error('argument \"path\" is required !');\n }\n const head = document.getElementsByTagName('head')[0];\n const link = document.createElement('link');\n link.href = path;\n link.rel = 'stylesheet';\n link.type = 'text/css';\n head.appendChild(link);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_jsBase","require","_moment","_interopRequireDefault","obj","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_arr","_n","_d","_s","_e","next","done","push","value","err","isArray","TimeFormat","exports","guidGenerator","S4","Math","random","substring","initProtocol","url","enableAgent","src","isHttps","document","location","protocol","startsWith","replace","ipPort","indexOf","path","window","host","getPlayerParams","type","live","playerUrl","playerType","concat","origin","split","baseUrlPrefix","process","env","PREFIX","Base64","encode","getUrlTableData","data","result","list","map","item","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","_totalUrl$split","_totalUrl$split2","query","urlParams","URLSearchParams","set","guid","c","r","v","loadJs","Error","head","getElementsByTagName","script","createElement","appendChild","loadCss","link","href","rel"],"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 = 'mp4';\n if (type === 'bd') {\n if (url.startsWith('http')) {\n return {\n type: 'bd',\n url,\n };\n }\n return {\n type: 'bd',\n url: `${window.location.origin}${url}`,\n };\n }\n if (type === 'vtx_ws') {\n return {\n type: 'vtx_ws',\n url,\n };\n }\n else 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 const baseUrlPrefix = process.env.PREFIX ? `${process.env.PREFIX}` : '';\n playerType = 'flv';\n playerUrl = baseUrlPrefix + `/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 // 特殊类型\n if (url.indexOf('vtxm3u8') > -1) {\n playerUrl = url;\n playerType = 'vtxhls';\n }\n // 特殊类型\n if (url.indexOf('vtxwhep') > -1) {\n playerUrl = url;\n playerType = 'vtxwhep';\n }\n if (url.indexOf('webrtc') > -1) {\n playerUrl = url;\n playerType = 'webrtc';\n }\n if (url.indexOf('h264') > -1 || url.indexOf('cloudFile') > -1) {\n playerUrl = url;\n playerType = 'h264';\n }\n // rsl\n if (playerType === 'mp4' || playerType === 'iframe' || playerType === 'rsl') {\n return {\n type: playerType,\n url,\n };\n }\n if (playerType === 'tab') {\n return {\n type: playerType,\n url,\n };\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 * @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}\nexport function loadJs(path) {\n if (!path || path.length === 0) {\n throw new Error('argument \"path\" is required !');\n }\n const head = document.getElementsByTagName('head')[0];\n const script = document.createElement('script');\n script.src = path;\n script.type = 'text/javascript';\n head.appendChild(script);\n}\nexport function loadCss(path) {\n if (!path || path.length === 0) {\n throw new Error('argument \"path\" is required !');\n }\n const head = document.getElementsByTagName('head')[0];\n const link = document.createElement('link');\n link.href = path;\n link.rel = 'stylesheet';\n link.type = 'text/css';\n head.appendChild(link);\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/vite-env.d.ts CHANGED
@@ -1 +1 @@
1
- /// <reference types="vite/client" />
1
+ /// <reference types="vite/client" />
@@ -4,12 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
- 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); }
8
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
9
- 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); } }
10
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
- 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); }
7
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
+ 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); } }
9
+ 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
10
  var VtxHlsPlayerManager = /*#__PURE__*/function () {
14
11
  function VtxHlsPlayerManager(opt) {
15
12
  _classCallCheck(this, VtxHlsPlayerManager);
@@ -20,7 +17,7 @@ var VtxHlsPlayerManager = /*#__PURE__*/function () {
20
17
  this.initPlayer();
21
18
  }
22
19
  //初始化视频插件
23
- return _createClass(VtxHlsPlayerManager, [{
20
+ _createClass(VtxHlsPlayerManager, [{
24
21
  key: "initPlayer",
25
22
  value: function initPlayer() {
26
23
  var _this = this;
@@ -111,6 +108,8 @@ var VtxHlsPlayerManager = /*#__PURE__*/function () {
111
108
  this.player.setSelectIndex(index);
112
109
  }
113
110
  }]);
111
+ return VtxHlsPlayerManager;
114
112
  }();
115
- var _default = exports["default"] = VtxHlsPlayerManager;
113
+ var _default = VtxHlsPlayerManager;
114
+ exports["default"] = _default;
116
115
  //# sourceMappingURL=PlayerManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerManager.js","names":["VtxHlsPlayerManager","opt","_classCallCheck","url","video","player","timer","initPlayer","_createClass","key","value","_this","hls","Hls","maxLiveSyncPlaybackRate","on","Events","ERROR","evt","data","type","ErrorTypes","MEDIA_ERROR","recoverMediaError","fatal","clearTimeout","destroy","setTimeout","MEDIA_ATTACHED","loadSource","concat","MANIFEST_PARSED","play","attachMedia","playSpeed","speed","recordPlayer","close","resize","setSize","setFullScreen","fullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","_default","exports"],"sources":["vtxHls/PlayerManager.js"],"sourcesContent":["class VtxHlsPlayerManager {\n constructor(opt) {\n this.url = opt.url;\n this.video = opt.video;\n this.player = null;\n this.timer = null;\n this.initPlayer();\n }\n //初始化视频插件\n initPlayer() {\n const video = this.video;\n const hls = new Hls({\n maxLiveSyncPlaybackRate: 1.5,\n });\n this.player = hls;\n this.player.on(Hls.Events.ERROR, (evt, data) => {\n if (data.type === Hls.ErrorTypes.MEDIA_ERROR) {\n this.player.recoverMediaError();\n }\n else if (data.fatal) {\n this.timer && clearTimeout(this.timer);\n this.player.destroy();\n this.timer = setTimeout(() => this.initPlayer(video), 300);\n }\n });\n this.player.on(Hls.Events.MEDIA_ATTACHED, () => {\n this.player.loadSource(`${this.url}index.m3u8`);\n });\n this.player.on(Hls.Events.MANIFEST_PARSED, () => {\n video.play();\n });\n this.player.attachMedia(video);\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() {\n if (this.player) {\n this.player.destroy();\n this.player = null;\n this.timer = null;\n }\n }\n resize() {\n this.player && this.player.setSize();\n }\n /**\n * 设置全屏\n */\n setFullScreen() {\n this.player.fullScreen();\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}\nexport default VtxHlsPlayerManager;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PlayerManager.js","names":["VtxHlsPlayerManager","opt","_classCallCheck","url","video","player","timer","initPlayer","_createClass","key","value","_this","hls","Hls","maxLiveSyncPlaybackRate","on","Events","ERROR","evt","data","type","ErrorTypes","MEDIA_ERROR","recoverMediaError","fatal","clearTimeout","destroy","setTimeout","MEDIA_ATTACHED","loadSource","concat","MANIFEST_PARSED","play","attachMedia","playSpeed","speed","recordPlayer","close","resize","setSize","setFullScreen","fullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","_default","exports"],"sources":["vtxHls/PlayerManager.js"],"sourcesContent":["class VtxHlsPlayerManager {\n constructor(opt) {\n this.url = opt.url;\n this.video = opt.video;\n this.player = null;\n this.timer = null;\n this.initPlayer();\n }\n //初始化视频插件\n initPlayer() {\n const video = this.video;\n const hls = new Hls({\n maxLiveSyncPlaybackRate: 1.5,\n });\n this.player = hls;\n this.player.on(Hls.Events.ERROR, (evt, data) => {\n if (data.type === Hls.ErrorTypes.MEDIA_ERROR) {\n this.player.recoverMediaError();\n }\n else if (data.fatal) {\n this.timer && clearTimeout(this.timer);\n this.player.destroy();\n this.timer = setTimeout(() => this.initPlayer(video), 300);\n }\n });\n this.player.on(Hls.Events.MEDIA_ATTACHED, () => {\n this.player.loadSource(`${this.url}index.m3u8`);\n });\n this.player.on(Hls.Events.MANIFEST_PARSED, () => {\n video.play();\n });\n this.player.attachMedia(video);\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() {\n if (this.player) {\n this.player.destroy();\n this.player = null;\n this.timer = null;\n }\n }\n resize() {\n this.player && this.player.setSize();\n }\n /**\n * 设置全屏\n */\n setFullScreen() {\n this.player.fullScreen();\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}\nexport default VtxHlsPlayerManager;\n"],"mappings":"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","ignoreList":[]}
@@ -1,18 +1,15 @@
1
1
  "use strict";
2
2
 
3
- 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); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports["default"] = void 0;
8
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
9
- 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); } }
10
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
- 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); }
13
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
14
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
15
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
7
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
+ 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); } }
9
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
10
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
11
+ 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); }
12
+ 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; }
16
13
  var restartPause = 2000;
17
14
  var linkToIceServers = function linkToIceServers(links) {
18
15
  return links !== null ? links.split(', ').map(function (link) {
@@ -137,7 +134,7 @@ var generateSdpFragment = function generateSdpFragment(offerData, candidates) {
137
134
  }
138
135
  return frag;
139
136
  };
140
- var WHEPClient = exports["default"] = /*#__PURE__*/function () {
137
+ var WHEPClient = /*#__PURE__*/function () {
141
138
  function WHEPClient(opt) {
142
139
  _classCallCheck(this, WHEPClient);
143
140
  this.url = opt.url;
@@ -148,7 +145,7 @@ var WHEPClient = exports["default"] = /*#__PURE__*/function () {
148
145
  this.queuedCandidates = [];
149
146
  this.start();
150
147
  }
151
- return _createClass(WHEPClient, [{
148
+ _createClass(WHEPClient, [{
152
149
  key: "start",
153
150
  value: function start() {
154
151
  var _this = this;
@@ -308,5 +305,7 @@ var WHEPClient = exports["default"] = /*#__PURE__*/function () {
308
305
  this.queuedCandidates = [];
309
306
  }
310
307
  }]);
308
+ return WHEPClient;
311
309
  }();
310
+ exports["default"] = WHEPClient;
312
311
  //# sourceMappingURL=WhepManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhepManager.js","names":["restartPause","linkToIceServers","links","split","map","link","m","match","ret","urls","undefined","username","unquoteCredential","credential","credentialType","editOffer","offer","sections","sdp","i","length","section","startsWith","enableStereoOpus","join","opusPayloadFormat","lines","toLowerCase","includes","slice","parseOffer","iceUfrag","icePwd","medias","_iterator","_createForOfIteratorHelper","_step","s","n","done","line","value","push","err","e","f","generateSdpFragment","offerData","candidates","candidatesByMedia","_iterator2","_step2","candidate","mid","sdpMLineIndex","frag","_iterator3","_step3","media","_iterator4","_step4","WHEPClient","exports","opt","_classCallCheck","url","video","pc","restartTimeout","sessionUrl","queuedCandidates","start","_createClass","key","_this","console","log","fetch","URL","method","then","res","onIceServers","scheduleRestart","_this2","RTCPeerConnection","iceServers","headers","get","direction","addTransceiver","onicecandidate","evt","onLocalCandidate","oniceconnectionstatechange","onConnectionState","ontrack","track","kind","srcObject","streams","createOffer","onLocalOffer","_this3","setLocalDescription","body","status","Error","toString","text","onRemoteAnswer","RTCSessionDescription","type","iceConnectionState","answer","setRemoteDescription","sendLocalCandidates","_this4","window","location","search","_this5","close","setTimeout"],"sources":["vtxHls/WhepManager.js"],"sourcesContent":["const restartPause = 2000;\nconst linkToIceServers = (links) => links !== null\n ? links.split(', ').map((link) => {\n const m = link.match(/^<(.+?)>; rel=\"ice-server\"(; username=\"(.*?)\"; credential=\"(.*?)\"; credential-type=\"password\")?/i);\n const ret = {\n urls: [m[1]],\n };\n if (m[3] !== undefined) {\n ret.username = unquoteCredential(m[3]);\n ret.credential = unquoteCredential(m[4]);\n ret.credentialType = 'password';\n }\n return ret;\n })\n : [];\nconst editOffer = (offer) => {\n const sections = offer.sdp.split('m=');\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n if (section.startsWith('audio')) {\n sections[i] = enableStereoOpus(section);\n }\n }\n offer.sdp = sections.join('m=');\n};\nconst enableStereoOpus = (section) => {\n let opusPayloadFormat = '';\n let lines = section.split('\\r\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('a=rtpmap:') && lines[i].toLowerCase().includes('opus/')) {\n opusPayloadFormat = lines[i].slice('a=rtpmap:'.length).split(' ')[0];\n break;\n }\n }\n if (opusPayloadFormat === '') {\n return section;\n }\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('a=fmtp:' + opusPayloadFormat + ' ')) {\n if (!lines[i].includes('stereo')) {\n lines[i] += ';stereo=1';\n }\n if (!lines[i].includes('sprop-stereo')) {\n lines[i] += ';sprop-stereo=1';\n }\n }\n }\n return lines.join('\\r\\n');\n};\nconst parseOffer = (offer) => {\n const ret = {\n iceUfrag: '',\n icePwd: '',\n medias: [],\n };\n for (const line of offer.split('\\r\\n')) {\n if (line.startsWith('m=')) {\n ret.medias.push(line.slice('m='.length));\n }\n else if (ret.iceUfrag === '' && line.startsWith('a=ice-ufrag:')) {\n ret.iceUfrag = line.slice('a=ice-ufrag:'.length);\n }\n else if (ret.icePwd === '' && line.startsWith('a=ice-pwd:')) {\n ret.icePwd = line.slice('a=ice-pwd:'.length);\n }\n }\n return ret;\n};\nconst generateSdpFragment = (offerData, candidates) => {\n const candidatesByMedia = {};\n for (const candidate of candidates) {\n const mid = candidate.sdpMLineIndex;\n if (candidatesByMedia[mid] === undefined) {\n candidatesByMedia[mid] = [];\n }\n candidatesByMedia[mid].push(candidate);\n }\n let frag = 'a=ice-ufrag:' + offerData.iceUfrag + '\\r\\n' + 'a=ice-pwd:' + offerData.icePwd + '\\r\\n';\n let mid = 0;\n for (const media of offerData.medias) {\n if (candidatesByMedia[mid] !== undefined) {\n frag += 'm=' + media + '\\r\\n' + 'a=mid:' + mid + '\\r\\n';\n for (const candidate of candidatesByMedia[mid]) {\n frag += 'a=' + candidate.candidate + '\\r\\n';\n }\n }\n mid++;\n }\n return frag;\n};\nexport default class WHEPClient {\n constructor(opt) {\n this.url = opt.url;\n this.video = opt.video;\n this.pc = null;\n this.restartTimeout = null;\n this.sessionUrl = '';\n this.queuedCandidates = [];\n this.start();\n }\n start() {\n console.log('requesting ICE servers');\n fetch(new URL('whep', this.url), {\n method: 'OPTIONS',\n })\n .then((res) => this.onIceServers(res))\n .catch((err) => {\n console.log('error: ' + err);\n this.scheduleRestart();\n });\n }\n onIceServers(res) {\n this.pc = new RTCPeerConnection({\n iceServers: linkToIceServers(res.headers.get('Link')),\n });\n const direction = 'sendrecv';\n this.pc.addTransceiver('video', { direction });\n this.pc.addTransceiver('audio', { direction });\n this.pc.onicecandidate = (evt) => this.onLocalCandidate(evt);\n this.pc.oniceconnectionstatechange = () => this.onConnectionState();\n this.pc.ontrack = (evt) => {\n console.log('new track:', evt.track.kind);\n this.video.srcObject = evt.streams[0];\n };\n this.pc.createOffer().then((offer) => this.onLocalOffer(offer));\n }\n onLocalOffer(offer) {\n editOffer(offer);\n this.offerData = parseOffer(offer.sdp);\n this.pc.setLocalDescription(offer);\n console.log('sending offer');\n fetch(new URL('whep', this.url), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/sdp',\n },\n body: offer.sdp,\n })\n .then((res) => {\n if (res.status !== 201) {\n throw new Error('bad status code');\n }\n this.sessionUrl = new URL(res.headers.get('location'), this.url).toString();\n return res.text();\n })\n .then((sdp) => this.onRemoteAnswer(new RTCSessionDescription({\n type: 'answer',\n sdp,\n })))\n .catch((err) => {\n console.log('error: ' + err);\n this.scheduleRestart();\n });\n }\n onConnectionState() {\n if (this.restartTimeout !== null) {\n return;\n }\n console.log('peer connection state:', this.pc.iceConnectionState);\n switch (this.pc.iceConnectionState) {\n case 'disconnected':\n this.scheduleRestart();\n }\n }\n onRemoteAnswer(answer) {\n if (this.restartTimeout !== null) {\n return;\n }\n this.pc.setRemoteDescription(answer);\n if (this.queuedCandidates.length !== 0) {\n this.sendLocalCandidates(this.queuedCandidates);\n this.queuedCandidates = [];\n }\n }\n onLocalCandidate(evt) {\n if (this.restartTimeout !== null) {\n return;\n }\n if (evt.candidate !== null) {\n if (this.sessionUrl === '') {\n this.queuedCandidates.push(evt.candidate);\n }\n else {\n this.sendLocalCandidates([evt.candidate]);\n }\n }\n }\n sendLocalCandidates(candidates) {\n fetch(this.sessionUrl + window.location.search, {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/trickle-ice-sdpfrag',\n 'If-Match': '*',\n },\n body: generateSdpFragment(this.offerData, candidates),\n })\n .then((res) => {\n if (res.status !== 204) {\n throw new Error('bad status code');\n }\n })\n .catch((err) => {\n console.log('error: ' + err);\n this.scheduleRestart();\n });\n }\n scheduleRestart() {\n if (this.restartTimeout !== null) {\n return;\n }\n if (this.pc !== null) {\n this.pc.close();\n this.pc = null;\n }\n this.restartTimeout = window.setTimeout(() => {\n this.restartTimeout = null;\n this.start();\n }, restartPause);\n if (this.sessionUrl) {\n fetch(this.sessionUrl, {\n method: 'DELETE',\n })\n .then((res) => {\n if (res.status !== 200) {\n throw new Error('bad status code');\n }\n })\n .catch((err) => {\n console.log('delete session error: ' + err);\n });\n }\n this.sessionUrl = '';\n this.queuedCandidates = [];\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WhepManager.js","names":["restartPause","linkToIceServers","links","split","map","link","m","match","ret","urls","undefined","username","unquoteCredential","credential","credentialType","editOffer","offer","sections","sdp","i","length","section","startsWith","enableStereoOpus","join","opusPayloadFormat","lines","toLowerCase","includes","slice","parseOffer","iceUfrag","icePwd","medias","_iterator","_createForOfIteratorHelper","_step","s","n","done","line","value","push","err","e","f","generateSdpFragment","offerData","candidates","candidatesByMedia","_iterator2","_step2","candidate","mid","sdpMLineIndex","frag","_iterator3","_step3","media","_iterator4","_step4","WHEPClient","opt","_classCallCheck","url","video","pc","restartTimeout","sessionUrl","queuedCandidates","start","_createClass","key","_this","console","log","fetch","URL","method","then","res","onIceServers","scheduleRestart","_this2","RTCPeerConnection","iceServers","headers","get","direction","addTransceiver","onicecandidate","evt","onLocalCandidate","oniceconnectionstatechange","onConnectionState","ontrack","track","kind","srcObject","streams","createOffer","onLocalOffer","_this3","setLocalDescription","body","status","Error","toString","text","onRemoteAnswer","RTCSessionDescription","type","iceConnectionState","answer","setRemoteDescription","sendLocalCandidates","_this4","window","location","search","_this5","close","setTimeout","exports"],"sources":["vtxHls/WhepManager.js"],"sourcesContent":["const restartPause = 2000;\nconst linkToIceServers = (links) => links !== null\n ? links.split(', ').map((link) => {\n const m = link.match(/^<(.+?)>; rel=\"ice-server\"(; username=\"(.*?)\"; credential=\"(.*?)\"; credential-type=\"password\")?/i);\n const ret = {\n urls: [m[1]],\n };\n if (m[3] !== undefined) {\n ret.username = unquoteCredential(m[3]);\n ret.credential = unquoteCredential(m[4]);\n ret.credentialType = 'password';\n }\n return ret;\n })\n : [];\nconst editOffer = (offer) => {\n const sections = offer.sdp.split('m=');\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n if (section.startsWith('audio')) {\n sections[i] = enableStereoOpus(section);\n }\n }\n offer.sdp = sections.join('m=');\n};\nconst enableStereoOpus = (section) => {\n let opusPayloadFormat = '';\n let lines = section.split('\\r\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('a=rtpmap:') && lines[i].toLowerCase().includes('opus/')) {\n opusPayloadFormat = lines[i].slice('a=rtpmap:'.length).split(' ')[0];\n break;\n }\n }\n if (opusPayloadFormat === '') {\n return section;\n }\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('a=fmtp:' + opusPayloadFormat + ' ')) {\n if (!lines[i].includes('stereo')) {\n lines[i] += ';stereo=1';\n }\n if (!lines[i].includes('sprop-stereo')) {\n lines[i] += ';sprop-stereo=1';\n }\n }\n }\n return lines.join('\\r\\n');\n};\nconst parseOffer = (offer) => {\n const ret = {\n iceUfrag: '',\n icePwd: '',\n medias: [],\n };\n for (const line of offer.split('\\r\\n')) {\n if (line.startsWith('m=')) {\n ret.medias.push(line.slice('m='.length));\n }\n else if (ret.iceUfrag === '' && line.startsWith('a=ice-ufrag:')) {\n ret.iceUfrag = line.slice('a=ice-ufrag:'.length);\n }\n else if (ret.icePwd === '' && line.startsWith('a=ice-pwd:')) {\n ret.icePwd = line.slice('a=ice-pwd:'.length);\n }\n }\n return ret;\n};\nconst generateSdpFragment = (offerData, candidates) => {\n const candidatesByMedia = {};\n for (const candidate of candidates) {\n const mid = candidate.sdpMLineIndex;\n if (candidatesByMedia[mid] === undefined) {\n candidatesByMedia[mid] = [];\n }\n candidatesByMedia[mid].push(candidate);\n }\n let frag = 'a=ice-ufrag:' + offerData.iceUfrag + '\\r\\n' + 'a=ice-pwd:' + offerData.icePwd + '\\r\\n';\n let mid = 0;\n for (const media of offerData.medias) {\n if (candidatesByMedia[mid] !== undefined) {\n frag += 'm=' + media + '\\r\\n' + 'a=mid:' + mid + '\\r\\n';\n for (const candidate of candidatesByMedia[mid]) {\n frag += 'a=' + candidate.candidate + '\\r\\n';\n }\n }\n mid++;\n }\n return frag;\n};\nexport default class WHEPClient {\n constructor(opt) {\n this.url = opt.url;\n this.video = opt.video;\n this.pc = null;\n this.restartTimeout = null;\n this.sessionUrl = '';\n this.queuedCandidates = [];\n this.start();\n }\n start() {\n console.log('requesting ICE servers');\n fetch(new URL('whep', this.url), {\n method: 'OPTIONS',\n })\n .then((res) => this.onIceServers(res))\n .catch((err) => {\n console.log('error: ' + err);\n this.scheduleRestart();\n });\n }\n onIceServers(res) {\n this.pc = new RTCPeerConnection({\n iceServers: linkToIceServers(res.headers.get('Link')),\n });\n const direction = 'sendrecv';\n this.pc.addTransceiver('video', { direction });\n this.pc.addTransceiver('audio', { direction });\n this.pc.onicecandidate = (evt) => this.onLocalCandidate(evt);\n this.pc.oniceconnectionstatechange = () => this.onConnectionState();\n this.pc.ontrack = (evt) => {\n console.log('new track:', evt.track.kind);\n this.video.srcObject = evt.streams[0];\n };\n this.pc.createOffer().then((offer) => this.onLocalOffer(offer));\n }\n onLocalOffer(offer) {\n editOffer(offer);\n this.offerData = parseOffer(offer.sdp);\n this.pc.setLocalDescription(offer);\n console.log('sending offer');\n fetch(new URL('whep', this.url), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/sdp',\n },\n body: offer.sdp,\n })\n .then((res) => {\n if (res.status !== 201) {\n throw new Error('bad status code');\n }\n this.sessionUrl = new URL(res.headers.get('location'), this.url).toString();\n return res.text();\n })\n .then((sdp) => this.onRemoteAnswer(new RTCSessionDescription({\n type: 'answer',\n sdp,\n })))\n .catch((err) => {\n console.log('error: ' + err);\n this.scheduleRestart();\n });\n }\n onConnectionState() {\n if (this.restartTimeout !== null) {\n return;\n }\n console.log('peer connection state:', this.pc.iceConnectionState);\n switch (this.pc.iceConnectionState) {\n case 'disconnected':\n this.scheduleRestart();\n }\n }\n onRemoteAnswer(answer) {\n if (this.restartTimeout !== null) {\n return;\n }\n this.pc.setRemoteDescription(answer);\n if (this.queuedCandidates.length !== 0) {\n this.sendLocalCandidates(this.queuedCandidates);\n this.queuedCandidates = [];\n }\n }\n onLocalCandidate(evt) {\n if (this.restartTimeout !== null) {\n return;\n }\n if (evt.candidate !== null) {\n if (this.sessionUrl === '') {\n this.queuedCandidates.push(evt.candidate);\n }\n else {\n this.sendLocalCandidates([evt.candidate]);\n }\n }\n }\n sendLocalCandidates(candidates) {\n fetch(this.sessionUrl + window.location.search, {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/trickle-ice-sdpfrag',\n 'If-Match': '*',\n },\n body: generateSdpFragment(this.offerData, candidates),\n })\n .then((res) => {\n if (res.status !== 204) {\n throw new Error('bad status code');\n }\n })\n .catch((err) => {\n console.log('error: ' + err);\n this.scheduleRestart();\n });\n }\n scheduleRestart() {\n if (this.restartTimeout !== null) {\n return;\n }\n if (this.pc !== null) {\n this.pc.close();\n this.pc = null;\n }\n this.restartTimeout = window.setTimeout(() => {\n this.restartTimeout = null;\n this.start();\n }, restartPause);\n if (this.sessionUrl) {\n fetch(this.sessionUrl, {\n method: 'DELETE',\n })\n .then((res) => {\n if (res.status !== 200) {\n throw new Error('bad status code');\n }\n })\n .catch((err) => {\n console.log('delete session error: ' + err);\n });\n }\n this.sessionUrl = '';\n this.queuedCandidates = [];\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,12 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
- 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); }
8
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
9
- 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); } }
10
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
- 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); }
7
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
+ 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); } }
9
+ 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
10
  var SrsRtcPlayerConstructor = SrsRtcPlayerAsync;
14
11
  /**
15
12
  * WSPlayer是核心组件
@@ -38,7 +35,7 @@ var WebrtcPlayerManager = /*#__PURE__*/function () {
38
35
  this.recordList = [];
39
36
  this.init(opt);
40
37
  }
41
- return _createClass(WebrtcPlayerManager, [{
38
+ _createClass(WebrtcPlayerManager, [{
42
39
  key: "init",
43
40
  value: function init(opt) {
44
41
  this.initPlayer(opt);
@@ -143,6 +140,8 @@ var WebrtcPlayerManager = /*#__PURE__*/function () {
143
140
  // this.player.jumpPlayByTime(time);
144
141
  }
145
142
  }]);
143
+ return WebrtcPlayerManager;
146
144
  }();
147
- var _default = exports["default"] = WebrtcPlayerManager;
145
+ var _default = WebrtcPlayerManager;
146
+ exports["default"] = _default;
148
147
  //# sourceMappingURL=PlayerManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerManager.js","names":["SrsRtcPlayerConstructor","SrsRtcPlayerAsync","WebrtcPlayerManager","opt","_classCallCheck","el","realPlayer","recordPlayer","player","url","type","playNum","playIndex","currentChannelId","recordList","init","_createClass","key","value","initPlayer","num","$","concat","prop","stream","play","reason","close","console","error","pause","playSpeed","speed","setFullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","jumpPlayByTime","time","_default","exports"],"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() {\n this.player && this.player.close();\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":"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","ignoreList":[]}
1
+ {"version":3,"file":"PlayerManager.js","names":["SrsRtcPlayerConstructor","SrsRtcPlayerAsync","WebrtcPlayerManager","opt","_classCallCheck","el","realPlayer","recordPlayer","player","url","type","playNum","playIndex","currentChannelId","recordList","init","_createClass","key","value","initPlayer","num","$","concat","prop","stream","play","reason","close","console","error","pause","playSpeed","speed","setFullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","jumpPlayByTime","time","_default","exports"],"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() {\n this.player && this.player.close();\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":"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","ignoreList":[]}