Monica视频监控处理程序
xc
2021-04-29 416daf0fa191376828fe22dd612916e7e7a5023a
修改精确时间 更改时间轴
5 files modified
109 ■■■■■ changed files
src/main/resources/public/css/jeLocalDate.css 6 ●●●● patch | view | raw | blame | history
src/main/resources/public/css/progressTime.css 2 ●●● patch | view | raw | blame | history
src/main/resources/public/js/history/historyComponent.js 82 ●●●● patch | view | raw | blame | history
src/main/resources/public/js/jquery.progressTime.js 12 ●●●● patch | view | raw | blame | history
src/main/resources/public/monitor/history.html 7 ●●●●● patch | view | raw | blame | history
src/main/resources/public/css/jeLocalDate.css
@@ -1,9 +1,9 @@
.jeitem {
    width: 200px;
    height: 200px;
    height: 300px;
    position: absolute;
    left: 1120px;
    top: 1040px;
    left: 1130px;
    top: 900px;
    bottom: 680px;
    right: 0;
    margin: auto;
src/main/resources/public/css/progressTime.css
@@ -16,7 +16,7 @@
#progressTime {
    height: 50px;
    width: 80%;
    width: 50%;
    border: 1px red solid;
    margin: 148px auto 0 auto;
    display: flex;
src/main/resources/public/js/history/historyComponent.js
@@ -9,27 +9,27 @@
            return;
        }
        this.elem = opt.elem;
        //appendContent(this.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 h5lc = new Jessibuca({container, decoder: "js/jessibuca/ff.js", videoBuffer: 0});
        //创建时间轴
        let currentTimer;
        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")),
            startTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 1), "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")),
            currentTime: new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 1.5), "YYYY/MM/DD 12:00:00")),
            interval: 300,
            delay: 2000,
            hoursInterval: 1,//时间间隔
            isNow: false, // 是否显示右侧回到当前时间
            toPlay: false, // 渲染是否完成
            animateFinish: false, // 动画是否完成
@@ -46,16 +46,62 @@
            }
        });
        let progressTimelayer = window.progressTime;
        let beginDateStr=new Date(formatDate(new Date(new Date().getTime() - dayTimestamp * 1), "YYYY/MM/DD 00:00:00"));
        let endDateStr= new Date(formatDate(new Date(), "YYYY/MM/DD 00:00:00"));
        //创建精确时间选择器
        jeDate("#currentTimer",{
            festival:false,                     //是否显示农历节日
            minDate:"1900-01-01",              //最小日期
            maxDate:"2099-12-31",              //最大日期
            method:{
                choose:function (params) {
                }
            },
            donefun:function(obj) {
                currentTimer=obj.val;
                let flag = compareTime(beginDateStr,endDateStr,currentTimer);
                if (flag) {
                    //只有在指定时间才刷新指针位置
                    progressTimelayer.setTime({
                        time:currentTimer,//指针显示时间
                        timer:currentTimer,//指针位置计算时间
                        originalEvent:{
                            layerX:undefined,
                        },
                        type:"",
                    });
                    progressTimelayer.resize();
                }
            },
            format: "YYYY-MM-DD hh:mm:ss"
        });
        //判断时间是否属于区间内
        function compareTime(begin,end,timer){
            var date1 = Date.parse(new Date(begin));
            var date2 = Date.parse(new Date(end));
            var time = Date.parse(new Date(timer));
            if (date1<time&&date2>time) {
                return true;
            };
            return false;
        }
        //播放
        $(".progressTime-left-b-start").on("click", function () {
            if (opt.rtspUrl){
                let rtspUrl = opt.rtspUrl;
                historyComponent.playVideoRTSP(rtspUrl,currentTimer,function (result) {
                    h5lc.play(result.jessicaURL)
                    stream_path=result.streamPath;
                });
            }else {
                historyComponent.playVideo(cameraId,currentTimer,function (result) {
                    h5lc.play(result.jessicaURL)
                    stream_path=result.streamPath;
                });
            }
        });
@@ -73,8 +119,13 @@
    //文本添加
    function appendContent(element) {
        let _content = "<div class=\"player-wrapper\" id=\"container\"></div>\n" +
            "<div id=\"progressTime\"></div>";
        let _content = "    <div class=\"player-wrapper\" id=\"container\"></div>\n" +
            "    <div id=\"progressTime\"></div>\n" +
            "    <div class=\"jeitem\">\n" +
            "        <label class=\"jelabel\">精准时间查找</label>\n" +
            "        <div class=\"jeinpbox\"><input type=\"text\" class=\"jeinput\" id=\"currentTimer\" placeholder=\"选择时间\">\n" +
            "        </div>\n" +
            "    </div>";
        element.innerHTML = _content;
    }
@@ -120,19 +171,6 @@
        this.closeVideo(this.stream_path);
    };
    //精确时间选择器
    jeDate("#currentTimer",{
        festival:false,                     //是否显示农历节日
        minDate:"1900-01-01",              //最小日期
        maxDate:"2099-12-31",              //最大日期
        method:{
            choose:function (params) {
            }
        },
        format: "YYYY-MM-DD hh:mm:ss"
    });
    window.HistoryComponent = HistoryComponent;
src/main/resources/public/js/jquery.progressTime.js
@@ -162,10 +162,16 @@
        typeof this.options.callback === "function" && this.options.callback(config);
    }
    ProgressTime.prototype.setTime = function (e) {
        var layerX = e && e.originalEvent.layerX;
        var type = e && e.type;
        var layerX= e && e.originalEvent.layerX;
        var type=e && e.type;;
        var tooltipTimestamp;
        if (e&&e.timer){
            let timer = new Date(formatDate(new Date(e.timer), "YYYY/MM/DD HH:00:00"));
            tooltipTimestamp=timer;
        }else {
            tooltipTimestamp = this.currentTimeTemp || this.currentTime.getTime(); // 返回当前的时间的时间戳
        }
        var hoursWidth = $("." + this.id + "-center-t-ul li")[0].getBoundingClientRect().width / 24; // 计算每个小时所占的宽度
        var tooltipTimestamp = this.currentTimeTemp || this.currentTime.getTime(); // 返回当前的时间的时间戳
        var num = Math.floor((tooltipTimestamp - this.startTime.getTime()) / hourTimestamp); // 计算出多少小时
        num = layerX !== undefined ? Math.round(layerX / hoursWidth) : num;
        var progressWidth = num * hoursWidth; // 计算出时间条的长度
src/main/resources/public/monitor/history.html
@@ -16,13 +16,6 @@
<!--jessiebuca播放器 录像 -->
<div id="jessibucaContainerHistory">
    <div class="player-wrapper" id="container"></div>
    <div id="progressTime"></div>
    <div class="jeitem">
        <label class="jelabel">时间选择</label>
        <div class="jeinpbox"><input type="text" class="jeinput" id="currentTimer" placeholder="YYYY-MM-DD hh:mm:ss">
        </div>
    </div>
</div>