From 764d04b497356ba6bcbb75fd42b51eca750f7223 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 29 五月 2024 15:02:51 +0800 Subject: [PATCH] 调整上级观看消息的发送 --- src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java | 135 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 123 insertions(+), 12 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 42ff5ba..f477439 100644 --- a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java @@ -1,8 +1,11 @@ package com.genersoft.iot.vmp.common; +import com.genersoft.iot.vmp.media.bean.MediaInfo; +import com.genersoft.iot.vmp.service.bean.DownloadFileInfo; import io.swagger.v3.oas.annotations.media.Schema; import java.io.Serializable; +import java.util.Objects; @Schema(description = "娴佷俊鎭�") public class StreamInfo implements Serializable, Cloneable{ @@ -68,16 +71,21 @@ @Schema(description = "娴佸獟浣揑D") private String mediaServerId; @Schema(description = "娴佺紪鐮佷俊鎭�") - private Object tracks; + private MediaInfo mediaInfo; @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; + + @Schema(description = "浜х敓婧愮被鍨嬶紝鍖呮嫭 unknown = 0,rtmp_push=1,rtsp_push=2,rtp_push=3,pull=4,ffmpeg_pull=5,mp4_vod=6,device_chn=7") + private int originType; public void setFlv(StreamURL flv) { this.flv = flv; @@ -168,7 +176,7 @@ } 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); + String file = String.format("%s/%s%s", app, stream, callIdParam); if (port > 0) { this.rtmp = new StreamURL("rtmp", host, port, file); } @@ -178,7 +186,7 @@ } 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); + String file = String.format("%s/%s%s", app, stream, callIdParam); if (port > 0) { this.rtsp = new StreamURL("rtsp", host, port, file); } @@ -187,14 +195,22 @@ } } - 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); + public void setFlv(String host, int port, int sslPort, String file) { 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 setWsFlv(String host, int port, int sslPort, String file) { + if (port > 0) { + this.ws_flv = new StreamURL("ws", host, port, file); + } + if (sslPort > 0) { this.wss_flv = new StreamURL("wss", host, sslPort, file); } } @@ -236,8 +252,11 @@ } } - 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); + public void setRtc(String host, int port, int sslPort, String app, String stream, String callIdParam, boolean isPlay) { + if (callIdParam != null) { + callIdParam = Objects.equals(callIdParam, "") ? callIdParam : callIdParam.replace("?", "&"); + } + 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); } @@ -466,12 +485,12 @@ this.mediaServerId = mediaServerId; } - public Object getTracks() { - return tracks; + public MediaInfo getMediaInfo() { + return mediaInfo; } - public void setTracks(Object tracks) { - this.tracks = tracks; + public void setMediaInfo(MediaInfo mediaInfo) { + this.mediaInfo = mediaInfo; } public String getStartTime() { @@ -519,9 +538,101 @@ 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) { - logger.error("鏈鐞嗙殑寮傚父 ", 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; + } + + public int getOriginType() { + return originType; + } + + public void setOriginType(int originType) { + this.originType = originType; + } } -- Gitblit v1.8.0