Commit 4f658cc31ff46841301a70d33a2db23751b27cd3

Authored by 刘基城
1 parent 9e62656d

添加点播审核

Showing 32 changed files with 935 additions and 370 deletions
src/main/java/com/cnlive/mz/live/action/CheckAction.java deleted 100644 → 0
1   -package com.cnlive.mz.live.action;
2   -
3   -import java.io.UnsupportedEncodingException;
4   -import java.net.URLEncoder;
5   -import java.util.List;
6   -import java.util.Map;
7   -
8   -import org.smart4j.framework.dao.bean.Pager;
9   -import org.smart4j.framework.ioc.annotation.Inject;
10   -import org.smart4j.framework.mvc.DataContext;
11   -import org.smart4j.framework.mvc.annotation.Action;
12   -import org.smart4j.framework.mvc.annotation.Request;
13   -import org.smart4j.framework.mvc.bean.Params;
14   -import org.smart4j.framework.mvc.bean.Result;
15   -import org.smart4j.framework.mvc.bean.View;
16   -import org.smart4j.framework.util.CastUtil;
17   -
18   -import com.cnlive.mz.commons.JsonUtil;
19   -import com.cnlive.mz.commons.net.HttpReq;
20   -import com.cnlive.mz.live.common.LiveUtils;
21   -import com.cnlive.mz.live.entity.TLive;
22   -import com.cnlive.mz.live.rest.BaseUtil;
23   -import com.cnlive.mz.live.service.TCheckService;
24   -import com.cnlive.mz.live.service.TLiveService;
25   -import com.cnlive.mz.live.service.TRoomService;
26   -
27   -@Action
28   -public class CheckAction {
29   -
30   - @Inject
31   - private TLiveService tLiveService;
32   - @Inject
33   - private TRoomService tRoomService;
34   - @Inject
35   - private TCheckService tCheckService;
36   -
37   - @Request.Get("/check/list/{page_number}")
38   - public View list(int page_number) {
39   - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID));
40   - System.out.println(user_id);
41   - Pager<TLive> tLive = tCheckService.getTCheckLivePager(page_number, 9, user_id);
42   - List list = tLiveService.getLives(user_id);
43   - View view = new View("check/check_management.jsp");
44   - view.data("tLive", tLive);
45   - view.data("list", list);
46   - return view;
47   - //return new View("check/demo.html");
48   - }
49   - @Request.Post("/check/close/{id}")
50   - public Result coseLive(int id,Params params) throws UnsupportedEncodingException{
51   - String userId = params.getString("user_id");
52   - String streamName = userId+"_"+id;
53   - //String streamName = "498122_57";
54   - String accesskey = "I3TC8a4xboPUMe5xlp22";
55   - accesskey = java.net.URLEncoder.encode(accesskey,"utf-8");
56   - String signature = BaseUtil.signature(streamName);
57   - String expire = String.valueOf(BaseUtil.getTimestamp()).substring(0, 10);
58   - System.out.println(expire+"---expire---");
59   - //添加到黑名单。。
60   - try {
61   - addBlackList(signature,accesskey,expire,streamName);
62   - } catch (UnsupportedEncodingException e) {
63   - e.printStackTrace();
64   - }
65   - boolean flag = tCheckService.closeLive(id);
66   - return new Result(flag);
67   - }
68   - /**
69   - * 添加到黑名单
70   - * @param signature
71   - * @param accesskey
72   - * @param expire
73   - * @param streamName
74   - * @return
75   - * @throws UnsupportedEncodingException
76   - */
77   - public String addBlackList(String signature, String accesskey, String expire,String streamName) throws UnsupportedEncodingException {
78   - String url = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature="+signature+"&accesskey="+accesskey+"&expire="+expire+"&method=add&app=live&name="+streamName;
79   - System.out.println(url);
80   - String jsonArrStr = HttpReq.getRequestWidthResult(url);
81   - int status = HttpReq.getRequest(url);
82   - System.out.println("............"+status);
83   - System.out.println("............"+jsonArrStr);
84   - /*Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr);
85   - String chatRoomid = (String) map.get("Content-Length");*/
86   - return jsonArrStr;
87   - }
88   - /**
89   - * 从黑名单删除
90   - * @param signature
91   - * @param accesskey
92   - * @param expire
93   - * @param streamName
94   - * @return
95   - * @throws UnsupportedEncodingException
96   - */
97   - public Object delBlackList(String signature, String accesskey, String expire,String streamName) throws UnsupportedEncodingException {
98   - String url = "http://cnlive.uplive.ks-cdn.com/blacklist?signature="+signature+"&accesskey="+accesskey+"&expire="+expire+"&method=del&app=live&name="+streamName;
99   - String jsonArrStr = HttpReq.getRequestWidthResult(url);
100   - System.out.println();
101   - /*Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr);
102   - String chatRoomid = (String) map.get("Content-Length");*/
103   - return jsonArrStr;
104   - }
105   -
106   -}
src/main/java/com/cnlive/mz/live/action/HttpPostArgumentTest2.java 0 → 100644
  1 +package com.cnlive.mz.live.action;
  2 +
  3 +import java.io.File;
  4 +import java.io.IOException;
  5 +
  6 +import org.apache.commons.httpclient.NameValuePair;
  7 +import org.apache.commons.httpclient.params.HttpMethodParams;
  8 +import org.apache.http.HttpEntity;
  9 +import org.apache.http.HttpResponse;
  10 +import org.apache.http.HttpStatus;
  11 +import org.apache.http.ParseException;
  12 +import org.apache.http.client.HttpClient;
  13 +import org.apache.http.client.methods.HttpPost;
  14 +import org.apache.http.entity.mime.MultipartEntity;
  15 +import org.apache.http.entity.mime.content.FileBody;
  16 +import org.apache.http.entity.mime.content.StringBody;
  17 +import org.apache.http.impl.client.DefaultHttpClient;
  18 +import org.apache.http.util.EntityUtils;
  19 +
  20 +import com.cnlive.mz.commons.net.HttpReq;
  21 +
  22 +public class HttpPostArgumentTest2 {
  23 +
  24 + private static String user_access_key = "cf34f28db21b46678237bfa849e239ea";
  25 + private static String app_access_key = "7338ebf9cab441c0843e437a18d85549";
  26 +
  27 + public void SubmitPost(String url, String filepath) {
  28 + HttpClient httpclient = new DefaultHttpClient();
  29 + try {
  30 + HttpPost httppost = new HttpPost(url);
  31 + FileBody bin = new FileBody(new File(filepath));
  32 + MultipartEntity reqEntity = new MultipartEntity();
  33 + // reqEntity.addPart("file", bin);
  34 + reqEntity.addPart("app_access_key", new StringBody("7338ebf9cab441c0843e437a18d85549"));
  35 + reqEntity.addPart("user_access_key", new StringBody("cf34f28db21b46678237bfa849e239ea"));
  36 + reqEntity.addPart("direct", new StringBody("0"));
  37 + reqEntity.addPart("upload_type", new StringBody("1"));
  38 + reqEntity.addPart("md5", new StringBody("liujicheng"));
  39 + reqEntity.addPart("title", new StringBody("title"));
  40 + reqEntity.addPart("name", new StringBody("中投视频宣传片熊猫test"));
  41 + reqEntity.addPart("server_access_key", new StringBody("3830ce241dad4b9f844d131c890231ae"));
  42 +
  43 + httppost.setEntity(reqEntity);
  44 + HttpResponse response = httpclient.execute(httppost);
  45 + int statusCode = response.getStatusLine().getStatusCode();
  46 + System.out.println(statusCode);
  47 + System.out.println("服务器正常响应.....");
  48 + HttpEntity resEntity = response.getEntity();
  49 + System.out.println(EntityUtils.toString(resEntity));
  50 + System.out.println(resEntity.getContent());
  51 + EntityUtils.consume(resEntity);
  52 +
  53 + } catch (ParseException e) {
  54 + e.printStackTrace();
  55 + } catch (IOException e) {
  56 + e.printStackTrace();
  57 + } finally {
  58 + try {
  59 + httpclient.getConnectionManager().shutdown();
  60 + } catch (Exception ignore) {
  61 + ignore.printStackTrace();
  62 + }
  63 + }
  64 + }
  65 +
  66 + public static void redirect() {
  67 + NameValuePair[] param = { new NameValuePair("relation_id", "282512"), new NameValuePair("video_type", "3"),
  68 + new NameValuePair("user_access_key", user_access_key),
  69 + new NameValuePair("app_access_key", app_access_key) };
  70 + String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/redirect", param);
  71 + System.out.println(c);
  72 + }
  73 +
  74 + public static void delete() {
  75 + NameValuePair[] param = { new NameValuePair("video_type", "2"),
  76 + new NameValuePair("app_access_key", "7338ebf9cab441c0843e437a18d85549"),
  77 + new NameValuePair("user_access_key", "cf34f28db21b46678237bfa849e239ea"),
  78 + new NameValuePair("video_uuid", "a8794762b3e92c7d6589a6157cf1ef27,7e26dee78a584f8c5ab1d93a9c878f1d") };
  79 + String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/delete", param);
  80 + System.out.println(c);
  81 + }
  82 +
  83 + private static String md5 = "ffa699fb66750acab30b71b8ceb0172d1";
  84 +
  85 + public static void supload() {
  86 + NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key),
  87 + new NameValuePair("user_access_key", user_access_key), new NameValuePair("video_type", "2"),
  88 + new NameValuePair("upload_type", "0"), new NameValuePair("direct", "1"), new NameValuePair("md5", md5),
  89 + new NameValuePair("title", "tit三道恩le1"), new NameValuePair("relation_id", "615207"),
  90 + new NameValuePair("custom_args", "custom_args1"), new NameValuePair("name", "VID_20151224_105421.mp4"),
  91 + new NameValuePair("server_access_key", "3830ce241dad4b9f844d131c890231ae") };
  92 + String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/supload", param);
  93 + System.out.println(c);
  94 + }
  95 +
  96 + public static void uploadNotify() {
  97 + NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key),
  98 + new NameValuePair("user_access_key", user_access_key), new NameValuePair("upload_type", "1"),
  99 + new NameValuePair("video_type", "2"), new NameValuePair("state", "200"),
  100 + new NameValuePair("video_uuid", md5) };
  101 + String c = HttpReq
  102 + .postRequestWidthResult("http://localhost:8080/cnlive_live_web/api/video/uploadNotify", param);
  103 + System.out.println(c);
  104 + }
  105 +
  106 + public static void all() {
  107 + NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key),
  108 + new NameValuePair("relation_id", "498122"),
  109 +
  110 + new NameValuePair("user_access_key", user_access_key), new NameValuePair("upload_type", "1"),
  111 + new NameValuePair("video_type", "2"), new NameValuePair("page_no", "1"),
  112 + new NameValuePair("video_uuid", md5) };
  113 + String c = HttpReq.postRequestWidthResult("http://localhost:8080/cnlive_live_web/api/video/all", param);
  114 + System.out.println(c);
  115 + }
  116 +
  117 + public static void main(String[] args) {
  118 + // new HttpPostArgumentTest2().delete();
  119 + //HttpPostArgumentTest2.all();
  120 + HttpPostArgumentTest2.supload();
  121 + // HttpReq.postRequestWidthResult("http://120.132.76.51:9696/cnlive_encoding_job/task",
  122 + // "json", "jsonjsonjsonjson");r
  123 + }
  124 +
  125 +}
