移动新ui
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

814 lines
29 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/common/ctx.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html xmls="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<title>视频播放 </title>
<script type="text/javascript" src="${ctx }/js/jquery-3.7.0.min.js"></script>
<script>
if(window.location.protocol == 'https:'){
$("head").append('<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />');
}
</script>
<!-- 字体图标 -->
<link href="${ctx}/assets/font-awesome/css/font-awesome.min.css" rel="stylesheet"/>
<link href="${ctx}/assets/ionicon/css/ionicons.min.css" rel="stylesheet"/>
<link href="${ctx}/css/material-design-iconic-font.min.css" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="${ctx }/hbcyjc/resource/css/cjy_style.css" />
<link type="text/css" rel="stylesheet" href="${ctx }/hbcyjc/resourceNew/css/cjy_style.css"/>
<link type="text/css" rel="stylesheet" href="${ctx }/hbcyjc/resourceNew/css/cjy_style2.css" />
<link type="text/css" rel="stylesheet" href="${ctx }/hbcyjc/resourceNew/css/cjy_zlmxg.css" />
<!--独立的 视频播放页面(树 + 播放)-->
<style scoped>
html, body {
padding: 0;
margin: 0;
height: 100%;
}
#_center {
box-sizing: border-box;
height: 100%;
width: 100%;
margin: 0 auto;
}
#_center .k-splitbar-horizontal {
width: 10px !important;
border-width: 0 0 0 1px !important;
}
#play_center {
box-sizing: border-box;
}
.inline > label {
cursor: pointer;
}
.ztree li span.button.rootIcon_ico_open, .ztree li span.button.rootIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/root.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.districtIcon_ico_open, .ztree li span.button.districtIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/district.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.scenicnoAIcon_ico_open, .ztree li span.button.scenicnoAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/0A.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.scenicAIcon_ico_open, .ztree li span.button.scenicAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/1A.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.scenicAAIcon_ico_open, .ztree li span.button.scenicAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/2A.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.scenicAAAIcon_ico_open, .ztree li span.button.scenicAAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/3A.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.scenicAAAAIcon_ico_open, .ztree li span.button.scenicAAAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/4A.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.scenicAAAAAIcon_ico_open, .ztree li span.button.scenicAAAAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/5A.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.hotelnoAIcon_ico_open, .ztree li span.button.hotelnoAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/0A-checked.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.hotelAIcon_ico_open, .ztree li span.button.hotelAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/1A-checked.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.hotelAAIcon_ico_open, .ztree li span.button.hotelAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/2A-checked.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.hotelAAAIcon_ico_open, .ztree li span.button.hotelAAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/3A-checked.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.hotelAAAAIcon_ico_open, .ztree li span.button.hotelAAAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/4A-checked.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.hotelAAAAAIcon_ico_open, .ztree li span.button.hotelAAAAAIcon_ico_close {
margin-right: 2px;
background: url(/tourResource/images/video/5A-checked.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.issueIcon_ico_docu {
margin-right: 1px;
background: url(/tourResource/images/video/issue.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li span.button.normalIcon_ico_docu {
margin-right: 1px;
background: url(/tourResource/images/video/normal.png) no-repeat scroll 0 0 transparent;
vertical-align: top;
*vertical-align: middle
}
.ztree li a {
color: #fff !important;
}
#play_tool {
list-style: none;
width: 100%;
height: 100%;
padding-top: 5px;
padding-left: 20px;
}
#play_tool li {
width: 46px;
height: 100%;
float: left;
margin-right: 10px;
cursor: pointer;
}
#play_tool li:first-child {
background: url("/tourResource/images/video/grid-1.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(2) {
background: url("/tourResource/images/video/grid-4.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(3) {
background: url("/tourResource/images/video/grid-6.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(4) {
background: url("/tourResource/images/video/grid-16.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:first-child.active {
background: url("/tourResource/images/video/grid-1-active.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(2).active {
background: url("/tourResource/images/video/grid-4-active.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(3).active {
background: url("/tourResource/images/video/grid-6-active.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(4).active {
background: url("/tourResource/images/video/grid-16-active.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:first-child:hover {
background: url("/tourResource/images/video/grid-1-active.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(2):hover {
background: url("/tourResource/images/video/grid-4-active.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(3):hover {
background: url("/tourResource/images/video/grid-6-active.png") no-repeat;
background-size: 35px 35px;
}
#play_tool li:nth-child(4):hover {
background: url("/tourResource/images/video/grid-16-active.png") no-repeat;
background-size: 35px 35px;
}
</style>
<link rel="stylesheet"
href="${ctx }/oss/tourism-projects/static/css/zTreeStyle.css">
<link type="text/css" rel="stylesheet"
href="${ctx }/oss/screen/skins/static/plugins/playUtil/css/playerUtil.css">
<script src="${ctx }/oss/screen/skins/static/plugins/playUtil/ckplayer/jquery-smartMenu.js"></script>
<script src="${ctx }/oss/screen/skins/static/plugins/playUtil/ckplayer/ckplayer.js"></script>
<!--<script src="/oss/screen/skins/static/plugins/playUtil/ckplayer/playUtil_v2.js"></script>-->
<script src="${ctx }/tourResource/js/video/playUtil_v2.js"></script>
<script src="${ctx }/oss/tourism-projects/static/js/jquery.ztree.core.js"></script>
<script src="${ctx }/oss/tourism-projects/static/js/jquery.slimscroll.min.js"></script>
<style>
.video-win {
background: rgba(0, 0, 0, .4);
position: absolute;
bottom: 0;
width: 100%;
height: 30px;
line-height: 30px;
text-align: center;
color: #fff;
}
.video-win-record {
position: absolute;
margin-left: 10px;
}
.video-win-record-stop {
background: url(http://enjoy-skins.oss-cn-hangzhou.aliyuncs.com/screen/skins/static/plugins/playUtil/ckplayer/stop.png) no-repeat center center;
background-size: 20px 20px;
display: inline-block;
width: 20px;
height: 20px;
margin-left: 15px;
position: relative;
top: 5px;
}
.loading .gif {
height: 100%;
width: 100%;
text-align: center;
color: #15b2ff;
font-weight: bold;
font-size: 18px;
}
.loading {
position: absolute;
width: 300px;
height: 60px;
left:calc(50% - 150px);
top:120px;
background: rgba(0,0,0,.3);
z-index: 999;
padding-top:5px;
border-radius: 10px;
display: none;
}
</style>
</head>
<body>
<div class="xingk"></div>
<%@include file="/common/menu.jsp" %>
<div style="margin-right: 5%;height:calc(100vh - 145px);">
<div style="height: 100%;width:18%; overflow-y: auto;margin-left: 20px;float: left;border-right: 4px solid #fff;"
id="treelist_div">
<ul id="ztree" class="ztree">
</ul>
</div>
<input type="hidden" id="region" value="${region }" />
<div style="width: 80%;height:100%; padding: 10px;float: right;position: relative;">
<div style="height: 50px;width: 100%;" class="video-icon">
<ul id="play_tool">
<li title="1*1" onClick="setRowCol(1,1);"></li>
<li title="2*2" class="active" onClick="setRowCol(2,2);"></li>
<li title="3*3" onClick="setRowCol(3,3);"></li>
<!--<li title="4*4" onClick="setRowCol(4,4);"></li>-->
</ul>
</div>
<!---关键部位-->
<div id="video-content"></div>
</div>
</div>
<script type="text/javascript">
var totalNum = 4;
$(function () {
initVideo();
//asyncLoadData();
$("#play_tool li").click(function () {
var index = $(this).index();
$("#play_tool").find("li").removeClass("active");
$("#play_tool").find("li").eq(index).addClass("active");
});
});
function initVideo() {
if (I_CheckPluginVersion()) {//检查是否安装或者flash
var playerDirectory = "/tourResource/";
var directory = "/oss/screen/skins/static/plugins/playUtil/";
setDirectory(directory);
setPlayerDirectory(playerDirectory);
var options = {
topElementId: "video-content",
elementId: "video-content",
maxRow: 4,
maxColumn: 4,
szWidth: '100%',
szHeight: 'calc(100% - 50px)',
subBorder: '#fff',
panelAppendHTML: '<div class="video-win"><div class="video-win-record video-win-content"></div><div class="video-win-title video-win-content"></div></div>'
// videoScale: "4:3,16:9,满屏"
};
I_initPlugin(options);
I_stylePlayer({row: 2, column: 2});
totalNum = 4;
//自定义播放器右键
var rightMenuData = [
[{
text: "全屏播放",
iconUrl: '/oss/bigscreen/video/images/if-full-screen.png',
func: function () {
I_FullScreen();
}
}, {
text: "关闭播放",
iconUrl: '/oss/bigscreen/video/images/close-player.png',
func: function () {
I_Stop();
}
}, {
text: "全部关闭",
iconUrl: '/oss/bigscreen/video/images/all-close-player.png',
func: function () {
I_StopAll();
}
},
{
text: '多窗口全屏播放',
iconUrl: '/oss/bigscreen/video/images/mul-screen.png',
func: function () {
I_MultiFullScreen();
}
}, {
text: '重新连接',
iconUrl: '/oss/bigscreen/video/images/reconnection.png',
func: function () {
I_Reconnect();
}
},
{
text: '按比例播放',
iconUrl: '/oss/bigscreen/video/images/mul-screen.png',
data: [
[
{
text: '满屏',
func: function () {
I_setPlayerResize();
}
},
{
text: '4:3',
func: function () {
I_setPlayerResize(4, 3);
}
},
{
text: '16:9',
func: function () {
I_setPlayerResize(16, 9);
}
},
{
text: '自定义',
className: 'smart_disabled'//鼠标不可点击啊添加此属性
}
]
]
},
{
text: "清晰度",
iconUrl: '/oss/bigscreen/video/images/definition.png',
data: [
[
{
text: '标清',
func: function () {
I_setDefinition(0);
}
},
{
text: '高清',
func: function () {
I_setDefinition(1);
}
}
]
]
}
],
[
{
text: "取消"
}
]
];
//自定义播放器右键
var rightMenuWithRecordData = [
[
{
text: "全屏播放",
iconUrl: '/oss/bigscreen/video/images/if-full-screen.png',
func: function () {
I_FullScreen();
}
},
{
text: "关闭播放",
iconUrl: '/oss/bigscreen/video/images/close-player.png',
func: function () {
I_Stop();
}
},
{
text: "全部关闭",
iconUrl: '/oss/bigscreen/video/images/all-close-player.png',
func: function () {
I_StopAll();
}
},
{
text: '多窗口全屏播放',
iconUrl: '/oss/bigscreen/video/images/mul-screen.png',
func: function () {
I_MultiFullScreen();
}
},
{
text: '重新连接',
iconUrl: '/oss/bigscreen/video/images/reconnection.png',
func: function () {
I_Reconnect();
}
},
{
text: '按比例播放',
iconUrl: '/oss/bigscreen/video/images/mul-screen.png',
data: [
[
{
text: '满屏',
func: function () {
I_setPlayerResize();
}
},
{
text: '4:3',
func: function () {
I_setPlayerResize(4, 3);
}
},
{
text: '16:9',
func: function () {
I_setPlayerResize(16, 9);
}
},
{
text: '自定义',
className: 'smart_disabled'//鼠标不可点击啊添加此属性
}
]
]
},
{
text: "清晰度",
iconUrl: '/oss/bigscreen/video/images/definition.png',
data: [
[
{
text: '标清',
func: function () {
I_setDefinition(0);
}
},
{
text: '高清',
func: function () {
I_setDefinition(1);
}
}
]
]
},
{
text: "录制视频",
iconUrl: '/oss/bigscreen/video/images/record_video.png',
func: function () {
I_StartRecordVideo()
}
},
{
text: "视频截图",
iconUrl: '/oss/bigscreen/video/images/screenShot.png',
func: function () {
I_StartShotVideo()
}
}
],
[
{
text: "取消"
}
]
];
if ("0" && "0" == 1) {
I_initRightMenu(rightMenuWithRecordData);
}else {
I_initRightMenu(rightMenuData);
}
}
else document.write('<div id="flushNOWarn" style="color: rgb(0, 102, 204); text-align: center;">您没有安装flash插件,无法播放视频,<a href="http://www.macromedia.com/go/getflashplayer" target="_blank">请点击此处下载安装最新的flash插件</a></div>');
}
// function I_RecordVideo(url, recordMinutes, iWndIndex) {
// iWndIndex = iWndIndex || smart_currentRightMenuIndex;
// alert(iWndIndex);
// }
function getDetailPlayVideo() {
$.ajax({
type: "get",
url: "/tapi/video/getDetailPlayVideo",
success: function (data) {
var playNum = 0;
for (var index = 0; index < data.length; index++) {
var obj = data[index];
if (index < totalNum && obj.rtmpAddress) {
play(obj.rtmpAddress, index);
playNum++;
}
}
},
error: function () {
notify("获取默认播放的资源错误", "error", true);
}
});
}
</script>
<script>
/******Ztree Start
function asyncLoadData() {
var setting = {
view: {
showTitle: true,
showIcon: true,
showLine: true,
nameIsHTML: true,
fontCss: {size: 50},
dblClickExpand: false
},
async: {
enable: true,
url: 'http://localhost:8080/video/tree.json',
type: "get",
autoParam: ["id"], //自动提交的参数
// dataFilter: filter
},
callback: {
onClick: zTreeOnClick,
onRightClick: zTreeOnRightClick,
// onDblClick: zTreeOnDblClick,
onAsyncSuccess: onAsyncSuccess
}
};
$.fn.zTree.init($("#ztree"), setting);
}******/
$(document).ready(function(){
initMyZtree();
});
URL = "${ctx}/zhspjkvideomanage/getzhspjklist.do";
var zNodes="";
var setting = {
view: {
selectedMulti: false
},
async: {
enable: true,
type : "get",
url:URL,
autoParam: ["id"]
},
callback : {
onClick: zTreeOnClick,
onRightClick: zTreeOnRightClick,
onAsyncSuccess: onAsyncSuccess
}
};
function initMyZtree(){
var id = "${id}";
alert(id);
URL = "${ctx}/zhspjkvideomanage/getzhspjklist.do?id="+id;
$.ajax({
type: "POST",
dataType: "json",
url: URL,
success: function(data) {
zNodes=data;
$.fn.zTree.init($("#ztree"), setting, zNodes);
}
});
}
/******Ztree End ******/
//默认9个窗口播放
var playMany = false;
function zTreeOnClick(event, treeId, treeNode) {
$(".curSelectedNode").removeClass("curSelectedNode"); //该行去掉了节点被选中后的背景色
//var hasChildren = treeNode.hasChildren;
var rtmpurl = treeNode.id;
if (rtmpurl != null) {//判断不是数字
if (rtmpurl && rtmpurl[0]) {
var videoName = treeNode.name;
videoNodePlay(rtmpurl, videoName);
} else {
notify("该视频暂无法进行播放", "warning");
}
   } else {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
treeObj.expandNode(treeNode);
}
}
function zTreeOnDblClick(event, treeId, treeNode) {
}
/*播放多个视频(双击选择非底部子节点)*/
function playManyVideo(event, treeId, treeNode) {
var selectValue = treeNode.id;
var url = "/tapi/video/videoPlayList?sort=b.object_level,desc";
if (selectValue != null) url = url + "&id=" + treeNode.id + "&type=" + treeNode.type + "&size=" + totalNum + "&areaId=130000000000&t=" + Math.random();
$http.get(url, {}, function (data) {
if (data) {
var playList = "";
for (var index = 0; index < totalNum; index++) {
if (index >= data.content.length) {
break;
}
playList += getVideoPath(data.content[index], index);
}
if (playList) {
CCTVActiveX.playbylist(playList, false);
}
}
});
}
function zTreeOnRightClick(event, treeId, treeNode) {
// alert("right" + treeNode);
}
function onAsyncSuccess(event, treeId, treeNode, msg) {
if (!treeNode) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var rootNode = treeObj.getNodes()[0];
treeObj.expandNode(rootNode, true, false, false);
}
}
function setRowCol(row, col) {
totalNum = row * col;
I_stylePlayer({row: row, column: col});
}
//视频播放
function play(rtmpAddress, iWndIndex) {
if (!iWndIndex) {
iWndIndex = getSelectIndex();
iWndIndex = iWndIndex == -1 ? 0 : iWndIndex;
}
I_StartRealPlay(rtmpAddress, {iWndIndex: iWndIndex});
}
//视频节点点击播放
function videoNodePlay(rtmpAddress, videoName, iWndIndex) {
if (!iWndIndex) {
iWndIndex = getSelectIndex();
iWndIndex = iWndIndex == -1 ? 0 : iWndIndex;
}
var parentId = getVideoPaneId(iWndIndex);
$("#" + parentId).find("div.video-win-title").html(videoName);
I_StartRealPlay(rtmpAddress, {iWndIndex: iWndIndex});
}
function smartPlayerStop(iWndIndex) {
var parentId = getVideoPaneId(iWndIndex);
// $("#" + parentId).find("div.video-win-title").html("");
$("#" + parentId).find(".video-win-content").html("");
}
function smartPlayerStopAll() {
// $(".video-win-title").html("");
$(". video-win-content").html("");
}
</script>
<style>
.menu_nav{
position: absolute;
bottom:0;
}
.accordion_li{
height:30px;
}
.accordion{
position: relative;
}
.secondary-menu{
position: absolute;
left:196px;
top:0;
border: 1px solid #00B5FF;
width:175px;
height:100%;
font-size: 14px;
background: rgba(12,23,69,.5);
display: none;
}
.secondary-menu li{
line-height: 30px;
text-align: center;
}
.down-jt{
/*position: relative;*/
}
.down-jt:after{
content: '>';
float: right;
margin-top: -26px;
margin-right: 8px;
}
.hover{
background: url(/oss/mainframe/images/top/hover_bg.png)no-repeat;
background-size: 100% 100%;
}
.secondary-menu li a{display: block;}
.secondary-menu li:hover,.secondary-menu li.active{
/*background: rgba(39,89,147,.5);*/
background: url(/oss/mainframe/images/top/hover_bg.png)no-repeat;
background-size: 100% 100%;
}
</style>
</body>
</html>