@vtx/player 1.10.19 → 1.12.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.
Files changed (177) hide show
  1. package/lib/api/fetch.js +68 -71
  2. package/lib/api/fetch.js.map +1 -1
  3. package/lib/api/index.js +33 -51
  4. package/lib/api/index.js.map +1 -1
  5. package/lib/api/types.d.ts +14 -7
  6. package/lib/api/types.js +0 -1
  7. package/lib/api/types.js.map +1 -1
  8. package/lib/bd/PlayerManager.js +8 -7
  9. package/lib/bd/PlayerManager.js.map +1 -1
  10. package/lib/bd2.x/PlayerManager.d.ts +71 -0
  11. package/lib/bd2.x/PlayerManager.js +228 -0
  12. package/lib/bd2.x/PlayerManager.js.map +1 -0
  13. package/lib/bd2.x/swfobject-all.d.ts +11 -0
  14. package/lib/bd2.x/swfobject-all.js +158 -0
  15. package/lib/bd2.x/swfobject-all.js.map +1 -0
  16. package/lib/bd2.x/swfobject.d.ts +40 -0
  17. package/lib/bd2.x/swfobject.js +722 -0
  18. package/lib/bd2.x/swfobject.js.map +1 -0
  19. package/lib/bill-player/index.d.ts +1 -1
  20. package/lib/bill-player/index.js +32 -32
  21. package/lib/bill-player/index.js.map +1 -1
  22. package/lib/components/download-tag/index.js +19 -18
  23. package/lib/components/download-tag/index.js.map +1 -1
  24. package/lib/components/set-tag-video/index.js +25 -24
  25. package/lib/components/set-tag-video/index.js.map +1 -1
  26. package/lib/components/split-screen/index.d.ts +1 -1
  27. package/lib/components/split-screen/index.js +3 -5
  28. package/lib/components/split-screen/index.js.map +1 -1
  29. package/lib/components/tag-video/index.js +16 -13
  30. package/lib/components/tag-video/index.js.map +1 -1
  31. package/lib/components/video-scale/index.d.ts +1 -1
  32. package/lib/components/video-scale/index.js +16 -15
  33. package/lib/components/video-scale/index.js.map +1 -1
  34. package/lib/config.d.ts +1 -1
  35. package/lib/config.js +1 -2
  36. package/lib/config.js.map +1 -1
  37. package/lib/context/index.js +3 -5
  38. package/lib/context/index.js.map +1 -1
  39. package/lib/controls/index.d.ts +13 -12
  40. package/lib/controls/index.js +44 -42
  41. package/lib/controls/index.js.map +1 -1
  42. package/lib/h264/PlayerManager.js +8 -7
  43. package/lib/h264/PlayerManager.js.map +1 -1
  44. package/lib/history-control/index.d.ts +2 -2
  45. package/lib/history-control/index.js +24 -23
  46. package/lib/history-control/index.js.map +1 -1
  47. package/lib/history-control-v2/components/grid-item/index.js +33 -13
  48. package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
  49. package/lib/history-control-v2/components/panel/VideoTable.d.ts +4 -2
  50. package/lib/history-control-v2/components/panel/VideoTable.js +283 -74
  51. package/lib/history-control-v2/components/panel/VideoTable.js.map +1 -1
  52. package/lib/history-control-v2/components/panel/index.d.ts +1 -0
  53. package/lib/history-control-v2/components/panel/index.js +51 -26
  54. package/lib/history-control-v2/components/panel/index.js.map +1 -1
  55. package/lib/history-control-v2/context.js +1 -2
  56. package/lib/history-control-v2/context.js.map +1 -1
  57. package/lib/history-control-v2/index.d.ts +4 -4
  58. package/lib/history-control-v2/index.js +77 -77
  59. package/lib/history-control-v2/index.js.map +1 -1
  60. package/lib/history-control-v2/interface.d.ts +20 -11
  61. package/lib/history-control-v2/utils.d.ts +1 -1
  62. package/lib/history-control-v2/utils.js +51 -27
  63. package/lib/history-control-v2/utils.js.map +1 -1
  64. package/lib/history-player/index.d.ts +20 -1
  65. package/lib/history-player/index.js +238 -185
  66. package/lib/history-player/index.js.map +1 -1
  67. package/lib/hooks/useSettings.js +1 -2
  68. package/lib/hooks/useSettings.js.map +1 -1
  69. package/lib/hooks/useTranslation.d.ts +14 -0
  70. package/lib/hooks/useTranslation.js +204 -0
  71. package/lib/hooks/useTranslation.js.map +1 -0
  72. package/lib/icc/PlayerManager.js +9 -8
  73. package/lib/icc/PlayerManager.js.map +1 -1
  74. package/lib/icc/api.d.ts +1 -68
  75. package/lib/icc/api.js +7 -3
  76. package/lib/icc/api.js.map +1 -1
  77. package/lib/icons/index.d.ts +38 -38
  78. package/lib/icons/index.js +101 -467
  79. package/lib/icons/index.js.map +1 -1
  80. package/lib/index.d.ts +2 -0
  81. package/lib/index.js +38 -1
  82. package/lib/index.js.map +1 -1
  83. package/lib/live-channel-player/index.d.ts +1 -1
  84. package/lib/live-channel-player/index.js +28 -32
  85. package/lib/live-channel-player/index.js.map +1 -1
  86. package/lib/live-control/index.d.ts +4 -2
  87. package/lib/live-control/index.js +29 -19
  88. package/lib/live-control/index.js.map +1 -1
  89. package/lib/live-control-v2/index.d.ts +5 -3
  90. package/lib/live-control-v2/index.js +22 -22
  91. package/lib/live-control-v2/index.js.map +1 -1
  92. package/lib/live-player/index.d.ts +1 -0
  93. package/lib/live-player/index.js +169 -143
  94. package/lib/live-player/index.js.map +1 -1
  95. package/lib/locales/en.json +93 -0
  96. package/lib/locales/index.d.ts +20 -0
  97. package/lib/locales/index.js +105 -0
  98. package/lib/locales/index.js.map +1 -0
  99. package/lib/locales/zh-CN.json +93 -0
  100. package/lib/mpegts/PlayerManager.js +14 -8
  101. package/lib/mpegts/PlayerManager.js.map +1 -1
  102. package/lib/player/BdPlayer.d.ts +7 -2
  103. package/lib/player/BdPlayer.js +138 -47
  104. package/lib/player/BdPlayer.js.map +1 -1
  105. package/lib/player/BdPlayer2.d.ts +117 -0
  106. package/lib/player/BdPlayer2.js +341 -0
  107. package/lib/player/BdPlayer2.js.map +1 -0
  108. package/lib/player/FlvPlayer.d.ts +2 -1
  109. package/lib/player/FlvPlayer.js +17 -20
  110. package/lib/player/FlvPlayer.js.map +1 -1
  111. package/lib/player/H264Player.d.ts +2 -1
  112. package/lib/player/H264Player.js +17 -20
  113. package/lib/player/H264Player.js.map +1 -1
  114. package/lib/player/HkcarwsPlayer.d.ts +10 -1
  115. package/lib/player/HkcarwsPlayer.js +149 -36
  116. package/lib/player/HkcarwsPlayer.js.map +1 -1
  117. package/lib/player/HkwsPlayer.d.ts +19 -1
  118. package/lib/player/HkwsPlayer.js +178 -90
  119. package/lib/player/HkwsPlayer.js.map +1 -1
  120. package/lib/player/HlsPlayer.d.ts +2 -1
  121. package/lib/player/HlsPlayer.js +17 -20
  122. package/lib/player/HlsPlayer.js.map +1 -1
  123. package/lib/player/IccwsPlayer.d.ts +2 -1
  124. package/lib/player/IccwsPlayer.js +19 -22
  125. package/lib/player/IccwsPlayer.js.map +1 -1
  126. package/lib/player/IframePlayer.d.ts +2 -1
  127. package/lib/player/IframePlayer.js +8 -7
  128. package/lib/player/IframePlayer.js.map +1 -1
  129. package/lib/player/Mp4Player.d.ts +2 -1
  130. package/lib/player/Mp4Player.js +17 -20
  131. package/lib/player/Mp4Player.js.map +1 -1
  132. package/lib/player/RslPlayer.d.ts +2 -1
  133. package/lib/player/RslPlayer.js +17 -20
  134. package/lib/player/RslPlayer.js.map +1 -1
  135. package/lib/player/VtxHlsPlayer.d.ts +2 -1
  136. package/lib/player/VtxHlsPlayer.js +17 -20
  137. package/lib/player/VtxHlsPlayer.js.map +1 -1
  138. package/lib/player/VtxwhepPlayer.d.ts +2 -1
  139. package/lib/player/VtxwhepPlayer.js +17 -20
  140. package/lib/player/VtxwhepPlayer.js.map +1 -1
  141. package/lib/player/VtxwsPlayer.d.ts +2 -1
  142. package/lib/player/VtxwsPlayer.js +16 -19
  143. package/lib/player/VtxwsPlayer.js.map +1 -1
  144. package/lib/player/Web34Player.d.ts +172 -0
  145. package/lib/player/Web34Player.js +1912 -0
  146. package/lib/player/Web34Player.js.map +1 -0
  147. package/lib/player/WebrtcPlayer.d.ts +2 -1
  148. package/lib/player/WebrtcPlayer.js +17 -20
  149. package/lib/player/WebrtcPlayer.js.map +1 -1
  150. package/lib/player/WfsPlayer.d.ts +2 -1
  151. package/lib/player/WfsPlayer.js +17 -20
  152. package/lib/player/WfsPlayer.js.map +1 -1
  153. package/lib/player/YsyPlayer.d.ts +116 -0
  154. package/lib/player/YsyPlayer.js +273 -0
  155. package/lib/player/YsyPlayer.js.map +1 -0
  156. package/lib/player/index.d.ts +4 -1
  157. package/lib/player/index.js +22 -1
  158. package/lib/player/index.js.map +1 -1
  159. package/lib/player/indexOld.d.ts +2 -1
  160. package/lib/player/indexOld.js +98 -101
  161. package/lib/player/indexOld.js.map +1 -1
  162. package/lib/rsl/PlayerManager.d.ts +1 -1
  163. package/lib/rsl/PlayerManager.js +10 -9
  164. package/lib/rsl/PlayerManager.js.map +1 -1
  165. package/lib/typings/h5player.d.ts +33 -1
  166. package/lib/utils/index.d.ts +1 -1
  167. package/lib/utils/index.js +16 -27
  168. package/lib/utils/index.js.map +1 -1
  169. package/lib/vtxHls/PlayerManager.js +8 -7
  170. package/lib/vtxHls/PlayerManager.js.map +1 -1
  171. package/lib/vtxHls/WhepManager.js +11 -10
  172. package/lib/vtxHls/WhepManager.js.map +1 -1
  173. package/lib/webrtc/PlayerManager.js +8 -7
  174. package/lib/webrtc/PlayerManager.js.map +1 -1
  175. package/lib/wfs/PlayerManager.js +8 -7
  176. package/lib/wfs/PlayerManager.js.map +1 -1
  177. package/package.json +5 -1
