瀏覽代碼

add 媒体设备刷新通道

18339543638 3 年之前
父節點
當前提交
f42084e748

+ 9 - 33
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/entity/MediaDeviceChannel.java

@@ -8,6 +8,7 @@ import org.hswebframework.ezorm.rdb.mapping.annotation.DefaultValue;
 import org.hswebframework.ezorm.rdb.mapping.annotation.EnumCodec;
 import org.hswebframework.web.api.crud.entity.GenericEntity;
 import org.jetlinks.community.media.enums.DeviceState;
+import org.jetlinks.community.media.enums.PtzType;
 
 import javax.persistence.Column;
 import javax.persistence.Table;
@@ -209,23 +210,19 @@ public class MediaDeviceChannel extends GenericEntity<String> {
     )
 	private String password;
 
-	/**
-	 * 云台类型
-	 */
-    @Column(name = "PTZ_type")
-    @Schema(
-        description = "云台类型"
-    )
-	private int PTZType;
-
 	/**
 	 * 云台类型描述字符串
 	 */
-    @Column(name = "PTZ_type_text")
+    @Column(name = "ptz_type",length = 16)
+    @EnumCodec
+    @ColumnType(javaType = String.class)
+    @DefaultValue("offline")
     @Schema(
-        description = "云台类型描述字符串"
+        description = "状态(只读)"
+        ,accessMode = Schema.AccessMode.READ_ONLY
+        , defaultValue = "UNKNOWN"
     )
-	private String PTZTypeText;
+	private PtzType ptzType;
 
 	/**
 	 * 创建时间
@@ -310,27 +307,6 @@ public class MediaDeviceChannel extends GenericEntity<String> {
     )
 	private boolean hasAudio;
 
-	public void setPTZType(int PTZType) {
-		this.PTZType = PTZType;
-		switch (PTZType) {
-			case 0:
-				this.PTZTypeText = "未知";
-				break;
-			case 1:
-				this.PTZTypeText = "球机";
-				break;
-			case 2:
-				this.PTZTypeText = "半球";
-				break;
-			case 3:
-				this.PTZTypeText = "固定枪机";
-				break;
-			case 4:
-				this.PTZTypeText = "遥控枪机";
-				break;
-		}
-	}
-
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;

+ 47 - 0
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/enums/PtzType.java

@@ -0,0 +1,47 @@
+package org.jetlinks.community.media.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.hswebframework.web.dict.Dict;
+import org.hswebframework.web.dict.EnumDict;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName PtzType.java
+ * @Description 云台类型
+ * @createTime 2022年03月07日 14:59:00
+ */
+@AllArgsConstructor
+@Getter
+@Dict("ptz-type")
+public enum  PtzType implements EnumDict<String> {
+
+    UNKNOWN("未知"),
+    BALLMACHINE("球机"),
+    HEMISPHERE("半球"),
+    FIXEDBOLTS("固定枪机"),
+    REMOTECONTROLBOLT("遥控枪机")
+    ;
+    private String text;
+
+    public static PtzType of(int value) {
+        switch (value) {
+            case 0:
+                return UNKNOWN;
+            case 1:
+                return BALLMACHINE;
+            case 2:
+                return HEMISPHERE;
+            case 3:
+                return FIXEDBOLTS;
+            case 4:
+                return REMOTECONTROLBOLT;
+            default:break;
+        }
+        return null;
+    }
+    @Override
+    public String getValue() {
+        return String.valueOf(this.ordinal());
+    }}

+ 0 - 11
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/enums/SipMethodType.java

@@ -1,11 +0,0 @@
-package org.jetlinks.community.media.enums;
-
-/**
- * @author lifang
- * @version 1.0.0
- * @ClassName SipMethodType.java
- * @Description TODO
- * @createTime 2022年01月15日 14:49:00
- */
-public enum  SipMethodType {
-}

+ 1 - 1
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/service/LocalMediaServerItemService.java

@@ -532,7 +532,7 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
         param.put("hook.enable","1");
         param.put("general.fmp4_demand","1");
         param.put("general.hls_demand","1");
-        param.put("general.modifyStamp","1");
+        param.put("general.modifyStamp","0");
         param.put("hook.on_flow_report","");
         param.put("hook.on_play",String.format("%s/on_play", hookPrex));
         param.put("hook.on_http_access",String.format("%s/on_http_access", hookPrex));

+ 0 - 4
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/transmit/cmd/SipCommander.java

@@ -187,7 +187,6 @@ public class SipCommander {
             messageBroker.handleReply(device.getId(), ZLMKeyGenerate.getStreamChangedKey(ZLMHttpHookSubscribe.HookType.on_stream_changed,mediaServerItem.getServerId(),"rtp",true,streamId), Duration.ofSeconds(15))
                 .flatMap(reply -> {
                     if(reply instanceof MediaMessageReply){
-                        System.out.println("收到视频回调------------------------------------------" + System.currentTimeMillis() + "---------------------------------------");
                         MediaMessageReply<MediaItem> itemReply= (MediaMessageReply<MediaItem>) reply;
                         MediaItem mediaItem = itemReply.getResult();
                         if (userSetup.isWaitTrack() &&  mediaItem.getTracks() == null) {
@@ -204,9 +203,6 @@ public class SipCommander {
                     return Mono.empty();
                 }).subscribe();
 
-
-            System.out.println("开始请求视频--------------------------streamId:"+streamId+"----------------" + System.currentTimeMillis() + "---------------------------------------");
-
             return  transmitRequest(sipProvider, request, (e -> {
                 streamSessionManager.remove(device.getId(), channelId);
                 mediaServerItemService.releaseSsrc(mediaServerItem, ssrcInfo.getSsrc());

+ 1 - 1
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/zlm/ZLMHttpHookListener.java

@@ -302,7 +302,7 @@ public class ZLMHttpHookListener {
         boolean regist = item.isRegist();
 
         if(regist){
-            System.out.println("视频回调开始-------------streamId-------"+streamId+"-----------------------------" + System.currentTimeMillis() + "---------------------------------------");
+
         }
         StreamInfo streamInfo = redisCatchStorage.queryPlayByStreamId(streamId);
         MediaDevice device = redisCatchStorage.queryDeviceByStreamId(streamId);

+ 3 - 2
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/utils/XmlUtil.java

@@ -9,6 +9,7 @@ import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
 import org.jetlinks.community.media.entity.MediaDeviceChannel;
 import org.jetlinks.community.media.enums.DeviceState;
+import org.jetlinks.community.media.enums.PtzType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
@@ -258,9 +259,9 @@ public class XmlUtil {
         }
         if (XmlUtil.getText(itemDevice, "PTZType") == null
             || XmlUtil.getText(itemDevice, "PTZType") == "") {
-            deviceChannel.setPTZType(0);
+            deviceChannel.setPtzType(PtzType.UNKNOWN);
         } else {
-            deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType")));
+            deviceChannel.setPtzType(PtzType.of(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType"))));
         }
         deviceChannel.setHasAudio(true); // 默认含有音频,播放时再检查是否有音频及是否AAC
         return deviceChannel;