|  |  | 
 |  |  | package com.genersoft.iot.vmp.common; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSONArray; | 
 |  |  | import com.genersoft.iot.vmp.service.bean.DownloadFileInfo; | 
 |  |  | import io.swagger.v3.oas.annotations.media.Schema; | 
 |  |  |  | 
 |  |  | public class StreamInfo { | 
 |  |  | import java.io.Serializable; | 
 |  |  | import java.util.Objects; | 
 |  |  |  | 
 |  |  |     private String ssrc; | 
 |  |  | @Schema(description = "流信息") | 
 |  |  | public class StreamInfo implements Serializable, Cloneable{ | 
 |  |  |  | 
 |  |  |     @Schema(description = "应用名") | 
 |  |  |     private String app; | 
 |  |  |     @Schema(description = "流ID") | 
 |  |  |     private String stream; | 
 |  |  |     @Schema(description = "设备编号") | 
 |  |  |     private String deviceID; | 
 |  |  |     private String cahnnelId; | 
 |  |  |     private String flv; | 
 |  |  |     private String ws_flv; | 
 |  |  |     private String rtmp; | 
 |  |  |     private String hls; | 
 |  |  |     private String rtsp; | 
 |  |  |     private JSONArray tracks; | 
 |  |  |     @Schema(description = "通道编号") | 
 |  |  |     private String channelId; | 
 |  |  |  | 
 |  |  |     public String getSsrc() { | 
 |  |  |         return ssrc; | 
 |  |  |     } | 
 |  |  |     @Schema(description = "IP") | 
 |  |  |     private String ip; | 
 |  |  |  | 
 |  |  |     public void setSsrc(String ssrc) { | 
 |  |  |         this.ssrc = ssrc; | 
 |  |  |     } | 
 |  |  |     @Schema(description = "HTTP-FLV流地址") | 
 |  |  |     private StreamURL flv; | 
 |  |  |  | 
 |  |  |     public String getFlv() { | 
 |  |  |         return flv; | 
 |  |  |     } | 
 |  |  |     @Schema(description = "HTTPS-FLV流地址") | 
 |  |  |     private StreamURL https_flv; | 
 |  |  |     @Schema(description = "Websocket-FLV流地址") | 
 |  |  |     private StreamURL ws_flv; | 
 |  |  |     @Schema(description = "Websockets-FLV流地址") | 
 |  |  |     private StreamURL wss_flv; | 
 |  |  |     @Schema(description = "HTTP-FMP4流地址") | 
 |  |  |     private StreamURL fmp4; | 
 |  |  |     @Schema(description = "HTTPS-FMP4流地址") | 
 |  |  |     private StreamURL https_fmp4; | 
 |  |  |     @Schema(description = "Websocket-FMP4流地址") | 
 |  |  |     private StreamURL ws_fmp4; | 
 |  |  |     @Schema(description = "Websockets-FMP4流地址") | 
 |  |  |     private StreamURL wss_fmp4; | 
 |  |  |     @Schema(description = "HLS流地址") | 
 |  |  |     private StreamURL hls; | 
 |  |  |     @Schema(description = "HTTPS-HLS流地址") | 
 |  |  |     private StreamURL https_hls; | 
 |  |  |     @Schema(description = "Websocket-HLS流地址") | 
 |  |  |     private StreamURL ws_hls; | 
 |  |  |     @Schema(description = "Websockets-HLS流地址") | 
 |  |  |     private StreamURL wss_hls; | 
 |  |  |     @Schema(description = "HTTP-TS流地址") | 
 |  |  |     private StreamURL ts; | 
 |  |  |     @Schema(description = "HTTPS-TS流地址") | 
 |  |  |     private StreamURL https_ts; | 
 |  |  |     @Schema(description = "Websocket-TS流地址") | 
 |  |  |     private StreamURL ws_ts; | 
 |  |  |     @Schema(description = "Websockets-TS流地址") | 
 |  |  |     private StreamURL wss_ts; | 
 |  |  |     @Schema(description = "RTMP流地址") | 
 |  |  |     private StreamURL rtmp; | 
 |  |  |     @Schema(description = "RTMPS流地址") | 
 |  |  |     private StreamURL rtmps; | 
 |  |  |     @Schema(description = "RTSP流地址") | 
 |  |  |     private StreamURL rtsp; | 
 |  |  |     @Schema(description = "RTSPS流地址") | 
 |  |  |     private StreamURL rtsps; | 
 |  |  |     @Schema(description = "RTC流地址") | 
 |  |  |     private StreamURL rtc; | 
 |  |  |  | 
 |  |  |     public void setFlv(String flv) { | 
 |  |  |     @Schema(description = "RTCS流地址") | 
 |  |  |     private StreamURL rtcs; | 
 |  |  |     @Schema(description = "流媒体ID") | 
 |  |  |     private String mediaServerId; | 
 |  |  |     @Schema(description = "流编码信息") | 
 |  |  |     private Object tracks; | 
 |  |  |     @Schema(description = "开始时间") | 
 |  |  |     private String startTime; | 
 |  |  |     @Schema(description = "结束时间") | 
 |  |  |     private String endTime; | 
 |  |  |     @Schema(description = "进度(录像下载使用)") | 
 |  |  |     private double progress; | 
 |  |  |     @Schema(description = "文件下载地址(录像下载使用)") | 
 |  |  |     private DownloadFileInfo downLoadFilePath; | 
 |  |  |  | 
 |  |  |     @Schema(description = "是否暂停(录像回放使用)") | 
 |  |  |     private boolean pause; | 
 |  |  |  | 
 |  |  |     public void setFlv(StreamURL flv) { | 
 |  |  |         this.flv = flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getWs_flv() { | 
 |  |  |         return ws_flv; | 
 |  |  |     public void setHttps_flv(StreamURL https_flv) { | 
 |  |  |         this.https_flv = https_flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setWs_flv(String ws_flv) { | 
 |  |  |     public void setWs_flv(StreamURL ws_flv) { | 
 |  |  |         this.ws_flv = ws_flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getRtmp() { | 
 |  |  |         return rtmp; | 
 |  |  |     public void setWss_flv(StreamURL wss_flv) { | 
 |  |  |         this.wss_flv = wss_flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtmp(String rtmp) { | 
 |  |  |         this.rtmp = rtmp; | 
 |  |  |     public void setFmp4(StreamURL fmp4) { | 
 |  |  |         this.fmp4 = fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getHls() { | 
 |  |  |         return hls; | 
 |  |  |     public void setHttps_fmp4(StreamURL https_fmp4) { | 
 |  |  |         this.https_fmp4 = https_fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setHls(String hls) { | 
 |  |  |     public void setWs_fmp4(StreamURL ws_fmp4) { | 
 |  |  |         this.ws_fmp4 = ws_fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setWss_fmp4(StreamURL wss_fmp4) { | 
 |  |  |         this.wss_fmp4 = wss_fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setHls(StreamURL hls) { | 
 |  |  |         this.hls = hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getRtsp() { | 
 |  |  |         return rtsp; | 
 |  |  |     public void setHttps_hls(StreamURL https_hls) { | 
 |  |  |         this.https_hls = https_hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtsp(String rtsp) { | 
 |  |  |     public void setWs_hls(StreamURL ws_hls) { | 
 |  |  |         this.ws_hls = ws_hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setWss_hls(StreamURL wss_hls) { | 
 |  |  |         this.wss_hls = wss_hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setTs(StreamURL ts) { | 
 |  |  |         this.ts = ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setHttps_ts(StreamURL https_ts) { | 
 |  |  |         this.https_ts = https_ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setWs_ts(StreamURL ws_ts) { | 
 |  |  |         this.ws_ts = ws_ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setWss_ts(StreamURL wss_ts) { | 
 |  |  |         this.wss_ts = wss_ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtmp(StreamURL rtmp) { | 
 |  |  |         this.rtmp = rtmp; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtmps(StreamURL rtmps) { | 
 |  |  |         this.rtmps = rtmps; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtsp(StreamURL rtsp) { | 
 |  |  |         this.rtsp = rtsp; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtsps(StreamURL rtsps) { | 
 |  |  |         this.rtsps = rtsps; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtc(StreamURL rtc) { | 
 |  |  |         this.rtc = rtc; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setRtcs(StreamURL rtcs) { | 
 |  |  |         this.rtcs = rtcs; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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); | 
 |  |  |         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); | 
 |  |  |         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); | 
 |  |  |         if (port > 0) { | 
 |  |  |             this.flv = new StreamURL("http", host, port, file); | 
 |  |  |         } | 
 |  |  |         this.ws_flv = new StreamURL("ws", host, port, file); | 
 |  |  |         if (sslPort > 0) { | 
 |  |  |             this.https_flv = new StreamURL("https", host, sslPort, file); | 
 |  |  |             this.wss_flv = new StreamURL("wss", host, sslPort, file); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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); | 
 |  |  |         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); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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); | 
 |  |  |         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); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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); | 
 |  |  |  | 
 |  |  |         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) { | 
 |  |  |         if (callIdParam != null) { | 
 |  |  |             callIdParam = Objects.equals(callIdParam, "") ? callIdParam : callIdParam.replace("?", "&"); | 
 |  |  |         } | 
 |  |  |         String file = String.format("index/api/webrtc?app=%s&stream=%s&type=play%s", app, stream, 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) { | 
 |  |  |         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); | 
 |  |  |         } | 
 |  |  |         if (this.rtsp != null) { | 
 |  |  |             this.rtsp.setHost(localAddr); | 
 |  |  |         } | 
 |  |  |         if (this.rtsps != null) { | 
 |  |  |             this.rtsps.setHost(localAddr); | 
 |  |  |         } | 
 |  |  |         if (this.rtmp != null) { | 
 |  |  |             this.rtmp.setHost(localAddr); | 
 |  |  |         } | 
 |  |  |         if (this.rtmps != null) { | 
 |  |  |             this.rtmps.setHost(localAddr); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static class TransactionInfo{ | 
 |  |  |         public String callId; | 
 |  |  |         public String localTag; | 
 |  |  |         public String remoteTag; | 
 |  |  |         public String branch; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private TransactionInfo transactionInfo; | 
 |  |  |  | 
 |  |  |     public String getApp() { | 
 |  |  |         return app; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setApp(String app) { | 
 |  |  |         this.app = app; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getDeviceID() { | 
 |  |  | 
 |  |  |         this.deviceID = deviceID; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getCahnnelId() { | 
 |  |  |         return cahnnelId; | 
 |  |  |     public String getChannelId() { | 
 |  |  |         return channelId; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setCahnnelId(String cahnnelId) { | 
 |  |  |         this.cahnnelId = cahnnelId; | 
 |  |  |     public void setChannelId(String channelId) { | 
 |  |  |         this.channelId = channelId; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public JSONArray getTracks() { | 
 |  |  |     public String getStream() { | 
 |  |  |         return stream; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setStream(String stream) { | 
 |  |  |         this.stream = stream; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getIp() { | 
 |  |  |         return ip; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setIp(String ip) { | 
 |  |  |         this.ip = ip; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getFlv() { | 
 |  |  |         return flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getHttps_flv() { | 
 |  |  |         return https_flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getWs_flv() { | 
 |  |  |         return ws_flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public StreamURL getWss_flv() { | 
 |  |  |         return wss_flv; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getFmp4() { | 
 |  |  |         return fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public StreamURL getHttps_fmp4() { | 
 |  |  |         return https_fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getWs_fmp4() { | 
 |  |  |         return ws_fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getWss_fmp4() { | 
 |  |  |         return wss_fmp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getHls() { | 
 |  |  |         return hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public StreamURL getHttps_hls() { | 
 |  |  |         return https_hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getWs_hls() { | 
 |  |  |         return ws_hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getWss_hls() { | 
 |  |  |         return wss_hls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getTs() { | 
 |  |  |         return ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public StreamURL getHttps_ts() { | 
 |  |  |         return https_ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public StreamURL getWs_ts() { | 
 |  |  |         return ws_ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public StreamURL getWss_ts() { | 
 |  |  |         return wss_ts; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public StreamURL getRtmp() { | 
 |  |  |         return rtmp; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getRtmps() { | 
 |  |  |         return rtmps; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getRtsp() { | 
 |  |  |         return rtsp; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getRtsps() { | 
 |  |  |         return rtsps; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getRtc() { | 
 |  |  |         return rtc; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public StreamURL getRtcs() { | 
 |  |  |         return rtcs; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getMediaServerId() { | 
 |  |  |         return mediaServerId; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setMediaServerId(String mediaServerId) { | 
 |  |  |         this.mediaServerId = mediaServerId; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public Object getTracks() { | 
 |  |  |         return tracks; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setTracks(JSONArray tracks) { | 
 |  |  |     public void setTracks(Object tracks) { | 
 |  |  |         this.tracks = tracks; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getStartTime() { | 
 |  |  |         return startTime; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setStartTime(String startTime) { | 
 |  |  |         this.startTime = startTime; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getEndTime() { | 
 |  |  |         return endTime; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setEndTime(String endTime) { | 
 |  |  |         this.endTime = endTime; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public double getProgress() { | 
 |  |  |         return progress; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setProgress(double progress) { | 
 |  |  |         this.progress = progress; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public boolean isPause() { | 
 |  |  |         return pause; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setPause(boolean pause) { | 
 |  |  |         this.pause = pause; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public TransactionInfo getTransactionInfo() { | 
 |  |  |         return transactionInfo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setTransactionInfo(TransactionInfo transactionInfo) { | 
 |  |  |         this.transactionInfo = transactionInfo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public StreamInfo clone() { | 
 |  |  |         StreamInfo instance = null; | 
 |  |  |         try{ | 
 |  |  |             instance = (StreamInfo)super.clone(); | 
 |  |  |             if (this.flv != null) { | 
 |  |  |                 instance.flv=this.flv.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.ws_flv != null ){ | 
 |  |  |                 instance.ws_flv= this.ws_flv.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.hls != null ) { | 
 |  |  |                 instance.hls= this.hls.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.ws_hls != null ) { | 
 |  |  |                 instance.ws_hls= this.ws_hls.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.ts != null ) { | 
 |  |  |                 instance.ts= this.ts.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.ws_ts != null ) { | 
 |  |  |                 instance.ws_ts= this.ws_ts.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.fmp4 != null ) { | 
 |  |  |                 instance.fmp4= this.fmp4.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.ws_fmp4 != null ) { | 
 |  |  |                 instance.ws_fmp4= this.ws_fmp4.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.rtc != null ) { | 
 |  |  |                 instance.rtc= this.rtc.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.https_flv != null) { | 
 |  |  |                 instance.https_flv= this.https_flv.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.wss_flv != null) { | 
 |  |  |                 instance.wss_flv= this.wss_flv.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.https_hls != null) { | 
 |  |  |                 instance.https_hls= this.https_hls.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.wss_hls != null) { | 
 |  |  |                 instance.wss_hls= this.wss_hls.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.wss_ts != null) { | 
 |  |  |                 instance.wss_ts= this.wss_ts.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.https_fmp4 != null) { | 
 |  |  |                 instance.https_fmp4= this.https_fmp4.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.wss_fmp4 != null) { | 
 |  |  |                 instance.wss_fmp4= this.wss_fmp4.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.rtcs != null) { | 
 |  |  |                 instance.rtcs= this.rtcs.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.rtsp != null) { | 
 |  |  |                 instance.rtsp= this.rtsp.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.rtsps != null) { | 
 |  |  |                 instance.rtsps= this.rtsps.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.rtmp != null) { | 
 |  |  |                 instance.rtmp= this.rtmp.clone(); | 
 |  |  |             } | 
 |  |  |             if (this.rtmps != null) { | 
 |  |  |                 instance.rtmps= this.rtmps.clone(); | 
 |  |  |             } | 
 |  |  |         }catch(CloneNotSupportedException e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |         return instance; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /*=========================设备主子码流逻辑START====================*/ | 
 |  |  |     @Schema(description = "是否为子码流(true-是,false-主码流)") | 
 |  |  |     private boolean subStream; | 
 |  |  |  | 
 |  |  |     public boolean isSubStream() { | 
 |  |  |         return subStream; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setSubStream(boolean subStream) { | 
 |  |  |         this.subStream = subStream; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DownloadFileInfo getDownLoadFilePath() { | 
 |  |  |         return downLoadFilePath; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setDownLoadFilePath(DownloadFileInfo downLoadFilePath) { | 
 |  |  |         this.downLoadFilePath = downLoadFilePath; | 
 |  |  |     } | 
 |  |  | } |