648540858
2023-05-04 381c3bdc2079ece5147cf4cee004e9071edadf7a
src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
@@ -2,10 +2,11 @@
import io.swagger.v3.oas.annotations.media.Schema;
import java.net.URL;
import java.io.Serializable;
import java.util.Objects;
@Schema(description = "流信息")
public class StreamInfo {
public class StreamInfo implements Serializable, Cloneable{
    @Schema(description = "应用名")
    private String app;
@@ -79,27 +80,121 @@
    @Schema(description = "是否暂停(录像回放使用)")
    private boolean pause;
    public void setFlv(StreamURL flv) {
        this.flv = flv;
    }
    public void setHttps_flv(StreamURL https_flv) {
        this.https_flv = https_flv;
    }
    public void setWs_flv(StreamURL ws_flv) {
        this.ws_flv = ws_flv;
    }
    public void setWss_flv(StreamURL wss_flv) {
        this.wss_flv = wss_flv;
    }
    public void setFmp4(StreamURL fmp4) {
        this.fmp4 = fmp4;
    }
    public void setHttps_fmp4(StreamURL https_fmp4) {
        this.https_fmp4 = https_fmp4;
    }
    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 void setHttps_hls(StreamURL https_hls) {
        this.https_hls = https_hls;
    }
    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);
        this.rtmp = new StreamURL("rtmp", host, port, file);
        if (sslPort != 0) {
        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);
        this.rtsp = new StreamURL("rtsp", host, port, file);
        if (sslPort != 0) {
        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);
        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);
        }
@@ -107,9 +202,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);
        }
@@ -117,9 +214,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);
        }
@@ -127,51 +226,94 @@
    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) {
        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);
        this.rtc = new StreamURL("http", host, port, file);
        if (sslPort != 0) {
        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);
        }
    }
@@ -375,4 +517,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;
    }
}