... ...
src/main/java/com/cnlive/mz/live/action/LiveAction.java
... ... @@ -9,6 +9,7 @@
9 9  
10 10 package com.cnlive.mz.live.action;
11 11  
  12 +import java.io.UnsupportedEncodingException;
12 13 import java.util.List;
13 14  
14 15 import org.smart4j.framework.dao.bean.Pager;
... ... @@ -21,13 +22,14 @@ import org.smart4j.framework.mvc.bean.Multiparts;
21 22 import org.smart4j.framework.mvc.bean.Params;
22 23 import org.smart4j.framework.mvc.bean.Result;
23 24 import org.smart4j.framework.mvc.bean.View;
24   -import org.smart4j.framework.orm.DataSet;
25 25 import org.smart4j.framework.util.CastUtil;
26 26  
27 27 import com.cnlive.mz.commons.Constants;
  28 +import com.cnlive.mz.commons.net.HttpReq;
28 29 import com.cnlive.mz.live.common.LiveUtils;
29 30 import com.cnlive.mz.live.entity.TLive;
30 31 import com.cnlive.mz.live.entity.TRoom;
  32 +import com.cnlive.mz.live.rest.BaseUtil;
31 33 import com.cnlive.mz.live.service.TLiveService;
32 34 import com.cnlive.mz.live.service.TRoomService;
33 35  
... ... @@ -94,4 +96,102 @@ public class LiveAction {
94 96 view.data("tRoom", tRoom);
95 97 return view;
96 98 }
  99 +
  100 + @Request.Get("/check/list/{page_number}")
  101 + public View check(int page_number) {
  102 + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID));
  103 + Pager<TLive> tLive = tLiveService.getTCheckLivePager(page_number, 12, user_id);
  104 + View view = new View("check/monitor.jsp");
  105 + view.data("tLive", tLive);
  106 + return view;
  107 + }
  108 +
  109 + // 置顶
  110 + @Request.Get("/check/top/{id}")
  111 + public Result top(int id) {
  112 + tLiveService.top(id);
  113 + return new Result(true);
  114 + }
  115 +
  116 + // 切断
  117 + @Request.Get("/check/cut/{id}")
  118 + public Result cut(int id) {
  119 + return new Result(true);
  120 + }
  121 +
  122 + // 通过审核
  123 + @Request.Get("/check/pass/{id}")
  124 + public Result pass(int id) {
  125 + tLiveService.pass(id);
  126 + return new Result(true);
  127 + }
  128 +
  129 + @Request.Post("/check/close/{id}")
  130 + public Result coseLive(int id, Params params) throws UnsupportedEncodingException {
  131 + String userId = params.getString("user_id");
  132 + String streamName = userId + "_" + id;
  133 + // String streamName = "498122_57";
  134 + String accesskey = "I3TC8a4xboPUMe5xlp22";
  135 + accesskey = java.net.URLEncoder.encode(accesskey, "utf-8");
  136 + String signature = BaseUtil.signature(streamName);
  137 + String expire = String.valueOf(BaseUtil.getTimestamp()).substring(0, 10);
  138 + System.out.println(expire + "---expire---");
  139 + // 添加到黑名单。。
  140 + try {
  141 + addBlackList(signature, accesskey, expire, streamName);
  142 + } catch (UnsupportedEncodingException e) {
  143 + e.printStackTrace();
  144 + }
  145 + boolean flag = tLiveService.closeLive(id);
  146 + return new Result(flag);
  147 + }
  148 +
  149 + /**
  150 + * 添加到黑名单
  151 + *
  152 + * @param signature
  153 + * @param accesskey
  154 + * @param expire
  155 + * @param streamName
  156 + * @return
  157 + * @throws UnsupportedEncodingException
  158 + */
  159 + public String addBlackList(String signature, String accesskey, String expire, String streamName)
  160 + throws UnsupportedEncodingException {
  161 + String url = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature=" + signature + "&accesskey=" + accesskey
  162 + + "&expire=" + expire + "&method=add&app=live&name=" + streamName;
  163 + System.out.println(url);
  164 + String jsonArrStr = HttpReq.getRequestWidthResult(url);
  165 + int status = HttpReq.getRequest(url);
  166 + System.out.println("............" + status);
  167 + System.out.println("............" + jsonArrStr);
  168 + /*
  169 + * Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr); String
  170 + * chatRoomid = (String) map.get("Content-Length");
  171 + */
  172 + return jsonArrStr;
  173 + }
  174 +
  175 + /**
  176 + * 从黑名单删除
  177 + *
  178 + * @param signature
  179 + * @param accesskey
  180 + * @param expire
  181 + * @param streamName
  182 + * @return
  183 + * @throws UnsupportedEncodingException
  184 + */
  185 + public Object delBlackList(String signature, String accesskey, String expire, String streamName)
  186 + throws UnsupportedEncodingException {
  187 + String url = "http://cnlive.uplive.ks-cdn.com/blacklist?signature=" + signature + "&accesskey=" + accesskey
  188 + + "&expire=" + expire + "&method=del&app=live&name=" + streamName;
  189 + String jsonArrStr = HttpReq.getRequestWidthResult(url);
  190 + System.out.println();
  191 + /*
  192 + * Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr); String
  193 + * chatRoomid = (String) map.get("Content-Length");
  194 + */
  195 + return jsonArrStr;
  196 + }
97 197 }
98 198 \ No newline at end of file
... ...
src/main/java/com/cnlive/mz/live/action/VideoAction.java
... ... @@ -12,6 +12,7 @@ import org.smart4j.framework.mvc.annotation.Action;
12 12 import org.smart4j.framework.mvc.annotation.Request;
13 13 import org.smart4j.framework.mvc.bean.ApiBean;
14 14 import org.smart4j.framework.mvc.bean.Params;
  15 +import org.smart4j.framework.mvc.bean.Result;
