Commit b8a5bf8a6a0396eb6ff3203455fb40062b1e51b5
Merge branch 'master' of http://bj.gitlab.cnlive.com/liujicheng/cnlive_live_web into v532
# Conflicts: # src/main/java/com/cnlive/mz/live/action/LiveAction.java # target/m2e-wtp/web-resources/META-INF/maven/com.cnlive.mz.live.web/cnlive_live_web/pom.properties
Showing
11 changed files
with
284 additions
and
246 deletions
WebContent/META-INF/MANIFEST.MF
src/main/java/com/cnlive/mz/live/action/LiveAction.java
| @@ -220,4 +220,10 @@ public class LiveAction { | @@ -220,4 +220,10 @@ public class LiveAction { | ||
| 220 | System.out.println(tLive); | 220 | System.out.println(tLive); |
| 221 | return new View("live/all_live_management.jsp").data("tLive", tLive); | 221 | return new View("live/all_live_management.jsp").data("tLive", tLive); |
| 222 | } | 222 | } |
| 223 | + | ||
| 224 | + @Request.Get("/live/searchg/{page_number}") | ||
| 225 | + public Result searchq(int page_number) { | ||
| 226 | + | ||
| 227 | + return new Result(true); | ||
| 228 | + } | ||
| 223 | } | 229 | } |
| 224 | \ No newline at end of file | 230 | \ No newline at end of file |
src/main/java/com/cnlive/mz/live/action/VideoAction.java
| 1 | -package com.cnlive.mz.live.action; | ||
| 2 | - | ||
| 3 | -import java.util.Date; | ||
| 4 | -import java.util.LinkedHashMap; | ||
| 5 | -import java.util.Map; | ||
| 6 | - | ||
| 7 | -import org.apache.commons.lang3.StringUtils; | ||
| 8 | -import org.apache.log4j.Logger; | ||
| 9 | -import org.smart4j.framework.dao.bean.Pager; | ||
| 10 | -import org.smart4j.framework.ioc.annotation.Inject; | ||
| 11 | -import org.smart4j.framework.mvc.DataContext; | ||
| 12 | -import org.smart4j.framework.mvc.annotation.Action; | ||
| 13 | -import org.smart4j.framework.mvc.annotation.Request; | ||
| 14 | -import org.smart4j.framework.mvc.bean.ApiBean; | ||
| 15 | -import org.smart4j.framework.mvc.bean.Params; | ||
| 16 | -import org.smart4j.framework.mvc.bean.Result; | ||
| 17 | -import org.smart4j.framework.mvc.bean.View; | ||
| 18 | -import org.smart4j.framework.util.CastUtil; | ||
| 19 | - | ||
| 20 | -import com.cnlive.mz.commons.CnliveUtil; | ||
| 21 | -import com.cnlive.mz.live.common.Constants; | ||
| 22 | -import com.cnlive.mz.live.common.LiveUtils; | ||
| 23 | -import com.cnlive.mz.live.entity.TLive; | ||
| 24 | -import com.cnlive.mz.live.entity.TVideo; | ||
| 25 | -import com.cnlive.mz.live.service.TDispatchServerService; | ||
| 26 | -import com.cnlive.mz.live.service.TLiveService; | ||
| 27 | -import com.cnlive.mz.live.service.TUserService; | ||
| 28 | -import com.cnlive.mz.live.service.TVideoService; | ||
| 29 | - | ||
| 30 | -@Action | ||
| 31 | -public class VideoAction { | ||
| 32 | - | ||
| 33 | - private Logger log = Logger.getLogger("action"); | ||
| 34 | - @Inject | ||
| 35 | - private TDispatchServerService tDispatchServerService; | ||
| 36 | - @Inject | ||
| 37 | - private TVideoService tVideoService; | ||
| 38 | - @Inject | ||
| 39 | - private TUserService tUserService; | ||
| 40 | - @Inject | ||
| 41 | - private TLiveService tLiveService; | ||
| 42 | - | ||
| 43 | - /** | ||
| 44 | - * 服务器定向 | ||
| 45 | - * | ||
| 46 | - * @param params | ||
| 47 | - * @return | ||
| 48 | - * {"mediaComment":"","nickName":"阳Sir","appId":"1","mediaName":"","userId" | ||
| 49 | - * :"1167015","uuid": | ||
| 50 | - * "1167015_1463725085798_6a551f9122494a05ac8566b7a2ae1092"} | ||
| 51 | - */ | ||
| 52 | - @Request.Post("/api/video/redirect") | ||
| 53 | - public ApiBean redirect(Params params) { | ||
| 54 | - String app_access_key = params.getString("app_access_key"); | ||
| 55 | - String video_type = params.getString("video_type"); | ||
| 56 | - String user_id = params.getString("relation_id"); | ||
| 57 | - ApiBean apiBean = tDispatchServerService.redirect(video_type, app_access_key, user_id); | ||
| 58 | - return apiBean; | ||
| 59 | - } | ||
| 60 | - | ||
| 61 | - @Request.Post("/api/video/supload") | ||
| 62 | - public ApiBean supload(Params params) { | ||
| 63 | - Map data = new LinkedHashMap(); | ||
| 64 | - String app_access_key = params.getString("app_access_key"); | ||
| 65 | - String video_type = params.getString("video_type"); | ||
| 66 | - String user_access_key = params.getString("user_access_key"); | ||
| 67 | - String server_access_key = params.getString("server_access_key"); | ||
| 68 | - String active_id = params.getString("active_id"); | ||
| 69 | - String title = params.getString("title"); | ||
| 70 | - if (title.length() > 50) { | ||
| 71 | - title = title.substring(0, 50); | ||
| 72 | - } | ||
| 73 | - String direct = params.getString("direct"); | ||
| 74 | - String description = params.getString("description"); | ||
| 75 | - String custom_args = params.getString("custom_args"); | ||
| 76 | - String md5 = params.getString("md5"); | ||
| 77 | - String relation_id = params.getString("relation_id"); | ||
| 78 | - String uuid = ""; | ||
| 79 | - if (video_type.equals("2")) { | ||
| 80 | - // 2:sdk上传录播文件 | ||
| 81 | - TVideo tVideo = new TVideo(); | ||
| 82 | - tVideo.setCustom_args(custom_args); | ||
| 83 | - tVideo.setRelation_id(relation_id); | ||
| 84 | - tVideo.setName(params.getString("name")); | ||
| 85 | - tVideo.setVideo_type(params.getString("video_type")); | ||
| 86 | - tVideo.setPlat(params.getString("plat")); | ||
| 87 | - tVideo.setState(207); | ||
| 88 | - tVideo.setMd5(md5); | ||
| 89 | - uuid = CnliveUtil.getUUID(); | ||
| 90 | - tVideo.setVideo_uuid(uuid); | ||
| 91 | - tVideo.setTitle(title); | ||
| 92 | - tVideo.setDescription(description); | ||
| 93 | - tVideoService.saveSdkVideo(tVideo, server_access_key, user_access_key, app_access_key); | ||
| 94 | - } else if (video_type.equals("3")) { | ||
| 95 | - TLive tLive = tLiveService.getTLiveByUUId(active_id); | ||
| 96 | - tLive.setT_status_id(1); | ||
| 97 | - tLive.setTitle(title); | ||
| 98 | - tLive.setDescription(description); | ||
| 99 | - tLive.setStart_time(new Date()); | ||
| 100 | - tLive.setUser_uuid(params.getString("name")); | ||
| 101 | - tLive.setRelation_id(relation_id); | ||
| 102 | - tLive.setCustom_args(custom_args); | ||
| 103 | - uuid = tLive.getUuid(); | ||
| 104 | - if (StringUtils.isEmpty(direct)) { | ||
| 105 | - tLive.setDirect(0); | ||
| 106 | - } else { | ||
| 107 | - tLive.setDirect(Integer.parseInt(direct)); | ||
| 108 | - } | ||
| 109 | - tLive.setLive_url(Constants.KS_HOST_RTMP + tLive.getT_user_id() + "_" + uuid); | ||
| 110 | - tLiveService.startLive(tLive); | ||
| 111 | - } | ||
| 112 | - data.put("video_uuid", uuid); | ||
| 113 | - ApiBean apiBean = new ApiBean(); | ||
| 114 | - apiBean.setCode(100); | ||
| 115 | - apiBean.setMessage("请求成功"); | ||
| 116 | - apiBean.setData(data); | ||
| 117 | - return apiBean; | ||
| 118 | - } | ||
| 119 | - | ||
| 120 | - @Request.Post("/api/video/all") | ||
| 121 | - public ApiBean all(Params params) { | ||
| 122 | - String app_access_key = params.getString("app_access_key"); | ||
| 123 | - String relationId = params.getString("relation_id"); | ||
| 124 | - String pageNo = params.getString("page_no"); | ||
| 125 | - String relation_id = params.getString("relation_id"); | ||
| 126 | - String upload_type = params.getString("upload_type"); | ||
| 127 | - // String video_type = params.getString("video_type"); | ||
| 128 | - Pager<TVideo> page = tVideoService.findAll(app_access_key, relationId, pageNo); | ||
| 129 | - ApiBean apiBean = new ApiBean(); | ||
| 130 | - apiBean.setCode(100); | ||
| 131 | - apiBean.setMessage("请求成功"); | ||
| 132 | - apiBean.setData(page); | ||
| 133 | - return apiBean; | ||
| 134 | - } | ||
| 135 | - | ||
| 136 | - @Request.Get("/video/list/{page_number}") | ||
| 137 | - public View list(int page_number) { | ||
| 138 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 139 | - Pager<TVideo> page = tVideoService.list(user_id, page_number, 33); | ||
| 140 | - return new View("live/video_management.jsp").data("videos", page); | ||
| 141 | - } | ||
| 142 | - | ||
| 143 | - @Request.Get("/video/check/{page_number}") | ||
| 144 | - public View check(int page_number) { | ||
| 145 | - Pager<TVideo> page = tVideoService.list(page_number, 33); | ||
| 146 | - return new View("live/video_management.jsp").data("videos", page); | ||
| 147 | - } | ||
| 148 | - | ||
| 149 | - @Request.Get("/video/pass/{id}") | ||
| 150 | - public Result pass(int id) { | ||
| 151 | - tVideoService.pass(id); | ||
| 152 | - return new Result(true); | ||
| 153 | - } | ||
| 154 | - | ||
| 155 | - @Request.Get("/video/view/{id}") | ||
| 156 | - public View view(int id) { | ||
| 157 | - TVideo tVideo = tVideoService.getVideoById(id); | ||
| 158 | - System.out.println("------"+tVideo); | ||
| 159 | - return new View("live/video_view.jsp").data("tVideo", tVideo); | ||
| 160 | - } | ||
| 161 | - | ||
| 162 | - @Request.Post("/api/video/one") | ||
| 163 | - public ApiBean one(Params params) { | ||
| 164 | - String app_access_key = params.getString("app_access_key"); | ||
| 165 | - String video_uuid = params.getString("video_uuid"); | ||
| 166 | - TVideo page = tVideoService.getVideoByUuId(video_uuid); | ||
| 167 | - ApiBean apiBean = new ApiBean(); | ||
| 168 | - apiBean.setCode(100); | ||
| 169 | - apiBean.setMessage("请求成功"); | ||
| 170 | - apiBean.setData(page); | ||
| 171 | - return apiBean; | ||
| 172 | - } | ||
| 173 | - | ||
| 174 | - @Request.Post("/api/video/uploadNotify") | ||
| 175 | - public ApiBean uploadNotify(Params params) { | ||
| 176 | - String video_uuid = params.getString("video_uuid"); | ||
| 177 | - String upload_type = params.getString("upload_type"); | ||
| 178 | - String video_type = params.getString("video_type"); | ||
| 179 | - String state = params.getString("state"); | ||
| 180 | - String duration = params.getString("duration"); | ||
| 181 | - xLog("uploadNotify", "duration", duration, video_uuid, video_type, state); | ||
| 182 | - if (video_type.equals("2")) { | ||
| 183 | - // 点播通知 | ||
| 184 | - tVideoService.notify(video_uuid); | ||
| 185 | - } else if (video_type.equals("3")) { | ||
| 186 | - // 直播正常结束 | ||
| 187 | - tLiveService.notify(video_uuid, 2); | ||
| 188 | - } | ||
| 189 | - ApiBean apiBean = new ApiBean(); | ||
| 190 | - apiBean.setCode(100); | ||
| 191 | - apiBean.setMessage("请求成功"); | ||
| 192 | - return apiBean; | ||
| 193 | - } | ||
| 194 | - | ||
| 195 | - @Request.Get("/api/video/error/{video_uuid}") | ||
| 196 | - public ApiBean error(String video_uuid) { | ||
| 197 | - // 直播异常结束 | ||
| 198 | - tLiveService.notify(video_uuid, -2); | ||
| 199 | - ApiBean apiBean = new ApiBean(); | ||
| 200 | - apiBean.setCode(100); | ||
| 201 | - apiBean.setMessage("请求成功"); | ||
| 202 | - return apiBean; | ||
| 203 | - } | ||
| 204 | - | ||
| 205 | - @Request.Post("/api/video/delete") | ||
| 206 | - public ApiBean delete(Params params) { | ||
| 207 | - String user_access_key = params.getString("user_access_key"); | ||
| 208 | - String video_uuid = params.getString("video_uuid"); | ||
| 209 | - String app_access_key = params.getString("app_access_key"); | ||
| 210 | - String video_type = params.getString("video_type");// 视频类型 | ||
| 211 | - tVideoService.delete(video_uuid); | ||
| 212 | - ApiBean apiBean = new ApiBean(); | ||
| 213 | - apiBean.setCode(100); | ||
| 214 | - apiBean.setMessage("请求成功"); | ||
| 215 | - return apiBean; | ||
| 216 | - } | ||
| 217 | - | ||
| 218 | - private void xLog(String... str) { | ||
| 219 | - StringBuffer sb = new StringBuffer(); | ||
| 220 | - for (int i = 0; i < str.length; i++) { | ||
| 221 | - sb.append(str[i]); | ||
| 222 | - sb.append("|"); | ||
| 223 | - } | ||
| 224 | - log.info(sb.toString()); | ||
| 225 | - } | ||
| 226 | -} | 1 | +package com.cnlive.mz.live.action; |
| 2 | + | ||
| 3 | +import java.util.Date; | ||
| 4 | +import java.util.LinkedHashMap; | ||
| 5 | +import java.util.Map; | ||
| 6 | + | ||
| 7 | +import org.apache.commons.lang3.StringUtils; | ||
| 8 | +import org.apache.log4j.Logger; | ||
| 9 | +import org.smart4j.framework.dao.bean.Pager; | ||
| 10 | +import org.smart4j.framework.ioc.annotation.Inject; | ||
| 11 | +import org.smart4j.framework.mvc.DataContext; | ||
| 12 | +import org.smart4j.framework.mvc.annotation.Action; | ||
| 13 | +import org.smart4j.framework.mvc.annotation.Request; | ||
| 14 | +import org.smart4j.framework.mvc.bean.ApiBean; | ||
| 15 | +import org.smart4j.framework.mvc.bean.Params; | ||
| 16 | +import org.smart4j.framework.mvc.bean.Result; | ||
| 17 | +import org.smart4j.framework.mvc.bean.View; | ||
| 18 | +import org.smart4j.framework.util.CastUtil; | ||
| 19 | + | ||
| 20 | +import com.cnlive.mz.commons.CnliveUtil; | ||
| 21 | +import com.cnlive.mz.live.common.Constants; | ||
| 22 | +import com.cnlive.mz.live.common.LiveUtils; | ||
| 23 | +import com.cnlive.mz.live.entity.TLive; | ||
| 24 | +import com.cnlive.mz.live.entity.TVideo; | ||
| 25 | +import com.cnlive.mz.live.service.TDispatchServerService; | ||
| 26 | +import com.cnlive.mz.live.service.TLiveService; | ||
| 27 | +import com.cnlive.mz.live.service.TUserService; | ||
| 28 | +import com.cnlive.mz.live.service.TVideoService; | ||
| 29 | + | ||
| 30 | +@Action | ||
| 31 | +public class VideoAction { | ||
| 32 | + | ||
| 33 | + private Logger log = Logger.getLogger("action"); | ||
| 34 | + @Inject | ||
| 35 | + private TDispatchServerService tDispatchServerService; | ||
| 36 | + @Inject | ||
| 37 | + private TVideoService tVideoService; | ||
| 38 | + @Inject | ||
| 39 | + private TUserService tUserService; | ||
| 40 | + @Inject | ||
| 41 | + private TLiveService tLiveService; | ||
| 42 | + | ||
| 43 | + /** | ||
| 44 | + * 服务器定向 | ||
| 45 | + * | ||
| 46 | + * @param params | ||
| 47 | + * @return | ||
| 48 | + * {"mediaComment":"","nickName":"阳Sir","appId":"1","mediaName":"","userId" | ||
| 49 | + * :"1167015","uuid": | ||
| 50 | + * "1167015_1463725085798_6a551f9122494a05ac8566b7a2ae1092"} | ||
| 51 | + */ | ||
| 52 | + @Request.Post("/api/video/redirect") | ||
| 53 | + public ApiBean redirect(Params params) { | ||
| 54 | + String app_access_key = params.getString("app_access_key"); | ||
| 55 | + String video_type = params.getString("video_type"); | ||
| 56 | + String user_id = params.getString("relation_id"); | ||
| 57 | + ApiBean apiBean = tDispatchServerService.redirect(video_type, app_access_key, user_id); | ||
| 58 | + return apiBean; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + @Request.Post("/api/video/supload") | ||
| 62 | + public ApiBean supload(Params params) { | ||
| 63 | + Map data = new LinkedHashMap(); | ||
| 64 | + String app_access_key = params.getString("app_access_key"); | ||
| 65 | + String video_type = params.getString("video_type"); | ||
| 66 | + String user_access_key = params.getString("user_access_key"); | ||
| 67 | + String server_access_key = params.getString("server_access_key"); | ||
| 68 | + String active_id = params.getString("active_id"); | ||
| 69 | + String title = params.getString("title"); | ||
| 70 | + if (title.length() > 50) { | ||
| 71 | + title = title.substring(0, 50); | ||
| 72 | + } | ||
| 73 | + String direct = params.getString("direct"); | ||
| 74 | + String description = params.getString("description"); | ||
| 75 | + String custom_args = params.getString("custom_args"); | ||
| 76 | + String md5 = params.getString("md5"); | ||
| 77 | + String relation_id = params.getString("relation_id"); | ||
| 78 | + String uuid = ""; | ||
| 79 | + if (video_type.equals("2")) { | ||
| 80 | + // 2:sdk上传录播文件 | ||
| 81 | + TVideo tVideo = new TVideo(); | ||
| 82 | + tVideo.setCustom_args(custom_args); | ||
| 83 | + tVideo.setRelation_id(relation_id); | ||
| 84 | + tVideo.setName(params.getString("name")); | ||
| 85 | + tVideo.setVideo_type(params.getString("video_type")); | ||
| 86 | + tVideo.setPlat(params.getString("plat")); | ||
| 87 | + tVideo.setState(207); | ||
| 88 | + tVideo.setMd5(md5); | ||
| 89 | + uuid = CnliveUtil.getUUID(); | ||
| 90 | + tVideo.setVideo_uuid(uuid); | ||
| 91 | + tVideo.setTitle(title); | ||
| 92 | + tVideo.setDescription(description); | ||
| 93 | + tVideoService.saveSdkVideo(tVideo, server_access_key, user_access_key, app_access_key); | ||
| 94 | + } else if (video_type.equals("3")) { | ||
| 95 | + TLive tLive = tLiveService.getTLiveByUUId(active_id); | ||
| 96 | + tLive.setT_status_id(1); | ||
| 97 | + tLive.setTitle(title); | ||
| 98 | + tLive.setDescription(description); | ||
| 99 | + tLive.setStart_time(new Date()); | ||
| 100 | + tLive.setUser_uuid(params.getString("name")); | ||
| 101 | + tLive.setRelation_id(relation_id); | ||
| 102 | + tLive.setCustom_args(custom_args); | ||
| 103 | + uuid = tLive.getUuid(); | ||
| 104 | + if (StringUtils.isEmpty(direct)) { | ||
| 105 | + tLive.setDirect(0); | ||
| 106 | + } else { | ||
| 107 | + tLive.setDirect(Integer.parseInt(direct)); | ||
| 108 | + } | ||
| 109 | + tLive.setLive_url(Constants.KS_HOST_RTMP + tLive.getT_user_id() + "_" + uuid); | ||
| 110 | + tLiveService.startLive(tLive); | ||
| 111 | + } | ||
| 112 | + data.put("video_uuid", uuid); | ||
| 113 | + ApiBean apiBean = new ApiBean(); | ||
| 114 | + apiBean.setCode(100); | ||
| 115 | + apiBean.setMessage("请求成功"); | ||
| 116 | + apiBean.setData(data); | ||
| 117 | + return apiBean; | ||
| 118 | + } | ||
| 119 | + | ||
| 120 | + @Request.Post("/api/video/all") | ||
| 121 | + public ApiBean all(Params params) { | ||
| 122 | + String app_access_key = params.getString("app_access_key"); | ||
| 123 | + String relationId = params.getString("relation_id"); | ||
| 124 | + String pageNo = params.getString("page_no"); | ||
| 125 | + String relation_id = params.getString("relation_id"); | ||
| 126 | + String upload_type = params.getString("upload_type"); | ||
| 127 | + // String video_type = params.getString("video_type"); | ||
| 128 | + Pager<TVideo> page = tVideoService.findAll(app_access_key, relationId, pageNo); | ||
| 129 | + ApiBean apiBean = new ApiBean(); | ||
| 130 | + apiBean.setCode(100); | ||
| 131 | + apiBean.setMessage("请求成功"); | ||
| 132 | + apiBean.setData(page); | ||
| 133 | + return apiBean; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + @Request.Get("/video/list/{page_number}") | ||
| 137 | + public View list(int page_number) { | ||
| 138 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 139 | + Pager<TVideo> page = tVideoService.list(user_id, page_number, 33); | ||
| 140 | + return new View("live/video_management.jsp").data("videos", page); | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + @Request.Get("/video/check/{page_number}") | ||
| 144 | + public View check(int page_number) { | ||
| 145 | + Pager<TVideo> page = tVideoService.list(page_number, 33); | ||
| 146 | + return new View("live/video_management.jsp").data("videos", page); | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + @Request.Get("/video/pass/{id}") | ||
| 150 | + public Result pass(int id) { | ||
| 151 | + tVideoService.pass(id); | ||
| 152 | + return new Result(true); | ||
| 153 | + } | ||
| 154 | + | ||
| 155 | + @Request.Get("/video/view/{id}") | ||
| 156 | + public View view(int id) { | ||
| 157 | + TVideo tVideo = tVideoService.getVideoById(id); | ||
| 158 | + System.out.println("------"+tVideo); | ||
| 159 | + return new View("live/video_view.jsp").data("tVideo", tVideo); | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + @Request.Post("/api/video/one") | ||
| 163 | + public ApiBean one(Params params) { | ||
| 164 | + String app_access_key = params.getString("app_access_key"); | ||
| 165 | + String video_uuid = params.getString("video_uuid"); | ||
| 166 | + TVideo page = tVideoService.getVideoByUuId(video_uuid); | ||
| 167 | + ApiBean apiBean = new ApiBean(); | ||
| 168 | + apiBean.setCode(100); | ||
| 169 | + apiBean.setMessage("请求成功"); | ||
| 170 | + apiBean.setData(page); | ||
| 171 | + return apiBean; | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + @Request.Post("/api/video/uploadNotify") | ||
| 175 | + public ApiBean uploadNotify(Params params) { | ||
| 176 | + String video_uuid = params.getString("video_uuid"); | ||
| 177 | + String upload_type = params.getString("upload_type"); | ||
| 178 | + String video_type = params.getString("video_type"); | ||
| 179 | + String state = params.getString("state"); | ||
| 180 | + String duration = params.getString("duration"); | ||
| 181 | + xLog("uploadNotify", "duration", duration, video_uuid, video_type, state); | ||
| 182 | + if (video_type.equals("2")) { | ||
| 183 | + // 点播通知 | ||
| 184 | + tVideoService.notify(video_uuid); | ||
| 185 | + } else if (video_type.equals("3")) { | ||
| 186 | + // 直播通知 | ||
| 187 | + //tLiveService.notify(video_uuid); | ||
| 188 | + // 直播正常结束 | ||
| 189 | + tLiveService.notify(video_uuid, 2); | ||
| 190 | + } | ||
| 191 | + ApiBean apiBean = new ApiBean(); | ||
| 192 | + apiBean.setCode(100); | ||
| 193 | + apiBean.setMessage("请求成功"); | ||
| 194 | + return apiBean; | ||
| 195 | + } | ||
| 196 | + | ||
| 197 | + @Request.Get("/api/video/error/{video_uuid}") | ||
| 198 | + public ApiBean error(String video_uuid) { | ||
| 199 | + // 直播异常结束 | ||
| 200 | + tLiveService.notify(video_uuid, -2); | ||
| 201 | + ApiBean apiBean = new ApiBean(); | ||
| 202 | + apiBean.setCode(100); | ||
| 203 | + apiBean.setMessage("请求成功"); | ||
| 204 | + return apiBean; | ||
| 205 | + } | ||
| 206 | + | ||
| 207 | + @Request.Post("/api/video/delete") | ||
| 208 | + public ApiBean delete(Params params) { | ||
| 209 | + String user_access_key = params.getString("user_access_key"); | ||
| 210 | + String video_uuid = params.getString("video_uuid"); | ||
| 211 | + String app_access_key = params.getString("app_access_key"); | ||
| 212 | + String video_type = params.getString("video_type");// 视频类型 | ||
| 213 | + tVideoService.delete(video_uuid); | ||
| 214 | + ApiBean apiBean = new ApiBean(); | ||
| 215 | + apiBean.setCode(100); | ||
| 216 | + apiBean.setMessage("请求成功"); | ||
| 217 | + return apiBean; | ||
| 218 | + } | ||
| 219 | + | ||
| 220 | + private void xLog(String... str) { | ||
| 221 | + StringBuffer sb = new StringBuffer(); | ||
| 222 | + for (int i = 0; i < str.length; i++) { | ||
| 223 | + sb.append(str[i]); | ||
| 224 | + sb.append("|"); | ||
| 225 | + } | ||
| 226 | + log.info(sb.toString()); | ||
| 227 | + } | ||
| 228 | +} |
src/main/webapp/pages/check/check_management.jsp
| @@ -93,7 +93,7 @@ body { | @@ -93,7 +93,7 @@ body { | ||
| 93 | <div class="input-group"> | 93 | <div class="input-group"> |
| 94 | <div class="box-footer clearfix"> | 94 | <div class="box-footer clearfix"> |
| 95 | <center> | 95 | <center> |
| 96 | - <tag:pager2 id="product_pager" pager="${tLive}" /> | 96 | + <tag:pager3 id="product_pager" pager="${tLive}" /> |
| 97 | </center> | 97 | </center> |
| 98 | </div> | 98 | </div> |
| 99 | </div> | 99 | </div> |
src/main/webapp/pages/live/all_live_management.jsp
| @@ -36,7 +36,7 @@ | @@ -36,7 +36,7 @@ | ||
| 36 | <h3 class="box-title"></h3> | 36 | <h3 class="box-title"></h3> |
| 37 | <div class="box-tools"> | 37 | <div class="box-tools"> |
| 38 | <div class="input-group"> | 38 | <div class="input-group"> |
| 39 | - <form action="../search/1" method="post"> | 39 | + <form role = "form" action="../search/1" method="get"> |
| 40 | <div class="input-group"> | 40 | <div class="input-group"> |
| 41 | <input type="text" name="search_user_id" id="search_user_id" | 41 | <input type="text" name="search_user_id" id="search_user_id" |
| 42 | class="form-control input-sm" style="width: 150px;" | 42 | class="form-control input-sm" style="width: 150px;" |
| @@ -44,10 +44,10 @@ | @@ -44,10 +44,10 @@ | ||
| 44 | name="search_title" id="search_title" | 44 | name="search_title" id="search_title" |
| 45 | class="form-control input-sm" style="width: 150px;" | 45 | class="form-control input-sm" style="width: 150px;" |
| 46 | placeholder="活动名称" /> | 46 | placeholder="活动名称" /> |
| 47 | - <button id="t_activity_search_btn" type="submit" | 47 | + <button id="t_activity_search_btn" type="submit" |
| 48 | class="btn btn-sm btn-default"> | 48 | class="btn btn-sm btn-default"> |
| 49 | <i class="fa fa-search"></i>搜索 | 49 | <i class="fa fa-search"></i>搜索 |
| 50 | - </button> | 50 | + </button> |
| 51 | </div> | 51 | </div> |
| 52 | </form> | 52 | </form> |
| 53 | </div> | 53 | </div> |
| @@ -104,6 +104,7 @@ | @@ -104,6 +104,7 @@ | ||
| 104 | </div> | 104 | </div> |
| 105 | </div> | 105 | </div> |
| 106 | </div> | 106 | </div> |
| 107 | + </section> | ||
| 107 | </div> | 108 | </div> |
| 108 | <%@ include file="/pages/common/bottom.jsp"%> | 109 | <%@ include file="/pages/common/bottom.jsp"%> |
| 109 | </div> | 110 | </div> |
src/main/webapp/pages/live/video_management.jsp
| @@ -39,13 +39,12 @@ | @@ -39,13 +39,12 @@ | ||
| 39 | <th>名称</th> | 39 | <th>名称</th> |
| 40 | <th>状态</th> | 40 | <th>状态</th> |
| 41 | <th>描述</th> | 41 | <th>描述</th> |
| 42 | - <th>详情</th> | 42 | + <th>操作</th> |
| 43 | </tr> | 43 | </tr> |
| 44 | <c:forEach var="item" items="${videos.recordList}" | 44 | <c:forEach var="item" items="${videos.recordList}" |
| 45 | varStatus="stat"> | 45 | varStatus="stat"> |
| 46 | <tr> | 46 | <tr> |
| 47 | - <td><a href="${BASE}/video/view/${item.id}">${item.title}</a> | ||
| 48 | - </td> | 47 | + <td>${item.title}</td> |
| 49 | <td><c:if test="${item.state==205}"> | 48 | <td><c:if test="${item.state==205}"> |
| 50 | <span class="badge bg-green">未开始</span> | 49 | <span class="badge bg-green">未开始</span> |
| 51 | </c:if> <c:if test="${item.state==207}"> | 50 | </c:if> <c:if test="${item.state==207}"> |
| @@ -59,7 +58,7 @@ | @@ -59,7 +58,7 @@ | ||
| 59 | </td> | 58 | </td> |
| 60 | <td> | 59 | <td> |
| 61 | <button class="btn btn-minier label-success" | 60 | <button class="btn btn-minier label-success" |
| 62 | - onclick="t_live_xq(${item.id});">详情 | 61 | + onclick="t_live_xq(${item.id});">详细 |
| 63 | </button> | 62 | </button> |
| 64 | </td> | 63 | </td> |
| 65 | 64 |
src/main/webapp/pages/live/video_view.jsp
| @@ -155,6 +155,8 @@ | @@ -155,6 +155,8 @@ | ||
| 155 | f : BASE_URL + 'ckplayer/m3u8.swf', | 155 | f : BASE_URL + 'ckplayer/m3u8.swf', |
| 156 | a : url || 'http://kssws.ks-cdn.com/20121218/abc.mp4-640x480-b211ebb6.mp4', | 156 | a : url || 'http://kssws.ks-cdn.com/20121218/abc.mp4-640x480-b211ebb6.mp4', |
| 157 | c : 0, | 157 | c : 0, |
| 158 | + p : 1, | ||
| 159 | + e : 1, | ||
| 158 | s : 4, | 160 | s : 4, |
| 159 | lv: 0//注意,是否锁定进度栏 0:不锁定,1:锁定。如果是直播,需设置lv:1 | 161 | lv: 0//注意,是否锁定进度栏 0:不锁定,1:锁定。如果是直播,需设置lv:1 |
| 160 | } | 162 | } |
| @@ -172,7 +174,7 @@ | @@ -172,7 +174,7 @@ | ||
| 172 | allowScriptAccess:'always', | 174 | allowScriptAccess:'always', |
| 173 | wmode:'transparent' | 175 | wmode:'transparent' |
| 174 | }; | 176 | }; |
| 175 | - CKobject.embed('http://localhost:8080/cnlive_live_web/static/assets/ck/ckplayer/ckplayer.swf','player','ckplayer_a1','400', '400', false, flashvars) | 177 | + CKobject.embed('http://localhost:8080/cnlive_live_web/static/assets/ck/ckplayer/ckplayer.swf','player','ckplayer_a1','400', '350', false, flashvars) |
| 176 | } | 178 | } |
| 177 | </script> | 179 | </script> |
| 178 | </body> | 180 | </body> |
src/main/webapp/static/assets/ck/ckplayer/ckplayer.js
| @@ -44,7 +44,7 @@ function ckstyle() { //定义总的风格 | @@ -44,7 +44,7 @@ function ckstyle() { //定义总的风格 | ||
| 44 | 这里是用来做为对flashvars值的补充,除了c和x二个参数以外的设置都可以在这里进行配置 | 44 | 这里是用来做为对flashvars值的补充,除了c和x二个参数以外的设置都可以在这里进行配置 |
| 45 | 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 | 45 | 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 | 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*/ | 46 | 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', | 47 | + setup: '1,1,1,1,1,2,0,1,0,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', |
| 48 | /* | 48 | /* |
| 49 | 这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明: | 49 | 这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明: |
| 50 | 1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型 | 50 | 1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型 |
| @@ -119,7 +119,7 @@ function ckstyle() { //定义总的风格 | @@ -119,7 +119,7 @@ function ckstyle() { //定义总的风格 | ||
| 119 | 4、播放器最小高度 | 119 | 4、播放器最小高度 |
| 120 | 这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数 | 120 | 这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数 |
| 121 | */ | 121 | */ |
| 122 | - mylogo: null, | 122 | + mylogo: 'null', |
| 123 | /* | 123 | /* |
| 124 | 视频加载前显示的logo文件,不使用设置成null,即mylogo='null'; | 124 | 视频加载前显示的logo文件,不使用设置成null,即mylogo='null'; |
| 125 | */ | 125 | */ |
| @@ -132,7 +132,7 @@ function ckstyle() { //定义总的风格 | @@ -132,7 +132,7 @@ function ckstyle() { //定义总的风格 | ||
| 132 | 3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面 | 132 | 3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面 |
| 133 | 4、垂直偏移量 | 133 | 4、垂直偏移量 |
| 134 | */ | 134 | */ |
| 135 | - logo: null, | 135 | + logo: 'null', |
| 136 | /* | 136 | /* |
| 137 | 默认右上角一直显示的logo,不使用设置成null,即logo='null'; | 137 | 默认右上角一直显示的logo,不使用设置成null,即logo='null'; |
| 138 | */ | 138 | */ |
src/main/webapp/static/assets/ck/ckplayer/ckplayer.xml
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | 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 | 17 | 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 |
| 18 | 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 | 18 | 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 |
| 19 | --> | 19 | --> |
| 20 | - <setup>1,1,1,1,1,2,0,1,2,0,0,1,200,0,2,1,0,1,1,1,0,10,3,0,1,2,3000,0,0,0,0,1,1,1,1,1,1,250,0,90,0,0,0</setup> | 20 | + <setup>1,1,1,1,1,2,0,1,0,0,0,1,200,0,2,1,0,1,1,1,0,10,3,0,1,2,3000,0,0,0,0,1,1,1,1,1,1,250,0,90,0,0,0</setup> |
| 21 | <!-- | 21 | <!-- |
| 22 | 这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明: | 22 | 这是配置文件里比较重要的一个参数,共有N个功能控制参数,并且以后会继续的增加,各控制参数以英文逗号(,)隔开。下面列出各参数的说明: |
| 23 | 1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型 | 23 | 1、鼠标经过按钮是否使用手型,0普通鼠标,1手型鼠标,2是只有按钮手型,3是控制栏手型 |
| @@ -92,11 +92,11 @@ | @@ -92,11 +92,11 @@ | ||
| 92 | 4、播放器最小高度 | 92 | 4、播放器最小高度 |
| 93 | 这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数 | 93 | 这里只是初始化时的设置,最终加载完播放器后显示的效果需要在style.swf/style.xml里设置该参数 |
| 94 | --> | 94 | --> |
| 95 | - <mylogo>logo.swf</mylogo> | 95 | + <mylogo> null </mylogo> |
| 96 | <!-- | 96 | <!-- |
| 97 | 视频加载前显示的logo文件,不使用设置成<mylogo>null</mylogo> | 97 | 视频加载前显示的logo文件,不使用设置成<mylogo>null</mylogo> |
| 98 | --> | 98 | --> |
| 99 | - <pm_mylogo>1,1,-100,-55</pm_mylogo> | 99 | + <!-- <pm_mylogo>1,1,-100,-55</pm_mylogo> --> |
| 100 | <!-- | 100 | <!-- |
| 101 | 视频加载前显示的logo文件(mylogo参数的)的位置 | 101 | 视频加载前显示的logo文件(mylogo参数的)的位置 |
| 102 | 本软件所有的四个参数控制位置的方式全部都是统一的意思,如下 | 102 | 本软件所有的四个参数控制位置的方式全部都是统一的意思,如下 |
| @@ -105,11 +105,11 @@ | @@ -105,11 +105,11 @@ | ||
| 105 | 3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面 | 105 | 3、水平偏移量,举例说明,如果第1个参数设置成0左对齐,第3个偏移量设置成10,就是离左边10个像素,第一个参数设置成2,偏移量如果设置的是正值就会移到播放器外面,只有设置成负值才行,设置成-1,按钮就会跑到播放器外面 |
| 106 | 4、垂直偏移量 | 106 | 4、垂直偏移量 |
| 107 | --> | 107 | --> |
| 108 | - <logo>cklogo.png</logo> | 108 | + <logo>null</logo> |
| 109 | <!-- | 109 | <!-- |
| 110 | 默认右上角一直显示的logo,不使用设置成<logo>null</logo> | 110 | 默认右上角一直显示的logo,不使用设置成<logo>null</logo> |
| 111 | --> | 111 | --> |
| 112 | - <pm_logo>2,0,-100,20</pm_logo> | 112 | + <!-- <pm_logo>2,0,-100,20</pm_logo> --> |
| 113 | <!-- | 113 | <!-- |
| 114 | 播放器右上角的logo的位置 | 114 | 播放器右上角的logo的位置 |
| 115 | 1、水平对齐方式,0是左,1是中,2是右 | 115 | 1、水平对齐方式,0是左,1是中,2是右 |
| @@ -273,8 +273,8 @@ | @@ -273,8 +273,8 @@ | ||
| 273 | 分享插件调用的配置文件地址 | 273 | 分享插件调用的配置文件地址 |
| 274 | 调用插件开始 | 274 | 调用插件开始 |
| 275 | --> | 275 | --> |
| 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><!--调整大小和颜色的插件--> | 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 | </style> | 279 | </style> |
| 280 | </ckplayer> | 280 | </ckplayer> |
| 281 | \ No newline at end of file | 281 | \ No newline at end of file |
src/main/webapp/static/assets/cnlive/js/common.js
| @@ -6,6 +6,20 @@ | @@ -6,6 +6,20 @@ | ||
| 6 | function next_page(pageNum) { | 6 | function next_page(pageNum) { |
| 7 | window.location.href = "" + pageNum; | 7 | window.location.href = "" + pageNum; |
| 8 | } | 8 | } |
| 9 | +function next_pager(pageNum) { | ||
| 10 | + $.ajax({ | ||
| 11 | + url : '../../live/searchg/' + pageNum, | ||
| 12 | + type : 'post', | ||
| 13 | + datatype : "json", | ||
| 14 | + async : true, | ||
| 15 | + error : function() { | ||
| 16 | + }, | ||
| 17 | + success : function(data) { | ||
| 18 | + location.href = '../../live/search/'+pageNum; | ||
| 19 | + } | ||
| 20 | + }); | ||
| 21 | + | ||
| 22 | +} | ||
| 9 | 23 | ||
| 10 | // 提示 | 24 | // 提示 |
| 11 | function showTip(succ) { | 25 | function showTip(succ) { |
target/m2e-wtp/web-resources/META-INF/maven/com.cnlive.mz.live.web/cnlive_live_web/pom.properties
| @@ -5,3 +5,12 @@ groupId=com.cnlive.mz.live.web | @@ -5,3 +5,12 @@ groupId=com.cnlive.mz.live.web | ||
| 5 | m2e.projectName=cnlive_live_web | 5 | m2e.projectName=cnlive_live_web |
| 6 | m2e.projectLocation=D\:\\1_CNLIVE_JAVA_CODE\\cnlive_live_web | 6 | m2e.projectLocation=D\:\\1_CNLIVE_JAVA_CODE\\cnlive_live_web |
| 7 | artifactId=cnlive_live_web | 7 | artifactId=cnlive_live_web |
| 8 | +#Generated by Maven Integration for Eclipse | ||
| 9 | +#Mon Jun 20 09:31:18 CST 2016 | ||
| 10 | +#Mon Jun 20 10:10:00 CST 2016 | ||
| 11 | +#Fri Jun 17 09:20:43 CST 2016 | ||
| 12 | +version=0.0.1-SNAPSHOT | ||
| 13 | +groupId=com.cnlive.mz.live.web | ||
| 14 | +m2e.projectName=cnlive_live_web | ||
| 15 | +m2e.projectLocation=C\:\\Users\\Administrator\\git\\cnlive_live_web | ||
| 16 | +artifactId=cnlive_live_web |