From d27164bf20154b6053ce61418b6275fdc512a0cc Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期二, 13 四月 2021 10:06:36 +0800
Subject: [PATCH] 修正播放按钮失效问题
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java | 103 ++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 77 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
index 819c6a8..02fb742 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
@@ -96,7 +96,7 @@
}
/**
- * 鍒涘缓涓�涓帹娴�
+ * 鍒涘缓涓�涓浗鏍囨帹娴�
* @param ip 鎺ㄦ祦ip
* @param port 鎺ㄦ祦绔彛
* @param ssrc 鎺ㄦ祦鍞竴鏍囪瘑
@@ -122,51 +122,102 @@
sendRtpItem.setDeviceId(deviceId);
sendRtpItem.setChannelId(channelId);
sendRtpItem.setTcp(tcp);
+ sendRtpItem.setApp("rtp");
sendRtpItem.setLocalPort(localPort);
return sendRtpItem;
}
/**
- *
+ * 鍒涘缓涓�涓洿鎾帹娴�
+ * @param ip 鎺ㄦ祦ip
+ * @param port 鎺ㄦ祦绔彛
+ * @param ssrc 鎺ㄦ祦鍞竴鏍囪瘑
+ * @param platformId 骞冲彴id
+ * @param channelId 閫氶亾id
+ * @param tcp 鏄惁涓簍cp
+ * @return SendRtpItem
+ */
+ public SendRtpItem createSendRtpItem(String ip, int port, String ssrc, String platformId, String app, String stream, String channelId, boolean tcp){
+ String playSsrc = SsrcUtil.getPlaySsrc();
+ int localPort = createRTPServer(SsrcUtil.getPlaySsrc());
+ if (localPort != -1) {
+ closeRTPServer(playSsrc);
+ }else {
+ logger.error("娌℃湁鍙敤鐨勭鍙�");
+ return null;
+ }
+ SendRtpItem sendRtpItem = new SendRtpItem();
+ sendRtpItem.setIp(ip);
+ sendRtpItem.setPort(port);
+ sendRtpItem.setSsrc(ssrc);
+ sendRtpItem.setApp(app);
+ sendRtpItem.setStreamId(stream);
+ sendRtpItem.setPlatformId(platformId);
+ sendRtpItem.setChannelId(channelId);
+ sendRtpItem.setTcp(tcp);
+ sendRtpItem.setLocalPort(localPort);
+ return sendRtpItem;
+ }
+
+ /**
+ * 璋冪敤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鎺ㄦ祦璇锋眰鎴愬姛锛屾湰鍦版帹娴佺鍙o細" + 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 {
- // 妫�鏌LM鐘舵��
+ if (jsonObject == null) {
logger.error("RTP鎺ㄦ祦澶辫触: 璇锋鏌LM鏈嶅姟");
+ } else if (jsonObject.getInteger("code") == 0) {
+ result= true;
+ logger.error("RTP鎺ㄦ祦璇锋眰鎴愬姛锛屾湰鍦版帹娴佺鍙o細" + 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;
+ return (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online"));
+ }
+
+ /**
+ * 鏌ヨ寰呰浆鎺ㄧ殑娴佹槸鍚﹀氨缁�
+ */
+ public Boolean isStreamReady(String app, String streamId) {
+ JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(app, "rtmp", streamId);
+ return (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online"));
+ }
+
+ /**
+ * 鏌ヨ杞帹鐨勬祦鏄惁鏈夊叾瀹冭鐪嬭��
+ * @param streamId
+ * @return
+ */
+ public int totalReaderCount(String app, String streamId) {
+ JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(app, "rtmp", streamId);
+ return mediaInfo.getInteger("totalReaderCount");
+ }
+
+ /**
+ * 璋冪敤zlm RESTful API 鈥斺�� stopSendRtp
+ */
+ public Boolean stopSendRtpStream(Map<String, Object>param) {
+ Boolean result = false;
+ JSONObject jsonObject = zlmresTfulUtils.stopSendRtp(param);
+ System.out.println(jsonObject);
+ if (jsonObject == null) {
+ logger.error("鍋滄RTP鎺ㄦ祦澶辫触: 璇锋鏌LM鏈嶅姟");
+ } else if (jsonObject.getInteger("code") == 0) {
+ result= true;
+ logger.error("鍋滄RTP鎺ㄦ祦鎴愬姛");
} else {
- logger.info("璁惧RTP鎺ㄦ祦鏈畬鎴�");
- return false;
+ logger.error("鍋滄RTP鎺ㄦ祦澶辫触: " + jsonObject.getString("msg"));
}
+ return result;
}
}
--
Gitblit v1.8.0