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