@vtx/player 1.6.9 → 1.7.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.
- package/lib/bill-player/index.js +1 -1
- package/lib/bill-player/index.js.map +1 -1
- package/lib/player/index.js +105 -62
- package/lib/player/index.js.map +1 -1
- package/lib/rsl/PlayerManager.d.ts +43 -0
- package/lib/rsl/PlayerManager.js +341 -0
- package/lib/rsl/PlayerManager.js.map +1 -0
- package/lib/utils/index.js +2 -8
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
package/lib/player/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","Player","params","_a","_b","_c","_d","player","preSpeed","containerId","windowIndex","url","channelNum","deviceCode","enableAgent","container","live","type","startTime","endTime","streamType","deviceIp","devicePort","id","playerParams","getPlayerParams","video","document","createElement","className","muted","FlvJs","isSupported","appendChild","createPlayer","isLive","attachMediaElement","load","Hls","loadSource","attachMedia","dd","getElementById","hasChildNodes","removeChild","firstChild","VtxHlsPlayerManager","autoplay","WHEPClient","window","JSPlugin","szId","szBasePath","iMaxSplit","iCurrentSplit","wrapDiv","getElementsByTagName","preload","startsWith","JSPluginHkCar","iWidth","clientWidth","iHeight","clientHeight","oStyle","border","borderSelect","background","$container","Jessibuca","videoBuffer","isResize","isFlv","decoder","useMSE","debug","hasAudio","useWCS","isNotMute","PlayerManager","ip","location","protocol","el","maxNum","num","children","length","Date","now","WebrtcPlayerManager","H264PlayerManager","BDPlayerManager","src","iframe","width","height","frameBorder","console","log","play","JS_Play","playURL","mode","playRealVideo","channelList","isOnline","Number","getHKTimeString","playRecordVideo","moment","format","recordSource","destroy","remove","JS_Stop","childNodes","JS_DestroyWorker","close","captureName","callback","time","name","JS_CapturePicture","res","DPlayer","dp","canvas","querySelector","toBlob","blob","URL","createObjectURL","fileBlob","screenshot","Capture","setTimeout","JS_Resize","setPlayerAdapter","volume","iCurrentSoundWnd","JS_OpenSound","JS_SetVolume","ttxplayer","enableAudio","openAudio","setVolume","speed","JS_Slow","JS_Fast","playSpeed","playbackRate","addEventListener","currentTime","seekTime","diff","JS_SetWindowControlCallback","call","StreamEnd","add","JS_Seek","jumpPlayByTime","valueOf","JS_Pause","pause","JS_Resume","JS_StartTalk","JS_StopTalk","videoWidth","videoHeight","context","getContext","drawImage","dataURL"],"sources":["player/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport BDPlayerManager from '../bd/PlayerManager';\nimport H264PlayerManager from '../h264/PlayerManager';\nimport PlayerManager from '../icc/PlayerManager';\nimport { getHKTimeString, getPlayerParams } from '../utils';\nimport VtxHlsPlayerManager from '../vtxHls/PlayerManager';\nimport WHEPClient from '../vtxHls/WhepManager';\nimport WebrtcPlayerManager from '../webrtc/PlayerManager';\nimport FlvJs from 'flv.js';\nimport Hls from 'hls.js';\nimport moment from 'moment';\n/**\n * 视频播放核心类\n */\nclass Player {\n constructor(params) {\n var _a, _b, _c, _d;\n this.player = null;\n /** 之前的视频播放速度,用于处理海康音量控制 */\n this.preSpeed = 1;\n this.containerId = '';\n // 海康窗口下标\n this.windowIndex = 0;\n /** 视频播放流是否走代理 - 是强制走代理,否通过判断 http协议,走代理配置 */\n const { url, channelNum, deviceCode, enableAgent = false, container, live = true, type, startTime, endTime, streamType, deviceIp, devicePort, } = params;\n this.containerId = container.id;\n const playerParams = getPlayerParams(type, url, enableAgent, live);\n this.type = type || playerParams.type; // 如果不传递type,则通过url解析type值,1.1.2之后默认都传type\n this.url = playerParams.url;\n this.channelNum = channelNum;\n this.deviceCode = deviceCode || '';\n this.streamType = streamType || '0'; // 默认主码流\n this.enableAgent = enableAgent;\n this.startTime = startTime;\n this.endTime = endTime;\n const video = document.createElement('video'); // 生成video元素\n video.className = 'vtx-player-video';\n video.muted = true; //设置静音\n this.video = video;\n if (this.type === 'flv' && FlvJs.isSupported() && video) {\n container.appendChild(video);\n this.player = FlvJs.createPlayer({\n type: 'flv',\n isLive: false,\n url: this.url,\n });\n this.player.attachMediaElement(this.video);\n this.player.load();\n }\n // 处理hls格式视频\n if (this.type === 'hls' && Hls.isSupported() && video) {\n container.appendChild(video);\n this.player = new Hls();\n this.player.loadSource(this.url);\n this.player.attachMedia(this.video);\n }\n if (this.type === 'vtxhls' && Hls.isSupported() && video) {\n const dd = document.getElementById(container.id);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n container.appendChild(video);\n this.player = new VtxHlsPlayerManager({\n url: this.url,\n video: video,\n });\n }\n if (this.type === 'vtxwhep' && video) {\n const dd = document.getElementById(container.id);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n this.video.autoplay = true;\n container.appendChild(this.video);\n this.player = new WHEPClient({\n url: this.url,\n video: this.video,\n });\n }\n // 处理海康视频\n if (this.type === 'hk_ws') {\n this.player = new window.JSPlugin({\n szId: container.id,\n szBasePath: './resources/',\n iMaxSplit: 1,\n iCurrentSplit: 1,\n });\n const wrapDiv = document.getElementById(container.id);\n this.video = wrapDiv.getElementsByTagName('video')[0];\n this.video.preload = 'auto';\n }\n // 处理海康视频\n if (this.type === 'hkcar_ws' && (url.startsWith('ws://') || url.startsWith('wss://'))) {\n const wrapDiv = document.getElementById(container.id);\n this.player = new window.JSPluginHkCar({\n szId: container.id,\n iWidth: wrapDiv.clientWidth,\n iHeight: wrapDiv.clientHeight,\n iMaxSplit: 1,\n iCurrentSplit: 1,\n szBasePath: './resources/hkcar/',\n oStyle: {\n border: 'transparent',\n borderSelect: 'transparent',\n background: '#2b3d51',\n },\n });\n }\n // 处理ws视频\n if (this.type === 'vtx_ws') {\n const $container = document.getElementById(container.id);\n this.player = new window.Jessibuca({\n container: $container,\n videoBuffer: 0.2,\n isResize: false,\n isFlv: true,\n decoder: './resources/jessibuca/decoder.js',\n useMSE: false,\n debug: false,\n hasAudio: false,\n useWCS: false,\n isNotMute: true, //是否开启声音\n });\n }\n if (this.type === 'icc_ws') {\n const dd = document.getElementById(container.id);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n this.player = new PlayerManager({\n ip: window.location.protocol === 'http:'\n ? deviceIp\n : `${deviceIp || ''}:${devicePort || ''}`,\n el: container.id,\n type: live ? 'real' : 'record',\n maxNum: 1,\n num: 1,\n });\n }\n if (this.type === 'webrtc') {\n const dd = document.getElementById(container.id);\n ((_a = dd === null || dd === void 0 ? void 0 : dd.children) === null || _a === void 0 ? void 0 : _a.length) > 0 && dd.removeChild(dd.firstChild);\n video.autoplay = true;\n const id = `${container.id}_${Date.now()}`;\n video.id = id;\n container.appendChild(video);\n this.player = new WebrtcPlayerManager({\n el: id,\n url: this.url,\n type: live,\n });\n }\n if (this.type === 'h264') {\n const dd = document.getElementById(container.id);\n ((_b = dd === null || dd === void 0 ? void 0 : dd.children) === null || _b === void 0 ? void 0 : _b.length) > 0 && dd.removeChild(dd.firstChild);\n video.autoplay = true;\n const id = 'playerh264';\n video.id = id;\n container.appendChild(video);\n this.player = new H264PlayerManager({ id: id, url: this.url });\n }\n if (this.type === 'bd') {\n this.player = new BDPlayerManager({\n el: container.id,\n type: live,\n url: this.url,\n });\n }\n if (this.type === 'mp4') {\n const dd = document.getElementById(container.id);\n ((_c = dd === null || dd === void 0 ? void 0 : dd.children) === null || _c === void 0 ? void 0 : _c.length) > 0 && dd.removeChild(dd.firstChild);\n this.video.src = this.url;\n this.video.autoplay = true;\n const id = 'mp4';\n this.video.id = id;\n container.appendChild(this.video);\n }\n if (this.type === 'iframe') {\n const dd = document.getElementById(container.id);\n ((_d = dd === null || dd === void 0 ? void 0 : dd.children) === null || _d === void 0 ? void 0 : _d.length) > 0 && dd.removeChild(dd.firstChild);\n const iframe = document.createElement('iframe');\n iframe.width = '100%';\n iframe.height = '100%';\n iframe.frameBorder = '0';\n iframe.src = this.url;\n container.appendChild(iframe);\n }\n }\n /** 播放 */\n play() {\n console.log(this.type);\n if (this.type === 'flv') {\n const player = this.player;\n return player.play();\n }\n if (this.type === 'hls') {\n return this.video.play();\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 1 }, 0);\n this.windowIndex = 0;\n return result;\n }\n if (this.type === 'icc_ws') {\n const player = this.player;\n player.playRealVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n isOnline: true,\n },\n ],\n streamType: Number(this.streamType) + 1,\n });\n }\n if (this.type === 'webrtc') {\n const player = this.player;\n player.play();\n }\n if (this.type === 'bd') {\n const player = this.player;\n player.playRealVideo();\n }\n if (this.type === 'mp4') {\n //\n }\n if (this.type === 'vtx_ws') {\n const player = this.player;\n player.play(this.url);\n }\n return Promise.resolve();\n }\n /** 回放 */\n playBack() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 1 }, 1, getHKTimeString(this.startTime), getHKTimeString(this.endTime));\n this.windowIndex = 1;\n return result;\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n return new Promise((resolve) => {\n player.playRecordVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n },\n ],\n startTime: moment(this.startTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n endTime: moment(this.endTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n recordSource: '2',\n streamType: this.streamType,\n });\n resolve(true);\n });\n }\n else {\n return this.play();\n }\n }\n /** 销毁 */\n destroy() {\n var _a, _b;\n if (this.type === 'flv') {\n const player = this.player;\n player === null || player === void 0 ? void 0 : player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'hls') {\n const player = this.player;\n player && player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'vtxhls' || this.type === 'vtxwhep') {\n this.video.remove();\n this.player = null;\n const dd = document.getElementById(this.containerId);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n }\n if (this.type === 'hk_ws') {\n const player = this.player;\n player.JS_Stop(1);\n const dd = document.getElementById(this.containerId);\n dd && dd.childNodes && dd.childNodes[0] && dd.removeChild(dd.childNodes[0]);\n }\n if (this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_DestroyWorker();\n const dd = document.getElementById(this.containerId);\n (dd === null || dd === void 0 ? void 0 : dd.childNodes) && dd.childNodes[0] && dd.removeChild(dd.childNodes[0]);\n }\n if (this.type === 'icc_ws') {\n const player = this.player;\n player.close();\n }\n if (this.type === 'webrtc') {\n const player = this.player;\n player.close();\n }\n if (this.type === 'h264') {\n const player = this.player;\n player.close();\n }\n if (this.type === 'bd') {\n const player = this.player;\n player.close(0);\n }\n if (this.type === 'mp4') {\n this.video = null;\n const dd = document.getElementById(this.containerId);\n ((_a = dd === null || dd === void 0 ? void 0 : dd.children) === null || _a === void 0 ? void 0 : _a.length) > 0 && dd.removeChild(dd.firstChild);\n }\n if (this.type === 'vtx_ws') {\n const player = this.player;\n player.destroy();\n }\n if (this.type === 'iframe') {\n const dd = document.getElementById(this.containerId);\n ((_b = dd === null || dd === void 0 ? void 0 : dd.children) === null || _b === void 0 ? void 0 : _b.length) > 0 && dd.removeChild(dd.firstChild);\n }\n }\n /** 截图 */\n capture(captureName = '视频截图', callback = null, time = true) {\n let name = captureName;\n if (time)\n name += `-${moment().format('YYYYMMDDHHmmss')}`;\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (player)\n player.JS_CapturePicture(1, name, 'JPEG', (res) => {\n callback && callback(res);\n });\n }\n else if (this.type === 'bd') {\n const DPlayer = this.player.dp;\n const canvas = DPlayer.container.querySelector('canvas');\n if (canvas) {\n canvas.toBlob((blob) => {\n if (blob) {\n callback === null || callback === void 0 ? void 0 : callback(URL.createObjectURL(blob));\n }\n });\n }\n }\n else if (this.type === 'vtx_ws') {\n const player = this.player;\n if (player) {\n const fileBlob = player.screenshot(captureName, 'blob');\n callback && callback(URL.createObjectURL(fileBlob));\n }\n }\n else {\n Capture(this.video, name, callback);\n }\n }\n /** 尺寸重置 */\n resize() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n setTimeout(() => {\n player.JS_Resize();\n }, 500);\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n player.setPlayerAdapter('selfAdaption');\n }\n }\n /**\n * 设置音量\n * @param value\n */\n setVolume(value) {\n if (this.type === 'flv') {\n const player = this.player;\n player.volume = value / 100;\n }\n if (this.type === 'hls') {\n this.video.volume = value / 100;\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (player.iCurrentSoundWnd !== this.windowIndex) {\n player.JS_OpenSound(this.windowIndex);\n }\n player.JS_SetVolume(this.windowIndex, value);\n }\n if (this.type === 'bd') {\n const player = this.player.dp;\n if (!player.ttxplayer.enableAudio)\n player.ttxplayer.openAudio();\n player.ttxplayer.setVolume(value);\n }\n }\n /**\n * 设置播放速度\n * @param speed\n */\n setSpeed(speed) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (this.preSpeed / speed === 2) {\n player.JS_Slow(1);\n }\n if (this.preSpeed / speed === 4) {\n player.JS_Slow(1).then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 8) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 16) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (speed / this.preSpeed === 2) {\n player.JS_Fast(1);\n }\n if (speed / this.preSpeed === 4) {\n player.JS_Fast(1).then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 8) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 16) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n this.preSpeed = speed;\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n player.playSpeed(speed);\n }\n else if (this.type === 'bd') {\n // todo\n }\n else {\n this.video.playbackRate = speed;\n }\n }\n /**\n * 时间更新事件\n * @param callback 回调函数\n */\n onTimeUpdate(callback) {\n var _a;\n this.video.addEventListener('timeupdate', () => {\n let currentTime = this.video.currentTime;\n if ((this.type === 'hk_ws' || this.type === 'hkcar_ws') && this.seekTime) {\n currentTime = currentTime + this.seekTime.diff(this.startTime, 'seconds');\n }\n callback(currentTime, this.type === 'hk_ws' || this.type === 'hkcar_ws'\n ? this.preSpeed\n : this.video.playbackRate);\n });\n // 增加hw_ws 流播放结束回调\n const player = this.player;\n (_a = player === null || player === void 0 ? void 0 : player.JS_SetWindowControlCallback) === null || _a === void 0 ? void 0 : _a.call(player, {\n StreamEnd: () => {\n callback(moment(this.endTime).diff(this.startTime, 'seconds'), this.preSpeed);\n },\n });\n }\n /** 跳转到 */\n seekTo(time) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const seekTime = (_a = moment(this.startTime)) === null || _a === void 0 ? void 0 : _a.add(time, 'seconds');\n this.seekTime = seekTime;\n yield player.JS_Seek(1, getHKTimeString(seekTime), getHKTimeString(this.endTime));\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n const seekTime = (_b = moment(this.startTime)) === null || _b === void 0 ? void 0 : _b.add(time, 'seconds').format('HH:mm:ss');\n player.jumpPlayByTime(seekTime);\n }\n else if (this.type === 'bd') {\n const player = this.player;\n const seekTime = (_c = moment(this.startTime)) === null || _c === void 0 ? void 0 : _c.add(time, 'seconds').valueOf();\n player.jumpPlayByTime(seekTime);\n }\n else {\n this.video.currentTime = time;\n }\n return Promise.resolve();\n });\n }\n /**\n * 暂停播放\n * @param callback 回调函数\n */\n pause(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Pause(1).then(() => callback && callback());\n }\n else if (this.type === 'bd') {\n const player = this.player;\n player.pause();\n callback && callback();\n }\n else if (this.type === 'vtx_ws') {\n const player = this.player;\n player.pause();\n }\n else {\n this.video.pause();\n callback && callback();\n }\n }\n /**\n * 恢复播放\n * @param callback 回调函数\n */\n resume(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Resume(1).then(() => callback && callback());\n }\n else if (this.type === 'bd') {\n const player = this.player;\n player.play();\n callback && callback();\n }\n else {\n this.video.play();\n callback && callback();\n }\n }\n /**\n * 开始对讲\n * @param url 对讲地址\n */\n startTalk(url) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StartTalk(url);\n }\n return Promise.reject();\n }\n /**\n * 开始对讲\n * @param state 状态\n */\n stopTalk() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StopTalk();\n }\n return Promise.reject();\n }\n}\n/**\n * 截图\n * @param video\n */\nconst Capture = (video, name, callback) => {\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const context = canvas.getContext('2d');\n if (context) {\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\n let dataURL;\n canvas.toBlob((blob) => {\n if (blob) {\n dataURL = URL.createObjectURL(blob);\n // const link = document.createElement('a');\n callback && callback(dataURL);\n // link.href = dataURL;\n // link.download = `${name}.png`;\n // link.style.display = 'none';\n // document.body.appendChild(link);\n // link.click();\n // document.body.removeChild(link);\n // URL.revokeObjectURL(dataURL);\n }\n });\n }\n};\nexport default Player;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","Player","params","_a","_b","_c","_d","_e","player","preSpeed","containerId","windowIndex","url","channelNum","deviceCode","enableAgent","container","live","type","startTime","endTime","streamType","deviceIp","devicePort","id","playerParams","getPlayerParams","video","document","createElement","className","muted","FlvJs","isSupported","appendChild","createPlayer","isLive","attachMediaElement","load","Hls","loadSource","attachMedia","dd","getElementById","hasChildNodes","removeChild","firstChild","VtxHlsPlayerManager","autoplay","WHEPClient","window","JSPlugin","szId","szBasePath","iMaxSplit","iCurrentSplit","wrapDiv","getElementsByTagName","preload","startsWith","JSPluginHkCar","iWidth","clientWidth","iHeight","clientHeight","oStyle","border","borderSelect","background","$container","Jessibuca","videoBuffer","isResize","isFlv","decoder","useMSE","debug","hasAudio","useWCS","isNotMute","PlayerManager","ip","location","protocol","el","maxNum","num","children","length","Date","now","WebrtcPlayerManager","H264PlayerManager","BDPlayerManager","src","iframe","width","height","frameBorder","canvas","style","RslPlayer","canvasId","callback","code","message","console","log","play","JS_Play","playURL","mode","playRealVideo","channelList","isOnline","Number","getHKTimeString","playRecordVideo","moment","format","recordSource","destroy","remove","JS_Stop","childNodes","JS_DestroyWorker","close","captureName","time","name","JS_CapturePicture","res","DPlayer","dp","querySelector","toBlob","blob","URL","createObjectURL","fileBlob","screenshot","Capture","setTimeout","JS_Resize","setPlayerAdapter","volume","iCurrentSoundWnd","JS_OpenSound","JS_SetVolume","ttxplayer","enableAudio","openAudio","setVolume","speed","JS_Slow","JS_Fast","playSpeed","playbackRate","addEventListener","currentTime","seekTime","diff","JS_SetWindowControlCallback","call","StreamEnd","add","JS_Seek","jumpPlayByTime","replace","JS_Pause","pause","JS_Resume","JS_StartTalk","JS_StopTalk","videoWidth","videoHeight","context","getContext","drawImage","dataURL"],"sources":["player/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport BDPlayerManager from '../bd/PlayerManager';\nimport H264PlayerManager from '../h264/PlayerManager';\nimport PlayerManager from '../icc/PlayerManager';\nimport RslPlayer from '../rsl/PlayerManager';\nimport { getHKTimeString, getPlayerParams } from '../utils';\nimport VtxHlsPlayerManager from '../vtxHls/PlayerManager';\nimport WHEPClient from '../vtxHls/WhepManager';\nimport WebrtcPlayerManager from '../webrtc/PlayerManager';\nimport FlvJs from 'flv.js';\nimport Hls from 'hls.js';\nimport moment from 'moment';\n/**\n * 视频播放核心类\n */\nclass Player {\n constructor(params) {\n var _a, _b, _c, _d, _e;\n this.player = null;\n /** 之前的视频播放速度,用于处理海康音量控制 */\n this.preSpeed = 1;\n this.containerId = '';\n // 海康窗口下标\n this.windowIndex = 0;\n /** 视频播放流是否走代理 - 是强制走代理,否通过判断 http协议,走代理配置 */\n const { url, channelNum, deviceCode, enableAgent = false, container, live = true, type, startTime, endTime, streamType, deviceIp, devicePort, } = params;\n this.containerId = container.id;\n const playerParams = getPlayerParams(type, url, enableAgent, live);\n this.type = type || playerParams.type; // 如果不传递type,则通过url解析type值,1.1.2之后默认都传type\n this.url = playerParams.url;\n this.channelNum = channelNum;\n this.deviceCode = deviceCode || '';\n this.streamType = streamType || '0'; // 默认主码流\n this.enableAgent = enableAgent;\n this.startTime = startTime;\n this.endTime = endTime;\n const video = document.createElement('video'); // 生成video元素\n video.className = 'vtx-player-video';\n video.muted = true; //设置静音\n this.video = video;\n if (this.type === 'flv' && FlvJs.isSupported() && video) {\n container.appendChild(video);\n this.player = FlvJs.createPlayer({\n type: 'flv',\n isLive: false,\n url: this.url,\n });\n this.player.attachMediaElement(this.video);\n this.player.load();\n }\n // 处理hls格式视频\n if (this.type === 'hls' && Hls.isSupported() && video) {\n container.appendChild(video);\n this.player = new Hls();\n this.player.loadSource(this.url);\n this.player.attachMedia(this.video);\n }\n if (this.type === 'vtxhls' && Hls.isSupported() && video) {\n const dd = document.getElementById(container.id);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n container.appendChild(video);\n this.player = new VtxHlsPlayerManager({\n url: this.url,\n video: video,\n });\n }\n if (this.type === 'vtxwhep' && video) {\n const dd = document.getElementById(container.id);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n this.video.autoplay = true;\n container.appendChild(this.video);\n this.player = new WHEPClient({\n url: this.url,\n video: this.video,\n });\n }\n // 处理海康视频\n if (this.type === 'hk_ws') {\n this.player = new window.JSPlugin({\n szId: container.id,\n szBasePath: './resources/',\n iMaxSplit: 1,\n iCurrentSplit: 1,\n });\n const wrapDiv = document.getElementById(container.id);\n this.video = wrapDiv.getElementsByTagName('video')[0];\n this.video.preload = 'auto';\n }\n // 处理海康视频\n if (this.type === 'hkcar_ws' && (url.startsWith('ws://') || url.startsWith('wss://'))) {\n const wrapDiv = document.getElementById(container.id);\n this.player = new window.JSPluginHkCar({\n szId: container.id,\n iWidth: wrapDiv.clientWidth,\n iHeight: wrapDiv.clientHeight,\n iMaxSplit: 1,\n iCurrentSplit: 1,\n szBasePath: './resources/hkcar/',\n oStyle: {\n border: 'transparent',\n borderSelect: 'transparent',\n background: '#2b3d51',\n },\n });\n }\n // 处理ws视频\n if (this.type === 'vtx_ws') {\n const $container = document.getElementById(container.id);\n this.player = new window.Jessibuca({\n container: $container,\n videoBuffer: 0.2,\n isResize: false,\n isFlv: true,\n decoder: './resources/jessibuca/decoder.js',\n useMSE: false,\n debug: false,\n hasAudio: false,\n useWCS: false,\n isNotMute: true, //是否开启声音\n });\n }\n if (this.type === 'icc_ws') {\n const dd = document.getElementById(container.id);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n this.player = new PlayerManager({\n ip: window.location.protocol === 'http:'\n ? deviceIp\n : `${deviceIp || ''}:${devicePort || ''}`,\n el: container.id,\n type: live ? 'real' : 'record',\n maxNum: 1,\n num: 1,\n });\n }\n if (this.type === 'webrtc') {\n const dd = document.getElementById(container.id);\n ((_a = dd === null || dd === void 0 ? void 0 : dd.children) === null || _a === void 0 ? void 0 : _a.length) > 0 && dd.removeChild(dd.firstChild);\n video.autoplay = true;\n const id = `${container.id}_${Date.now()}`;\n video.id = id;\n container.appendChild(video);\n this.player = new WebrtcPlayerManager({\n el: id,\n url: this.url,\n type: live,\n });\n }\n if (this.type === 'h264') {\n const dd = document.getElementById(container.id);\n ((_b = dd === null || dd === void 0 ? void 0 : dd.children) === null || _b === void 0 ? void 0 : _b.length) > 0 && dd.removeChild(dd.firstChild);\n video.autoplay = true;\n const id = 'playerh264';\n video.id = id;\n container.appendChild(video);\n this.player = new H264PlayerManager({ id: id, url: this.url });\n }\n if (this.type === 'bd') {\n this.player = new BDPlayerManager({\n el: container.id,\n type: live,\n url: this.url,\n });\n }\n if (this.type === 'mp4') {\n const dd = document.getElementById(container.id);\n ((_c = dd === null || dd === void 0 ? void 0 : dd.children) === null || _c === void 0 ? void 0 : _c.length) > 0 && dd.removeChild(dd.firstChild);\n this.video.src = this.url;\n this.video.autoplay = true;\n const id = 'mp4';\n this.video.id = id;\n container.appendChild(this.video);\n }\n if (this.type === 'iframe') {\n const dd = document.getElementById(container.id);\n ((_d = dd === null || dd === void 0 ? void 0 : dd.children) === null || _d === void 0 ? void 0 : _d.length) > 0 && dd.removeChild(dd.firstChild);\n const iframe = document.createElement('iframe');\n iframe.width = '100%';\n iframe.height = '100%';\n iframe.frameBorder = '0';\n iframe.src = this.url;\n container.appendChild(iframe);\n }\n if (this.type === 'rsl') {\n const dd = document.getElementById(container.id);\n ((_e = dd === null || dd === void 0 ? void 0 : dd.children) === null || _e === void 0 ? void 0 : _e.length) > 0 && dd.removeChild(dd.firstChild);\n const canvas = document.createElement('canvas');\n canvas.id = 'myCanvas';\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n container.appendChild(canvas);\n this.player = new RslPlayer({\n url: this.url,\n canvasId: 'myCanvas',\n callback: function (code, message) {\n console.log(code, message);\n },\n });\n }\n }\n /** 播放 */\n play() {\n if (this.type === 'flv') {\n const player = this.player;\n return player.play();\n }\n if (this.type === 'hls') {\n return this.video.play();\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 1 }, 0);\n this.windowIndex = 0;\n return result;\n }\n if (this.type === 'icc_ws') {\n const player = this.player;\n player.playRealVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n isOnline: true,\n },\n ],\n streamType: Number(this.streamType) + 1,\n });\n }\n if (this.type === 'webrtc') {\n const player = this.player;\n player.play();\n }\n if (this.type === 'bd') {\n const player = this.player;\n player.playRealVideo();\n }\n if (this.type === 'mp4') {\n //\n }\n if (this.type === 'vtx_ws') {\n const player = this.player;\n player.play(this.url);\n }\n if (this.type === 'rsl') {\n const player = this.player;\n player.play();\n }\n return Promise.resolve();\n }\n /** 回放 */\n playBack() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const result = player.JS_Play(this.url, { playURL: this.url, mode: 1 }, 1, getHKTimeString(this.startTime), getHKTimeString(this.endTime));\n this.windowIndex = 1;\n return result;\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n return new Promise((resolve) => {\n player.playRecordVideo({\n channelList: [\n {\n id: this.deviceCode + '$1$0$' + this.channelNum,\n },\n ],\n startTime: moment(this.startTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n endTime: moment(this.endTime, 'YYYY-MM-DD HH:mm:ss').format('X'),\n recordSource: '2',\n streamType: this.streamType,\n });\n resolve(true);\n });\n }\n else {\n return this.play();\n }\n }\n /** 销毁 */\n destroy() {\n var _a, _b, _c;\n if (this.type === 'flv') {\n const player = this.player;\n player === null || player === void 0 ? void 0 : player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'hls') {\n const player = this.player;\n player && player.destroy();\n this.player = null;\n this.video.remove();\n }\n if (this.type === 'vtxhls' || this.type === 'vtxwhep') {\n this.video.remove();\n this.player = null;\n const dd = document.getElementById(this.containerId);\n while (dd === null || dd === void 0 ? void 0 : dd.hasChildNodes()) {\n dd.removeChild(dd.firstChild);\n }\n }\n if (this.type === 'hk_ws') {\n const player = this.player;\n player.JS_Stop(1);\n const dd = document.getElementById(this.containerId);\n dd && dd.childNodes && dd.childNodes[0] && dd.removeChild(dd.childNodes[0]);\n }\n if (this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_DestroyWorker();\n const dd = document.getElementById(this.containerId);\n (dd === null || dd === void 0 ? void 0 : dd.childNodes) && dd.childNodes[0] && dd.removeChild(dd.childNodes[0]);\n }\n if (this.type === 'icc_ws') {\n const player = this.player;\n player.close();\n }\n if (this.type === 'webrtc') {\n const player = this.player;\n player.close();\n }\n if (this.type === 'h264') {\n const player = this.player;\n player.close();\n }\n if (this.type === 'bd') {\n const player = this.player;\n player.close(0);\n }\n if (this.type === 'mp4') {\n this.video = null;\n const dd = document.getElementById(this.containerId);\n ((_a = dd === null || dd === void 0 ? void 0 : dd.children) === null || _a === void 0 ? void 0 : _a.length) > 0 && dd.removeChild(dd.firstChild);\n }\n if (this.type === 'vtx_ws') {\n const player = this.player;\n player.destroy();\n }\n if (this.type === 'iframe') {\n const dd = document.getElementById(this.containerId);\n ((_b = dd === null || dd === void 0 ? void 0 : dd.children) === null || _b === void 0 ? void 0 : _b.length) > 0 && dd.removeChild(dd.firstChild);\n }\n if (this.type === 'rsl') {\n const player = this.player;\n player.destroy();\n const dd = document.getElementById(this.containerId);\n ((_c = dd === null || dd === void 0 ? void 0 : dd.children) === null || _c === void 0 ? void 0 : _c.length) > 0 && dd.removeChild(dd.firstChild);\n }\n }\n /** 截图 */\n capture(captureName = '视频截图', callback = null, time = true) {\n let name = captureName;\n if (time)\n name += `-${moment().format('YYYYMMDDHHmmss')}`;\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (player)\n player.JS_CapturePicture(1, name, 'JPEG', (res) => {\n callback && callback(res);\n });\n }\n else if (this.type === 'bd') {\n const DPlayer = this.player.dp;\n const canvas = DPlayer.container.querySelector('canvas');\n if (canvas) {\n canvas.toBlob((blob) => {\n if (blob) {\n callback === null || callback === void 0 ? void 0 : callback(URL.createObjectURL(blob));\n }\n });\n }\n }\n else if (this.type === 'vtx_ws') {\n const player = this.player;\n if (player) {\n const fileBlob = player.screenshot(captureName, 'blob');\n callback && callback(URL.createObjectURL(fileBlob));\n }\n }\n else {\n Capture(this.video, name, callback);\n }\n }\n /** 尺寸重置 */\n resize() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n setTimeout(() => {\n player.JS_Resize();\n }, 500);\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n player.setPlayerAdapter('selfAdaption');\n }\n }\n /**\n * 设置音量\n * @param value\n */\n setVolume(value) {\n if (this.type === 'flv') {\n const player = this.player;\n player.volume = value / 100;\n }\n if (this.type === 'hls') {\n this.video.volume = value / 100;\n }\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (player.iCurrentSoundWnd !== this.windowIndex) {\n player.JS_OpenSound(this.windowIndex);\n }\n player.JS_SetVolume(this.windowIndex, value);\n }\n if (this.type === 'bd') {\n const player = this.player.dp;\n if (!player.ttxplayer.enableAudio)\n player.ttxplayer.openAudio();\n player.ttxplayer.setVolume(value);\n }\n }\n /**\n * 设置播放速度\n * @param speed\n */\n setSpeed(speed) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n if (this.preSpeed / speed === 2) {\n player.JS_Slow(1);\n }\n if (this.preSpeed / speed === 4) {\n player.JS_Slow(1).then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 8) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (this.preSpeed / speed === 16) {\n player\n .JS_Slow(1)\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1))\n .then(() => player.JS_Slow(1));\n }\n if (speed / this.preSpeed === 2) {\n player.JS_Fast(1);\n }\n if (speed / this.preSpeed === 4) {\n player.JS_Fast(1).then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 8) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n if (speed / this.preSpeed === 16) {\n player\n .JS_Fast(1)\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1))\n .then(() => player.JS_Fast(1));\n }\n this.preSpeed = speed;\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n player.playSpeed(speed);\n }\n else if (this.type === 'bd') {\n // todo\n }\n else {\n this.video.playbackRate = speed;\n }\n }\n /**\n * 时间更新事件\n * @param callback 回调函数\n */\n onTimeUpdate(callback) {\n var _a;\n this.video.addEventListener('timeupdate', () => {\n let currentTime = this.video.currentTime;\n if ((this.type === 'hk_ws' || this.type === 'hkcar_ws') && this.seekTime) {\n currentTime = currentTime + this.seekTime.diff(this.startTime, 'seconds');\n }\n callback(currentTime, this.type === 'hk_ws' || this.type === 'hkcar_ws'\n ? this.preSpeed\n : this.video.playbackRate);\n });\n // 增加hw_ws 流播放结束回调\n const player = this.player;\n (_a = player === null || player === void 0 ? void 0 : player.JS_SetWindowControlCallback) === null || _a === void 0 ? void 0 : _a.call(player, {\n StreamEnd: () => {\n callback(moment(this.endTime).diff(this.startTime, 'seconds'), this.preSpeed);\n },\n });\n }\n /** 跳转到 */\n seekTo(time) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n const seekTime = (_a = moment(this.startTime)) === null || _a === void 0 ? void 0 : _a.add(time, 'seconds');\n this.seekTime = seekTime;\n yield player.JS_Seek(1, getHKTimeString(seekTime), getHKTimeString(this.endTime));\n }\n else if (this.type === 'icc_ws') {\n const player = this.player;\n const seekTime = (_b = moment(this.startTime)) === null || _b === void 0 ? void 0 : _b.add(time, 'seconds').format('HH:mm:ss');\n player.jumpPlayByTime(seekTime);\n }\n else if (this.type === 'bd') {\n // const seekTime = moment(this.startTime)?.add(time, 'seconds').format('HH:mm:ss');\n const player = this.player;\n player.close(0);\n this.player = null;\n const url = this.url.replace('PLAYBEG=0', `PLAYBEG=${time * 1000}`);\n this.player = new BDPlayerManager({\n el: this.containerId,\n type: false,\n url: url,\n });\n this.player.playRealVideo();\n }\n else {\n this.video.currentTime = time;\n }\n return Promise.resolve();\n });\n }\n /**\n * 暂停播放\n * @param callback 回调函数\n */\n pause(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Pause(1).then(() => callback && callback());\n }\n else if (this.type === 'bd') {\n const player = this.player;\n player.pause();\n callback && callback();\n }\n else if (this.type === 'vtx_ws') {\n const player = this.player;\n player.pause();\n }\n else {\n this.video.pause();\n callback && callback();\n }\n }\n /**\n * 恢复播放\n * @param callback 回调函数\n */\n resume(callback) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n player.JS_Resume(1).then(() => callback && callback());\n }\n else if (this.type === 'bd') {\n const player = this.player;\n player.play();\n callback && callback();\n }\n else {\n this.video.play();\n callback && callback();\n }\n }\n /**\n * 开始对讲\n * @param url 对讲地址\n */\n startTalk(url) {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StartTalk(url);\n }\n return Promise.reject();\n }\n /**\n * 开始对讲\n * @param state 状态\n */\n stopTalk() {\n if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {\n const player = this.player;\n return player.JS_StopTalk();\n }\n return Promise.reject();\n }\n}\n/**\n * 截图\n * @param video\n */\nconst Capture = (video, name, callback) => {\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const context = canvas.getContext('2d');\n if (context) {\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\n let dataURL;\n canvas.toBlob((blob) => {\n if (blob) {\n dataURL = URL.createObjectURL(blob);\n // const link = document.createElement('a');\n callback && callback(dataURL);\n // link.href = dataURL;\n // link.download = `${name}.png`;\n // link.style.display = 'none';\n // document.body.appendChild(link);\n // link.click();\n // document.body.removeChild(link);\n // URL.revokeObjectURL(dataURL);\n }\n });\n }\n};\nexport default Player;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export default RslPlayer;
|
|
2
|
+
declare class RslPlayer {
|
|
3
|
+
constructor(e: any);
|
|
4
|
+
_option: any;
|
|
5
|
+
_isPlay: boolean;
|
|
6
|
+
_isFullScreen: boolean;
|
|
7
|
+
_wasmInit: boolean;
|
|
8
|
+
_callback: any;
|
|
9
|
+
_canvas: HTMLElement;
|
|
10
|
+
_ctx: any;
|
|
11
|
+
_openLoopThreadTime: any;
|
|
12
|
+
_openLoopThreadTimer: any;
|
|
13
|
+
_fetchOption: any;
|
|
14
|
+
_fetchRquestOption: any;
|
|
15
|
+
_timer_rendering: NodeJS.Timer;
|
|
16
|
+
_watermark: any;
|
|
17
|
+
_initWorker(): void;
|
|
18
|
+
_work: Worker;
|
|
19
|
+
_render: Worker;
|
|
20
|
+
_renderMsgHandler({ data: { type: e, result: t } }: {
|
|
21
|
+
data: {
|
|
22
|
+
type: any;
|
|
23
|
+
result: any;
|
|
24
|
+
};
|
|
25
|
+
}): void;
|
|
26
|
+
_workMsgHandler({ data: { type: e, result: t } }: {
|
|
27
|
+
data: {
|
|
28
|
+
type: any;
|
|
29
|
+
result: any;
|
|
30
|
+
};
|
|
31
|
+
}): void;
|
|
32
|
+
play(): void;
|
|
33
|
+
openLoopThread(): void;
|
|
34
|
+
_getTimes(): string;
|
|
35
|
+
_renderWidget(): void;
|
|
36
|
+
_renderWaterMarkText(): void;
|
|
37
|
+
stop(): void;
|
|
38
|
+
destroy(): void;
|
|
39
|
+
_clearCanvas(): void;
|
|
40
|
+
_downLoad(s: any): Promise<any>;
|
|
41
|
+
screenshot(): void;
|
|
42
|
+
resize(): void;
|
|
43
|
+
}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
|
+
|
|
10
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
11
|
+
|
|
12
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
13
|
+
|
|
14
|
+
var _RSLPLAYERMESSAGE = {
|
|
15
|
+
0: '视频流获取成功',
|
|
16
|
+
1: '视频第一帧解析成功',
|
|
17
|
+
2: '视频图片保存成功'
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var RslPlayer = /*#__PURE__*/function () {
|
|
21
|
+
function RslPlayer(e) {
|
|
22
|
+
_classCallCheck(this, RslPlayer);
|
|
23
|
+
|
|
24
|
+
this._option = e;
|
|
25
|
+
this._isPlay = false;
|
|
26
|
+
this._isFullScreen = false;
|
|
27
|
+
this._wasmInit = false;
|
|
28
|
+
|
|
29
|
+
this._callback = e.callback || function () {};
|
|
30
|
+
|
|
31
|
+
this._canvas = document.getElementById(e.canvasId);
|
|
32
|
+
this._ctx = this._canvas.getContext('2d');
|
|
33
|
+
this._openLoopThreadTime = e.openLoopThreadTime || 1e3 * 60 * 60;
|
|
34
|
+
this._openLoopThreadTimer = null;
|
|
35
|
+
this._fetchOption = e.fetchOption || {};
|
|
36
|
+
this._fetchRquestOption = Object.assign({
|
|
37
|
+
method: 'post',
|
|
38
|
+
cors: true,
|
|
39
|
+
cache: 'no-cache'
|
|
40
|
+
}, this._fetchOption);
|
|
41
|
+
this._timer_rendering = null; // 水印 '192.168.9.199:28182@@@张三',水印内容,不设置此参数则不添加水印。多个水印用@@@分割.
|
|
42
|
+
|
|
43
|
+
this._watermark = this._option.watermarkText ? Object.assign({
|
|
44
|
+
text: this._option.watermarkText
|
|
45
|
+
}, {
|
|
46
|
+
fontSize: '18px',
|
|
47
|
+
fontFamily: '微软雅黑',
|
|
48
|
+
color: '#c00'
|
|
49
|
+
}, this._option.watermarkStyle) : null; // if (this._option.autoPlay) {
|
|
50
|
+
// this.play();
|
|
51
|
+
// }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
_createClass(RslPlayer, [{
|
|
55
|
+
key: "_initWorker",
|
|
56
|
+
value: function _initWorker() {
|
|
57
|
+
if (typeof this._work == 'undefined') {
|
|
58
|
+
this._work = new Worker("./resources/rsl/work.js");
|
|
59
|
+
this._work.onmessage = this._workMsgHandler.bind(this);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (typeof this._render == 'undefined') {
|
|
63
|
+
this._render = new Worker("./resources/rsl/render.js");
|
|
64
|
+
this._render.onmessage = this._renderMsgHandler.bind(this);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}, {
|
|
68
|
+
key: "_renderMsgHandler",
|
|
69
|
+
value: function _renderMsgHandler(_ref) {
|
|
70
|
+
var _ref$data = _ref.data,
|
|
71
|
+
e = _ref$data.type,
|
|
72
|
+
t = _ref$data.result;
|
|
73
|
+
var n = this;
|
|
74
|
+
|
|
75
|
+
if (e === 'wasmInit') {
|
|
76
|
+
var _e = this._canvas.width;
|
|
77
|
+
var _t = this._canvas.height;
|
|
78
|
+
n._wasmInit = true;
|
|
79
|
+
|
|
80
|
+
n._render.postMessage({
|
|
81
|
+
type: 'setWH',
|
|
82
|
+
params: {
|
|
83
|
+
width: _e,
|
|
84
|
+
height: _t
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
if (this._isPlay) {
|
|
89
|
+
n._work.postMessage({
|
|
90
|
+
type: 'fetchStart',
|
|
91
|
+
params: {
|
|
92
|
+
url: n._option.url,
|
|
93
|
+
fetchOption: n._fetchRquestOption
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
} else if (e === 'renderSuccess') {
|
|
98
|
+
var _e2 = t.imgData;
|
|
99
|
+
|
|
100
|
+
if (n._canvas && n._ctx) {
|
|
101
|
+
n._clearCanvas();
|
|
102
|
+
|
|
103
|
+
n._ctx.putImageData(_e2, 0, 0);
|
|
104
|
+
|
|
105
|
+
n._renderWidget();
|
|
106
|
+
|
|
107
|
+
n._callback && n._callback('1', _RSLPLAYERMESSAGE['1']);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
key: "_workMsgHandler",
|
|
113
|
+
value: function _workMsgHandler(_ref2) {
|
|
114
|
+
var _ref2$data = _ref2.data,
|
|
115
|
+
e = _ref2$data.type,
|
|
116
|
+
t = _ref2$data.result;
|
|
117
|
+
|
|
118
|
+
if (e === 'fetchSuccess') {
|
|
119
|
+
this._render.postMessage({
|
|
120
|
+
type: 'renderStart',
|
|
121
|
+
params: {
|
|
122
|
+
value: t.value
|
|
123
|
+
}
|
|
124
|
+
}, [t.value.buffer]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}, {
|
|
128
|
+
key: "play",
|
|
129
|
+
value: function play() {
|
|
130
|
+
if (!this._isPlay) {
|
|
131
|
+
this._isPlay = true;
|
|
132
|
+
|
|
133
|
+
this._initWorker();
|
|
134
|
+
|
|
135
|
+
this.openLoopThread(); // 开启定时解码和渲染
|
|
136
|
+
|
|
137
|
+
if (this._timer_rendering) {
|
|
138
|
+
clearInterval(this._timer_rendering);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
var thiz = this;
|
|
142
|
+
this._timer_rendering = setInterval(function () {
|
|
143
|
+
if (thiz._render) {
|
|
144
|
+
thiz._render.postMessage({
|
|
145
|
+
type: 'decodeAndRendering',
|
|
146
|
+
params: {}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}, 40);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}, {
|
|
153
|
+
key: "openLoopThread",
|
|
154
|
+
value: function openLoopThread() {
|
|
155
|
+
var e = this;
|
|
156
|
+
|
|
157
|
+
if (this._openLoopThreadTime) {
|
|
158
|
+
if (this._openLoopThreadTimer) {
|
|
159
|
+
clearInterval(e._openLoopThreadTimer);
|
|
160
|
+
e._openLoopThreadTimer = null;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
e._openLoopThreadTimer = setInterval(function () {
|
|
164
|
+
if (typeof e._work != 'undefined') {
|
|
165
|
+
e._work.postMessage({
|
|
166
|
+
type: 'fetchStop'
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
e._work.terminate();
|
|
170
|
+
|
|
171
|
+
e._work = undefined;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (typeof e._render != 'undefined') {
|
|
175
|
+
e._render.terminate();
|
|
176
|
+
|
|
177
|
+
e._render = undefined;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
e._initWorker();
|
|
181
|
+
}, e._openLoopThreadTime);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}, {
|
|
185
|
+
key: "_getTimes",
|
|
186
|
+
value: function _getTimes() {
|
|
187
|
+
function e(e) {
|
|
188
|
+
return e < 10 ? '0' + e : e;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
var t = new Date();
|
|
192
|
+
var n = t.getFullYear();
|
|
193
|
+
var s = e(t.getMonth() + 1);
|
|
194
|
+
var i = e(t.getDay());
|
|
195
|
+
var a = e(t.getHours());
|
|
196
|
+
var r = e(t.getMinutes());
|
|
197
|
+
var o = e(t.getSeconds());
|
|
198
|
+
return "".concat(n).concat(s).concat(i, "_").concat(a).concat(r).concat(o);
|
|
199
|
+
}
|
|
200
|
+
}, {
|
|
201
|
+
key: "_renderWidget",
|
|
202
|
+
value: function _renderWidget() {
|
|
203
|
+
if (this._watermark) {
|
|
204
|
+
this._renderWaterMarkText();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}, {
|
|
208
|
+
key: "_renderWaterMarkText",
|
|
209
|
+
value: function _renderWaterMarkText() {
|
|
210
|
+
var e = this._canvas.width;
|
|
211
|
+
this._ctx.font = '30px 微软雅黑';
|
|
212
|
+
this._ctx.fillStyle = 'rgba(255,255,255,.1)';
|
|
213
|
+
|
|
214
|
+
this._ctx.fillText('Hello', 10, 50, e);
|
|
215
|
+
}
|
|
216
|
+
}, {
|
|
217
|
+
key: "stop",
|
|
218
|
+
value: function stop() {
|
|
219
|
+
var e = this;
|
|
220
|
+
|
|
221
|
+
if (this._isPlay) {
|
|
222
|
+
this._work.postMessage({
|
|
223
|
+
type: 'fetchStop'
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
this._isPlay = false;
|
|
227
|
+
this._wasmInit = false;
|
|
228
|
+
|
|
229
|
+
if (this._openLoopThreadTimer) {
|
|
230
|
+
clearInterval(e._openLoopThreadTimer);
|
|
231
|
+
e._openLoopThreadTimer = null;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
this._work.terminate();
|
|
235
|
+
|
|
236
|
+
this._render.terminate();
|
|
237
|
+
|
|
238
|
+
this._work = undefined;
|
|
239
|
+
this._render = undefined; // 停止定时解码和渲染
|
|
240
|
+
|
|
241
|
+
if (this._timer_rendering) {
|
|
242
|
+
clearInterval(this._timer_rendering);
|
|
243
|
+
this._timer_rendering = null;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}, {
|
|
248
|
+
key: "destroy",
|
|
249
|
+
value: function destroy() {
|
|
250
|
+
var e = this;
|
|
251
|
+
|
|
252
|
+
e._clearCanvas();
|
|
253
|
+
|
|
254
|
+
e._work.postMessage({
|
|
255
|
+
type: 'fetchStop'
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
e._isPlay = false;
|
|
259
|
+
e._wasmInit = false;
|
|
260
|
+
|
|
261
|
+
if (e._openLoopThreadTimer) {
|
|
262
|
+
clearInterval(e._openLoopThreadTimer);
|
|
263
|
+
e._openLoopThreadTimer = null;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
e._work.terminate();
|
|
267
|
+
|
|
268
|
+
e._render.terminate();
|
|
269
|
+
|
|
270
|
+
e._work = undefined;
|
|
271
|
+
e._render = undefined; // 停止定时解码和渲染
|
|
272
|
+
|
|
273
|
+
if (this._timer_rendering) {
|
|
274
|
+
clearInterval(this._timer_rendering);
|
|
275
|
+
this._timer_rendering = null;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}, {
|
|
279
|
+
key: "_clearCanvas",
|
|
280
|
+
value: function _clearCanvas() {
|
|
281
|
+
var e = this;
|
|
282
|
+
e._canvas.height = e._canvas.height;
|
|
283
|
+
|
|
284
|
+
e._ctx.clearRect(0, 0, e._canvas.width, e._canvas.height);
|
|
285
|
+
}
|
|
286
|
+
}, {
|
|
287
|
+
key: "_downLoad",
|
|
288
|
+
value: function _downLoad(s) {
|
|
289
|
+
var i = this;
|
|
290
|
+
return new Promise(function (t, n) {
|
|
291
|
+
try {
|
|
292
|
+
var e = document.createElement('a');
|
|
293
|
+
e.download = i._getTimes();
|
|
294
|
+
e.href = s;
|
|
295
|
+
document.body.appendChild(e);
|
|
296
|
+
e.click();
|
|
297
|
+
e.remove();
|
|
298
|
+
t();
|
|
299
|
+
} catch (e) {
|
|
300
|
+
n(e);
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
}, {
|
|
305
|
+
key: "screenshot",
|
|
306
|
+
value: function screenshot() {
|
|
307
|
+
var e = this;
|
|
308
|
+
this.stop();
|
|
309
|
+
|
|
310
|
+
var t = this._canvas.toDataURL('image/png');
|
|
311
|
+
|
|
312
|
+
this._downLoad(t).then(function () {
|
|
313
|
+
e._callback && e._callback('2', _RSLPLAYERMESSAGE['2']);
|
|
314
|
+
e.play();
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
}, {
|
|
318
|
+
key: "resize",
|
|
319
|
+
value: function resize() {
|
|
320
|
+
var e = this;
|
|
321
|
+
var t = e._canvas.width;
|
|
322
|
+
var n = e._canvas.height;
|
|
323
|
+
|
|
324
|
+
e._render.postMessage({
|
|
325
|
+
type: 'setWH',
|
|
326
|
+
params: {
|
|
327
|
+
width: t,
|
|
328
|
+
height: n
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
e._clearCanvas();
|
|
333
|
+
}
|
|
334
|
+
}]);
|
|
335
|
+
|
|
336
|
+
return RslPlayer;
|
|
337
|
+
}();
|
|
338
|
+
|
|
339
|
+
var _default = RslPlayer;
|
|
340
|
+
exports["default"] = _default;
|
|
341
|
+
//# sourceMappingURL=PlayerManager.js.map
|