15 16 import org.smart4j.framework.mvc.bean.View;
16 17 import org.smart4j.framework.util.CastUtil;
17 18  
... ... @@ -135,10 +136,22 @@ public class VideoAction {
135 136 return new View("live/video_management.jsp").data("videos", page);
136 137 }
137 138  
138   - @Request.Post("/video/view/{id}")
139   - public View one(int id) {
140   - TVideo page = tVideoService.getVideoById(id);
141   - return new View("live/video_view.jsp").data("videos", page);
  139 + @Request.Get("/video/check/{page_number}")
  140 + public View check(int page_number) {
  141 + Pager<TVideo> page = tVideoService.list(page_number, 33);
  142 + return new View("live/video_management.jsp").data("videos", page);
  143 + }
  144 +
  145 + @Request.Get("/video/pass/{id}")
  146 + public Result pass(int id) {
  147 + tVideoService.pass(id);
  148 + return new Result(true);
  149 + }
  150 +
  151 + @Request.Get("/video/view/{id}")
  152 + public View view(int id) {
  153 + TVideo tVideo = tVideoService.getVideoById(id);
  154 + return new View("live/video_view.jsp").data("tVideo", tVideo);
142 155 }
143 156  
144 157 @Request.Post("/api/video/one")
... ...
src/main/webapp/crossdomain.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<cross-domain-policy>
  3 + <allow-access-from domain="*"/>
  4 +</cross-domain-policy>
0 5 \ No newline at end of file
... ...
src/main/webapp/pages/check/check_management.jsp
... ... @@ -138,9 +138,7 @@ body {
138 138  
139 139 </table>
140 140 </div>
141   -
142 141 </div>
143   -
144 142 <div class="divright">
145 143 <!--五列开始-->
146 144 <div class="row">
... ...
src/main/webapp/pages/check/ckplayer/ckplayer.swf deleted 100644 → 0
No preview for this file type
src/main/webapp/pages/check/monitor.jsp 0 → 100644
  1 +<%@ page language="java" pageEncoding="UTF-8"%>
  2 +<%@ include file="/pages/common/taglib.jsp"%>
  3 +<!DOCTYPE html>
  4 +<html>
  5 +<head>
  6 +<meta charset="UTF-8">
  7 +<title>监审管理 |<f:message key="common.title" /></title>
  8 +<meta
  9 + content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
  10 + name='viewport'>
  11 +<%@ include file="/pages/common/css.jsp"%>
  12 +<script src="${BASE}/static/assets/cnlive/js/check.js"></script>
  13 +<script src="${BASE}/static/assets/jwplayer/jwplayer.js"></script>
  14 +<script src="${BASE}/static/assets/jwplayer/jwplayer.html5.js"></script>
  15 +<script type="text/javascript">jwplayer.key="MGAzpXRYxGnaVXhH8jSdKXzDe7ucAAvZGWggIA==";</script>
  16 +
  17 +</head>
  18 +<body class="skin-blue sidebar-collapse sidebar-mini">
  19 + <div class="wrapper">
  20 + <%@ include file="/pages/common/top.jsp"%>
  21 + <%@ include file="/pages/common/left.jsp"%>
  22 + <!-- Content Wrapper. Contains page content -->
  23 + <div class="content-wrapper">
  24 + <!-- Content Header (Page header) -->
  25 + <section class="content-header">
  26 + <h1>
  27 + 监审管理 <small>monitor panel</small>
  28 + </h1>
  29 + <ol class="breadcrumb">
  30 + <li><a href="#"><i class="fa fa-dashboard"></i> 首页</a></li>
  31 + <li class="active">监审管理</li>
  32 + </ol>
  33 + </section>
  34 + <section class="content">
  35 + <div class="row">
  36 + <div class="col-md-4">
  37 + <div class="box box-solid">
  38 + <div class="box-header with-border">
  39 + <h3 class="box-title">监控平台</h3>
  40 + </div>
  41 + <div class="box-body no-padding">
  42 + <div class="col-md-12" id="divShow_${item.id}">
  43 + <div class="box box-success box-solid">
  44 + <div class="box-header with-border">
  45 + <h3 class="box-title">${item.title}</h3>
  46 + <div class="box-tools pull-right">
  47 + <button class="btn btn-sm" id="play_button_${item.id}"
  48 + onclick="play(${item.id});">重新载入</button>
  49 + </div>
  50 + </div>
  51 + <div class="box-body">
  52 + <input type="hidden" name="play_url_${item.id}"
  53 + id="play_url_${item.id}" value="${item.live_url}" /> <span
  54 + class="mailbox-attachment-icon has-img"
  55 + id="player_span_${item.id}"> <img
  56 + src="../../static/assets/dist/img/photo2.png"
  57 + alt="Attachment">
  58 + </span>
  59 + </div>
  60 + </div>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + <div class="box-header with-border">
  65 + <h3 class="box-title">直播信息:</h3>
  66 + </div>
  67 + <div class="box-body no-padding">
  68 + <ul class="nav nav-pills nav-stacked">
  69 + <li><a><i class="fa fa-file-text-o"></i>用户ID:</a></li>
  70 + <li><a><i class="fa fa-file-text-o"></i>TITLE: </a></li>
  71 + <li><a><i class="fa fa-file-text-o"></i>开播时间: </a></li>
  72 + </ul>
  73 + </div>
  74 + </div>
  75 + <div class="col-md-8">
  76 + <div class="box box-primary">
  77 + <div class="box-header with-border">
  78 + <h3 class="box-title">监控</h3>
  79 + <tag:pager id="product_pager" pager="${tLive}" />
  80 + </div>
  81 + <div class="box-body no-padding">
  82 + <div class="row">
  83 + <c:forEach var="item" items="${tLive.recordList}"
  84 + varStatus="stat">
  85 + <div class="col-md-3" id="divShow_${item.id}">
  86 + <div
  87 + class="box ${item.check_sort eq null ? 'box-warning':'box-success'} box-solid">
  88 + <div class="box-header with-border">
  89 + <h3 class="box-title">${item.title}</h3>
  90 + <div class="box-tools pull-right">
  91 + <button class="btn btn-sm btn-danger"
  92 + onclick="to_pass(${item.id});">过</button>
  93 + <button class="btn btn-sm btn-danger"
  94 + onclick="to_top(${item.id});">顶</button>
  95 + <button class="btn btn-sm btn-danger"
  96 + onclick="play(${item.id});">断</button>
  97 + </div>
  98 + </div>
  99 + <div class="box-body">
  100 + <input type="hidden" name="play_url_${item.id}"
  101 + id="play_url_${item.id}" value="${item.live_url}" /> <span
  102 + class="mailbox-attachment-icon has-img"
  103 + id="player_span_${item.id}"> <img
  104 + src="../../static/assets/dist/img/photo2.png"
  105 + alt="Attachment">
  106 + </span>
  107 + </div>
  108 + </div>
  109 + </div>
  110 + </c:forEach>
  111 + </div>
  112 + </div>
  113 + </div>
  114 + </div>
  115 + </div>
  116 + <%@ include file="/pages/common/js.jsp"%>
  117 + <script src="${BASE}/static/assets/cnlive/js/player_m3u8.js"></script>
  118 + </section>
  119 + </div>
  120 + </div>
  121 +</body>
  122 +</html>
0 123 \ No newline at end of file
... ...
src/main/webapp/pages/common/left.jsp
... ... @@ -14,6 +14,7 @@
14 14 <i class="fa fa-circle text-success"></i>
15 15 <c:if test="${sessionScope.roleId=='1'}">超级管理员</c:if>
16 16 <c:if test="${sessionScope.roleId=='0'}">普通用户</c:if>
  17 + <c:if test="${sessionScope.roleId=='2'}">总编室用户</c:if>
17 18 </div>
18 19 </div>
19 20 <ul class="sidebar-menu">
... ... @@ -41,8 +42,7 @@
41 42 <li>
42 43 <a href="${BASE}/signal/list/1"><i class="fa fa-circle-o text-red"></i>信源管理</a>
43 44 </li>
44   -
45   - <!-- 主播 -->
  45 + <!-- 主播 -->
46 46 <li class="header">UGC直播</li>
47 47 <li>
48 48 <a href="${BASE}/room/list/1"><i class="fa fa-circle-o text-yellow"></i>直播间管理</a>
... ... @@ -53,6 +53,12 @@
53 53 <li>
54 54 <a href="${BASE}/video/list/1"><i class="fa fa-circle-o text-yellow"></i>直播录制管理</a>
55 55 </li>
  56 + <li>
  57 + <a href="${BASE}/check/list/1"><i class="fa fa-circle-o text-yellow"></i>直播审查</a>
  58 + </li>
  59 + <li>
  60 + <a href="${BASE}/video/check/1"><i class="fa fa-circle-o text-yellow"></i>点播审查</a>
  61 + </li>
56 62 </c:if>
57 63 <c:if test="${sessionScope.roleId=='0'}">
58 64 <li class="header">导航栏</li>
... ... @@ -70,6 +76,13 @@
70 76 <a href="${BASE}/channel/list/1"><i class="fa fa-circle-o text-green"></i>频道管理</a>
71 77 </li>
72 78 </c:if>
  79 + <c:if test="${sessionScope.roleId=='2'}">
  80 + <!-- 主播 -->
  81 + <li class="header">UGC直播</li>
  82 + <li>
  83 + <a href="${BASE}/check/list/1"><i class="fa fa-circle-o text-yellow"></i>直播审查</a>
  84 + </li>
  85 + </c:if>
73 86 </ul>
74 87 </section>
75 88 <!-- /.sidebar -->
... ...
src/main/webapp/pages/live/video_management.jsp
... ... @@ -18,9 +18,8 @@
18 18 <!-- Content Header (Page header) -->
19 19 <section class="content-header">
20 20 <h1>
21   - 直播录制管理 <small class="label label-warning"
22   - style="display: none" id="info_tab_span"><i
23   - class="fa fa-bell-o"></i></small>
  21 + 直播录制管理 <small class="label label-warning" style="display: none"
  22 + id="info_tab_span"><i class="fa fa-bell-o"></i></small>
24 23 </h1>
25 24  
26 25 <ol class="breadcrumb">
... ... @@ -57,25 +56,16 @@
57 56 <tr>
58 57 <th>名称</th>
59 58 <th>状态</th>
60   - <th>修改</th>
  59 + <th>详情</th>
  60 + <th>播放</th>
61 61 <th>删除</th>
62 62 </tr>
63 63 <c:forEach var="item" items="${videos.recordList}"
64 64 varStatus="stat">
65 65 <tr>
66   - <td><a href="${BASE}/live/preview/${item.id}">${item.title}</a>
  66 + <td><a href="${BASE}/video/view/${item.id}">${item.title}</a>
67 67 </td>
68   - <td><c:if test="${item.t_status_id==0}">
69   - <span class="badge bg-green">未开始</span>
70   - </c:if> <c:if test="${item.t_status_id==1}">
71   - <span class="badge bg-red">直播中</span>
72   - </c:if> <c:if test="${item.t_status_id==2}">
73   - <span class="badge">直播结束</span>
74   - </c:if> <c:if test="${item.t_status_id==3}">
75   - <span class="badge">回放同步中</span>
76   - </c:if> <c:if test="${item.t_status_id==4}">
77   - <span class="badge">同步完成</span>
78   - </c:if></td>
  68 + <td></td>
79 69 <td>
80 70 <button class="btn btn-default btn-sm"
81 71 onclick="t_live_edit(${item.id});">
... ...
src/main/webapp/pages/live/video_view.jsp
... ... @@ -4,16 +4,18 @@
4 4 <html>
5 5 <head>
6 6 <meta charset="UTF-8">
7   -<title>活动详情 | <f:message key="common.title" /></title>
  7 +<title>点播详情 | <f:message key="common.title" /></title>
8 8 <meta
9 9 content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
10 10 name='viewport'>
11 11 <%@ include file="/pages/common/css.jsp"%>
12 12 <script src="${BASE}/static/assets/jwplayer/jwplayer.js"></script>
13 13 <script src="${BASE}/static/assets/jwplayer/jwplayer.html5.js"></script>
14   -<script type="text/javascript">jwplayer.key="MGAzpXRYxGnaVXhH8jSdKXzDe7ucAAvZGWggIA==";</script>
  14 +<script type="text/javascript">
  15 + jwplayer.key = "MGAzpXRYxGnaVXhH8jSdKXzDe7ucAAvZGWggIA==";
  16 +</script>
15 17 </head>
16   -<body class="skin-blue fixed ">
  18 +<body class="skin-blue fixed ">
17 19 <div class="wrapper">
18 20 <%@ include file="/pages/common/top.jsp"%>
19 21 <%@ include file="/pages/common/left.jsp"%>
... ... @@ -21,170 +23,45 @@
21 23 <!-- Content Header (Page header) -->
22 24 <section class="content-header">
23 25 <h1>
24   - 直播活动详情 <small>${tActivity.name}</small>
  26 + 点播详情 <small>${tVideo.title}</small>
25 27 </h1>
26 28 <ol class="breadcrumb">
27 29 <li><a href="#"><i class="fa fa-dashboard"></i> 首页</a></li>
28   - <li><a href="#">播详情</a></li>
  30 + <li><a href="#">播详情</a></li>
29 31 </ol>
30 32 </section>
31   - <!-- Main content -->
32 33 <section class="content">
33   - <!-- row -->
34 34 <div class="row">
35 35 <div class="col-md-12">
36   - <!-- The time line -->
37   - <ul class="timeline">
38   - <li class="time-label"><span class="bg-blue">活动信息详情</span></li>
39   - <li><i class="fa fa-gears bg-maroon"></i>
40   - <div class="timeline-item">
41   - <div class="timeline-body">
42   - <div class="row">
43   - <div class="col-md-12">
44   - <div class="box box-danger">
45   - <div class="box-body">
46   - <table class="table table-bordered">
47   - <tr>
48   - <td colspan="3" align='center'><h2>${tActivity.name}</h2></td>
49   - </tr>
50   - <tr>
51   - <td style="width: 200pt">状态:</td>
52   - <td colspan="3"><span class="class label-danger">
53   - <c:if test="${tActivity.state==0}">未开始</c:if> <c:if
54   - test="${tActivity.state==1}">直播中</c:if> <c:if
55   - test="${tActivity.state==2}">已结束</c:if>
56   - </span></td>
57   - </tr>
58   - <tr>
59   - <td>EPG条目:</td>
60   - <td colspan="3">${tActivity.epg_name}</td>
61   - </tr>
62   - <tr>
63   - <td>地点:</td>
64   - <td colspan="3">${tActivity.place}</td>
65   - </tr>
66   - <tr>
67   - <td>简介:</td>
68   - <td colspan="3">${tActivity.description}</td>
69   - </tr>
70   - <tr>
71   - <td>直播时间</td>
72   - <td colspan="3">${tActivity.start_time}</td>
73   - </tr>
74   - <tr>
75   - <td>直播地点</td>
76   - <td colspan="3">${tActivity.end_time}</td>
77   - </tr>
78   - <tr>
79   - <td>现场联系人</td>
80   - <td colspan="3">${tActivity.contact_user}</td>
81   - </tr>
82   -<tr>
83   - <td>邮件抄送</td>
84   - <td colspan="3">${tActivity.notify_user}</td>
85   - </tr>
86   - <tr>
87   - <td>并发用户数</td>
88   - <td colspan="3">${tActivity.v_count}</td>
89   - </tr>
90   - <tr>
91   - <td>画面LOGO</td>
92   - <td colspan="3">${tActivity.logo}</td>
93   - </tr>
94   - <tr>
95   - <td>UUID</td>
96   - <td colspan="3"><span class="class label-success">${tActivity.uuid}</span></td>
97   - </tr>
98   - <tr>
99   - <td>是否收费</td>
100   - <td colspan="3"><c:if
101   - test="${tActivity.is_free==0}">收费</c:if> <c:if
102   - test="${tActivity.is_free==1}">免费</c:if></td>
103   - </tr>
104   - <tr>
105   - <td>回放地址</td>
106   - <td colspan="3">${tActivity.playbak_url}</td>
107   - </tr>
108   - </table>
109   - </div>
110   - </div>
  36 + <div class="timeline-item">
  37 + <div class="timeline-body">
  38 + <div class="row">
  39 + <div class="col-md-12">
  40 + <div class="box box-danger">
  41 + <div class="box-body">
  42 + <table class="table table-bordered">
  43 + <tr>
  44 + <td colspan="3" align='center'><h2>${tVideo.title}</h2></td>
  45 + </tr>
  46 + <tr>
  47 + <td>Name:</td>
  48 + <td colspan="3">${tVideo.name}</td>
  49 + </tr>
  50 + <tr>
  51 + <td>地点:</td>
  52 + <td colspan="3">${tActivity.place}</td>
  53 + </tr>
  54 + <tr>
  55 + <td>简介:</td>
  56 + <td colspan="3">${tActivity.description}</td>
  57 + </tr>
  58 + </table>
111 59 </div>
112 60 </div>
113 61 </div>
114   - </div></li>
115   - <li class="time-label"><span class="bg-red">播出频道</span></li>
116   - <li><i class="fa fa-video-camera bg-maroon"></i>
117   - <div class="timeline-item">
118   - <h3 class="timeline-header">
119   - <a>频道名称(实际播放地址)</a>
120   - </h3>
121   - <div class="timeline-body">
122   - <div class="row">
123   - <c:forEach var="item" items="${vChannels}" varStatus="stat">
124   - <div class="col-md-6">
125   - <div class="box box-success box-solid">
126   - <div class="box-header with-border">
127   - <h3 class="box-title">${item.name_zh}</h3>
128   - <div class="box-tools pull-right">
129   - <button class="btn btn-sm" id="play_button_${item.id}"
130   - onclick="play(${item.id});">重新载入</button>
131   - </div>
132   - </div>
133   - <div class="box-body">
134   - <input type="hidden" name="play_url_${item.id}"
135   - id="play_url_${item.id}" value="${item.play_url}" /> <span
136   - class="mailbox-attachment-icon has-img"
137   - id="player_span_${item.id}"> <img
138   - src="${BASE}/static/assets/dist/img/photo2.png"
139   - alt="Attachment">
140   - </span>
141   - </div>
142   - <div class="box-footer"></div>
143   - </div>
144   - </div>
145   - </c:forEach>
146   - </div>
147   - </div>
148   - <div class='timeline-footer'></div>
149   - </div></li>
150   - <li class="time-label"><span class="bg-yellow">流媒体服务器</span></li>
151   - <li><i class="fa fa-gears bg-aqua"></i>
152   - <div class="timeline-item">
153   - <h3 class="timeline-header">
154   - <a href="#">wowza 编解码地址</a>
155   - </h3>
156   - <div class="timeline-body">
157   - <div class="row">
158   - <c:forEach var="item" items="${vChannels}" varStatus="stat">
159   - <div class="col-md-6">
160   - <div class="box box-warning box-solid">
161   - <div class="box-header with-border">
162   - <h3 class="box-title">${item.application_name}/${item.stream_name}</h3>
163   - <div class="box-tools pull-right">
164   - <button class="btn btn-sm"
165   - id="play_button_w_${item.uuid}"
166   - onclick="play_w('${item.uuid}');">重新载入</button>
167   - </div>
168   - </div>
169   - <div class="box-body">
170   - <input type="hidden"
171   - name="play_url_w_${item.uuid}"
172   - id="play_url_w_${item.uuid}"
173   - value="${item.publish_url}" /> <span
174   - class="mailbox-attachment-icon has-img w"
175   - id="player_span_${item.uuid}"> <img
176   - src="${BASE}/static/assets/dist/img/photo2.png"
177   - alt="Attachment">
178   - </span>
179   - </div>
180   - <div class="box-footer"></div>
181   - </div>
182   - </div>
183   - </c:forEach>
184   - </div>
185   - </div>
186   - </div></li>
187   - </ul>
  62 + </div>
  63 + </div>
  64 + </div>
188 65 </div>
189 66 </div>
190 67 </section>
... ...
src/main/webapp/pages/check/ckplayer/ckplayer.js renamed to src/main/webapp/static/assets/ckplayer/ckplayer.js
... ... @@ -2,7 +2,7 @@
2 2 -------------------------------------------------------------------------
3 3 说明:
4 4 正式使用时可以把该文件的注释全部去掉,节省加载时间
5   - ckplayer6.7,有问题请访问http://www.ckplayer.com
  5 + ckplayer6.8,有问题请访问http://www.ckplayer.com
6 6 请注意,该文件为UTF-8编码,不需要改变编码即可使用于各种编码形式的网站内
7 7 -------------------------------------------------------------------------
8 8 第一部分,加载插件
... ... @@ -20,9 +20,6 @@
20 20 */
21 21 function ckcpt() {
22 22 var cpt = '';
23   - cpt += 'right.swf,2,1,0,0,2,0|'; //右边开关灯,调整,分享按钮的插件
24   - cpt += 'share.swf,1,1,-180,-100,3,0|'; //分享插件
25   - cpt += 'adjustment.swf,1,1,-180,-100,3,0|'; //调整大小和颜色的插件
26 23 return cpt;
27 24 }
28 25 /*
... ... @@ -44,7 +41,7 @@ function ckstyle() { //定义总的风格
44 41 这里是用来做为对flashvars值的补充,除了c和x二个参数以外的设置都可以在这里进行配置
45 42 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4
46 43 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3*/
47   - setup: '1,1,1,1,1,2,0,1,2,0,0,1,200,0,2,1,0,1,1,1,2,10,3,0,1,2,3000,0,0,0,0,1,1,1,1,1,1,250,0,90,0,0,0',
  44 + setup: '1,1,1,1,1,2,0,1,2,0,0,1,200,0,2,1,0,1,1,1,1,10,3,0,1,2,3000,0,0,0,0,1,1,1,1,1,1,250,0,90,0,0,0',
48 45 /*
49 46 这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明:
50 47 1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型
... ... @@ -53,48 +50,48 @@ function ckstyle() { //定义总的风格
53 50 4、在播放前置广告时是否同时加载视频,0不加载,1加载
54 51 5、广告显示的参考对象,0是参考视频区域,1是参考播放器区域
55 52 6、广告大小的调整方式,只针对swf和图片有效,视频是自动缩放的
56   - =0是自动调整大小,意思是说大的话就变小,小的话就变大
57   - =1是大的化变小,小的话不变
58   - =2是什么也不变,就这么大
59   - =3是跟参考对像(第5个控制)参数设置的一样宽高
  53 + 0=自动调整大小,意思是说大的话就变小,小的话就变大
  54 + 1=是大的化变小,小的话不变
  55 + 2=是什么也不变,就这么大
  56 + 3=是跟参考对像(第5个控制)参数设置的一样宽高
60 57 7、前置广告播放顺序,0是顺序播放,1是随机播放,>1则随机取所有广告中的(N-1)个进行播放
61 58 8、对于视频广告是否采用修正,0是不使用,1是使用,如果是1,则用户在网速慢的情况下会按设定的倒计时进行播放广告,计时结束则放正片(比较人性化),设置成0的话,则强制播放完广告才能播放正片
62 59 9、是否开启滚动文字广告,0是不开启,1是开启且不使用关闭按钮,2是开启并且使用关闭按钮,开启后将在加载视频的时候加载滚动文字广告
63 60 10、视频的调整方式
64   - =0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
65   - =1是大的化变小,小的话不变
66   - =2是什么也不变,就这么大
67   - =3是跟参考对像(pm_video的设置)参数设置的一样宽高
  61 + 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  62 + 1=是大的化变小,小的话不变
  63 + 2=是什么也不变,就这么大
  64 + 3=是跟参考对像(pm_video的设置)参数设置的一样宽高
68 65 11、是否在多视频时分段加载,0不是,1是
69 66 12、缩放视频时是否进行平滑处理,0不是,1是
70 67 13、视频缓冲时间,单位:毫秒,建议不超过300
71 68 14、初始图片调整方式(
72   - =0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
73   - =1是大的化变小,小的话不变
74   - =2是什么也不变,就这么大
75   - =3是跟pm_video参数设置的一样宽高
  69 + 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  70 + 1=是大的化变小,小的话不变
  71 + 2=是什么也不变,就这么大
  72 + 3=是跟pm_video参数设置的一样宽高
76 73 15、暂停广告调整方式(
77   - =0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
78   - =1是大的化变小,小的话不变
79   - =2是什么也不变,就这么大
80   - =3是跟pm_video参数设置的一样宽
  74 + 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  75 + 1=是大的化变小,小的话不变
  76 + 2=是什么也不变,就这么大
  77 + 3=是跟pm_video参数设置的一样宽
81 78 16、暂停广告是否使用关闭广告设置,0不使用,1使用
82 79 17、缓冲时是否播放广告,0是不显示,1是显示并同时隐藏掉缓冲图标和进度,2是显示并不隐藏缓冲图标
83 80 18、是否支持键盘空格键控制播放和暂停0不支持,1支持
84 81 19、是否支持键盘左右方向键控制快进快退0不支持,1支持
85 82 20、是否支持键盘上下方向键控制音量0不支持,1支持
86   - 21、播放器返回js交互函数的等级,0-2,等级越高,返回的参数越多
87   - 0是返回少量常用交互
88   - 1返回播放器在播放的时候的参数,不返回广告之类的参数
89   - 2返回全部参数
90   - 3返回全部参数,并且在参数前加上"播放器ID->",用于多播放器的监听
  83 + 21、播放器返回js全部监听函数的等级,0-2,等级越高,返回的参数越多
  84 + 0=不返回全部监听事件
  85 + 1=返回监听,但不在控制台输出
  86 + 2=返回监听,并且在控制台同步输出
  87 + 3=返回全部监听事件,并且在参数前加上"播放器ID->",用于多播放器的监听
91 88 22、快进和快退的秒数
92 89 23、界面上图片元素加载失败重新加载次数
93 90 24、开启加载皮肤压缩文件包的加载进度提示
94 91 25、使用隐藏控制栏时显示简单进度条的功能,0是不使用,1是使用,2是只在普通状态下使用
95 92 26、控制栏隐藏设置(0不隐藏,1全屏时隐藏,2都隐藏
96 93 27、控制栏隐藏延时时间,即在鼠标离开控制栏后多少毫秒后隐藏控制栏
97   - 28、左右滚动时是否采用无缝,默认0采用,1是不采用
  94 + 28、滚动文字广告左右滚动时是否采用无缝,默认0采用,1是不采用
98 95 29、0是正常状态,1是控制栏默认隐藏,播放状态下鼠标经过播放器显示控制栏,2是一直隐藏控制栏
99 96 30、在播放rtmp视频时暂停后点击播放是否采用重新链接的方式,这里一共分0-2三个等级
100 97 31、当采用网址形式(flashvars里s=1/2时)读取视频地址时是采用默认0=get方法,1=post方式
... ... @@ -119,7 +116,7 @@ function ckstyle() { //定义总的风格
119 116 4、播放器最小高度
120 117 这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数
121 118 */
122   - mylogo: 'null',
  119 + mylogo: 'logo.swf',
123 120 /*
124 121 视频加载前显示的logo文件,不使用设置成null,即mylogo='null';
125 122 */
... ... @@ -132,7 +129,7 @@ function ckstyle() { //定义总的风格
132 129 3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面
133 130 4、垂直偏移量
134 131 */
135   - logo: 'null',
  132 + logo: 'cklogo.png',
136 133 /*
137 134 默认右上角一直显示的logo,不使用设置成null,即logo='null';
138 135 */
... ... @@ -202,7 +199,7 @@ function ckstyle() { //定义总的风格
202 199 5、水平偏移量
203 200 6、垂直偏移量
204 201 */
205   - pm_padvc: '2,0,-10,-10',
  202 + pm_padvc: '2,0,-13,-13',
206 203 /*
207 204 暂停广告的关闭按钮的位置
208 205 1、水平对齐方式
... ... @@ -210,7 +207,7 @@ function ckstyle() { //定义总的风格
210 207 3、水平偏移量
211 208 4、垂直偏移量
212 209 */
213   - pm_advms: '2,2,-46,-56',
  210 + pm_advms: '2,2,-46,-67',
214 211 /*
215 212 滚动广告关闭按钮位置
216 213 1、水平对齐方式
... ... @@ -230,7 +227,7 @@ function ckstyle() { //定义总的风格
230 227 7、文本框高度
231 228 */
232 229 //pm_advmarquee: '1,2,50,-60,50,18,0,0x000000,50,0,20,1,15,2000',
233   - pm_advmarquee: '1,2,50,-60,50,20,0,0x000000,50,0,20,1,30,2000',
  230 + pm_advmarquee: '1,2,50,-70,50,20,0,0x000000,50,0,20,1,30,2000',
234 231 /*
235 232 滚动广告的控制,要使用的话需要在setup里的第9个参数设置成1
236 233 这里分二种情况,前六个参数是定位控制,第7个参数是设置定位方式(0:相对定位,1:绝对定位)
... ... @@ -260,18 +257,19 @@ function ckstyle() { //定义总的风格
260 257 14、控制向上或向下滚动时每次停止的时间
261 258 */
262 259 pm_glowfilter:'1,0x01485d, 100, 6, 3, 10, 1, 0, 0',
263   - /*滚动文字广告是否采用发光滤镜
  260 + /*
  261 + 滚动文字广告是否采用发光滤镜
264 262 1、是否使用发光滤镜,0是不采用,1是使用
265 263 2、(default = 0xFF0000) — 光晕颜色,采用十六进制格式 0xRRGGBB。 默认值为 0xFF0000
266 264 3、(default = 100) — 颜色的 Alpha 透明度值。 有效值为 0 到 100。 例如,25 设置透明度为 25%
267 265 4、(default = 6.0) — 水平模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
268 266 5、(default = 6.0) — 垂直模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快
269   - 6、(default = 2) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255
  267 + 6、(default = 2) —光晕的强度。 该值越高,光晕的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255
270 268 7、(default = 1) — 应用滤镜的次数
271 269 8、(default = 0) — 指定发光是否为内侧发光。 值 1 指定发光是内侧发光。 值 0 指定发光是外侧发光(对象外缘周围的发光)
272 270 9、(default = 0) — 指定对象是否具有挖空效果。 值为 1 将使对象的填充变为透明,并显示文档的背景颜色
273 271 */
274   - advmarquee: escape('{a href="http://www.ckplayer.com"}{font color="#FFFFFF" size="12"}这里可以放文字广告,播放器默认使用这里设置的广告内容,如果不想在这里使用可以清空这里的内容,如果想在页面中实时定义滚动文字广告内容,可以清空这里的内容,然后在页面中设置广告函数。{/font}{/a}'),
  272 + advmarquee: escape('{a href="http://www.ckplayer.com"}{font color="#FFFFFF" size="12" face="Microsoft YaHei"}这里可以放文字广告,播放器默认使用这里设置的广告内容,如果不想在这里使用可以清空这里的内容,如果想在页面中实时定义滚动文字广告内容,可以清空这里的内容,然后在页面中设置广告函数。{/font}{/a}'),
275 273 /*
276 274 该处是滚动文字广告的内容,如果不想在这里设置,就把这里清空并且在页面中使用js的函数定义function ckmarqueeadv(){return '广告内容'}
277 275 */
... ... @@ -285,7 +283,10 @@ function ckstyle() { //定义总的风格
285 283 */
286 284 calljs:'ckplayer_status,ckadjump,playerstop,ckmarqueeadv',
287 285 /*
288   - 跳过广告和播放结束时调用的js函数
  286 + 1、全局监听返回结果的函数
  287 + 2、跳过广告的函数
  288 + 3、播放结束时调用的js函数
  289 + 4、加载滚动文字广告的函
289 290 */
290 291 myweb: escape(''),
291 292 /*
... ... @@ -297,11 +298,11 @@ function ckstyle() { //定义总的风格
297 298 */
298 299 cpt_lights: '1',
299 300 /*
300   - 该处定义是否使用开关灯,和right.swf插件配合作用,使用开灯效果时调用页面的js函数function closelights(){};
  301 + 该处定义是否使用开关灯,使用开灯效果时调用页面的js函数function closelights(){},关灯调用 function closelights(){};
301 302 */
302 303 cpt_share: 'ckplayer/share.xml',
303 304 /*
304   - 分享插件调用的配置文件地址
  305 + 分享插件调用的配置文件地址,此设设置成空,则不启用分享按钮
305 306 调用插件开始
306 307 */
307 308 cpt_list: ckcpt()
... ... @@ -577,6 +578,7 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
577 578 }
578 579 },
579 580 getUrl: function(L, B) {
  581 + var C = this;
580 582 var b = ['get', 'utf-8'];
581 583 if (L && L.length == 2) {
582 584 var a = L[0];
... ... @@ -589,7 +591,6 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
589 591 }
590 592 this.ajax(b[0], b[1], a,
591 593 function(s) {
592   - var C = CKobject;
593 594 if (s && s != 'error') {
594 595 var d = '',
595 596 e = s;
... ... @@ -663,11 +664,13 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
663 664 };
664 665 },
665 666 getObjectById: function(s) {
666   - if (this._T_) {
667   - return this;
  667 + var C = this;
  668 + if (C._T_) {
  669 + C._V_=C._K_(s)
  670 + return C ;
668 671 }
669 672 var x = null,
670   - y = this._K_(s),
  673 + y = C._K_(s),
671 674 r = 'embed';
672 675 if (y && y.nodeName == 'OBJECT') {
673 676 if (typeof y.SetVariable != 'undefined') {
... ... @@ -717,7 +720,24 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
717 720 }
718 721 },
719 722 addListener: function(e, f) {
720   - var o=CKobject._V_;
  723 + var o=this._V_;
  724 + switch(e){
  725 + case 'time':
  726 + e='timeupdate';
  727 + this.AT=f;
  728 + f=this.addListenerTime;
  729 + break;
  730 + case 'totaltime':
  731 + this.ATAll=f;
  732 + return;
  733 + break;
  734 + default:
  735 + break;
  736 + }
  737 + //console.log(typeof(f));
  738 + if(typeof(f)=='string'){
  739 + f=eval(f);
  740 + }
721 741 if (o.addEventListener) {
722 742 try{
723 743 o.addEventListener(e, f, false);
... ... @@ -739,7 +759,22 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
739 759 }
740 760 },
741 761 removeListener: function( e, f) {
742   - var o=CKobject._V_;
  762 + var o=this._V_;
  763 + switch(e){
  764 + case 'time':
  765 + e='timeupdate';
  766 + this.AT=null;
  767 + break;
  768 + case 'totaltime':
  769 + this.ATAll=null;
  770 + return;
  771 + break;
  772 + default:
  773 + break;
  774 + }
  775 + if(typeof(f)=='string'){
  776 + f=eval(f);
  777 + }
743 778 if (o.removeEventListener) {
744 779 try{
745 780 o.removeEventListener(e, f, false);
... ... @@ -973,7 +1008,7 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
973 1008 return false;
974 1009 },
975 1010 showHtml5: function() {
976   - var C = CKobject;
  1011 + var C = this;
977 1012 var p = C._E_['p'],
978 1013 a = C._E_['v'],
979 1014 c = C._E_['c'],
... ... @@ -998,9 +1033,9 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
998 1033 h='100%';
999 1034 }
1000 1035 if(C._E_['j']){
1001   - j='controls="controls"';
  1036 + j=' controls="controls"';
1002 1037 }
1003   - var v = '<video '+j+r+' id="' + p + '" width="' + w + '" height="' + h + '"' + C.getParams() + '>' + C.getVideo() + '</video>';
  1038 + var v = '<video'+j+r+' id="' + p + '" width="' + w + '" height="' + h + '"' + C.getParams() + ' webkit-playsinline>' + C.getVideo() + '</video>';
1004 1039 C._K_(c).innerHTML = v;
1005 1040 C._K_(c).style.backgroundColor = '#000';
1006 1041 C._V_ = C._K_(p);
... ... @@ -1040,6 +1075,12 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
1040 1075 C.addListener('click', C.html5Click);
1041 1076 }
1042 1077 },
  1078 + addListenerTime:function(){
  1079 + var C = CKobject;
  1080 + if(C.AT){
  1081 + C.AT(C._V_['currentTime']);
  1082 + }
  1083 + },
1043 1084 videoPlay: function() {
1044 1085 if (this._T_) {
1045 1086 this._V_.play();
... ... @@ -1070,6 +1111,9 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
1070 1111 }
1071 1112 },
1072 1113 changeVolume: function(n) {
  1114 + if(n<0 || n>100){
  1115 + return;
  1116 + }
1073 1117 if (this._T_) {
1074 1118 this._V_['volume'] = n * 0.01;
1075 1119 }
... ... @@ -1239,6 +1283,57 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
1239 1283 marqueeClose: function(s) {
1240 1284 this.getNot();
1241 1285 },
  1286 + videoError: function(s) {
  1287 + this.getNot();
  1288 + },
  1289 + formatUrl: function(s) {
  1290 + this.getNot();
  1291 + },
  1292 + sendJS: function(s) {
  1293 + this.getNot();
  1294 + },
  1295 + plugAttribute: function(s) {
  1296 + this.getNot();
  1297 + },
  1298 + errorTextShow: function(s) {
  1299 + this.getNot();
  1300 + },
  1301 + openUrl: function(s) {
  1302 + window.open(s);
  1303 + },
  1304 + jsonParse: function(s) {
  1305 + this.getNot();
  1306 + },
  1307 + promptShow: function(s,x,y) {
  1308 + this.getNot();
  1309 + },
  1310 + screenShot: function(s,x,y,x2,y2) {
  1311 + this.getNot();
  1312 + },
  1313 + fullScreen: function() {
  1314 + this.getNot();
  1315 + },
  1316 + allowFull: function() {
  1317 + this.getNot();
  1318 + },
  1319 + loadButton: function() {
  1320 + this.getNot();
  1321 + },
  1322 + getFile: function() {
  1323 + this.getNot();
  1324 + },
  1325 + textBoxShow:function() {
  1326 + this.getNot();
  1327 + },
  1328 + loadElement: function() {
  1329 + this.getNot();
  1330 + },
  1331 + textBoxClose: function() {
  1332 + this.getNot();
  1333 + },
  1334 + textBoxTween: function() {
  1335 + this.getNot();
  1336 + },
1242 1337 getNot: function() {
1243 1338 var s='The ckplayer\'s API for HTML5 does not exist';
1244 1339 return s;
... ... @@ -1292,7 +1387,7 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
1292 1387 loadedMetadataHandler: function() {
1293 1388 var C = CKobject;
1294 1389 C.returnStatus('loadedmetadata', 1);
1295   - C._O_['totaltime'] = C._V_['duration'];
  1390 + C._O_['totalTime'] = C._V_['duration'];
1296 1391 C._O_['width'] = C._V_['width'];
1297 1392 C._O_['height'] = C._V_['height'];
1298 1393 C._O_['awidth'] = C._V_['videoWidth'];
... ... @@ -1309,6 +1404,9 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
1309 1404 if (parseInt(C.getVars('p')) == 1) {
1310 1405 C.playHandler();
1311 1406 }
  1407 + if(C.ATAll){
  1408 + C.ATAll(C._V_['duration']);
  1409 + }
1312 1410 },
1313 1411 errorHandler: function() {
1314 1412 CKobject.returnStatus('error', 1);
... ... @@ -1348,7 +1446,7 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
1348 1446 C._J_=j;
1349 1447 }
1350 1448 else{
1351   - C._J_=parseInt(C._O_['totaltime'])+j;
  1449 + C._J_=parseInt(C._O_['totalTime'])+j;
1352 1450 }
1353 1451 }
1354 1452 }
... ... @@ -1356,6 +1454,7 @@ html5代码块的代码可以随意更改以适合你的应用,欢迎到论坛
1356 1454 }
1357 1455 },
1358 1456 html5Click: function(){
  1457 + //console.log(this);
1359 1458 var C = CKobject;
1360 1459 if(C.getVars('m')!='' && C.getVars('m')!=null){
1361 1460 window.open(C.getVars('m'));
... ...
src/main/webapp/static/assets/ckplayer/ckplayer.swf 0 → 100644
No preview for this file type
src/main/webapp/pages/check/ckplayer/ckplayer.xml renamed to src/main/webapp/static/assets/ckplayer/ckplayer.xml
... ... @@ -26,50 +26,50 @@
26 26 4、在播放前置广告时是否同时加载视频,0不加载,1加载
27 27 5、广告显示的参考对象,0是参考视频区域,1是参考播放器区域
28 28 6、广告大小的调整方式,只针对swf和图片有效,视频是自动缩放的
29   - =0是自动调整大小,意思是说大的话就变小,小的话就变大
30   - =1是大的化变小,小的话不变
31   - =2是什么也不变,就这么大
32   - =3是跟参考对像(第5个控制)参数设置的一样宽高
  29 + 0=自动调整大小,意思是说大的话就变小,小的话就变大
  30 + 1=是大的化变小,小的话不变
  31 + 2=是什么也不变,就这么大
  32 + 3=是跟参考对像(第5个控制)参数设置的一样宽高
33 33 7、前置广告播放顺序,0是顺序播放,1是随机播放,>1则随机取所有广告中的(N-1)个进行播放
34 34 8、对于视频广告是否采用修正,0是不使用,1是使用,如果是1,则用户在网速慢的情况下会按设定的倒计时进行播放广告,计时结束则放正片(比较人性化),设置成0的话,则强制播放完广告才能播放正片
35 35 9、是否开启滚动文字广告,0是不开启,1是开启且不使用关闭按钮,2是开启并且使用关闭按钮,开启后将在加载视频的时候加载滚动文字广告
36 36 10、视频的调整方式
37   - =0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
38   - =1是大的化变小,小的话不变
39   - =2是什么也不变,就这么大
40   - =3是跟参考对像(pm_video的设置)参数设置的一样宽高
  37 + 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  38 + 1=是大的化变小,小的话不变
  39 + 2=是什么也不变,就这么大
  40 + 3=是跟参考对像(pm_video的设置)参数设置的一样宽高
41 41 11、是否在多视频时分段加载,0不是,1是
42 42 12、缩放视频时是否进行平滑处理,0不是,1是
43 43 13、视频缓冲时间,单位:毫秒,建议不超过300
44 44 14、初始图片调整方式(
45   - =0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
46   - =1是大的化变小,小的话不变
47   - =2是什么也不变,就这么大
48   - =3是跟pm_video参数设置的一样宽高
  45 + 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  46 + 1=是大的化变小,小的话不变
  47 + 2=是什么也不变,就这么大
  48 + 3=是跟pm_video参数设置的一样宽高
49 49 15、暂停广告调整方式(
50   - =0是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
51   - =1是大的化变小,小的话不变
52   - =2是什么也不变,就这么大
53   - =3是跟pm_video参数设置的一样宽
  50 + 0=是自动调整大小,意思是说大的话就变小,小的话就变大,同时保持长宽比例不变
  51 + 1=是大的化变小,小的话不变
  52 + 2=是什么也不变,就这么大
  53 + 3=是跟pm_video参数设置的一样宽
54 54 16、暂停广告是否使用关闭广告设置,0不使用,1使用
55 55 17、缓冲时是否播放广告,0是不显示,1是显示并同时隐藏掉缓冲图标和进度,2是显示并不隐藏缓冲图标
56 56 18、是否支持键盘空格键控制播放和暂停0不支持,1支持
57 57 19、是否支持键盘左右方向键控制快进快退0不支持,1支持
58 58 20、是否支持键盘上下方向键控制音量0不支持,1支持
59   - 21、播放器返回js交互函数的等级,0-2,等级越高,返回的参数越多
60   - 0是返回少量常用交互
61   - 1返回播放器在播放的时候的参数,不返回广告之类的参数
62   - 2返回全部参数
63   - 3返回全部参数,并且在参数前加上"播放器ID->",用于多播放器的监听
  59 + 21、播放器返回js全部监听函数的等级,0-2,等级越高,返回的参数越多
  60 + 0=不返回全部监听事件
  61 + 1=返回监听,但不在控制台输出
  62 + 2=返回监听,并且在控制台同步输出
  63 + 3=返回全部监听事件,并且在参数前加上"播放器ID->",用于多播放器的监听
64 64 22、快进和快退的秒数
65 65 23、界面上图片元素加载失败重新加载次数
66 66 24、开启加载皮肤压缩文件包的加载进度提示
67 67 25、使用隐藏控制栏时显示简单进度条的功能,0是不使用,1是使用,2是只在普通状态下使用
68 68 26、控制栏隐藏设置(0不隐藏,1全屏时隐藏,2都隐藏
69 69 27、控制栏隐藏延时时间,即在鼠标离开控制栏后多少毫秒后隐藏控制栏
70   - 28、左右滚动时是否采用无缝,默认0采用,1是不采用
  70 + 28、滚动文字广告左右滚动时是否采用无缝,默认0采用,1是不采用
71 71 29、0是正常状态,1是控制栏默认隐藏,播放状态下鼠标经过播放器显示控制栏,2是一直隐藏控制栏
72   - 30、在播放rtmp视频时暂停后点击播放是否采用重新链接的方式,这里一共分0-3四个等级
  72 + 30、在播放rtmp视频时暂停后点击播放是否采用重新链接的方式,这里一共分0-2三个等级
73 73 31、当采用网址形式(flashvars里s=1/2时)读取视频地址时是采用默认0=get方法,1=post方式
74 74 32、是否启用播放按钮和暂停按钮
75 75 33、是否启用中间暂停按钮
... ... @@ -81,7 +81,7 @@
81 81 39、前置logo至少显示的时间,单位:毫秒
82 82 40、前置视频广告的默认音量
83 83 41、当s=3/4时加载插件是否从压缩包里加载,0不是,1是
84   - 42、加载风格是否采用加密方式传送,该功能普通用户不能使用
  84 + 42、加载风格是否采用加密方式传送,该功能普通用户不能使用,并且需要下载ckplayer-SN版
85 85 43、在s=1/2时,调用地址里的地址是否是相对地址(相对于调用文件),0不是,1是
86 86 -->
87 87 <pm_bg>0x000000,100,230,180</pm_bg>
... ... @@ -174,7 +174,7 @@
174 174 5、水平偏移量
175 175 6、垂直偏移量
176 176 -->
177   - <pm_padvc>2,0,-10,-10</pm_padvc>
  177 + <pm_padvc>2,0,-13,-13</pm_padvc>
178 178 <!--
179 179 暂停广告的关闭按钮的位置
180 180 1、水平对齐方式
... ... @@ -182,7 +182,7 @@
182 182 3、水平偏移量
183 183 4、垂直偏移量
184 184 -->
185   - <pm_advms>2,2,-46,-56</pm_advms>
  185 + <pm_advms>2,2,-46,-67</pm_advms>
186 186 <!--
187 187 滚动广告关闭按钮位置
188 188 1、水平对齐方式
... ... @@ -201,7 +201,7 @@
201 201 6、文本框宽席
202 202 7、文本框高度
203 203 -->
204   - <pm_advmarquee>1,2,50,-60,50,18,0,0x000000,50,0,20,1,30,2000</pm_advmarquee>
  204 + <pm_advmarquee>1,2,50,-70,50,18,0,0x000000,50,0,20,1,30,2000</pm_advmarquee>
205 205 <!--
206 206 滚动广告的控制,要使用的话需要在setup里的第9个参数设置成1
207 207 这里分二种情况,前六个参数是定位控制,第7个参数是设置定位方式(0:相对定位,1:绝对定位)
... ... @@ -256,7 +256,10 @@
256 256 -->
257 257 <calljs>ckplayer_status,ckadjump,playerstop,ckmarqueeadv</calljs>
258 258 <!--
259   - 跳过广告和播放结束时调用的js函数
  259 + 1、全局监听返回结果的函数
  260 + 2、跳过广告的函数
  261 + 3、播放结束时调用的js函数
  262 + 4、加载滚动文字广告的函数
260 263 -->
261 264 <myweb></myweb>
262 265  
... ... @@ -266,15 +269,12 @@
266 269 -->
267 270 <cpt_lights>0</cpt_lights>
268 271 <!--
269   - 该处定义是否使用开关灯,和right.swf插件配合作用,使用开灯效果时调用页面的js函数function closelights(){};
  272 + 该处定义是否使用开关灯,使用开灯效果时调用页面的js函数function closelights(){},关灯调用 function closelights(){};
270 273 -->
271 274 <cpt_share>/ckplayer/share.xml</cpt_share>
272 275 <!--
273   - 分享插件调用的配置文件地址
  276 + 分享插件调用的配置文件地址,此设设置成空,则不启用分享按钮
274 277 调用插件开始
275 278 -->
276   - <cpt>right.swf,2,1,0,0,2,0</cpt><!--右边开关灯,调整,分享按钮的插件-->
277   - <cpt>share.swf,1,1,-180,-100,3,0</cpt><!--分享插件-->
278   - <cpt>adjustment.swf,1,1,-180,-100,3,0</cpt><!--调整大小和颜色的插件-->
279 279 </style>
280 280 </ckplayer>
281 281 \ No newline at end of file
... ...
src/main/webapp/static/assets/ckplayer/language.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 + <ckplayer>
  3 + <style>
  4 + <pr_zip>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}已加载[$prtage]%{/font}</pr_zip>
  5 + <!--
  6 + 加载皮肤包进度提示的文字,[$prtage]会被替换成加载百分比
  7 + -->
  8 + <pr_load>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}已加载[$prtage]%{/font}</pr_load>
  9 + <!--
  10 + 当调用多段视频时,并且没有配置好各段视频的时间和字节数的情况下,播放器需要先读取各段视频的元数据进行计算,此时需要显示一个加载进度告诉用户已计算的情况。
  11 + -->
  12 + <pr_noload>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}加载失败{/font}</pr_noload>
  13 + <!--
  14 + 加载视频失败时显示的内容
  15 + -->
  16 + <pr_buffer>{font color='#FFFFFF' face='Arial' size='12'}[$buffer]%{/font}</pr_buffer>
  17 + <!--
  18 + 视频缓冲时显示的提示,[$buffer]会被替换成缓冲的百分比数字部份
  19 + -->
  20 + <pr_play>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}点击播放{/font}</pr_play>
  21 + <!--
  22 + 鼠标经过播放按钮时的提示,支持html
  23 + -->
  24 + <pr_pause>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}点击暂停{/font}</pr_pause>
  25 + <!--
  26 + 鼠标经过暂停按钮时的提示,支持html
  27 + -->
  28 + <pr_mute>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}点击静音{/font}</pr_mute>
  29 + <!--
  30 + 鼠标经过静音按钮时的提示,支持html
  31 + -->
  32 + <pr_nomute>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}取消静音{/font}</pr_nomute>
  33 + <!--
  34 + 鼠标经过取消静音按钮时的提示,支持html
  35 + -->
  36 + <pr_full>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}点击全屏{/font}</pr_full>
  37 + <!--
  38 + 鼠标经过全屏按钮时的提示,支持html
  39 + -->
  40 + <pr_nofull>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}退出全屏{/font}</pr_nofull>
  41 + <!--
  42 + 鼠标经过退出全屏按钮时的提示,支持html
  43 + -->
  44 + <pr_fastf>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}快进{/font}</pr_fastf>
  45 + <!--
  46 + 鼠标经过快进按钮时的提示,支持html
  47 + -->
  48 + <pr_fastr>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}快退{/font}</pr_fastr>
  49 + <!--
  50 + 鼠标经过快退按钮时的提示,支持html
  51 + -->
  52 + <pr_time>{font color='#FFFFFF' face='Arial' size='16'}[$Time]{/font}</pr_time>
  53 + <!--
  54 + 鼠标经过进度栏时提示当前点上时间的,[$Time]会被替换成时间,支持html
  55 + -->
  56 + <pr_volume>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}音量:[$Volume]%{/font}</pr_volume>
  57 + <!--
  58 + 鼠标经过音量调节框或调整音量时提示,[$Volume]会自动替换音量值(0-100)
  59 + -->
  60 + <pr_clockwait>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}00:00 / 00:00{/font}</pr_clockwait>
  61 + <!--
  62 + 在默认不加载视频,即m=1的时候,同时并没有设置视频的时间和字节,即o和w值的时候,pr_clock和pr_clock2里的所有内容被替换成这里设置的值
  63 + -->
  64 + <pr_live>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}视频直播中{/font}</pr_live>
  65 + <!--
  66 + 在直播的情况下显示的文字
  67 + -->
  68 + <pr_adv>{font color='#FFFFFF' size='12' face='Microsoft YaHei,微软雅黑'}广告剩余:{font color='#FF0000' size='15' face='Arial'}{b}[$Second]{/b}{/font} 秒{/font}</pr_adv>
  69 + <!--
  70 + 广告倒计时显示的内容,[$Second]将会显示倒计时的秒数
  71 + -->
  72 + <pr_prompt>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}[$prompt]{/font}</pr_prompt>
  73 + <!--
  74 + 提示点文字
  75 + -->
  76 + <pr_cksetup>{font color='#FFFFFF' face='Microsoft YaHei,微软雅黑' size='14'}设置{/font}</pr_cksetup>
  77 + <!--
  78 + 鼠标经过设置提示的文字(该定义为插件所用)
  79 + -->
  80 + </style>
  81 + </ckplayer>
