@vtx/player 1.9.2 → 1.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/api/fetch.js +69 -67
- package/lib/api/fetch.js.map +1 -1
- package/lib/api/index.js +47 -34
- package/lib/api/index.js.map +1 -1
- package/lib/api/types.d.ts +5 -5
- package/lib/api/types.js +1 -0
- package/lib/api/types.js.map +1 -1
- package/lib/bd/PlayerManager.d.ts +3 -2
- package/lib/bd/PlayerManager.js +63 -14
- package/lib/bd/PlayerManager.js.map +1 -1
- package/lib/bill-player/index.d.ts +1 -1
- package/lib/bill-player/index.js +11 -9
- package/lib/bill-player/index.js.map +1 -1
- package/lib/bill-player/style/index.less +320 -320
- package/lib/components/set-tag-video/index.js +8 -7
- package/lib/components/set-tag-video/index.js.map +1 -1
- package/lib/components/set-tag-video/style/index.less +125 -125
- package/lib/components/split-screen/index.d.ts +1 -1
- package/lib/components/split-screen/index.js +5 -3
- package/lib/components/split-screen/index.js.map +1 -1
- package/lib/components/tag-video/index.js +11 -10
- package/lib/components/tag-video/index.js.map +1 -1
- package/lib/components/tag-video/style/index.less +69 -69
- package/lib/components/video-scale/index.d.ts +1 -1
- package/lib/components/video-scale/index.js +3 -2
- package/lib/components/video-scale/index.js.map +1 -1
- package/lib/config.js +3 -2
- package/lib/config.js.map +1 -1
- package/lib/context/index.js +5 -3
- package/lib/context/index.js.map +1 -1
- package/lib/controls/index.d.ts +11 -11
- package/lib/controls/index.js +22 -14
- package/lib/controls/index.js.map +1 -1
- package/lib/controls/style/index.less +192 -192
- package/lib/h264/PlayerManager.js +7 -8
- package/lib/h264/PlayerManager.js.map +1 -1
- package/lib/history-control/index.d.ts +2 -2
- package/lib/history-control/index.js +10 -8
- package/lib/history-control/index.js.map +1 -1
- package/lib/history-control/style/index.less +252 -252
- package/lib/history-control-v2/components/grid-item/index.js +15 -11
- package/lib/history-control-v2/components/grid-item/index.js.map +1 -1
- package/lib/history-control-v2/components/panel/VideoTable.d.ts +1 -1
- package/lib/history-control-v2/components/panel/VideoTable.js +54 -51
- package/lib/history-control-v2/components/panel/VideoTable.js.map +1 -1
- package/lib/history-control-v2/components/panel/index.d.ts +1 -0
- package/lib/history-control-v2/components/panel/index.js +19 -12
- package/lib/history-control-v2/components/panel/index.js.map +1 -1
- package/lib/history-control-v2/context.d.ts +1 -0
- package/lib/history-control-v2/context.js +2 -1
- package/lib/history-control-v2/context.js.map +1 -1
- package/lib/history-control-v2/index.d.ts +4 -4
- package/lib/history-control-v2/index.js +84 -72
- package/lib/history-control-v2/index.js.map +1 -1
- package/lib/history-control-v2/style/index.less +437 -437
- package/lib/history-control-v2/utils.js +18 -13
- package/lib/history-control-v2/utils.js.map +1 -1
- package/lib/history-player/index.d.ts +2 -1
- package/lib/history-player/index.js +166 -117
- package/lib/history-player/index.js.map +1 -1
- package/lib/history-player/style/index.less +102 -102
- package/lib/hooks/useSettings.js +2 -1
- package/lib/hooks/useSettings.js.map +1 -1
- package/lib/icc/PlayerManager.js +8 -9
- package/lib/icc/PlayerManager.js.map +1 -1
- package/lib/icc/api.d.ts +68 -0
- package/lib/icc/api.js +3 -2
- package/lib/icc/api.js.map +1 -1
- package/lib/icons/index.d.ts +36 -36
- package/lib/icons/index.js +73 -37
- package/lib/icons/index.js.map +1 -1
- package/lib/icons/index.less +32 -32
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/live-channel-player/index.d.ts +1 -1
- package/lib/live-channel-player/index.js +32 -29
- package/lib/live-channel-player/index.js.map +1 -1
- package/lib/live-control/index.d.ts +2 -2
- package/lib/live-control/index.js +13 -12
- package/lib/live-control/index.js.map +1 -1
- package/lib/live-control/style/index.less +99 -99
- package/lib/live-control-v2/index.d.ts +3 -3
- package/lib/live-control-v2/index.js +22 -19
- package/lib/live-control-v2/index.js.map +1 -1
- package/lib/live-control-v2/style/index.less +192 -192
- package/lib/live-player/index.d.ts +1 -0
- package/lib/live-player/index.js +74 -66
- package/lib/live-player/index.js.map +1 -1
- package/lib/live-player/style/index.less +75 -75
- package/lib/mpegts/PlayerManager.js +7 -8
- package/lib/mpegts/PlayerManager.js.map +1 -1
- package/lib/player/index.d.ts +3 -1
- package/lib/player/index.js +105 -91
- package/lib/player/index.js.map +1 -1
- package/lib/rsl/PlayerManager.d.ts +1 -1
- package/lib/rsl/PlayerManager.js +7 -8
- package/lib/rsl/PlayerManager.js.map +1 -1
- package/lib/typings/@vtx/utils/index.d.ts +28 -28
- package/lib/typings/h5player.d.ts +150 -150
- package/lib/typings/mpegts.d.ts +7 -7
- package/lib/typings/webrtcplayer.d.ts +56 -56
- package/lib/typings/wfsplayer.d.ts +56 -56
- package/lib/typings/wsplayer.d.ts +99 -99
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +30 -43
- package/lib/utils/index.js.map +1 -1
- package/lib/vite-env.d.ts +1 -1
- package/lib/vtxHls/PlayerManager.js +7 -8
- package/lib/vtxHls/PlayerManager.js.map +1 -1
- package/lib/vtxHls/WhepManager.js +10 -11
- package/lib/vtxHls/WhepManager.js.map +1 -1
- package/lib/webrtc/PlayerManager.js +7 -8
- package/lib/webrtc/PlayerManager.js.map +1 -1
- package/lib/wfs/PlayerManager.js +7 -8
- package/lib/wfs/PlayerManager.js.map +1 -1
- package/package.json +125 -125
|
@@ -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(
|
|
9
|
-
function _defineProperties(
|
|
10
|
-
function _createClass(
|
|
11
|
-
function
|
|
12
|
-
function
|
|
13
|
-
function
|
|
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 =
|
|
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
|
-
|
|
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
|
|
8
|
-
function
|
|
9
|
-
function
|
|
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
|
-
|
|
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 =
|
|
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":"
|
|
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":[]}
|
package/lib/wfs/PlayerManager.js
CHANGED
|
@@ -4,12 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
function
|
|
8
|
-
function
|
|
9
|
-
function
|
|
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 WfsPlayerManager = /*#__PURE__*/function () {
|
|
14
11
|
function WfsPlayerManager(opt) {
|
|
15
12
|
_classCallCheck(this, WfsPlayerManager);
|
|
@@ -33,7 +30,7 @@ var WfsPlayerManager = /*#__PURE__*/function () {
|
|
|
33
30
|
this.recordList = [];
|
|
34
31
|
this.init();
|
|
35
32
|
}
|
|
36
|
-
|
|
33
|
+
_createClass(WfsPlayerManager, [{
|
|
37
34
|
key: "init",
|
|
38
35
|
value: function init() {
|
|
39
36
|
if (H5Player.isSupported()) {
|
|
@@ -142,6 +139,8 @@ var WfsPlayerManager = /*#__PURE__*/function () {
|
|
|
142
139
|
// this.player.jumpPlayByTime(time);
|
|
143
140
|
}
|
|
144
141
|
}]);
|
|
142
|
+
return WfsPlayerManager;
|
|
145
143
|
}();
|
|
146
|
-
var _default =
|
|
144
|
+
var _default = WfsPlayerManager;
|
|
145
|
+
exports["default"] = _default;
|
|
147
146
|
//# sourceMappingURL=PlayerManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerManager.js","names":["WfsPlayerManager","opt","_classCallCheck","el","realPlayer","recordPlayer","player","url","type","playNum","playIndex","currentChannelId","recordList","init","_createClass","key","value","H5Player","isSupported","initPlayer","unload","sourcetype","domId","attachMedia","document","getElementById","load","play","pause","resume","playSpeed","speed","close","setFullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","jumpPlayByTime","time","_default","exports"],"sources":["wfs/PlayerManager.js"],"sourcesContent":["class WfsPlayerManager {\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();\n }\n init() {\n if (H5Player.isSupported()) {\n this.initPlayer();\n }\n }\n /**\n * 初始化实时预览播放器\n */\n initPlayer() {\n if (this.player) {\n this.player.unload();\n this.player = null;\n }\n let player = null;\n if (H5Player.isSupported()) {\n player = new H5Player({\n sourcetype: this.type || 'live',\n url: this.url,\n });\n const domId = this.el;\n player.attachMedia(document.getElementById(domId));\n player.load();\n // player.registerAppEvents('play_over', mediaplayover);\n // player.registerAppEvents('websocket_error', websocketerror);\n player.play();\n }\n this.player = player;\n }\n pause() {\n // this.recordPlayer && this.recordPlayer.pause();\n this.player && this.player.resume();\n }\n play() {\n this.initPlayer();\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 !== null) {\n this.player.unload();\n this.player = null;\n }\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 WfsPlayerManager;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlayerManager.js","names":["WfsPlayerManager","opt","_classCallCheck","el","realPlayer","recordPlayer","player","url","type","playNum","playIndex","currentChannelId","recordList","init","_createClass","key","value","H5Player","isSupported","initPlayer","unload","sourcetype","domId","attachMedia","document","getElementById","load","play","pause","resume","playSpeed","speed","close","setFullScreen","setPlayerAdapter","playerAdapter","setPlayerNum","number","setSelectIndex","index","jumpPlayByTime","time","_default","exports"],"sources":["wfs/PlayerManager.js"],"sourcesContent":["class WfsPlayerManager {\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();\n }\n init() {\n if (H5Player.isSupported()) {\n this.initPlayer();\n }\n }\n /**\n * 初始化实时预览播放器\n */\n initPlayer() {\n if (this.player) {\n this.player.unload();\n this.player = null;\n }\n let player = null;\n if (H5Player.isSupported()) {\n player = new H5Player({\n sourcetype: this.type || 'live',\n url: this.url,\n });\n const domId = this.el;\n player.attachMedia(document.getElementById(domId));\n player.load();\n // player.registerAppEvents('play_over', mediaplayover);\n // player.registerAppEvents('websocket_error', websocketerror);\n player.play();\n }\n this.player = player;\n }\n pause() {\n // this.recordPlayer && this.recordPlayer.pause();\n this.player && this.player.resume();\n }\n play() {\n this.initPlayer();\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 !== null) {\n this.player.unload();\n this.player = null;\n }\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 WfsPlayerManager;\n"],"mappings":";;;;;;;;;IAAMA,gBAAgB;EAClB,SAAAA,iBAAYC,GAAG,EAAE;IAAAC,eAAA,OAAAF,gBAAA;IACb;IACA,IAAI,CAACG,EAAE,GAAGF,GAAG,CAACE,EAAE;IAChB;IACA,IAAI,CAACC,UAAU,GAAG,IAAI;IACtB;IACA,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,GAAG,GAAGN,GAAG,CAACM,GAAG;IAClB;IACA,IAAI,CAACC,IAAI,GAAGP,GAAG,CAACO,IAAI;IACpB;IACA,IAAI,CAACC,OAAO,GAAG,CAAC;IAChB;IACA,IAAI,CAACC,SAAS,GAAG,CAAC;IAClB;IACA,IAAI,CAACC,gBAAgB,GAAG,EAAE;IAC1B;IACA,IAAI,CAACC,UAAU,GAAG,EAAE;IACpB,IAAI,CAACC,IAAI,CAAC,CAAC;EACf;EAACC,YAAA,CAAAd,gBAAA;IAAAe,GAAA;IAAAC,KAAA,EACD,SAAAH,KAAA,EAAO;MACH,IAAII,QAAQ,CAACC,WAAW,CAAC,CAAC,EAAE;QACxB,IAAI,CAACC,UAAU,CAAC,CAAC;MACrB;IACJ;IACA;AACJ;AACA;EAFI;IAAAJ,GAAA;IAAAC,KAAA,EAGA,SAAAG,WAAA,EAAa;MACT,IAAI,IAAI,CAACb,MAAM,EAAE;QACb,IAAI,CAACA,MAAM,CAACc,MAAM,CAAC,CAAC;QACpB,IAAI,CAACd,MAAM,GAAG,IAAI;MACtB;MACA,IAAIA,MAAM,GAAG,IAAI;MACjB,IAAIW,QAAQ,CAACC,WAAW,CAAC,CAAC,EAAE;QACxBZ,MAAM,GAAG,IAAIW,QAAQ,CAAC;UAClBI,UAAU,EAAE,IAAI,CAACb,IAAI,IAAI,MAAM;UAC/BD,GAAG,EAAE,IAAI,CAACA;QACd,CAAC,CAAC;QACF,IAAMe,KAAK,GAAG,IAAI,CAACnB,EAAE;QACrBG,MAAM,CAACiB,WAAW,CAACC,QAAQ,CAACC,cAAc,CAACH,KAAK,CAAC,CAAC;QAClDhB,MAAM,CAACoB,IAAI,CAAC,CAAC;QACb;QACA;QACApB,MAAM,CAACqB,IAAI,CAAC,CAAC;MACjB;MACA,IAAI,CAACrB,MAAM,GAAGA,MAAM;IACxB;EAAC;IAAAS,GAAA;IAAAC,KAAA,EACD,SAAAY,MAAA,EAAQ;MACJ;MACA,IAAI,CAACtB,MAAM,IAAI,IAAI,CAACA,MAAM,CAACuB,MAAM,CAAC,CAAC;IACvC;EAAC;IAAAd,GAAA;IAAAC,KAAA,EACD,SAAAW,KAAA,EAAO;MACH,IAAI,CAACR,UAAU,CAAC,CAAC;IACrB;IACA;AACJ;AACA;AACA;EAHI;IAAAJ,GAAA;IAAAC,KAAA,EAIA,SAAAc,UAAUC,KAAK,EAAE;MACb,IAAI,CAAC1B,YAAY,IAAI,IAAI,CAACA,YAAY,CAACyB,SAAS,CAACC,KAAK,CAAC;IAC3D;IACA;AACJ;AACA;AACA;EAHI;IAAAhB,GAAA;IAAAC,KAAA,EAIA,SAAAgB,MAAA,EAAQ;MACJ,IAAI,IAAI,CAAC1B,MAAM,KAAK,IAAI,EAAE;QACtB,IAAI,CAACA,MAAM,CAACc,MAAM,CAAC,CAAC;QACpB,IAAI,CAACd,MAAM,GAAG,IAAI;MACtB;IACJ;IACA;AACJ;AACA;EAFI;IAAAS,GAAA;IAAAC,KAAA,EAGA,SAAAiB,cAAA,EAAgB;MACZ;IAAA;IAEJ;AACJ;AACA;AACA;EAHI;IAAAlB,GAAA;IAAAC,KAAA,EAIA,SAAAkB,iBAAiBC,aAAa,EAAE;MAC5B;IAAA;IAEJ;AACJ;AACA;AACA;EAHI;IAAApB,GAAA;IAAAC,KAAA,EAIA,SAAAoB,aAAaC,MAAM,EAAE;MACjB;IAAA;IAEJ;AACJ;AACA;AACA;EAHI;IAAAtB,GAAA;IAAAC,KAAA,EAIA,SAAAsB,eAAeC,KAAK,EAAE;MAClB;IAAA;IAEJ;AACJ;AACA;AACA;EAHI;IAAAxB,GAAA;IAAAC,KAAA,EAIA,SAAAwB,eAAeC,IAAI,EAAE;MACjB;IAAA;EACH;EAAA,OAAAzC,gBAAA;AAAA;AAAA,IAAA0C,QAAA,GAEU1C,gBAAgB;AAAA2C,OAAA,cAAAD,QAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@vtx/player",
|
|
3
|
-
"version": "1.9.
|
|
4
|
-
"private": false,
|
|
5
|
-
"description": "视频业务组件",
|
|
6
|
-
"main": "./lib/index.js",
|
|
7
|
-
"module": "./lib/index.js",
|
|
8
|
-
"types": "./lib/index.d.ts",
|
|
9
|
-
"files": [
|
|
10
|
-
"lib"
|
|
11
|
-
],
|
|
12
|
-
"scripts": {
|
|
13
|
-
"start": "start-storybook -p 6006",
|
|
14
|
-
"start:huanwei": "cross-env PREFIX=/huanwei umi dev",
|
|
15
|
-
"build": "npm run compile",
|
|
16
|
-
"compile": "gulp compile",
|
|
17
|
-
"build:old": "npm run clean && rollup --config",
|
|
18
|
-
"build-docs": "build-storybook",
|
|
19
|
-
"build:huanwei": "cross-env UMI_ENV=prod UMI_COLOR=default PREFIX=/huanwei umi build",
|
|
20
|
-
"lint:script": "eslint src --ext .ts,.tsx",
|
|
21
|
-
"lint:style": "stylelint src/**/*.less --custom-syntax postcss-less --fix",
|
|
22
|
-
"clean": "rimraf dist"
|
|
23
|
-
},
|
|
24
|
-
"husky": {
|
|
25
|
-
"hooks": {
|
|
26
|
-
"pre-commit": "lint-staged",
|
|
27
|
-
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
"lint-staged": {
|
|
31
|
-
"src/**/*.{ts,tsx,less,md,mdx,json}": "npm run lint:script",
|
|
32
|
-
"src/**/*.{less}": "npm run lint:style"
|
|
33
|
-
},
|
|
34
|
-
"peerDependencies": {
|
|
35
|
-
"react": ">=16.9.0",
|
|
36
|
-
"react-dom": ">=16.9.0"
|
|
37
|
-
},
|
|
38
|
-
"dependencies": {
|
|
39
|
-
"ahooks": "^3.4.0",
|
|
40
|
-
"antd": "^4.20.7",
|
|
41
|
-
"hls.js": "^1.1.5",
|
|
42
|
-
"js-base64": "^3.7.2",
|
|
43
|
-
"merge2": "^1.4.1",
|
|
44
|
-
"react-collapsed": "3.3.2"
|
|
45
|
-
},
|
|
46
|
-
"devDependencies": {
|
|
47
|
-
"@babel/cli": "^7.6.4",
|
|
48
|
-
"@babel/core": "^7.6.4",
|
|
49
|
-
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
50
|
-
"@babel/plugin-transform-runtime": "^7.6.2",
|
|
51
|
-
"@babel/preset-env": "^7.6.3",
|
|
52
|
-
"@babel/preset-react": "^7.6.3",
|
|
53
|
-
"@babel/preset-typescript": "^7.17.12",
|
|
54
|
-
"@babel/runtime": "^7.6.3",
|
|
55
|
-
"@commitlint/cli": "^17.0.2",
|
|
56
|
-
"@commitlint/config-conventional": "^17.0.2",
|
|
57
|
-
"@rollup/plugin-babel": "^5.3.1",
|
|
58
|
-
"@rollup/plugin-commonjs": "^22.0.0",
|
|
59
|
-
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
60
|
-
"@rollup/plugin-typescript": "^8.3.2",
|
|
61
|
-
"@rollup/plugin-url": "^7.0.0",
|
|
62
|
-
"@storybook/addon-actions": "^6.5.7",
|
|
63
|
-
"@storybook/addon-essentials": "^6.5.7",
|
|
64
|
-
"@storybook/addon-interactions": "^6.5.7",
|
|
65
|
-
"@storybook/addon-links": "^6.5.7",
|
|
66
|
-
"@storybook/builder-vite": "^0.1.36",
|
|
67
|
-
"@storybook/react": "^6.5.7",
|
|
68
|
-
"@storybook/testing-library": "^0.0.11",
|
|
69
|
-
"@trivago/prettier-plugin-sort-imports": "^3.2.0",
|
|
70
|
-
"@types/react": "^18.0.0",
|
|
71
|
-
"@types/react-dom": "^18.0.0",
|
|
72
|
-
"@typescript-eslint/eslint-plugin": "^5.26.0",
|
|
73
|
-
"@typescript-eslint/parser": "^5.26.0",
|
|
74
|
-
"@vitejs/plugin-react": "^1.3.0",
|
|
75
|
-
"@vtx/utils": "^1.0.12",
|
|
76
|
-
"consola": "^2.15.3",
|
|
77
|
-
"eslint": "^8.16.0",
|
|
78
|
-
"eslint-config-prettier": "^8.5.0",
|
|
79
|
-
"eslint-import-resolver-typescript": "^2.7.1",
|
|
80
|
-
"eslint-plugin-import": "^2.26.0",
|
|
81
|
-
"eslint-plugin-prettier": "^4.0.0",
|
|
82
|
-
"eslint-plugin-react": "^7.30.0",
|
|
83
|
-
"eslint-plugin-react-hooks": "^4.5.0",
|
|
84
|
-
"eslint-plugin-storybook": "^0.5.12",
|
|
85
|
-
"gulp": "^4.0.2",
|
|
86
|
-
"gulp-babel": "^8.0.0",
|
|
87
|
-
"gulp-bump": "^3.2.0",
|
|
88
|
-
"gulp-clean": "^0.4.0",
|
|
89
|
-
"gulp-less": "^4.0.1",
|
|
90
|
-
"gulp-sourcemaps": "^3.0.0",
|
|
91
|
-
"gulp-typescript": "^6.0.0-alpha.1",
|
|
92
|
-
"husky": "^8.0.1",
|
|
93
|
-
"less": "3.13.1",
|
|
94
|
-
"less-plugin-autoprefix": "^2.0.0",
|
|
95
|
-
"less-plugin-npm-import": "^2.1.0",
|
|
96
|
-
"lint-staged": "^13.0.1",
|
|
97
|
-
"postcss": "^8.4.14",
|
|
98
|
-
"postcss-less": "^6.0.0",
|
|
99
|
-
"prettier": "^2.6.2",
|
|
100
|
-
"react": "^16.14.0",
|
|
101
|
-
"react-dom": "^16.14.0",
|
|
102
|
-
"rimraf": "^3.0.2",
|
|
103
|
-
"rollup-plugin-dts": "^4.2.2",
|
|
104
|
-
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
105
|
-
"rollup-plugin-postcss": "^4.0.2",
|
|
106
|
-
"rollup-plugin-terser": "^7.0.2",
|
|
107
|
-
"stylelint": "^14.8.5",
|
|
108
|
-
"stylelint-config-prettier": "^9.0.3",
|
|
109
|
-
"stylelint-config-recess-order": "^3.0.0",
|
|
110
|
-
"stylelint-config-recommended": "^7.0.0",
|
|
111
|
-
"stylelint-config-standard": "^25.0.0",
|
|
112
|
-
"stylelint-order": "^5.0.0",
|
|
113
|
-
"through2": "^4.0.2",
|
|
114
|
-
"typescript": "^4.6.3",
|
|
115
|
-
"typescript-transform-paths": "^2.0.1",
|
|
116
|
-
"vite": "^2.9.9",
|
|
117
|
-
"vite-plugin-style-import": "^2.0.0"
|
|
118
|
-
},
|
|
119
|
-
"repository": "https://git.cloudhw.cn:3443/front-end/business/vtx-vis.git",
|
|
120
|
-
"author": "chenxinyu <chenxinyu@vortexInfo.cn>",
|
|
121
|
-
"license": "MIT",
|
|
122
|
-
"publishConfig": {
|
|
123
|
-
"registry": "https://registry.npmjs.org/"
|
|
124
|
-
}
|
|
125
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@vtx/player",
|
|
3
|
+
"version": "1.9.4",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "视频业务组件",
|
|
6
|
+
"main": "./lib/index.js",
|
|
7
|
+
"module": "./lib/index.js",
|
|
8
|
+
"types": "./lib/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"lib"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"start": "start-storybook -p 6006",
|
|
14
|
+
"start:huanwei": "cross-env PREFIX=/huanwei umi dev",
|
|
15
|
+
"build": "npm run compile",
|
|
16
|
+
"compile": "gulp compile",
|
|
17
|
+
"build:old": "npm run clean && rollup --config",
|
|
18
|
+
"build-docs": "build-storybook",
|
|
19
|
+
"build:huanwei": "cross-env UMI_ENV=prod UMI_COLOR=default PREFIX=/huanwei umi build",
|
|
20
|
+
"lint:script": "eslint src --ext .ts,.tsx",
|
|
21
|
+
"lint:style": "stylelint src/**/*.less --custom-syntax postcss-less --fix",
|
|
22
|
+
"clean": "rimraf dist"
|
|
23
|
+
},
|
|
24
|
+
"husky": {
|
|
25
|
+
"hooks": {
|
|
26
|
+
"pre-commit": "lint-staged",
|
|
27
|
+
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"lint-staged": {
|
|
31
|
+
"src/**/*.{ts,tsx,less,md,mdx,json}": "npm run lint:script",
|
|
32
|
+
"src/**/*.{less}": "npm run lint:style"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"react": ">=16.9.0",
|
|
36
|
+
"react-dom": ">=16.9.0"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"ahooks": "^3.4.0",
|
|
40
|
+
"antd": "^4.20.7",
|
|
41
|
+
"hls.js": "^1.1.5",
|
|
42
|
+
"js-base64": "^3.7.2",
|
|
43
|
+
"merge2": "^1.4.1",
|
|
44
|
+
"react-collapsed": "3.3.2"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@babel/cli": "^7.6.4",
|
|
48
|
+
"@babel/core": "^7.6.4",
|
|
49
|
+
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
50
|
+
"@babel/plugin-transform-runtime": "^7.6.2",
|
|
51
|
+
"@babel/preset-env": "^7.6.3",
|
|
52
|
+
"@babel/preset-react": "^7.6.3",
|
|
53
|
+
"@babel/preset-typescript": "^7.17.12",
|
|
54
|
+
"@babel/runtime": "^7.6.3",
|
|
55
|
+
"@commitlint/cli": "^17.0.2",
|
|
56
|
+
"@commitlint/config-conventional": "^17.0.2",
|
|
57
|
+
"@rollup/plugin-babel": "^5.3.1",
|
|
58
|
+
"@rollup/plugin-commonjs": "^22.0.0",
|
|
59
|
+
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
60
|
+
"@rollup/plugin-typescript": "^8.3.2",
|
|
61
|
+
"@rollup/plugin-url": "^7.0.0",
|
|
62
|
+
"@storybook/addon-actions": "^6.5.7",
|
|
63
|
+
"@storybook/addon-essentials": "^6.5.7",
|
|
64
|
+
"@storybook/addon-interactions": "^6.5.7",
|
|
65
|
+
"@storybook/addon-links": "^6.5.7",
|
|
66
|
+
"@storybook/builder-vite": "^0.1.36",
|
|
67
|
+
"@storybook/react": "^6.5.7",
|
|
68
|
+
"@storybook/testing-library": "^0.0.11",
|
|
69
|
+
"@trivago/prettier-plugin-sort-imports": "^3.2.0",
|
|
70
|
+
"@types/react": "^18.0.0",
|
|
71
|
+
"@types/react-dom": "^18.0.0",
|
|
72
|
+
"@typescript-eslint/eslint-plugin": "^5.26.0",
|
|
73
|
+
"@typescript-eslint/parser": "^5.26.0",
|
|
74
|
+
"@vitejs/plugin-react": "^1.3.0",
|
|
75
|
+
"@vtx/utils": "^1.0.12",
|
|
76
|
+
"consola": "^2.15.3",
|
|
77
|
+
"eslint": "^8.16.0",
|
|
78
|
+
"eslint-config-prettier": "^8.5.0",
|
|
79
|
+
"eslint-import-resolver-typescript": "^2.7.1",
|
|
80
|
+
"eslint-plugin-import": "^2.26.0",
|
|
81
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
82
|
+
"eslint-plugin-react": "^7.30.0",
|
|
83
|
+
"eslint-plugin-react-hooks": "^4.5.0",
|
|
84
|
+
"eslint-plugin-storybook": "^0.5.12",
|
|
85
|
+
"gulp": "^4.0.2",
|
|
86
|
+
"gulp-babel": "^8.0.0",
|
|
87
|
+
"gulp-bump": "^3.2.0",
|
|
88
|
+
"gulp-clean": "^0.4.0",
|
|
89
|
+
"gulp-less": "^4.0.1",
|
|
90
|
+
"gulp-sourcemaps": "^3.0.0",
|
|
91
|
+
"gulp-typescript": "^6.0.0-alpha.1",
|
|
92
|
+
"husky": "^8.0.1",
|
|
93
|
+
"less": "3.13.1",
|
|
94
|
+
"less-plugin-autoprefix": "^2.0.0",
|
|
95
|
+
"less-plugin-npm-import": "^2.1.0",
|
|
96
|
+
"lint-staged": "^13.0.1",
|
|
97
|
+
"postcss": "^8.4.14",
|
|
98
|
+
"postcss-less": "^6.0.0",
|
|
99
|
+
"prettier": "^2.6.2",
|
|
100
|
+
"react": "^16.14.0",
|
|
101
|
+
"react-dom": "^16.14.0",
|
|
102
|
+
"rimraf": "^3.0.2",
|
|
103
|
+
"rollup-plugin-dts": "^4.2.2",
|
|
104
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
105
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
106
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
107
|
+
"stylelint": "^14.8.5",
|
|
108
|
+
"stylelint-config-prettier": "^9.0.3",
|
|
109
|
+
"stylelint-config-recess-order": "^3.0.0",
|
|
110
|
+
"stylelint-config-recommended": "^7.0.0",
|
|
111
|
+
"stylelint-config-standard": "^25.0.0",
|
|
112
|
+
"stylelint-order": "^5.0.0",
|
|
113
|
+
"through2": "^4.0.2",
|
|
114
|
+
"typescript": "^4.6.3",
|
|
115
|
+
"typescript-transform-paths": "^2.0.1",
|
|
116
|
+
"vite": "^2.9.9",
|
|
117
|
+
"vite-plugin-style-import": "^2.0.0"
|
|
118
|
+
},
|
|
119
|
+
"repository": "https://git.cloudhw.cn:3443/front-end/business/vtx-vis.git",
|
|
120
|
+
"author": "chenxinyu <chenxinyu@vortexInfo.cn>",
|
|
121
|
+
"license": "MIT",
|
|
122
|
+
"publishConfig": {
|
|
123
|
+
"registry": "https://registry.npmjs.org/"
|
|
124
|
+
}
|
|
125
|
+
}
|