@@ -0,0 +1,93 @@
1
+ {
2
+ "common.expand": "Expand",
3
+ "common.collapse": "Collapse",
4
+ "common.close": "Close",
5
+ "common.play": "Play",
6
+ "common.confirm": "OK",
7
+ "common.cancel": "Cancel",
8
+ "common.fullscreen": "Fullscreen",
9
+ "common.closeAll": "Close all",
10
+ "common.download": "Download",
11
+ "common.action": "Action",
12
+ "common.pleaseSelect": "Please select",
13
+ "common.pleaseInput": "Please enter",
14
+ "datagrid.add": "Add",
15
+ "datagrid.view": "View",
16
+ "datagrid.update": "Edit",
17
+ "datagrid.delete": "Delete",
18
+ "datagrid.import": "Import",
19
+ "datagrid.export": "Export",
20
+ "controls.speed": "Speed",
21
+ "controls.playErrorAlt": "Playback error",
22
+ "controls.playErrorRetry": "Video playback failed. Please try again later.",
23
+ "controls.talkNotConfigured": "Voice intercom is not configured.",
24
+ "controls.zoom": "Zoom",
25
+ "controls.iris": "Iris",
26
+ "controls.focus": "Focus",
27
+ "liveControl.split1": "1 split",
28
+ "liveControl.split4": "4 split",
29
+ "liveControl.split9": "9 split",
30
+ "historyControl.noVideo": "No video found",
31
+ "historyControl.index": "No.",
32
+ "historyControl.playVideo": "Play video",
33
+ "historyControl.deviceName": "Device name",
34
+ "historyControl.startTime": "Start time",
35
+ "historyControl.endTime": "End time",
36
+ "historyControl.duration": "Duration",
37
+ "historyControl.videoSize": "Video size",
38
+ "historyControl.operation": "Operation",
39
+ "historyControl.maxChannels": "Up to 25 video channels can be played",
40
+ "historyControl.noExtraPlayPosition": "No available playback position",
41
+ "historyControl.videoChannelCount": "Video channels ({count})",
42
+ "historyControl.downloadPreparing": "Pulling data from the device to the server. The first download may take longer.",
43
+ "billPlayer.online": "Online",
44
+ "billPlayer.offline": "Offline",
45
+ "billPlayer.videoChannel": "Video channels",
46
+ "billPlayer.queryVideo": "Query video",
47
+ "billPlayer.selectTimeRange": "Time range",
48
+ "billPlayer.today": "Today",
49
+ "billPlayer.yesterday": "Yesterday",
50
+ "billPlayer.dayBeforeYesterday": "Day before yesterday",
51
+ "billPlayer.custom": "Custom",
52
+ "billPlayer.startTimeRequired": "Please enter the start time",
53
+ "billPlayer.endTimeRequired": "Please enter the end time",
54
+ "billPlayer.videoChannelRequired": "Please select a video channel",
55
+ "billPlayer.query": "Query",
56
+ "billPlayer.liveVideo": "Live video",
57
+ "billPlayer.historyVideo": "History video",
58
+ "tag.addSuccess": "Tag added",
59
+ "tag.startBeforeEnd": "The start time must be earlier than the end time",
60
+ "tag.downloadRangeTooLong": "The download time range cannot exceed 2 hours",
61
+ "tag.tagName": "Tag name",
62
+ "tag.tagNameRequired": "Please enter a tag name",
63
+ "tag.tagNamePlaceholder": "Please enter a tag name",
64
+ "tag.startTimePlaceholder": "Please enter the start time",
65
+ "tag.tagCount": "{count} tags",
66
+ "videoScale.full": "Full view",
67
+ "player.watermark": "Watermark",
68
+ "player.captureName": "Video snapshot",
69
+ "common.load": "Load",
70
+ "controls.retry": "Click to retry",
71
+ "historyControl.channelNumberRequired": "Please enter the channel number",
72
+ "historyControl.deviceIdRequired": "Please enter the device ID",
73
+ "historyControl.demoHikvisionVanke": "Hikvision test - Vanke Zhongliang",
74
+ "historyControl.demoFlvHuisheng": "FLV test - Huisheng",
75
+ "historyControl.demoHikvisionIntercom": "Hikvision test - waste room intercom",
76
+ "historyControl.name": "Channel name",
77
+ "historyControlV2.portRequired": "Please enter the port number",
78
+ "historyControlV2.tagIdRequired": "Please enter the tag ID",
79
+ "historyControlV2.loadSecondBatch": "Load second batch",
80
+ "icons.close": "Close all",
81
+ "icons.quantity": "Window count",
82
+ "icons.pause": "Pause",
83
+ "icons.capture": "Snapshot",
84
+ "icons.exitFullscreen": "Exit fullscreen",
85
+ "icons.volume": "Volume",
86
+ "icons.addTag": "Add tag",
87
+ "icons.stopTalk": "Stop talk",
88
+ "icons.talk": "Talk",
89
+ "icons.ptzControl": "PTZ control",
90
+ "icons.screenRatio": "Screen ratio",
91
+ "icons.tag": "Tag",
92
+ "liveControl.channelIdRequired": "Please enter the channel ID (any number is allowed)"
93
+ }
@@ -0,0 +1,20 @@
1
+ import zhCN from 'antd/es/locale/zh_CN';
2
+ export type PlayerLocaleCode = 'zh-CN' | 'en-US' | string;
3
+ type MessageTree = Record<string, any>;
4
+ declare const zhCNMessages: MessageTree;
5
+ export type PlayerLocaleMessages = typeof zhCNMessages;
6
+ export interface PlayerLocale {
7
+ locale: PlayerLocaleCode;
8
+ antdLocale: typeof zhCN;
9
+ messages: PlayerLocaleMessages;
10
+ }
11
+ export declare const PLAYER_LOCALE_STORAGE_KEY = "vtxLanguage";
12
+ export declare const UMI_LOCALE_STORAGE_KEY = "umi_locale";
13
+ export declare const playerLocales: Record<string, PlayerLocale>;
14
+ export declare const getPlayerLocale: () => string;
15
+ export declare const setPlayerLocale: (locale: PlayerLocaleCode, messages?: Partial<PlayerLocaleMessages>) => void;
16
+ export declare const getLocaleConfig: () => PlayerLocale;
17
+ export declare const getLocaleMessages: () => MessageTree;
18
+ export declare const getAntdLocale: () => import("antd/es/locale-provider").Locale;
19
+ export declare const formatMessage: (template: string, values: Record<string, string | number>) => string;
20
+ export {};
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setPlayerLocale = exports.playerLocales = exports.getPlayerLocale = exports.getLocaleMessages = exports.getLocaleConfig = exports.getAntdLocale = exports.formatMessage = exports.UMI_LOCALE_STORAGE_KEY = exports.PLAYER_LOCALE_STORAGE_KEY = void 0;
7
+ var _en_US = _interopRequireDefault(require("antd/es/locale/en_US"));
8
+ var _zh_CN = _interopRequireDefault(require("antd/es/locale/zh_CN"));
9
+ var _en = _interopRequireDefault(require("./en.json"));
10
+ var _zhCN = _interopRequireDefault(require("./zh-CN.json"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
13
+ 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."); }
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; }
16
+ 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; } }
17
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
18
+ var createMessages = function createMessages(flatMessages) {
19
+ return Object.entries(flatMessages).reduce(function (result, _ref) {
20
+ var _ref2 = _slicedToArray(_ref, 2),
21
+ key = _ref2[0],
22
+ value = _ref2[1];
23
+ var parts = key.split('.');
24
+ var target = result;
25
+ parts.forEach(function (part, index) {
26
+ if (index === parts.length - 1) {
27
+ target[part] = value;
28
+ return;
29
+ }
30
+ target[part] = target[part] || {};
31
+ target = target[part];
32
+ });
33
+ return result;
34
+ }, {});
35
+ };
36
+ var zhCNMessages = createMessages(_zhCN["default"]);
37
+ var enUSMessages = createMessages(_en["default"]);
38
+ var PLAYER_LOCALE_STORAGE_KEY = exports.PLAYER_LOCALE_STORAGE_KEY = 'vtxLanguage';
39
+ var UMI_LOCALE_STORAGE_KEY = exports.UMI_LOCALE_STORAGE_KEY = 'umi_locale';
40
+ var playerLocales = exports.playerLocales = {
41
+ 'zh-CN': {
42
+ locale: 'zh-CN',
43
+ antdLocale: _zh_CN["default"],
44
+ messages: zhCNMessages
45
+ },
46
+ 'en-US': {
47
+ locale: 'en-US',
48
+ antdLocale: _en_US["default"],
49
+ messages: enUSMessages
50
+ }
51
+ };
52
+ var currentLocale;
53
+ var customMessages;
54
+ var normalizeLocale = function normalizeLocale(locale) {
55
+ if (!locale) return 'zh-CN';
56
+ var value = locale.toLowerCase();
57
+ if (value === 'en' || value === 'en-us') return 'en-US';
58
+ if (value === 'zh' || value === 'zh-cn') return 'zh-CN';
59
+ return locale;
60
+ };
61
+ var getStorageLocale = function getStorageLocale() {
62
+ var _a, _b;
63
+ if (typeof window === 'undefined') return '';
64
+ return ((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(PLAYER_LOCALE_STORAGE_KEY)) || ((_b = window.localStorage) === null || _b === void 0 ? void 0 : _b.getItem(UMI_LOCALE_STORAGE_KEY)) || '';
65
+ };
66
+ var getPlayerLocale = exports.getPlayerLocale = function getPlayerLocale() {
67
+ var browserLocale = typeof navigator !== 'undefined' && /^en/i.test(navigator.language) ? 'en-US' : 'zh-CN';
68
+ return normalizeLocale(currentLocale || getStorageLocale() || browserLocale);
69
+ };
70
+ var setPlayerLocale = exports.setPlayerLocale = function setPlayerLocale(locale, messages) {
71
+ var _a;
72
+ currentLocale = normalizeLocale(locale);
73
+ customMessages = messages;
74
+ if (typeof window !== 'undefined') {
75
+ (_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.setItem(PLAYER_LOCALE_STORAGE_KEY, currentLocale);
76
+ }
77
+ };
78
+ var mergeMessages = function mergeMessages(baseMessages, messages) {
79
+ if (!messages) return baseMessages;
80
+ return Object.keys(baseMessages).reduce(function (result, key) {
81
+ result[key] = Object.assign(Object.assign({}, baseMessages[key]), messages[key]);
82
+ return result;
83
+ }, {});
84
+ };
85
+ var getLocaleConfig = exports.getLocaleConfig = function getLocaleConfig() {
86
+ var locale = getPlayerLocale();
87
+ var preset = playerLocales[locale] || playerLocales['zh-CN'];
88
+ return Object.assign(Object.assign({}, preset), {
89
+ locale: locale,
90
+ messages: mergeMessages(preset.messages, customMessages)
91
+ });
92
+ };
93
+ var getLocaleMessages = exports.getLocaleMessages = function getLocaleMessages() {
94
+ return getLocaleConfig().messages;
95
+ };
96
+ var getAntdLocale = exports.getAntdLocale = function getAntdLocale() {
97
+ return getLocaleConfig().antdLocale;
98
+ };
99
+ var formatMessage = exports.formatMessage = function formatMessage(template, values) {
100
+ return template.replace(/\{(\w+)\}/g, function (_, key) {
101
+ var _a;
102
+ return String((_a = values[key]) !== null && _a !== void 0 ? _a : '');
103
+ });
104
+ };
105
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_en_US","_interopRequireDefault","require","_zh_CN","_en","_zhCN","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","createMessages","flatMessages","entries","reduce","result","_ref","_ref2","key","parts","split","target","forEach","part","index","zhCNMessages","zhCNFlatMessages","enUSMessages","enUSFlatMessages","PLAYER_LOCALE_STORAGE_KEY","exports","UMI_LOCALE_STORAGE_KEY","playerLocales","locale","antdLocale","zhCN","messages","enUS","currentLocale","customMessages","normalizeLocale","toLowerCase","getStorageLocale","_a","_b","window","localStorage","getItem","getPlayerLocale","browserLocale","navigator","language","setPlayerLocale","setItem","mergeMessages","baseMessages","keys","assign","getLocaleConfig","preset","getLocaleMessages","getAntdLocale","formatMessage","template","values","replace","_","String"],"sources":["locales/index.js"],"sourcesContent":["import enUS from 'antd/es/locale/en_US';\nimport zhCN from 'antd/es/locale/zh_CN';\nimport enUSFlatMessages from './en.json';\nimport zhCNFlatMessages from './zh-CN.json';\nconst createMessages = (flatMessages) => {\n return Object.entries(flatMessages).reduce((result, [key, value]) => {\n const parts = key.split('.');\n let target = result;\n parts.forEach((part, index) => {\n if (index === parts.length - 1) {\n target[part] = value;\n return;\n }\n target[part] = target[part] || {};\n target = target[part];\n });\n return result;\n }, {});\n};\nconst zhCNMessages = createMessages(zhCNFlatMessages);\nconst enUSMessages = createMessages(enUSFlatMessages);\nexport const PLAYER_LOCALE_STORAGE_KEY = 'vtxLanguage';\nexport const UMI_LOCALE_STORAGE_KEY = 'umi_locale';\nexport const playerLocales = {\n 'zh-CN': {\n locale: 'zh-CN',\n antdLocale: zhCN,\n messages: zhCNMessages,\n },\n 'en-US': {\n locale: 'en-US',\n antdLocale: enUS,\n messages: enUSMessages,\n },\n};\nlet currentLocale;\nlet customMessages;\nconst normalizeLocale = (locale) => {\n if (!locale)\n return 'zh-CN';\n const value = locale.toLowerCase();\n if (value === 'en' || value === 'en-us')\n return 'en-US';\n if (value === 'zh' || value === 'zh-cn')\n return 'zh-CN';\n return locale;\n};\nconst getStorageLocale = () => {\n var _a, _b;\n if (typeof window === 'undefined')\n return '';\n return (((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(PLAYER_LOCALE_STORAGE_KEY)) ||\n ((_b = window.localStorage) === null || _b === void 0 ? void 0 : _b.getItem(UMI_LOCALE_STORAGE_KEY)) ||\n '');\n};\nexport const getPlayerLocale = () => {\n const browserLocale = typeof navigator !== 'undefined' && /^en/i.test(navigator.language) ? 'en-US' : 'zh-CN';\n return normalizeLocale(currentLocale || getStorageLocale() || browserLocale);\n};\nexport const setPlayerLocale = (locale, messages) => {\n var _a;\n currentLocale = normalizeLocale(locale);\n customMessages = messages;\n if (typeof window !== 'undefined') {\n (_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.setItem(PLAYER_LOCALE_STORAGE_KEY, currentLocale);\n }\n};\nconst mergeMessages = (baseMessages, messages) => {\n if (!messages)\n return baseMessages;\n return Object.keys(baseMessages).reduce((result, key) => {\n result[key] = Object.assign(Object.assign({}, baseMessages[key]), messages[key]);\n return result;\n }, {});\n};\nexport const getLocaleConfig = () => {\n const locale = getPlayerLocale();\n const preset = playerLocales[locale] || playerLocales['zh-CN'];\n return Object.assign(Object.assign({}, preset), { locale, messages: mergeMessages(preset.messages, customMessages) });\n};\nexport const getLocaleMessages = () => getLocaleConfig().messages;\nexport const getAntdLocale = () => getLocaleConfig().antdLocale;\nexport const formatMessage = (template, values) => {\n return template.replace(/\\{(\\w+)\\}/g, (_, key) => { var _a; return String((_a = values[key]) !== null && _a !== void 0 ? _a : ''); });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,93 @@
1
+ {
2
+ "common.expand": "展开",
3
+ "common.collapse": "收起",
4
+ "common.close": "关闭",
5
+ "common.play": "播放",
6
+ "common.confirm": "确定",
7
+ "common.cancel": "取消",
8
+ "common.fullscreen": "全屏",
9
+ "common.closeAll": "全部关闭",
10
+ "common.download": "下载",
11
+ "common.action": "操作",
12
+ "common.pleaseSelect": "请选择",
13
+ "common.pleaseInput": "请输入",
14
+ "datagrid.add": "新增",
15
+ "datagrid.view": "查看",
16
+ "datagrid.update": "编辑",
17
+ "datagrid.delete": "删除",
18
+ "datagrid.import": "导入",
19
+ "datagrid.export": "导出",
20
+ "controls.speed": "倍速",
21
+ "controls.playErrorAlt": "播放错误",
22
+ "controls.playErrorRetry": "视频播放失败,请稍后重试",
23
+ "controls.talkNotConfigured": "未设置语音对讲",
24
+ "controls.zoom": "焦距",
25
+ "controls.iris": "光圈",
26
+ "controls.focus": "距离",
27
+ "liveControl.split1": "1分屏",
28
+ "liveControl.split4": "4分屏",
29
+ "liveControl.split9": "9分屏",
30
+ "historyControl.noVideo": "未查询到视频",
31
+ "historyControl.index": "序号",
32
+ "historyControl.playVideo": "播放视频",
33
+ "historyControl.deviceName": "设备名称",
34
+ "historyControl.startTime": "开始时间",
35
+ "historyControl.endTime": "结束时间",
36
+ "historyControl.duration": "持续时间",
37
+ "historyControl.videoSize": "视频大小",
38
+ "historyControl.operation": "操作",
39
+ "historyControl.maxChannels": "最多播放25个视频通道",
40
+ "historyControl.noExtraPlayPosition": "没有多余的播放位置",
41
+ "historyControl.videoChannelCount": "视频通道({count})",
42
+ "historyControl.downloadPreparing": "正在从设备端拉取数据到服务端(服务器端执行),首次下载会比较慢。",
43
+ "billPlayer.online": "在线",
44
+ "billPlayer.offline": "离线",
45
+ "billPlayer.videoChannel": "视频通道",
46
+ "billPlayer.queryVideo": "查询视频",
47
+ "billPlayer.selectTimeRange": "选择时段",
48
+ "billPlayer.today": "当日",
49
+ "billPlayer.yesterday": "昨日",
50
+ "billPlayer.dayBeforeYesterday": "前日",
51
+ "billPlayer.custom": "自选",
52
+ "billPlayer.startTimeRequired": "请输入开始时间",
53
+ "billPlayer.endTimeRequired": "请输入结束时间",
54
+ "billPlayer.videoChannelRequired": "请选择视频通道",
55
+ "billPlayer.query": "查询",
56
+ "billPlayer.liveVideo": "实时视频",
57
+ "billPlayer.historyVideo": "历史视频",
58
+ "tag.addSuccess": "标签添加成功",
59
+ "tag.startBeforeEnd": "开始时间应该小于结束时间",
60
+ "tag.downloadRangeTooLong": "下载时间间隔不能超过2小时",
61
+ "tag.tagName": "标签名称",
62
+ "tag.tagNameRequired": "请输入标签名称",
63
+ "tag.tagNamePlaceholder": "请输入标签名称",
64
+ "tag.startTimePlaceholder": "请输入开始时间",
65
+ "tag.tagCount": "共{count}个标签",
66
+ "videoScale.full": "满画面",
67
+ "player.watermark": "水印",
68
+ "player.captureName": "视频截图",
69
+ "common.load": "加载",
70
+ "controls.retry": "点击重试",
71
+ "historyControl.channelNumberRequired": "请输入通道编号",
72
+ "historyControl.deviceIdRequired": "请输入设备ID",
73
+ "historyControl.demoHikvisionVanke": "海康测试-万科中粮",
74
+ "historyControl.demoFlvHuisheng": "FLV测试-惠盛",
75
+ "historyControl.demoHikvisionIntercom": "海康测试-垃圾房对讲",
76
+ "historyControl.name": "通道名称",
77
+ "historyControlV2.portRequired": "请输入端口号",
78
+ "historyControlV2.tagIdRequired": "请输入标签Id",
79
+ "historyControlV2.loadSecondBatch": "加载第二波数据",
80
+ "icons.close": "关闭全部",
81
+ "icons.quantity": "窗口数量",
82
+ "icons.pause": "暂停",
83
+ "icons.capture": "截图",
84
+ "icons.exitFullscreen": "退出全屏",
85
+ "icons.volume": "音量",
86
+ "icons.addTag": "添加标签",
87
+ "icons.stopTalk": "停止对讲",
88
+ "icons.talk": "对讲",
89
+ "icons.ptzControl": "云台控制",
90
+ "icons.screenRatio": "屏幕占比",
91
+ "icons.tag": "标签",
92
+ "liveControl.channelIdRequired": "请输入通道id(随意数字即可)"
93
+ }
@@ -4,9 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
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; }
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); }
10
13
  /**
11
14
  * WSPlayer是核心组件
12
15
  * API 封装了接口
@@ -35,7 +38,7 @@ var MpegtsManager = /*#__PURE__*/function () {
35
38
  /**
36
39
  * 初始化实时预览播放器
37
40
  */
38
- _createClass(MpegtsManager, [{
41
+ return _createClass(MpegtsManager, [{
39
42
  key: "initPlayer",
40
43
  value: function initPlayer(opt) {
41
44
  if (mpegts.isSupported()) {
@@ -43,8 +46,13 @@ var MpegtsManager = /*#__PURE__*/function () {
43
46
  type: 'flv',
44
47
  isLive: true,
45
48
  url: this.url,
46
- hasAudio: opt.beenHasAudio,
49
+ hasAudio: false,
47
50
  hasVideo: true
51
+ }, {
52
+ // 关键配置:使用 HTTP/1.1 而非 HTTP/2
53
+ useHTTP1: true,
54
+ enableWorker: true,
55
+ autoCleanupSourceBuffer: true // 处理 Early-EOF
48
56
  }
49
57
  // { enableStashBuffer: false, stashInitialSize: '500k' }
50
58
  );
@@ -147,8 +155,6 @@ var MpegtsManager = /*#__PURE__*/function () {
147
155
  // this.player.jumpPlayByTime(time);
148
156
  }
149
157
  }]);
150
- return MpegtsManager;
151
158
  }();
152
- var _default = MpegtsManager;
153
- exports["default"] = _default;
159
+ var _default = exports["default"] = MpegtsManager;
154
160
  //# sourceMappingURL=PlayerManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerManager.js","names":["MpegtsManager","opt","_classCallCheck","el","player","url","type","beenHasAudio","playNum","playIndex","currentChannelId","isLive","initPlayer","_createClass","key","value","mpegts","isSupported","createPlayer","hasAudio","hasVideo","attachMediaElement","load","ele","on","err","console","error","pause","play","destroy","unload","detachMediaElement","setVolume","volume","playSpeed","speed","recordPlayer","close","setFullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","jumpPlayByTime","time","_default","exports"],"sources":["mpegts/PlayerManager.js"],"sourcesContent":["/**\n * WSPlayer是核心组件\n * API 封装了接口\n */\nclass MpegtsManager {\n constructor(opt) {\n // 播放器所在的容器ID\n this.el = opt.el;\n this.player = null;\n this.url = opt.url;\n // 实时预览还是录像回放播放器\n this.type = opt.type;\n // 是否支持音频\n this.beenHasAudio = opt.beenHasAudio;\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = '';\n // 索引对应窗口,保存当日录像信息\n this.isLive = false;\n this.initPlayer(opt);\n }\n /**\n * 初始化实时预览播放器\n */\n initPlayer(opt) {\n if (mpegts.isSupported()) {\n const player = mpegts.createPlayer({\n type: 'flv',\n isLive: true,\n url: this.url,\n hasAudio: opt.beenHasAudio,\n hasVideo: true,\n }\n // { enableStashBuffer: false, stashInitialSize: '500k' }\n );\n player.attachMediaElement(this.el);\n player.load();\n this.player = player;\n const ele = this.el;\n player.on('error', (err) => {\n console.error('mpegts.js 错误:', err, ele.error);\n // player.destroy();\n });\n }\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.player && this.player.pause();\n }\n play() {\n this.player && this.player.play();\n }\n destroy() {\n this.player.unload();\n this.player.detachMediaElement();\n this.player.destroy();\n }\n setVolume(volume) {\n this.player.volume = volume;\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 MpegtsManager;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PlayerManager.js","names":["MpegtsManager","opt","_classCallCheck","el","player","url","type","beenHasAudio","playNum","playIndex","currentChannelId","isLive","initPlayer","_createClass","key","value","mpegts","isSupported","createPlayer","hasAudio","hasVideo","useHTTP1","enableWorker","autoCleanupSourceBuffer","attachMediaElement","load","ele","on","err","console","error","pause","play","destroy","unload","detachMediaElement","setVolume","volume","playSpeed","speed","recordPlayer","close","setFullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","jumpPlayByTime","time","_default","exports"],"sources":["mpegts/PlayerManager.js"],"sourcesContent":["/**\n * WSPlayer是核心组件\n * API 封装了接口\n */\nclass MpegtsManager {\n constructor(opt) {\n // 播放器所在的容器ID\n this.el = opt.el;\n this.player = null;\n this.url = opt.url;\n // 实时预览还是录像回放播放器\n this.type = opt.type;\n // 是否支持音频\n this.beenHasAudio = opt.beenHasAudio;\n // 窗口的数量\n this.playNum = 1;\n // 当前选中的窗口的索引\n this.playIndex = 0;\n // 当前选中窗口正在播放视频的通道\n this.currentChannelId = '';\n // 索引对应窗口,保存当日录像信息\n this.isLive = false;\n this.initPlayer(opt);\n }\n /**\n * 初始化实时预览播放器\n */\n initPlayer(opt) {\n if (mpegts.isSupported()) {\n const player = mpegts.createPlayer({\n type: 'flv',\n isLive: true,\n url: this.url,\n hasAudio: false,\n hasVideo: true,\n }, {\n // 关键配置:使用 HTTP/1.1 而非 HTTP/2\n useHTTP1: true,\n enableWorker: true,\n autoCleanupSourceBuffer: true, // 处理 Early-EOF\n }\n // { enableStashBuffer: false, stashInitialSize: '500k' }\n );\n player.attachMediaElement(this.el);\n player.load();\n this.player = player;\n const ele = this.el;\n player.on('error', (err) => {\n console.error('mpegts.js 错误:', err, ele.error);\n // player.destroy();\n });\n }\n }\n /**\n * 录像暂停\n * 只有正在播放的录像调用才有效\n */\n pause() {\n this.player && this.player.pause();\n }\n play() {\n this.player && this.player.play();\n }\n destroy() {\n this.player.unload();\n this.player.detachMediaElement();\n this.player.destroy();\n }\n setVolume(volume) {\n this.player.volume = volume;\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 MpegtsManager;\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import moment from 'moment';
2
2
  /** 视频流格式 */
3
- export declare type VideoType = 'bd' | string;
3
+ export type VideoType = 'bd' | string;
4
4
  interface ConstructorParams {
5
5
  url?: string;
6
6
  originalUrl?: string;
@@ -18,6 +18,7 @@ interface ConstructorParams {
18
18
  streamType?: '0' | '1';
19
19
  /** 通道号 */
20
20
  channelNum?: string;
21
+ channelId?: string;
21
22
  /** 设备Code */
22
23
  deviceCode?: string;
23
24
  /**是否开启代理 */
@@ -58,11 +59,15 @@ declare class Player {
58
59
  private player;
59
60
  private video;
60
61
  private containerId;
62
+ private live;
63
+ private readyPromise;
61
64
  constructor(params: ConstructorParams);
65
+ private createPlayer;
66
+ private getPlayer;
62
67
  /** 播放 */
63
68
  play(): Promise<void>;
64
69
  /** 回放 */
65
- playBack(): Promise<unknown>;
70
+ playBack(): Promise<any>;
66
71
  /** 销毁 */
67
72
  destroy(): void;
68
73
  /** 截图 */