Commit 27e0c0d85da4268ddbc34d5708e56e0cca379f8f
1 parent
01bbee1d
1
Showing
5 changed files
with
44 additions
and
171 deletions
src/main/java/com/cnlive/mz/live/action/UgcLiveAction.java
| @@ -9,28 +9,20 @@ | @@ -9,28 +9,20 @@ | ||
| 9 | 9 | ||
| 10 | package com.cnlive.mz.live.action; | 10 | package com.cnlive.mz.live.action; |
| 11 | 11 | ||
| 12 | -import java.io.IOException; | ||
| 13 | import java.util.HashMap; | 12 | import java.util.HashMap; |
| 14 | import java.util.Map; | 13 | import java.util.Map; |
| 15 | 14 | ||
| 16 | -import javax.servlet.http.HttpServletResponse; | ||
| 17 | - | ||
| 18 | import org.apache.commons.lang.StringUtils; | 15 | import org.apache.commons.lang.StringUtils; |
| 19 | import org.apache.log4j.Logger; | 16 | import org.apache.log4j.Logger; |
| 20 | import org.smart4j.framework.dao.bean.Pager; | 17 | import org.smart4j.framework.dao.bean.Pager; |
| 21 | import org.smart4j.framework.ioc.annotation.Inject; | 18 | import org.smart4j.framework.ioc.annotation.Inject; |
| 22 | -import org.smart4j.framework.mvc.DataContext; | ||
| 23 | import org.smart4j.framework.mvc.annotation.Action; | 19 | import org.smart4j.framework.mvc.annotation.Action; |
| 24 | import org.smart4j.framework.mvc.annotation.Request; | 20 | import org.smart4j.framework.mvc.annotation.Request; |
| 25 | import org.smart4j.framework.mvc.bean.Params; | 21 | import org.smart4j.framework.mvc.bean.Params; |
| 26 | import org.smart4j.framework.mvc.bean.Redirect; | 22 | import org.smart4j.framework.mvc.bean.Redirect; |
| 27 | import org.smart4j.framework.mvc.bean.ResultBean; | 23 | import org.smart4j.framework.mvc.bean.ResultBean; |
| 28 | 24 | ||
| 29 | -import com.cnlive.mz.commons.net.HttpReq; | ||
| 30 | -import com.cnlive.mz.live.entity.TChannel; | ||
| 31 | import com.cnlive.mz.live.entity.TLive; | 25 | import com.cnlive.mz.live.entity.TLive; |
| 32 | -import com.cnlive.mz.live.service.TCheckService; | ||
| 33 | -import com.cnlive.mz.live.service.TRoomService; | ||
| 34 | import com.cnlive.mz.live.service.UgcLiveService; | 26 | import com.cnlive.mz.live.service.UgcLiveService; |
| 35 | 27 | ||
| 36 | @Action | 28 | @Action |
| @@ -39,7 +31,6 @@ public class UgcLiveAction { | @@ -39,7 +31,6 @@ public class UgcLiveAction { | ||
| 39 | private Logger log = Logger.getLogger("UgcLiveAction"); | 31 | private Logger log = Logger.getLogger("UgcLiveAction"); |
| 40 | @Inject | 32 | @Inject |
| 41 | private UgcLiveService ugcLiveService; | 33 | private UgcLiveService ugcLiveService; |
| 42 | - | ||
| 43 | 34 | ||
| 44 | /** | 35 | /** |
| 45 | * 1.0 获取直播活动信息接口Server.md | 36 | * 1.0 获取直播活动信息接口Server.md |
| @@ -190,7 +181,7 @@ public class UgcLiveAction { | @@ -190,7 +181,7 @@ public class UgcLiveAction { | ||
| 190 | String streamName = live_url.substring(index + 1); | 181 | String streamName = live_url.substring(index + 1); |
| 191 | System.out.println("streamName===" + streamName); | 182 | System.out.println("streamName===" + streamName); |
| 192 | // 直播断流。 | 183 | // 直播断流。 |
| 193 | - ugcLiveService.stop(appId,activityid); | 184 | + ugcLiveService.stop(appId, activityid); |
| 194 | } | 185 | } |
| 195 | map.put("location", tLive.getLive_url()); | 186 | map.put("location", tLive.getLive_url()); |
| 196 | rb.setData(map); | 187 | rb.setData(map); |
| @@ -313,49 +304,10 @@ public class UgcLiveAction { | @@ -313,49 +304,10 @@ public class UgcLiveAction { | ||
| 313 | * @return 302 跳转播放地址 | 304 | * @return 302 跳转播放地址 |
| 314 | */ | 305 | */ |
| 315 | @Request.Get("/live/epg/play/app") | 306 | @Request.Get("/live/epg/play/app") |
| 316 | - public Redirect appURL(Params params) throws IOException { | 307 | + public Redirect app(Params params) { |
| 317 | log.info(params); | 308 | log.info(params); |
| 318 | Redirect r = new Redirect(); | 309 | Redirect r = new Redirect(); |
| 319 | - String c = "http://wideo03.cnlive.com/video/data1/2016/0821/143844/800/8352b125fc404807851daa21d7e8f417_143844_800.m3u8"; | ||
| 320 | - String appId = params.getString("appId"); | ||
| 321 | - String activityid = params.getString("activityId"); | ||
| 322 | - String isHLS = params.getString("isHLS"); | ||
| 323 | - if (StringUtils.isEmpty(activityid)) { | ||
| 324 | - // sdk 请求 | ||
| 325 | - if (appId.isEmpty()) { | ||
| 326 | - appId = params.getString("sp_id"); | ||
| 327 | - } | ||
| 328 | - String channelID = params.getString("channelID"); | ||
| 329 | - TLive tLive = ugcLiveService.selectByRelationId(channelID); | ||
| 330 | - TChannel tchannel = ugcLiveService.selectChannel(tLive.getRelation_id()); | ||
| 331 | - if (tchannel != null) { | ||
| 332 | - // pgc直播 | ||
| 333 | - r.setRedirectUrl("http://ips.cnlive.com/IPS/liveplayByAPP.action?appId=" + appId + "&channelID=" + tLive.getRelation_id()); | ||
| 334 | - } else { | ||
| 335 | - // ugc直播 | ||
| 336 | - if (StringUtils.isNotEmpty(isHLS) && isHLS.equals("1")) { | ||
| 337 | - r.setRedirectUrl(tLive.getHls_live_url()); | ||
| 338 | - } else { | ||
| 339 | - r.setRedirectUrl(tLive.getLive_url()); | ||
| 340 | - } | ||
| 341 | - // r.setRedirectUrl(c); | ||
| 342 | - } | ||
| 343 | - } else { | ||
| 344 | - TLive tLive = ugcLiveService.getTLiveByActivityId(appId, activityid); | ||
| 345 | - TChannel tchannel = ugcLiveService.selectChannel(tLive.getRelation_id()); | ||
| 346 | - if (tchannel != null) { | ||
| 347 | - // pgc直播 | ||
| 348 | - r.setRedirectUrl("http://ips.cnlive.com/IPS/liveplayByAPP.action?appId=" + appId + "&channelID=" + tLive.getRelation_id()); | ||
| 349 | - } else { | ||
| 350 | - // ugc直播 | ||
| 351 | - if (StringUtils.isNotEmpty(isHLS) && isHLS.equals("1")) { | ||
| 352 | - r.setRedirectUrl(tLive.getHls_live_url()); | ||
| 353 | - } else { | ||
| 354 | - r.setRedirectUrl(tLive.getLive_url()); | ||
| 355 | - } | ||
| 356 | - // r.setRedirectUrl(c); | ||
| 357 | - } | ||
| 358 | - } | 310 | + r.setRedirectUrl(ugcLiveService.getAppPlayUrl(params)); |
| 359 | return r; | 311 | return r; |
| 360 | } | 312 | } |
| 361 | 313 | ||
| @@ -366,46 +318,11 @@ public class UgcLiveAction { | @@ -366,46 +318,11 @@ public class UgcLiveAction { | ||
| 366 | * @return | 318 | * @return |
| 367 | */ | 319 | */ |
| 368 | @Request.Get("/live/epg/play/h5") | 320 | @Request.Get("/live/epg/play/h5") |
| 369 | - public ResultBean h5URL(Params params) { | ||
| 370 | - HttpServletResponse response = DataContext.getResponse(); | ||
| 371 | - ResultBean rb = new ResultBean(); | ||
| 372 | - String appId = params.getString("appId"); | ||
| 373 | - String activityid = params.getString("activityId"); | ||
| 374 | - Map<String, Object> map = new HashMap<String, Object>(); | ||
| 375 | - if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(activityid)) { | ||
| 376 | - map.put("location", ""); | ||
| 377 | - rb.setData(map); | ||
| 378 | - rb.setErrorCode("500"); | ||
| 379 | - rb.setErrorMessage("启动h5活动失败"); | ||
| 380 | - return rb; | ||
| 381 | - } else { | ||
| 382 | - TLive tLive = ugcLiveService.getTLiveByActivityId(appId, activityid); | ||
| 383 | - if (tLive == null) { | ||
| 384 | - map.put("location", ""); | ||
| 385 | - rb.setData(map); | ||
| 386 | - rb.setErrorCode("500"); | ||
| 387 | - rb.setErrorMessage("启动h5活动失败,活动对象为空"); | ||
| 388 | - return rb; | ||
| 389 | - } else { | ||
| 390 | - TChannel tchannel = ugcLiveService.selectChannel(tLive.getRelation_id()); | ||
| 391 | - if (tchannel != null) { | ||
| 392 | - // 重定向到h5....... | ||
| 393 | - redirect(response, "http://ips.cnlive.com/IPS/liveplayByH5?appId=" + appId + "&channelID=" + tLive.getRelation_id()); | ||
| 394 | - map.put("location", ""); | ||
| 395 | - rb.setData(map); | ||
| 396 | - rb.setErrorCode("0"); | ||
| 397 | - rb.setErrorMessage("302重定向到h5"); | ||
| 398 | - return rb; | ||
| 399 | - } else { | ||
| 400 | - map.put("location", tLive.getLive_url()); | ||
| 401 | - rb.setData(map); | ||
| 402 | - rb.setErrorCode("0"); | ||
| 403 | - rb.setErrorMessage("启动h5活动成功"); | ||
| 404 | - return rb; | ||
| 405 | - } | ||
| 406 | - } | ||
| 407 | - } | ||
| 408 | - | 321 | + public Redirect h5(Params params) { |
| 322 | + String url = ugcLiveService.getH5PlayUrl(params); | ||
| 323 | + Redirect r = new Redirect(); | ||
| 324 | + r.setRedirectUrl(url); | ||
| 325 | + return r; | ||
| 409 | } | 326 | } |
| 410 | 327 | ||
| 411 | /** | 328 | /** |
| @@ -415,47 +332,18 @@ public class UgcLiveAction { | @@ -415,47 +332,18 @@ public class UgcLiveAction { | ||
| 415 | * @return | 332 | * @return |
| 416 | */ | 333 | */ |
| 417 | @Request.Get("/live/epg/play/swf") | 334 | @Request.Get("/live/epg/play/swf") |
| 418 | - public ResultBean swfURL(Params params) { | ||
| 419 | - HttpServletResponse response = DataContext.getResponse(); | 335 | + public ResultBean swf(Params params) { |
| 420 | ResultBean rb = new ResultBean(); | 336 | ResultBean rb = new ResultBean(); |
| 421 | - String appId = params.getString("appId"); | ||
| 422 | - String activityid = params.getString("activityId"); | ||
| 423 | Map<String, Object> map = new HashMap<String, Object>(); | 337 | Map<String, Object> map = new HashMap<String, Object>(); |
| 424 | - if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(activityid)) { | ||
| 425 | - map.put("location", ""); | ||
| 426 | - rb.setData(map); | ||
| 427 | - rb.setErrorCode("500"); | ||
| 428 | - rb.setErrorMessage("启动swf活动失败"); | ||
| 429 | - return rb; | ||
| 430 | - } else { | ||
| 431 | - TLive tLive = ugcLiveService.getTLiveByActivityId(appId, activityid); | ||
| 432 | - if (tLive == null) { | ||
| 433 | - map.put("location", ""); | ||
| 434 | - rb.setData(map); | ||
| 435 | - rb.setErrorCode("500"); | ||
| 436 | - rb.setErrorMessage("启动swf活动失败,活动对象为空"); | ||
| 437 | - return rb; | ||
| 438 | - } else { | ||
| 439 | - TChannel tchannel = ugcLiveService.selectChannel(tLive.getRelation_id()); | ||
| 440 | - rb.setData(map); | ||
| 441 | - rb.setErrorCode("0"); | ||
| 442 | - if (tchannel != null) { | ||
| 443 | - // 302重定向到swf....... | ||
| 444 | - redirect(response, "http://ips.cnlive.com/IPS/liveplayBySWF.action?appId=" + appId + "&channelID=" + tLive.getRelation_id()); | ||
| 445 | - map.put("location", ""); | ||
| 446 | - rb.setErrorMessage("302重定向到swf"); | ||
| 447 | - return rb; | ||
| 448 | - } else { | ||
| 449 | - map.put("location", tLive.getLive_url()); | ||
| 450 | - rb.setErrorMessage("启动swf活动成功"); | ||
| 451 | - return rb; | ||
| 452 | - } | ||
| 453 | - } | ||
| 454 | - } | 338 | + String url = ugcLiveService.getH5PlayUrl(params); |
| 339 | + map.put("location", url); | ||
| 340 | + rb.setErrorMessage("启动swf活动成功"); | ||
| 341 | + rb.setErrorCode("0"); | ||
| 342 | + return rb; | ||
| 455 | } | 343 | } |
| 456 | 344 | ||
| 457 | - @Request.Post("/live/epg/error500") | ||
| 458 | - public ResultBean error(Params params) { | 345 | + @Request.Get("/live/serverError") |
| 346 | + public ResultBean error500() { | ||
| 459 | ResultBean rb = new ResultBean(); | 347 | ResultBean rb = new ResultBean(); |
| 460 | Map<String, Object> map = new HashMap<String, Object>(); | 348 | Map<String, Object> map = new HashMap<String, Object>(); |
| 461 | map.put("location", ""); | 349 | map.put("location", ""); |
| @@ -464,40 +352,16 @@ public class UgcLiveAction { | @@ -464,40 +352,16 @@ public class UgcLiveAction { | ||
| 464 | rb.setErrorMessage("失败"); | 352 | rb.setErrorMessage("失败"); |
| 465 | return rb; | 353 | return rb; |
| 466 | } | 354 | } |
| 467 | - | ||
| 468 | - public static void redirect(HttpServletResponse response, String redirectUrl) { | ||
| 469 | - try { | ||
| 470 | - response.setContentType("application/mpegurl"); | ||
| 471 | - response.setStatus(302); | ||
| 472 | - response.setHeader("Location", redirectUrl); | ||
| 473 | - response.setHeader("Connection", "close"); | ||
| 474 | - } catch (Exception e) { | ||
| 475 | - throw new RuntimeException(e); | ||
| 476 | - } | ||
| 477 | - } | ||
| 478 | - | ||
| 479 | - public static void main(String[] args) { | ||
| 480 | - | ||
| 481 | - /* | ||
| 482 | - * NameValuePair[] nvp = new NameValuePair[6]; NameValuePair nv1 = new | ||
| 483 | - * NameValuePair(); nv1.setName("appId"); nv1.setValue("123"); nvp[0] = | ||
| 484 | - * nv1; NameValuePair nv2 = new NameValuePair(); | ||
| 485 | - * nv2.setName("activityId"); nv2.setValue("234e"); nvp[1] = nv2; | ||
| 486 | - * NameValuePair nv3 = new NameValuePair(); nv3.setName("activityName"); | ||
| 487 | - * nv3.setValue("ee"); nvp[2] = nv3; NameValuePair nv4 = new | ||
| 488 | - * NameValuePair(); nv4.setName("activityStatus"); nv4.setValue("11"); | ||
| 489 | - * nvp[3] = nv4; NameValuePair nv5 = new NameValuePair(); | ||
| 490 | - * nv5.setName("isHorizontalScreen"); nv5.setValue("321"); nvp[4] = nv5; | ||
| 491 | - * NameValuePair nv6 = new NameValuePair(); nv6.setName("channelId"); | ||
| 492 | - * nv6.setValue("ww"); nvp[5] = nv6; String ss = | ||
| 493 | - * HttpReq.postRequestWidthResult( | ||
| 494 | - * "http://bc.cnlive.com/live/epg/createActivity", nvp); | ||
| 495 | - * System.out.println(ss); <<<<<<< HEAD String aa = HttpReq | ||
| 496 | - * .getRequestWidthResult( | ||
| 497 | - * "http://bc.cnlive.com/live/epg/startActivity?appId=123&activityId=234" | ||
| 498 | - * ); System.out.println(aa); | ||
| 499 | - */ | ||
| 500 | - String aa = HttpReq.getRequestWidthResult("http://bc.cnlive.com/live/epg/startActivity?appId=123&activityId=234"); | ||
| 501 | - System.out.println(aa); | 355 | + |
| 356 | + | ||
| 357 | + @Request.Get("/live/clientError") | ||
| 358 | + public ResultBean error404() { | ||
| 359 | + ResultBean rb = new ResultBean(); | ||
| 360 | + Map<String, Object> map = new HashMap<String, Object>(); | ||
| 361 | + map.put("location", ""); | ||
| 362 | + rb.setData(map); | ||
| 363 | + rb.setErrorCode("404"); | ||
| 364 | + rb.setErrorMessage("失败"); | ||
| 365 | + return rb; | ||
| 502 | } | 366 | } |
| 503 | } | 367 | } |
| 504 | \ No newline at end of file | 368 | \ No newline at end of file |
src/main/java/com/cnlive/mz/live/action/VideoAction.java
| @@ -115,6 +115,7 @@ public class VideoAction { | @@ -115,6 +115,7 @@ public class VideoAction { | ||
| 115 | } else { | 115 | } else { |
| 116 | tLive.setDirect(Integer.parseInt(direct)); | 116 | tLive.setDirect(Integer.parseInt(direct)); |
| 117 | } | 117 | } |
| 118 | + tLive.setHls_live_url(Constants.KS_HOST_HTTP + tLive.getT_user_id() + "/index.m3u8"); | ||
| 118 | tLive.setLive_url(Constants.KS_HOST_RTMP + tLive.getT_user_id() ); | 119 | tLive.setLive_url(Constants.KS_HOST_RTMP + tLive.getT_user_id() ); |
| 119 | success = tLiveService.startLive(tLive); | 120 | success = tLiveService.startLive(tLive); |
| 120 | } | 121 | } |
src/main/java/com/cnlive/mz/live/action/VodIpsAction.java
| @@ -26,8 +26,9 @@ public class VodIpsAction { | @@ -26,8 +26,9 @@ public class VodIpsAction { | ||
| 26 | 26 | ||
| 27 | private Logger log = Logger.getLogger("VodIpsAction"); | 27 | private Logger log = Logger.getLogger("VodIpsAction"); |
| 28 | 28 | ||
| 29 | - @Request.Get("/vodips/h5/{id}") | ||
| 30 | - public Redirect h5(int id, Params params) { | 29 | + @Request.Get("/vodips/h5") |
| 30 | + public Redirect h5(Params params) { | ||
| 31 | + System.out.println(params); | ||
| 31 | String vId=params.getString("vId"); | 32 | String vId=params.getString("vId"); |
| 32 | int rate=params.getInt("rate"); | 33 | int rate=params.getInt("rate"); |
| 33 | Redirect r = new Redirect(); | 34 | Redirect r = new Redirect(); |
| @@ -36,8 +37,9 @@ public class VodIpsAction { | @@ -36,8 +37,9 @@ public class VodIpsAction { | ||
| 36 | return r; | 37 | return r; |
| 37 | } | 38 | } |
| 38 | 39 | ||
| 39 | - @Request.Get("/vodips/app/{id}") | ||
| 40 | - public Redirect app(int id, Params params) { | 40 | + @Request.Get("/vodips/app") |
| 41 | + public Redirect app(Params params) { | ||
| 42 | + System.out.println(params); | ||
| 41 | String vId=params.getString("vId"); | 43 | String vId=params.getString("vId"); |
| 42 | int rate=params.getInt("rate"); | 44 | int rate=params.getInt("rate"); |
| 43 | String url=vodIpsServer.getAppPlayUrl(vId, rate); | 45 | String url=vodIpsServer.getAppPlayUrl(vId, rate); |
| @@ -46,8 +48,9 @@ public class VodIpsAction { | @@ -46,8 +48,9 @@ public class VodIpsAction { | ||
| 46 | return r; | 48 | return r; |
| 47 | } | 49 | } |
| 48 | 50 | ||
| 49 | - @Request.Get("/vodips/flash/{id}") | ||
| 50 | - public ResultBean flash(int id, Params params) { | 51 | + @Request.Get("/vodips/swf") |
| 52 | + public ResultBean flash(Params params) { | ||
| 53 | + System.out.println(params); | ||
| 51 | String vId=params.getString("vId"); | 54 | String vId=params.getString("vId"); |
| 52 | int rate=params.getInt("rate"); | 55 | int rate=params.getInt("rate"); |
| 53 | String url=vodIpsServer.getFlashPlayUrl(vId, rate); | 56 | String url=vodIpsServer.getFlashPlayUrl(vId, rate); |
src/main/java/com/cnlive/socket/TE.java
| @@ -14,7 +14,7 @@ import org.apache.commons.httpclient.methods.GetMethod; | @@ -14,7 +14,7 @@ import org.apache.commons.httpclient.methods.GetMethod; | ||
| 14 | 14 | ||
| 15 | public class TE { | 15 | public class TE { |
| 16 | public static void main(String[] args) { | 16 | public static void main(String[] args) { |
| 17 | - new TE().doGet("http://bc.cnlive.com/live/epg/play/app?app_id=60_irg1rhs308&channelID=1471754157393"); | 17 | + new TE().doGet("http://bc.cnlive.com/live/epg/play/app?appId=inbevnr031&channelID=1472020387351&isHLS=0&platform_id=com.cnlive.libs×tamp=1471942267&uid=7C1B686C33E0456B883295A57CBBDA87_1471941483046&sp_id=inbevnr031&activityId=1472020387351"); |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | private HttpClient getHttpClient() { | 20 | private HttpClient getHttpClient() { |
| @@ -31,6 +31,7 @@ public void doGet(String url) { | @@ -31,6 +31,7 @@ public void doGet(String url) { | ||
| 31 | InputStream stream = null; | 31 | InputStream stream = null; |
| 32 | try { | 32 | try { |
| 33 | int exeCode = client.executeMethod(method); | 33 | int exeCode = client.executeMethod(method); |
| 34 | + System.out.println(exeCode); | ||
| 34 | StatusLine status = method.getStatusLine(); | 35 | StatusLine status = method.getStatusLine(); |
| 35 | int statusCode = status.getStatusCode(); | 36 | int statusCode = status.getStatusCode(); |
| 36 | StringBuffer buf = new StringBuffer(); | 37 | StringBuffer buf = new StringBuffer(); |
src/main/webapp/WEB-INF/web.xml
| @@ -11,6 +11,10 @@ | @@ -11,6 +11,10 @@ | ||
| 11 | </servlet> | 11 | </servlet> |
| 12 | <error-page> | 12 | <error-page> |
| 13 | <error-code>500</error-code> | 13 | <error-code>500</error-code> |
| 14 | - <location>/live/epg/error500</location> | 14 | + <location>/live/serverError</location> |
| 15 | + </error-page> | ||
| 16 | + <error-page> | ||
| 17 | + <error-code>404</error-code> | ||
| 18 | + <location>/live/clientError</location> | ||
| 15 | </error-page> | 19 | </error-page> |
| 16 | </web-app> | 20 | </web-app> |
| 17 | \ No newline at end of file | 21 | \ No newline at end of file |