0 82 \ No newline at end of file
... ...
src/main/webapp/static/assets/ckplayer/related.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<ckplayer>
  3 +<title>{font color="#FFDD00" face="Microsoft YaHei,微软雅黑" size="14"}精彩视频推荐{/font}</title>
  4 + <!--左上角的标题说明文字,支持html-->
  5 + <area>600,400,0xFFDD00,20</area>
  6 + <!--
  7 + 该插件在播放中的区域控制
  8 + 固定尺寸,精彩视频区域会固定大小并且保持剧中
  9 + 1:宽
  10 + 2:高
  11 + 3:边框色
  12 + 4:边框透明度
  13 + -->
  14 + <image>120,90</image>
  15 + <!--图片的宽,高-->
  16 + <distance>150,175,100</distance>
  17 + <!--
  18 + 1:横排图片之间的距离,前一个图片的左边到后一个图片的左边的距离
  19 + 2:竖排图片之间距离,上一个图片的上边到下一个图片的上边距离,这里需要特别注意,因为图片显示区域是总区域-40的高度,默认的即<area>的高400-40=360,所以比如你的图片想一列显示二个,则该参数需要设置成360/2=180
  20 + 3:文字距离图片上方的距离
  21 + 只要设置好这三个参数,图片的位置就可以固定住了
  22 + -->
  23 + <rep_title>{a href="[url]" target="_blank"}{font color="#FFFFFF" face="新宋体"}[title]{/font}{/a}</rep_title>
  24 + <!--标题替换规则-->
  25 + <style>a{color:#FFFFFF;}a:hover{color:#FF0000;}</style>
  26 + <!--文本样式-->
  27 + <size>120,42,3</size>
  28 + <!--文本的宽度,高度,行和行之间距离-->
  29 + <relatedlist>
  30 + <related>
  31 + <img>temp/1.jpg</img>
  32 + <url>http://www.ckplayer.com/</url>
  33 + <title>1:这里调用的文件配置在ckplayer/related.xml里</title>
  34 + </related>
  35 + <related>
  36 + <img>temp/2.jpg</img>
  37 + <url>http://www.ckplayer.com/</url>
  38 + <title>2:支持多页调用</title>
  39 + </related>
  40 + <related>
  41 + <img>temp/3.jpg</img>
  42 + <url>http://www.ckplayer.com/</url>
  43 + <title>3:文本请保持在二行,不能多于三行,多于三行将不显示</title>
  44 + </related>
  45 + <related>
  46 + <img>temp/4.jpg</img>
  47 + <url>http://www.ckplayer.com/</url>
  48 + <title>4:支持多行调用,多页调用</title>
  49 + </related>
  50 + <related>
  51 + <img>temp/5.jpg</img>
  52 + <url>http://www.ckplayer.com/</url>
  53 + <title>5:感谢对ckplayer的支持</title>
  54 + </related>
  55 + <related>
  56 + <img>temp/6.jpg</img>
  57 + <url>http://www.ckplayer.com/</url>
  58 + <title>6:最多两行,请不要超过二行</title>
  59 + </related>
  60 + <related>
  61 + <img>temp/3.jpg</img>
  62 + <url>http://www.ckplayer.com/</url>
  63 + <title>7:这里调用的文件配置在ckplayer/related.xml里</title>
  64 + </related>
  65 + <related>
  66 + <img>temp/5.jpg</img>
  67 + <url>http://www.ckplayer.com/</url>
  68 + <title>8:支持多页调用</title>
  69 + </related>
  70 + <related>
  71 + <img>temp/4.jpg</img>
  72 + <url>http://www.ckplayer.com/</url>
  73 + <title>9:文本请保持在二行,不能多于三行,多于三行将不显示</title>
  74 + </related>
  75 + <related>
  76 + <img>temp/1.jpg</img>
  77 + <url>http://www.ckplayer.com/</url>
  78 + <title>10:支持多行调用,多页调用</title>
  79 + </related>
  80 + <related>
  81 + <img>temp/2.jpg</img>
  82 + <url>http://www.ckplayer.com/</url>
  83 + <title>11:感谢对ckplayer的支持</title>
  84 + </related>
  85 + <related>
  86 + <img>temp/6.jpg</img>
  87 + <url>http://www.ckplayer.com/</url>
  88 + <title>12:最多两行,请不要超过二行</title>
  89 + </related>
  90 + <related>
  91 + <img>temp/5.jpg</img>
  92 + <url>http://www.ckplayer.com/</url>
  93 + <title>13:这里调用的文件配置在ckplayer/related.xml里</title>
  94 + </related>
  95 + <related>
  96 + <img>temp/4.jpg</img>
  97 + <url>http://www.ckplayer.com/</url>
  98 + <title>14:支持多页调用</title>
  99 + </related>
  100 + <related>
  101 + <img>temp/6.jpg</img>
  102 + <url>http://www.ckplayer.com/</url>
  103 + <title>15:文本请保持在二行,不能多于三行,多于三行将不显示</title>
  104 + </related>
  105 + <related>
  106 + <img>temp/3.jpg</img>
  107 + <url>http://www.ckplayer.com/</url>
  108 + <title>16:支持多行调用,多页调用</title>
  109 + </related>
  110 + <related>
  111 + <img>temp/1.jpg</img>
  112 + <url>http://www.ckplayer.com/</url>
  113 + <title>17:感谢对ckplayer的支持</title>
  114 + </related>
  115 + <related>
  116 + <img>temp/2.jpg</img>
  117 + <url>http://www.ckplayer.com/</url>
  118 + <title>18:最多两行,请不要超过二行</title>
  119 + </related>
  120 + </relatedlist>
  121 +</ckplayer>
0 122 \ No newline at end of file
... ...
src/main/webapp/static/assets/ckplayer/share.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<ckplayer>
  3 + <share_html>
  4 + {embed src="贵站网址,在ckplayer/share.xml里修改/ckplayer/ckplayer.swf" flashvars="[$share]" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" allowFullscreen="true" type="application/x-shockwave-flash"}{/embed}
  5 + </share_html>
  6 + <share_flash>
  7 + 贵站网址/ckplayer/ckplayer.swf?[$share]
  8 + </share_flash>
  9 + <share_flashvars>
  10 + f,my_url,my_pic,a
  11 + </share_flashvars>
  12 + <share_path>ckplayer/share/</share_path><!--分享图片的文件夹地址-->
  13 + <share_replace>
  14 + </share_replace>
  15 + <share_permit>0</share_permit><!--是否有视听许可证,默认0没有,1是有-->
  16 + <share_uuid>
  17 + c25cf02c-1705-412d-bd4b-77a10b380f08
  18 + </share_uuid>
  19 + <share_button>
  20 + <share>
  21 + <id>qqmb</id>
  22 + <img>qq.png</img>
  23 + <coordinate>20,50</coordinate>
  24 + </share>
  25 + <share>
  26 + <id>sinaminiblog</id>
  27 + <img>sina.png</img>
  28 + <coordinate>101,50</coordinate>
  29 + </share>
  30 + <share>
  31 + <id>qzone</id>
  32 + <img>qzone.png</img>
  33 + <coordinate>182,50</coordinate>
  34 + </share>
  35 + <share>
  36 + <id>renren</id>
  37 + <img>rr.png</img>
  38 + <coordinate>263,50</coordinate>
  39 + </share>
  40 + <share>
  41 + <id>kaixin001</id>
  42 + <img>kaixin001.png</img>
  43 + <coordinate>20,85</coordinate>
  44 + </share>
  45 + <share>
  46 + <id>tianya</id>
  47 + <img>tianya.png</img>
  48 + <coordinate>101,85</coordinate>
  49 + </share>
  50 + <share>
  51 + <id>feixin</id>
  52 + <img>feixin.png</img>
  53 + <coordinate>182,85</coordinate>
  54 + </share>
  55 + <share>
  56 + <id>msn</id>
  57 + <img>msn.png</img>
  58 + <coordinate>263,85</coordinate>
  59 + </share>
  60 + </share_button>
  61 +</ckplayer>
0 62 \ No newline at end of file
... ...
src/main/webapp/static/assets/ckplayer/share/feixin.png 0 → 100644

2.16 KB

src/main/webapp/static/assets/ckplayer/share/google.png 0 → 100644

1.78 KB

src/main/webapp/static/assets/ckplayer/share/kaixin001.png 0 → 100644

2.55 KB

src/main/webapp/static/assets/ckplayer/share/msn.png 0 → 100644

1.91 KB

src/main/webapp/static/assets/ckplayer/share/qq.png 0 → 100644

1.83 KB

src/main/webapp/static/assets/ckplayer/share/qq2.png 0 → 100644

2.08 KB

src/main/webapp/static/assets/ckplayer/share/qzone.png 0 → 100644

2.08 KB

src/main/webapp/static/assets/ckplayer/share/rr.png 0 → 100644

3 KB

src/main/webapp/static/assets/ckplayer/share/sina.png 0 → 100644

2.59 KB

src/main/webapp/static/assets/ckplayer/share/sohu.png 0 → 100644

1.38 KB

src/main/webapp/static/assets/ckplayer/share/tianya.png 0 → 100644

2.32 KB

src/main/webapp/static/assets/ckplayer/style.swf 0 → 100644
No preview for this file type
src/main/webapp/static/assets/cnlive/js/check.js 0 → 100644
  1 +function to_top(id) {
  2 + $.ajax({
  3 + url : BASE+'/check/top/'+id,
  4 + type : 'get',
  5 + async : true,
  6 + error : function() {
  7 + alert('获取错误!');
  8 + },
  9 + success : function(data) {
  10 + window.location.href="../list/1";
  11 + }
  12 + });
  13 +}
  14 +
  15 +function to_pass(id) {
  16 + $.ajax({
  17 + url : BASE+'/check/pass/'+id,
  18 + type : 'get',
  19 + async : true,
  20 + error : function() {
  21 + alert('获取错误!');
  22 + },
  23 + success : function(data) {
  24 + window.location.href="../list/1";
  25 + }
  26 + });
  27 +}
  28 +
  29 +
  30 +
0 31 \ No newline at end of file
... ...
src/main/webapp/static/assets/cnlive/js/player_m3u8.js 0 → 100644
  1 +var map = {};
  2 +//获取所有播放器span
  3 +var foo= $("span[class='mailbox-attachment-icon has-img']");
  4 + $(foo).each(function() {
  5 + var channel_id=this.id.split("_")[2];
  6 + var play_url= $("#play_url_"+channel_id).val();
  7 + var player_name=this.id;
  8 + //初始化播放器对象
  9 + var player_handel="player_"+channel_id;
  10 +
  11 + player_handel=jwplayer(player_name).setup({
  12 + flashplayer:BASE+"/static/assets/jwplayer/jwplayer.flash.swf",
  13 + file: play_url,
  14 + image: BASE+"/static/assets/jwplayer/player.jpg",
  15 + width: '155',
  16 + height: '105',
  17 + mute:true,
  18 + autostart: true
  19 + });
  20 +
  21 + map["player_"+channel_id] = player_handel;
  22 +})
  23 +
  24 +function play(id){
  25 + var player=map["player_"+id];
  26 + if(player.getState() != 'PLAYING'){
  27 + player.play(true);
  28 + $("#play_button_"+id).html("断开");
  29 + }else {
  30 + player.play(false);
  31 + player.stop();
  32 + $("#play_button_"+id).html("载入");
  33 + }
  34 +
  35 +}
  36 +
  37 +
0 38 \ No newline at end of file
... ...
target/m2e-wtp/web-resources/META-INF/maven/com.cnlive.mz.live.web/cnlive_live_web/pom.properties
1 1 #Generated by Maven Integration for Eclipse
2   -#Tue Jun 07 09:46:42 CST 2016
  2 +#Wed Jun 08 15:30:24 CST 2016
3 3 version=0.0.1-SNAPSHOT
4 4 groupId=com.cnlive.mz.live.web
5 5 m2e.projectName=cnlive_live_web
... ...