From 16f3b0553d5ea1dd891b56b93e3e13da950cf4dd Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 19 十二月 2022 18:00:28 +0800 Subject: [PATCH] 设备离线清空语音对讲通道 --- src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java | 125 +++++++++++++++++++++++++++++++---------- 1 files changed, 93 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java index 46b0e00..0d6f5ee 100644 --- a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java @@ -5,7 +5,7 @@ import java.io.Serializable; @Schema(description = "娴佷俊鎭�") -public class StreamInfo implements Serializable { +public class StreamInfo implements Serializable, Cloneable{ @Schema(description = "搴旂敤鍚�") private String app; @@ -169,25 +169,31 @@ public void setRtmp(String host, int port, int sslPort, String app, String stream, String callIdParam) { String file = String.format("%s/%s/%s", app, stream, callIdParam); - this.rtmp = new StreamURL("rtmp", host, port, file); - if (sslPort != 0) { + if (port > 0) { + this.rtmp = new StreamURL("rtmp", host, port, file); + } + if (sslPort > 0) { this.rtmps = new StreamURL("rtmps", host, sslPort, file); } } public void setRtsp(String host, int port, int sslPort, String app, String stream, String callIdParam) { String file = String.format("%s/%s/%s", app, stream, callIdParam); - this.rtsp = new StreamURL("rtsp", host, port, file); - if (sslPort != 0) { + if (port > 0) { + this.rtsp = new StreamURL("rtsp", host, port, file); + } + if (sslPort > 0) { this.rtsps = new StreamURL("rtsps", host, sslPort, file); } } public void setFlv(String host, int port, int sslPort, String app, String stream, String callIdParam) { String file = String.format("%s/%s.live.flv%s", app, stream, callIdParam); - this.flv = new StreamURL("http", host, port, file); + if (port > 0) { + this.flv = new StreamURL("http", host, port, file); + } this.ws_flv = new StreamURL("ws", host, port, file); - if (sslPort != 0) { + if (sslPort > 0) { this.https_flv = new StreamURL("https", host, sslPort, file); this.wss_flv = new StreamURL("wss", host, sslPort, file); } @@ -195,9 +201,11 @@ public void setFmp4(String host, int port, int sslPort, String app, String stream, String callIdParam) { String file = String.format("%s/%s.live.mp4%s", app, stream, callIdParam); - this.fmp4 = new StreamURL("http", host, port, file); - this.ws_fmp4 = new StreamURL("ws", host, port, file); - if (sslPort != 0) { + if (port > 0) { + this.fmp4 = new StreamURL("http", host, port, file); + this.ws_fmp4 = new StreamURL("ws", host, port, file); + } + if (sslPort > 0) { this.https_fmp4 = new StreamURL("https", host, sslPort, file); this.wss_fmp4 = new StreamURL("wss", host, sslPort, file); } @@ -205,9 +213,11 @@ public void setHls(String host, int port, int sslPort, String app, String stream, String callIdParam) { String file = String.format("%s/%s/hls.m3u8%s", app, stream, callIdParam); - this.hls = new StreamURL("http", host, port, file); - this.ws_hls = new StreamURL("ws", host, port, file); - if (sslPort != 0) { + if (port > 0) { + this.hls = new StreamURL("http", host, port, file); + this.ws_hls = new StreamURL("ws", host, port, file); + } + if (sslPort > 0) { this.https_hls = new StreamURL("https", host, sslPort, file); this.wss_hls = new StreamURL("wss", host, sslPort, file); } @@ -215,51 +225,91 @@ public void setTs(String host, int port, int sslPort, String app, String stream, String callIdParam) { String file = String.format("%s/%s.live.ts%s", app, stream, callIdParam); - this.ts = new StreamURL("http", host, port, file); - this.ws_ts = new StreamURL("ws", host, port, file); - if (sslPort != 0) { + + if (port > 0) { + this.ts = new StreamURL("http", host, port, file); + this.ws_ts = new StreamURL("ws", host, port, file); + } + if (sslPort > 0) { this.https_ts = new StreamURL("https", host, sslPort, file); this.wss_ts = new StreamURL("wss", host, sslPort, file); } } - public void setRtc(String host, int port, int sslPort, String app, String stream, String callIdParam) { - String file = String.format("index/api/webrtc?app=%s&stream=%s&type=play%s", app, stream, callIdParam); - this.rtc = new StreamURL("http", host, port, file); - if (sslPort != 0) { + public void setRtc(String host, int port, int sslPort, String app, String stream, String callIdParam, boolean isPlay) { + String file = String.format("index/api/webrtc?app=%s&stream=%s&type=%s%s", app, stream, isPlay?"play":"push", callIdParam); + if (port > 0) { + this.rtc = new StreamURL("http", host, port, file); + } + if (sslPort > 0) { this.rtcs = new StreamURL("https", host, sslPort, file); } } public void channgeStreamIp(String localAddr) { - this.flv.setHost(localAddr); - this.ws_flv.setHost(localAddr); - this.hls.setHost(localAddr); - this.ws_hls.setHost(localAddr); - this.ts.setHost(localAddr); - this.ws_ts.setHost(localAddr); - this.fmp4.setHost(localAddr); - this.ws_fmp4.setHost(localAddr); - this.rtc.setHost(localAddr); + if (this.flv != null) { + this.flv.setHost(localAddr); + } + if (this.ws_flv != null ){ + this.ws_flv.setHost(localAddr); + } + if (this.hls != null ) { + this.hls.setHost(localAddr); + } + if (this.ws_hls != null ) { + this.ws_hls.setHost(localAddr); + } + if (this.ts != null ) { + this.ts.setHost(localAddr); + } + if (this.ws_ts != null ) { + this.ws_ts.setHost(localAddr); + } + if (this.fmp4 != null ) { + this.fmp4.setHost(localAddr); + } + if (this.ws_fmp4 != null ) { + this.ws_fmp4.setHost(localAddr); + } + if (this.rtc != null ) { + this.rtc.setHost(localAddr); + } if (this.https_flv != null) { this.https_flv.setHost(localAddr); + } + if (this.wss_flv != null) { this.wss_flv.setHost(localAddr); + } + if (this.https_hls != null) { this.https_hls.setHost(localAddr); + } + if (this.wss_hls != null) { this.wss_hls.setHost(localAddr); + } + if (this.wss_ts != null) { this.wss_ts.setHost(localAddr); + } + if (this.https_fmp4 != null) { this.https_fmp4.setHost(localAddr); + } + if (this.wss_fmp4 != null) { this.wss_fmp4.setHost(localAddr); + } + if (this.rtcs != null) { this.rtcs.setHost(localAddr); } - this.rtsp.setHost(localAddr); + if (this.rtsp != null) { + this.rtsp.setHost(localAddr); + } if (this.rtsps != null) { this.rtsps.setHost(localAddr); } - this.rtmp.setHost(localAddr); + if (this.rtmp != null) { + this.rtmp.setHost(localAddr); + } if (this.rtmps != null) { this.rtmps.setHost(localAddr); } - } @@ -463,4 +513,15 @@ public void setTransactionInfo(TransactionInfo transactionInfo) { this.transactionInfo = transactionInfo; } + + @Override + public StreamInfo clone() { + StreamInfo instance = null; + try{ + instance = (StreamInfo)super.clone(); + }catch(CloneNotSupportedException e) { + e.printStackTrace(); + } + return instance; + } } -- Gitblit v1.8.0