;!(function () { function Historypler(opt) { if (typeof opt.elem === 'string') { opt.elem = document.getElementById(opt.elem); } if (!opt.elem) { throw new Error('需要容器'); return; } this.elem = opt.elem; appendContent(this.elem); let stream_path; let ffurl = opt.ffurl; let code = opt.code; let container = document.getElementById("container"); let h5lc = new Jessibuca({container, decoder: ffurl, videoBuffer: 0}); let hourTimestamp = 3600 * 1000; let dayTimestamp = hourTimestamp * 24; let currentTimer; //时间轴 $("#progressTime").ProgressTime({ container: "progressTime", startTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 3), "YYYY/MM/DD 00:00:00")), endTime: new Date(formatDate(new Date(), "YYYY/MM/DD 00:00:00")), currentTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 2), "YYYY/MM/DD 12:00:00")), interval: 300, delay: 2000, isNow: false, // 是否显示右侧回到当前时间 toPlay: false, // 渲染是否完成 animateFinish: false, // 动画是否完成 callback: function (config) { console.log(config); currentTimer = config.time; }, animateCallback: function (config) { // 假如动画完成之后请求数据需要两秒 var timer = setTimeout(function () { progressTime.options.toPlay = false; // 两秒之后再继续走播放条 clearTimeout(timer); }, 0); } }); //播放 $(".progressTime-left-b-start").on("click", function () { historypler.playVideo(code,currentTimer,function (result) { h5lc.onLoad = function () { this.play(result.jessicaURL); } }); }); let than = this; //暂停(关闭流) $(".progressTime-left-b-start stop").on("click", function () { $(this).removeClass("stop"); h5lc.destroy(); than.closeVideo(stream_path) than.elem.style.display = 'none'; }); } //文本添加 function appendContent(element) { let _content = "
\n" + ""; element.innerHTML = _content; } //播放 Historypler.prototype.playVideo = function (video_id,starttime, callback) { $.ajax({ type: "get", //url: "../../webapi/media/live?param=" + video_id, url: "../../monica/history?param=" + video_id+ "&startTime=" + starttime, timeout: 5000, async: false, success: function (result) { callback(result); } }); }; //关闭流 Historypler.prototype.closeVideo = function (streamPath) { if (streamPath && typeof streamPath === "string") { $.ajax({ type: "get", //url: "../../webapi/media/stop?param=" + streamPath, url: "../../monica/stop?param=" + streamPath, async: false, success: function (result) { } }); } }; Historypler.prototype.close = function () { this.closeVideo(this.stream_path); }; window.Historypler = Historypler; })()