From f1c7d612ca0e9dc9a7b0a7aebc0be17365883d3f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 08 九月 2022 09:19:57 +0800
Subject: [PATCH] Merge pull request #590 from ixingqiao/wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java
index ced97ef..2d568a1 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java
@@ -14,6 +14,7 @@
 import org.dom4j.io.SAXReader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
 import javax.sip.RequestEvent;
@@ -118,12 +119,12 @@
         // 濡傛灉鏄睘鎬�
         for (Object o : element.attributes()) {
             Attribute attr = (Attribute) o;
-            if (!StringUtils.isEmpty(attr.getValue())) {
+            if (!ObjectUtils.isEmpty(attr.getValue())) {
                 json.put("@" + attr.getName(), attr.getValue());
             }
         }
         List<Element> chdEl = element.elements();
-        if (chdEl.isEmpty() && !StringUtils.isEmpty(element.getText())) {// 濡傛灉娌℃湁瀛愬厓绱�,鍙湁涓�涓��
+        if (chdEl.isEmpty() && !ObjectUtils.isEmpty(element.getText())) {// 濡傛灉娌℃湁瀛愬厓绱�,鍙湁涓�涓��
             json.put(element.getName(), element.getText());
         }
 
@@ -154,7 +155,7 @@
             } else { // 瀛愬厓绱犳病鏈夊瓙鍏冪礌
                 for (Object o : element.attributes()) {
                     Attribute attr = (Attribute) o;
-                    if (!StringUtils.isEmpty(attr.getValue())) {
+                    if (!ObjectUtils.isEmpty(attr.getValue())) {
                         json.put("@" + attr.getName(), attr.getValue());
                     }
                 }
@@ -197,11 +198,17 @@
             return null;
         }
         String channelId = channdelIdElement.getTextTrim();
-        if (StringUtils.isEmpty(channelId)) {
+        if (ObjectUtils.isEmpty(channelId)) {
             logger.warn("瑙f瀽Catalog娑堟伅鏃跺彂鐜扮己灏� DeviceID");
             return null;
         }
         deviceChannel.setChannelId(channelId);
+        int channelTypeCode = Integer.parseInt(channelId.substring(10, 13));
+        if (channelTypeCode == 136 || channelTypeCode == 137 || channelTypeCode == 138) {
+            deviceChannel.setHasAudio(true);
+        }else {
+            deviceChannel.setHasAudio(false);
+        }
         if (event != null && !event.equals(CatalogEvent.ADD) && !event.equals(CatalogEvent.UPDATE)) {
             // 闄や簡ADD鍜寀pdate鎯呭喌涓嬮渶瑕佽瘑鍒叏閮ㄥ唴瀹癸紝
             return deviceChannel;
@@ -316,7 +323,7 @@
         // 璇嗗埆鑷甫鐨勭洰褰曟爣璇�
         String parental = XmlUtil.getText(itemDevice, "Parental");
         // 鐢变簬娴峰悍浼氶敊璇殑鍙戦��65535浣滀负杩欓噷鐨勫彇鍊�,鎵�浠ヨ繖閲岄櫎闈炴槸0鍚﹀垯璁や负鏄�1
-        if (!StringUtils.isEmpty(parental) && parental.length() == 1 && Integer.parseInt(parental) == 0) {
+        if (!ObjectUtils.isEmpty(parental) && parental.length() == 1 && Integer.parseInt(parental) == 0) {
             deviceChannel.setParental(0);
         }else {
             deviceChannel.setParental(1);
@@ -332,14 +339,14 @@
         deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password"));
 
         String safetyWay = XmlUtil.getText(itemDevice, "SafetyWay");
-        if (StringUtils.isEmpty(safetyWay)) {
+        if (ObjectUtils.isEmpty(safetyWay)) {
             deviceChannel.setSafetyWay(0);
         } else {
             deviceChannel.setSafetyWay(Integer.parseInt(safetyWay));
         }
 
         String registerWay = XmlUtil.getText(itemDevice, "RegisterWay");
-        if (StringUtils.isEmpty(registerWay)) {
+        if (ObjectUtils.isEmpty(registerWay)) {
             deviceChannel.setRegisterWay(1);
         } else {
             deviceChannel.setRegisterWay(Integer.parseInt(registerWay));
@@ -395,7 +402,6 @@
         } else {
             deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType")));
         }
-        deviceChannel.setHasAudio(true); // 榛樿鍚湁闊抽锛屾挱鏀炬椂鍐嶆鏌ユ槸鍚︽湁闊抽鍙婃槸鍚AC
         return deviceChannel;
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0