修正一处可能导致死循环的代码
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 (System.currentTimeMillis() - startTime < 30 * 1000) {
|
||||||
if (zlmrtpServerFactory.isRtpReady(streamInfo.getStreamId())) {
|
if (zlmrtpServerFactory.isRtpReady(streamInfo.getStreamId())) {
|
||||||
rtpPushed = true;
|
rtpPushed = true;
|
||||||
|
System.out.println("已获取设备推流,开始向上级推流");
|
||||||
zlmrtpServerFactory.startSendRtpStream(param);
|
zlmrtpServerFactory.startSendRtpStream(param);
|
||||||
} else {
|
} else {
|
||||||
|
System.out.println("等待设备推流.......");
|
||||||
Thread.sleep(2000);
|
Thread.sleep(2000);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
rtpPushed = true;
|
||||||
|
System.out.println("设备推流超时,终止向上级推流");
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -127,46 +127,28 @@ public class ZLMRTPServerFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* 调用zlm RESTful API —— startSendRtp
|
||||||
*/
|
*/
|
||||||
public Boolean startSendRtpStream(Map<String, Object>param) {
|
public Boolean startSendRtpStream(Map<String, Object>param) {
|
||||||
Boolean result = false;
|
Boolean result = false;
|
||||||
JSONObject jsonObject = zlmresTfulUtils.startSendRtp(param);
|
JSONObject jsonObject = zlmresTfulUtils.startSendRtp(param);
|
||||||
System.out.println(jsonObject);
|
System.out.println(jsonObject);
|
||||||
if (jsonObject != null) {
|
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状态
|
|
||||||
logger.error("RTP推流失败: 请检查ZLM服务");
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* 查询待转推的流是否就绪
|
||||||
*/
|
*/
|
||||||
public Boolean isRtpReady(String streamId) {
|
public Boolean isRtpReady(String streamId) {
|
||||||
JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId);
|
JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId);
|
||||||
if (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online")) {
|
return (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online"));
|
||||||
logger.info("设备RTP推流成功");
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
logger.info("设备RTP推流未完成");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user