;!(function () {
|
let _content = $("" +
|
"<div class=\"player-wrapper\" id=\"container\"></div>\n" +
|
"<div id=\"progressTime\"></div>");
|
$("#jessibucaContainerHistory").append(_content);
|
|
var stream_path;
|
|
var hourTimestamp = 3600 * 1000;
|
var dayTimestamp = hourTimestamp * 24;
|
var currentTimer;
|
|
let decoder = queryParam('decoder') || 'ff';
|
|
|
var container = document.getElementById("container");
|
var h5lc;
|
var ffurl;
|
var elem;
|
|
function Historypler(opt) {
|
if (typeof option.elem === 'string') {
|
opt.elem = document.getElementById(opt.elem);
|
}
|
if (!option.elem) {
|
throw new Error('需要容器');
|
return;
|
}
|
elem = opt.elem;
|
ffurl = opt.ffurl;
|
}
|
|
$("#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);
|
}
|
});
|
|
|
Historypler.prototype.playVideo = function (video_id, starttime) {
|
$.ajax({
|
type: "get",
|
url: "../../webapi/media/live?param=" + video_id + "&startTime=" + starttime,
|
timeout: 5000,
|
async: false,
|
success: function (result) {
|
stream_path = result.streamPath;
|
$play.style.display = 'none';
|
$stop.style.display = 'inline';
|
h5lc.onLoad = function () {
|
h5lc = new Jessibuca({container, decoder: ffurl, videoBuffer: 1000});
|
this.play()
|
this.play(result.jessicaURL);
|
}
|
}
|
});
|
|
}
|
|
Historypler.prototype.closeVideo = function (streamPath) {
|
this.h5lc.destroy();
|
if (streamPath && typeof streamPath === "String") {
|
$.ajax({
|
type: "get",
|
url: "../../webapi/media/stop?param=" + streamPath,
|
async: false,
|
success: function (result) {
|
this.elem.style.display = 'none';
|
}
|
});
|
}
|
}
|
|
|
function queryParam(name, url) {
|
var search = window.location.search;
|
var qArr = '';
|
var key = {};
|
if (url) {
|
qArr = url.split("?")[1].split("&")
|
} else {
|
if (!window.location.search) {
|
return
|
}
|
qArr = search.substr(1).split("&")
|
}
|
for (var i = 0; i < qArr.length; i++) {
|
|
var firstPos = qArr[i].indexOf('=');
|
key[qArr[i].slice(0, firstPos)] = qArr[i].slice(firstPos + 1)
|
}
|
if (name) {
|
return key[name]
|
} else {
|
if (url) {
|
return key[name]
|
} else {
|
return key
|
}
|
}
|
}
|
|
window.Historypler = Historypler;
|
|
})()
|