修正一处可能导致死循环的代码
This commit is contained in:
parent
1100255ec9
commit
8063172e09
@ -68,11 +68,16 @@ public class AckRequestProcessor extends SIPRequestAbstractProcessor {
|
||||
if (System.currentTimeMillis() - startTime < 30 * 1000) {
|
||||
if (zlmrtpServerFactory.isRtpReady(streamInfo.getStreamId())) {
|
||||
rtpPushed = true;
|
||||
System.out.println("已获取设备推流,开始向上级推流");
|
||||
zlmrtpServerFactory.startSendRtpStream(param);
|
||||
} else {
|
||||
System.out.println("等待设备推流.......");
|
||||
Thread.sleep(2000);
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
rtpPushed = true;
|
||||
System.out.println("设备推流超时,终止向上级推流");
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
|
@ -127,46 +127,28 @@ public class ZLMRTPServerFactory {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 调用zlm RESTful API —— startSendRtp
|
||||
*/
|
||||
public Boolean startSendRtpStream(Map<String, Object>param) {
|
||||
Boolean result = false;
|
||||
JSONObject jsonObject = zlmresTfulUtils.startSendRtp(param);
|
||||
System.out.println(jsonObject);
|
||||
if (jsonObject != null) {
|
||||
switch (jsonObject.getInteger("code")){
|
||||
case 0:
|
||||
result= true;
|
||||
logger.error("RTP推流请求成功,本地推流端口:" + jsonObject.getString("local_port"));
|
||||
break;
|
||||
// case -300: // id已经存在
|
||||
// result = false;
|
||||
// break;
|
||||
// case -400: // 端口占用
|
||||
// result= false;
|
||||
// break;
|
||||
default:
|
||||
logger.error("RTP推流失败: " + jsonObject.getString("msg"));
|
||||
break;
|
||||
}
|
||||
}else {
|
||||
// 检查ZLM状态
|
||||
if (jsonObject == null) {
|
||||
logger.error("RTP推流失败: 请检查ZLM服务");
|
||||
} else if (jsonObject.getInteger("code") == 0) {
|
||||
result= true;
|
||||
logger.error("RTP推流请求成功,本地推流端口:" + jsonObject.getString("local_port"));
|
||||
} else {
|
||||
logger.error("RTP推流失败: " + jsonObject.getString("msg"));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 查询待转推的流是否就绪
|
||||
*/
|
||||
public Boolean isRtpReady(String streamId) {
|
||||
JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId);
|
||||
if (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online")) {
|
||||
logger.info("设备RTP推流成功");
|
||||
return true;
|
||||
} else {
|
||||
logger.info("设备RTP推流未完成");
|
||||
return false;
|
||||
}
|
||||
return (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online"));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user