;!(function () {
|
|
function HistoryComponent(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 cameraId = opt.cameraId;
|
|
let container = document.getElementById("container");
|
|
let h5lc = new Jessibuca({container, decoder: "js/jessibuca/ff.js", 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 () {
|
if (opt.rtspUrl){
|
let rtspUrl = opt.rtspUrl;
|
historyComponent.playVideoRTSP(rtspUrl,currentTimer,function (result) {
|
h5lc.play(result.jessicaURL)
|
});
|
}else {
|
historyComponent.playVideo(cameraId,currentTimer,function (result) {
|
h5lc.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 = "<div class=\"player-wrapper\" id=\"container\"></div>\n" +
|
"<div id=\"progressTime\"></div>";
|
element.innerHTML = _content;
|
}
|
|
//播放 - 针对摄像头id
|
HistoryComponent.prototype.playVideo = function (video_id,starttime, callback) {
|
$.ajax({
|
type: "get",
|
url: "../../monica/history?param=" + video_id+ "&startTime=" + starttime+"&endTime=",
|
timeout: 5000,
|
async: false,
|
success: function (result) {
|
callback(result);
|
}
|
});
|
};
|
//播放 - 针对rtsp
|
HistoryComponent.prototype.playVideoRTSP = function (rtspURL,starttime, callback) {
|
$.ajax({
|
type: "get",
|
url: "../../monica/rtsp/history?param=" + rtspURL+ "&startTime=" + starttime+"&endTime=",
|
timeout: 5000,
|
async: false,
|
success: function (result) {
|
callback(result);
|
}
|
});
|
};
|
|
//关闭流
|
HistoryComponent.prototype.closeVideo = function (streamPath) {
|
if (streamPath && typeof streamPath === "string") {
|
$.ajax({
|
type: "get",
|
url: "../../monica/stop?param=" + streamPath,
|
async: false,
|
success: function (result) {
|
}
|
});
|
}
|
};
|
|
HistoryComponent.prototype.close = function () {
|
this.closeVideo(this.stream_path);
|
};
|
|
window.HistoryComponent = HistoryComponent;
|
|
})()
|