From 4f602f9650287d7bcf9e8c28d9a0a3d4a4e5199a Mon Sep 17 00:00:00 2001
From: xc <double72cheng@gmail.com>
Date: Tue, 27 Apr 2021 10:31:35 +0800
Subject: [PATCH] 历史监控
---
src/main/resources/public/js/history/historypler.js | 164 +++++++++++++++++++++++++-----------------------------
1 files changed, 75 insertions(+), 89 deletions(-)
diff --git a/src/main/resources/public/js/history/historypler.js b/src/main/resources/public/js/history/historypler.js
index 7b39a25..5c88ae1 100755
--- a/src/main/resources/public/js/history/historypler.js
+++ b/src/main/resources/public/js/history/historypler.js
@@ -1,122 +1,108 @@
;!(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') {
+ if (typeof opt.elem === 'string') {
opt.elem = document.getElementById(opt.elem);
}
- if (!option.elem) {
+ if (!opt.elem) {
throw new Error('需要容器');
return;
}
- elem = opt.elem;
- ffurl = opt.ffurl;
- }
+ this.elem = opt.elem;
+ appendContent(this.elem);
- $("#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) {
+ let stream_path;
+ let ffurl = opt.ffurl;
+ let code = opt.code;
+ let container = document.getElementById("container");
- // 假如动画完成之后请求数据需要两秒
- var timer = setTimeout(function () {
- progressTime.options.toPlay = false; // 两秒之后再继续走播放条
- clearTimeout(timer);
- }, 0);
- }
- });
+ let h5lc = new Jessibuca({container, decoder: ffurl, videoBuffer: 0});
+ let hourTimestamp = 3600 * 1000;
+ let dayTimestamp = hourTimestamp * 24;
+ let currentTimer;
- 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';
+ //时间轴
+ $("#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 () {
- h5lc = new Jessibuca({container, decoder: ffurl, videoBuffer: 1000});
- this.play()
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 = "<div class=\"player-wrapper\" id=\"container\"></div>\n" +
+ "<div id=\"progressTime\"></div>";
+ 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) {
- this.h5lc.destroy();
- if (streamPath && typeof streamPath === "String") {
+ if (streamPath && typeof streamPath === "string") {
$.ajax({
type: "get",
- url: "../../webapi/media/stop?param=" + streamPath,
+ //url: "../../webapi/media/stop?param=" + streamPath,
+ url: "../../monica/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;
--
Gitblit v1.9.1