UNPKG

@jxstjh/jhvideo

Version:

HTML5 jhvideo base on MPEG2-TS Stream Player

207 lines 6.41 kB
import { Decoder, tools, Reader } from './EBML.js'; // Generate four random hex digits. function S4() { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); } ; // Generate a pseudo-GUID by concatenating random hexadecimal. export var guid = function () { return (S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4()); }; // 开启横屏 function setOrientation() { if ("orientation" in screen) { screen.orientation.lock("landscape-primary"); } } // 关闭横屏 function unsetOrientation() { if ("orientation" in screen) { screen.orientation.lock("portrait-primary"); } } // 全屏工具方法 export var openFullscreen = function (element, isMobile) { if (element.requestFullscreen) { element.requestFullscreen(); isMobile && setOrientation(); return; } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); isMobile && setOrientation(); return; } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); isMobile && setOrientation(); return; } else if (element.webkitRequestFullscreen) { element.webkitRequestFullScreen(); isMobile && setOrientation(); return; } }; //退出全屏方法 export var exitFullScreen = function (isMobile) { if (document.exitFullscreen) { document.exitFullscreen(); isMobile && unsetOrientation(); return; } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); isMobile && unsetOrientation(); return; } else if (document.msExitFullscreen) { document.msExiFullscreen(); isMobile && unsetOrientation(); return; } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); isMobile && unsetOrientation(); return; } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); isMobile && unsetOrientation(); return; } }; export var filterAisleIdChart = function (aisleId) { var arr = aisleId.split('#'); if (arr.length > 1) { return arr[0]; } else { return aisleId; } }; export var replaceStreamNO = function (channel, streamNo) { streamNo = Number(streamNo); channel = String(channel); var reg = new RegExp('#[0-9]'); var metched = reg.test(channel); if (metched) { return channel.replace(reg, "#".concat(streamNo)); } else { return channel + "#".concat(streamNo); } }; // 获取当前格式化时间字符串 export var getNowDate = function () { var date = new Date(); var Y = date.getFullYear(); var M = date.getMonth() + 1; var D = date.getDate(); M = M < 10 ? "0".concat(M) : M; D = D < 10 ? "0".concat(D) : D; var H = date.getHours(); var m = date.getMinutes(); var s = date.getSeconds(); return "".concat(Y).concat(M).concat(D).concat(H).concat(m).concat(s); }; // 获取当前格式化时间字符串 export var getDateStrBySize = function (data, size) { var date = new Date(data); var Y = date.getFullYear(); var M = date.getMonth() + 1; var D = date.getDate(); M = M < 10 ? "0".concat(M) : M; D = D < 10 ? "0".concat(D) : D; var H = date.getHours(); var m = date.getMinutes(); var s = date.getSeconds(); H = H < 10 ? "0".concat(H) : H; m = m < 10 ? "0".concat(m) : m; s = s < 10 ? "0".concat(s) : s; switch (size) { case 'xs': return "".concat(H, ":").concat(m); case 'sm': return "".concat(H, ":").concat(m); case 'md': return "".concat(M, "-").concat(D, " ").concat(H, ":").concat(m); case 'lg': return "".concat(Y, "-").concat(M, "-").concat(D, " ").concat(H, ":").concat(m); default: } }; export var formatStrDate = function (data) { var d = new Date(data); var Y = d.getFullYear(); var M = d.getMonth() + 1; var D = d.getDate(); M = M < 10 ? "0".concat(M) : M; D = D < 10 ? "0".concat(D) : D; var H = d.getHours(); var m = d.getMinutes(); var s = d.getSeconds(); H = H < 10 ? "0".concat(H) : H; m = m < 10 ? "0".concat(m) : m; s = s < 10 ? "0".concat(s) : s; return "".concat(Y, "-").concat(M, "-").concat(D, " ").concat(H, ":").concat(m, ":").concat(s, ".000"); }; // 时间轴循环方法 export var throttle = function (func, wait, opts) { if (wait === void 0) { wait = 16; } if (opts === void 0) { opts = { noStart: false, noEnd: false }; } var context, args, result; var timeout = null; var previous = 0; var later = function () { previous = opts.noStart ? 0 : +new Date(); timeout = null; result = func.apply(context, args); if (!timeout) { context = args = null; } }; return function () { var now = +new Date(); if (!previous && opts.noStart) { previous = now; } var remaining = wait - (now - previous); context = this; args = arguments; if (remaining <= 0 || remaining > wait) { clearTimeout(timeout); timeout = null; previous = now; result = func.apply(context, args); if (!timeout) { context = args = null; } } else if (!timeout && !opts.noEnd) { timeout = setTimeout(later, remaining); } return result; }; }; export function getSeekableBlob(inputBlob, mimeType, callback) { var reader = new Reader(); var decoder = new Decoder(); var tool = tools; var fileReader = new FileReader(); fileReader.onload = function (e) { var ebmlElms = decoder.decode(this.result); ebmlElms.forEach(function (element) { reader.read(element); }); reader.stop(); var refinedMetadataBuf = tool.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues); var body = this.result.slice(reader.metadataSize); var newBlob = new Blob([refinedMetadataBuf, body], { type: mimeType }); callback(newBlob); }; fileReader.readAsArrayBuffer(inputBlob); } //# sourceMappingURL=utils.js.map