From aad105ac4cc88813faedf25b5a925acbb63a74e4 Mon Sep 17 00:00:00 2001
From: xc <double72cheng@gmail.com>
Date: Mon, 26 Apr 2021 13:55:03 +0800
Subject: [PATCH] 直播监控组装
---
src/main/resources/public/js/live/livepler.js | 157 ++++++++++++++++++++++++++++++----------------------
1 files changed, 90 insertions(+), 67 deletions(-)
diff --git a/src/main/resources/public/js/live/livepler.js b/src/main/resources/public/js/live/livepler.js
index cfa787c..45ea328 100755
--- a/src/main/resources/public/js/live/livepler.js
+++ b/src/main/resources/public/js/live/livepler.js
@@ -1,37 +1,101 @@
-!(function () {
-
+;!(function () {
window.onkeydown = function () {
h5lc.fullscreen = false
}
- var $toolbar = document.getElementById('toolbar');
- var $fullscreenId = document.getElementById('fullscreenId');
+
+ 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" +
+ " </div>\n" +
+ " <div class=\"control\">\n" +
+ " <div class=\"fa fa-play\" id=\"play\"></div>\n" +
+ " <div class=\"fa fa-stop\" id=\"stop\" style=\"display: none\"></div>\n" +
+ " <div class=\"timer\">\n" +
+ " <span class=\"progress_timer\">00:00:00</span>\n" +
+ " <span class=\"duration_timer\">00:00:00</span>\n" +
+ " </div>\n" +
+ " <div class=\"fa fa-expand expand\" onclick=\"h5lc.fullscreen=true\"></div>\n" +
+ " <div class=\"fa fa-close\" id=\"close\"></div>\n" +
+ " </div>\n" +
+ " </div>\n" +
+ " </div>");
+ $("#jessibucaContainer").append(_content);
+
+
+ var video_id;
+ var stream_path;
var $play = document.getElementById('play');
var $stop = document.getElementById('stop');
+ var $close = document.getElementById('close');
var container = document.getElementById("container");
+ var h5lc;
- var isPlaying = false;
- let source = queryParam('source') || 'localhost';
-
- var h5lc = new Jessibuca({container, decoder: "../js/jessibuca/ff.js", videoBuffer: 1});
-
- h5lc.onLoad = function () {
- //this.play("wss://pulls.1234326.cn/live/L01.flv")
- //this.play("ws://localhost:8080/live/test.flv")
- //this.play("ws://" + source + ":8080/live/" + stream)
- //this.play("ws://pull3.afb1188.com/live/" + stream + ".flv")
- //this.play("ws://pull2.afb1188.com/live/" + stream + ".flv")
+ function Livepler(opt) {
+ if (typeof option.elem === 'string') {
+ opt.elem = document.getElementById(opt.elem);
+ }
+ if (!option.elem) {
+ throw new Error('需要容器');
+ return;
+ }
+ this.elem = opt.elem;
+ let ffurl = opt.ffurl;
+ h5lc = new Jessibuca({container, decoder: ffurl, videoBuffer: 1000});
}
- //自动加载播放
- h5lc.onPlay = function () {
- isPlaying = true;
- $play.style.display = 'none';
- $stop.style.display = 'inline';
+
+ /**
+ * 播放
+ * @param video_id
+ * @param url
+ * @param c
+ */
+ Livepler.prototype.playVideo = function (video_id, url, c) {
+ windows.video_id = video_id;
+ $.ajax({
+ type: "get",
+ url: url + "?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.onLoad = function () {
+ //this.play(result.jessicaURL);
+ this.play("ws://172.16.30.113:8082/live/ff80808178af424e0178af44e677000343616d657261.flv")
+ }
+ }
+ });
}
- //点击播放按钮播放
+ /**
+ * 播放
+ * @param video_id
+ * @param url
+ * @param c
+ */
+ Livepler.prototype.closeVideo = function (streamPath, url, c) {
+ this.h5lc.destroy();
+ if (streamPath && typeof streamPath === "String") {
+ $.ajax({
+ type: "get",
+ url: url + "?param=" + stream_path,
+ 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")
@@ -39,58 +103,17 @@
$stop.style.display = 'inline';
}, false);
- //点击播放停止
$stop.addEventListener('click', function () {
+ if (!isPlaying) {
+ return;
+ }
isPlaying = false;
//stop();
$play.style.display = 'inline';
$stop.style.display = 'none';
}, false);
- function stop() {
- $.get("http://127.0.0.1:8088/monica/video/stop?param=live/test", function () {
- h5lc.close()
- }
- );
- }
+ window.Livepler = Livepler;
- 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
- }
- }
- }
-
- //工具栏 鼠标定位隐藏
- $toolbar.onmouseover(function () {
- $(".player .control").css("display", "block")
- })
- $toolbar.onmouseout(function () {
- $(".player .control").css("display", "none")
- })
- $fullscreenId.onclick(function () {
- h5lc.fullscreen=true
- })
-
-})();
--
Gitblit v1.9.1