From 1c9890402c19d0c8e99d68766f3172df20373c42 Mon Sep 17 00:00:00 2001
From: xc <double72cheng@gmail.com>
Date: Mon, 26 Apr 2021 15:11:09 +0800
Subject: [PATCH] 插件化
---
src/main/resources/public/js/live/livepler.js | 61 +--------
src/main/resources/public/monitor/history.html | 135 ++-------------------
src/main/resources/public/js/history/historypler.js | 124 ++++++++++++++++++++
src/main/resources/public/monitor/live.html | 18 +-
4 files changed, 158 insertions(+), 180 deletions(-)
diff --git a/src/main/resources/public/js/history/historypler.js b/src/main/resources/public/js/history/historypler.js
new file mode 100755
index 0000000..7b39a25
--- /dev/null
+++ b/src/main/resources/public/js/history/historypler.js
@@ -0,0 +1,124 @@
+;!(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;
+
+})()
+
diff --git a/src/main/resources/public/js/live/livepler.js b/src/main/resources/public/js/live/livepler.js
index 2e9cd64..9c00ba3 100755
--- a/src/main/resources/public/js/live/livepler.js
+++ b/src/main/resources/public/js/live/livepler.js
@@ -1,6 +1,5 @@
;!(function () {
-
let _content = $("<div class=\"content\">\n" +
" <div class=\"player\" onmouseover=\"$('.player .control').css('display', 'block')\" onmouseout=\"$('.player .control').css('display', 'none')\">\n" +
" <div class=\"player-wrapper\" id=\"container\" style=\"background-color: #0D0E1B;\">\n" +
@@ -20,7 +19,6 @@
$("#jessibucaContainer").append(_content);
- var video_id;
var stream_path;
var $play = document.getElementById('play');
@@ -32,7 +30,6 @@
var elem;
function Livepler(opt) {
-
opt.elem = document.getElementById(opt.elem);
/*
if (typeof option.elem === 'string') {
@@ -45,79 +42,39 @@
ffurl = opt.ffurl;
}
-
- /**
- * 播放
- * @param video_id
- * @param url
- * @param c
- */
- Livepler.prototype.playVideo = function (video_id, url, c) {
- h5lc = new Jessibuca({container, decoder: ffurl, videoBuffer: 1000});
- h5lc.fullscreen = false
- h5lc.onLoad = function () {
- this.play("ws://172.16.30.113:8082/live/ff80808178af424e0178af44e677000343616d657261.flv")
- }
-/* $.ajax({
+ Livepler.prototype.playVideo = function (video_id) {
+ $.ajax({
type: "get",
- url: url + "?param=" + video_id,
+ url: "../../webapi/media/live?param=" + video_id,
timeout: 5000,
async: false,
success: function (result) {
stream_path=result.streamPath;
- c(result);
$play.style.display = 'none';
$stop.style.display = 'inline';
+
+ h5lc = new Jessibuca({container, decoder: ffurl, videoBuffer: 1000});
h5lc.onLoad = function () {
- //this.play(result.jessicaURL);
- this.play("ws://172.16.30.113:8082/live/ff80808178af424e0178af44e677000343616d657261.flv")
+ this.play(result.jessicaURL);
}
}
- });*/
+ });
}
- /**
- * 播放
- * @param video_id
- * @param url
- * @param c
- */
- Livepler.prototype.closeVideo = function (streamPath, url, c) {
+ Livepler.prototype.closeVideo = function (streamPath) {
this.h5lc.destroy();
if (streamPath && typeof streamPath === "String") {
$.ajax({
type: "get",
- url: url + "?param=" + stream_path,
+ url: "../../webapi/media/stop?param=" + streamPath,
async: false,
success: function (result) {
- c(result);
-
-
this.elem.style.display = 'none';
}
});
}
}
-
- $play.addEventListener('click', function () {
- isPlaying = true;
- h5lc.play("ws://172.16.30.113:8082/live/ff80808178af424e0178af44e677000343616d657261.flv")
- $play.style.display = 'none';
- $stop.style.display = 'inline';
- }, false);
-
- $stop.addEventListener('click', function () {
- if (!isPlaying) {
- return;
- }
- isPlaying = false;
- //stop();
- $play.style.display = 'inline';
- $stop.style.display = 'none';
- }, false);
-
window.Livepler = Livepler;
-
})()
diff --git a/src/main/resources/public/monitor/history.html b/src/main/resources/public/monitor/history.html
index 1d8168d..8a01e2c 100755
--- a/src/main/resources/public/monitor/history.html
+++ b/src/main/resources/public/monitor/history.html
@@ -13,137 +13,34 @@
<body>
-<div id="jessibucaContainerHistory">
- <!-- 播放器 -->
- <div class="player-wrapper" id="container"></div>
- <!-- 时间轴 -->
- <div id="progressTime"></div>
-</div>
+<div id="jessibucaContainerHistory"></div>
<script src="../js/renderer.js"></script>
<script src="../js/jquery.min.js"></script>
<script src="../js/jquery.progressTime.js"></script>
+<script src="../js/history/historypler.js"></script>
<script>
- var video_id;
- var stream_path;
+ window.onkeydown = function () {
+ h5lc.fullscreen = false
+ };
- var hourTimestamp = 3600 * 1000;
- var dayTimestamp = hourTimestamp * 24;
- var currentTimer;
-
- var container = document.getElementById("container");
- let decoder = queryParam('decoder') || 'ff';
-
- var h5lc = new Jessibuca({container, decoder: "../js/jessibuca/ff.js", videoBuffer: 0});
-
-
- $("#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);
- }
+ let historypler =new Historypler({
+ elem:"jessibucaContainerHistory",
+ ffurl:"../js/jessibuca/ff.js",
});
- $(".progressTime-left-b-start").on("click", function () {
- h5lc.play("ws://172.16.30.113:8082/live/ff80808178af424e0178af44e677000343616d657261.flv")
- /* if (currentTimer) {
- $(this).addClass("stop");
- $.ajax({
- url: "" + "?param=",
- async: false,//同步方式发送请求,true为异步发送
- type: "GET",
- data: {},
- success: function (result) {
- alert(result);
- }
- });
- }*/
- });
- $(".progressTime-left-b-start stop").on("click", function () {
- $(this).removeClass("stop");
- });
-
-
- 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
- }
- }
- }
//播放
- function play_video(video_id) {
- window.video_id = video_id;
- window.stream_path = "";
- $.ajax({
- type: "get",
- url: "../../webapi/media/historical?param=" + video_url+"&startTime="+currentTimer,
- timeout: 5000,
- async: false,
- success: function (result) {
- h5lc.onLoad = function () {
- this.play(result.jessica);
- }
- window.streamPath = result.streamPath;
- }
- });
- }
-
- //关闭
- function close_video(streamPath) {
- h5lc.destroy();
- if (streamPath) {
- $.ajax({
- type: "get",
- url: "../../webapi/media/stop?param=" + streamPath,
- async: false,
- success: function (result) {
- }
- });
- }
- }
-
+ $(".progressTime-left-b-start").on("click", function () {
+ //TODO:historypler.playVideo();
+ });
+ //暂停 关闭流
+ $(".progressTime-left-b-start stop").on("click", function () {
+ $(this).removeClass("stop");
+ //TODO:historypler.closeVideo()
+ });
</script>
</body>
diff --git a/src/main/resources/public/monitor/live.html b/src/main/resources/public/monitor/live.html
index 57fc911..a9988d0 100755
--- a/src/main/resources/public/monitor/live.html
+++ b/src/main/resources/public/monitor/live.html
@@ -24,24 +24,24 @@
<script>
- var $close = document.getElementById('close');
+ window.onkeydown = function () {
+ h5lc.fullscreen = false
+ };
+
+ var $jessibucaContainer = document.getElementById('jessibucaContainer');
let livepler =new Livepler({
elem:"jessibucaContainer",
ffurl:"../js/jessibuca/ff.js",
- })
+ });
//播放
//livepler.playVideo()
window.onload=function() {
- livepler.playVideo();
- }
+ //TODO:livepler.playVideo();
+ };
//关闭
$close.addEventListener('click', function () {
- if (!isPlaying) {
- return;
- }
- isPlaying = false;
- //livepler.closeVideo()
+ //TODO:livepler.closeVideo()
$jessibucaContainer.style.display = 'none';
}, false);
--
Gitblit v1.9.1