From d4ae8194eb87271423aba24bab0f0d815d5ffdc1 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 13 十月 2020 14:46:47 +0800
Subject: [PATCH] 离在线状态样式修改 修复未回复200ok导致catalog一直发送的bug 修改点播接口未收到视频后回复
---
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java | 16 +-
src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java | 15 +-
src/main/java/com/genersoft/iot/vmp/storager/jdbc/VideoManagerJdbcStoragerImpl.java | 24 +++-
src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java | 16 ++
web_src/src/components/channelList.vue | 23 +++-
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 17 +-
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 36 ++++++
src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java | 58 +++++++----
web_src/src/components/videoList.vue | 6
web_src/src/components/gb28181/devicePlayer.vue | 1
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 5
src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java | 42 +++++--
12 files changed, 179 insertions(+), 80 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 6e876be..0e7da44 100644
--- a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
+++ b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
@@ -3,11 +3,13 @@
public class StreamInfo {
private String ssrc;
+ private String deviceID;
+ private String cahnnelId;
private String flv;
- private String WS_FLV;
- private String RTMP;
- private String HLS;
- private String RTSP;
+ private String ws_flv;
+ private String rtmp;
+ private String hls;
+ private String rtsp;
public String getSsrc() {
return ssrc;
@@ -25,35 +27,51 @@
this.flv = flv;
}
- public String getWS_FLV() {
- return WS_FLV;
+ public String getWs_flv() {
+ return ws_flv;
}
- public void setWS_FLV(String WS_FLV) {
- this.WS_FLV = WS_FLV;
+ public void setWs_flv(String ws_flv) {
+ this.ws_flv = ws_flv;
}
- public String getRTMP() {
- return RTMP;
+ public String getRtmp() {
+ return rtmp;
}
- public void setRTMP(String RTMP) {
- this.RTMP = RTMP;
+ public void setRtmp(String rtmp) {
+ this.rtmp = rtmp;
}
- public String getHLS() {
- return HLS;
+ public String getHls() {
+ return hls;
}
- public void setHLS(String HLS) {
- this.HLS = HLS;
+ public void setHls(String hls) {
+ this.hls = hls;
}
- public String getRTSP() {
- return RTSP;
+ public String getRtsp() {
+ return rtsp;
}
- public void setRTSP(String RTSP) {
- this.RTSP = RTSP;
+ public void setRtsp(String rtsp) {
+ this.rtsp = rtsp;
+ }
+
+ public String getDeviceID() {
+ return deviceID;
+ }
+
+ public void setDeviceID(String deviceID) {
+ this.deviceID = deviceID;
+ }
+
+ public String getCahnnelId() {
+ return cahnnelId;
+ }
+
+ public void setCahnnelId(String cahnnelId) {
+ this.cahnnelId = cahnnelId;
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index 3a971a7..481bb43 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -242,14 +242,15 @@
StreamInfo streamInfo = new StreamInfo();
streamInfo.setSsrc(ssrc);
// String streamId = Integer.toHexString(Integer.parseInt(streamInfo.getSsrc()));
- String streamId = String.format("%08x", Integer.parseInt(streamInfo.getSsrc())).toUpperCase(); // ZLM 瑕佹眰澶у啓涓旈浣嶈ˉ闆�
- streamInfo.setFlv(String.format("http://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
- streamInfo.setWS_FLV(String.format("ws://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
- streamInfo.setRTMP(String.format("rtmp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtmpPort(), streamId));
- streamInfo.setHLS(String.format("http://%s:%s/rtp/%s/hls.m3u8", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
- streamInfo.setRTSP(String.format("rtsp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtspPort(), streamId));
-
- storager.startPlay(device.getDeviceId(), channelId, streamInfo);
+// String streamId = String.format("%08x", Integer.parseInt(streamInfo.getSsrc())).toUpperCase(); // ZLM 瑕佹眰澶у啓涓旈浣嶈ˉ闆�
+// streamInfo.setFlv(String.format("http://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
+// streamInfo.setWS_FLV(String.format("ws://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
+// streamInfo.setRTMP(String.format("rtmp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtmpPort(), streamId));
+// streamInfo.setHLS(String.format("http://%s:%s/rtp/%s/hls.m3u8", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
+// streamInfo.setRTSP(String.format("rtsp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtspPort(), streamId));
+ streamInfo.setCahnnelId(channelId);
+ streamInfo.setDeviceID(device.getDeviceId());
+ storager.startPlay(streamInfo);
return streamInfo;
} catch ( SipException | ParseException | InvalidArgumentException e) {
e.printStackTrace();
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
index 0dfcdb0..774cd60 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -210,8 +210,11 @@
msg.setType(DeferredResultHolder.CALLBACK_CMD_CATALOG);
msg.setData(device);
deferredResultHolder.invokeResult(msg);
+
+ // 鍥炲200
+ responseAck(evt);
}
- } catch (DocumentException e) {
+ } catch (DocumentException | SipException | InvalidArgumentException | ParseException e) {
e.printStackTrace();
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
index 2d6b8e7..22ebe52 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -1,11 +1,13 @@
package com.genersoft.iot.vmp.media.zlm;
import java.math.BigInteger;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
+import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.MediaServerConfig;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
import com.genersoft.iot.vmp.utils.IpUtil;
@@ -35,7 +37,8 @@
public class ZLMHttpHookListener {
private final static Logger logger = LoggerFactory.getLogger(ZLMHttpHookListener.class);
-
+
+
@Autowired
private SIPCommander cmder;
@@ -54,7 +57,7 @@
logger.debug("ZLM HOOK on_flow_report API璋冪敤锛屽弬鏁帮細" + json.toString());
}
// TODO Auto-generated method stub
-
+
JSONObject ret = new JSONObject();
ret.put("code", 0);
@@ -113,6 +116,21 @@
if (logger.isDebugEnabled()) {
logger.debug("ZLM HOOK on_publish API璋冪敤锛屽弬鏁帮細" + json.toString());
}
+ String app = json.getString("app");
+ String streamId = json.getString("id");
+// String ssrc = String.format("%10d", Integer.parseInt(streamId, 16)); // ZLM 瑕佹眰澶у啓涓旈浣嶈ˉ闆�
+ String ssrc = new DecimalFormat("0000000000").format(Integer.parseInt(streamId, 16));
+ StreamInfo streamInfo = storager.queryPlayBySSRC(ssrc);
+ if ("rtp".equals(app) && streamInfo != null ) {
+ MediaServerConfig mediaInfo = storager.getMediaInfo();
+ streamInfo.setFlv(String.format("http://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
+ streamInfo.setWs_flv(String.format("ws://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
+ streamInfo.setRtmp(String.format("rtmp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtmpPort(), streamId));
+ streamInfo.setHls(String.format("http://%s:%s/rtp/%s/hls.m3u8", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
+ streamInfo.setRtsp(String.format("rtsp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtspPort(), streamId));
+ storager.startPlay(streamInfo);
+ }
+
// TODO Auto-generated method stub
JSONObject ret = new JSONObject();
@@ -213,8 +231,18 @@
if (logger.isDebugEnabled()) {
logger.debug("ZLM HOOK on_stream_changed API璋冪敤锛屽弬鏁帮細" + json.toString());
}
- // TODO Auto-generated method stub
-
+ // 娴佹秷澶辩Щ闄edis play
+ String app = json.getString("app");
+ String streamId = json.getString("stream");
+ boolean regist = json.getBoolean("regist");
+// String ssrc = String.format("%10d", Integer.parseInt(streamId, 16)); // ZLM 瑕佹眰澶у啓涓旈浣嶈ˉ闆�
+ String ssrc = new DecimalFormat("0000000000").format(Integer.parseInt(streamId, 16));
+ StreamInfo streamInfo = storager.queryPlayBySSRC(ssrc);
+ if ("rtp".equals(app) && !regist ) {
+ storager.stopPlay(streamInfo);
+ }
+
+
JSONObject ret = new JSONObject();
ret.put("code", 0);
ret.put("msg", "success");
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
index fd0a665..8381738 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
@@ -136,30 +136,24 @@
/**
* 寮�濮嬫挱鏀炬椂灏嗘祦瀛樺叆
*
- * @param deviceId 璁惧ID
- * @param channelId 閫氶亾ID
* @param stream 娴佷俊鎭�
* @return
*/
- public boolean startPlay(String deviceId, String channelId, StreamInfo stream);
+ public boolean startPlay(StreamInfo stream);
/**
* 鍋滄鎾斁鏃跺垹闄�
*
- * @param deviceId 璁惧ID
- * @param channelId 閫氶亾ID
* @return
*/
- public boolean stopPlay(String deviceId, String channelId);
+ public boolean stopPlay(StreamInfo streamInfo);
/**
* 鏌ユ壘瑙嗛娴�
*
- * @param deviceId 璁惧ID
- * @param channelId 閫氶亾ID
* @return
*/
- public StreamInfo queryPlay(String deviceId, String channelId);
+ public StreamInfo queryPlay(StreamInfo streamInfo);
/**
* 鏌ヨ瀛愯澶�
@@ -182,4 +176,8 @@
* @param deviceId
*/
void cleanChannelsForDevice(String deviceId);
+
+ StreamInfo queryPlayBySSRC(String ssrc);
+
+ StreamInfo queryPlayByDevice(String deviceId, String code);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/jdbc/VideoManagerJdbcStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/jdbc/VideoManagerJdbcStoragerImpl.java
index 272912f..c3a18b7 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/jdbc/VideoManagerJdbcStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/jdbc/VideoManagerJdbcStoragerImpl.java
@@ -148,17 +148,12 @@
}
@Override
- public boolean startPlay(String deviceId, String channelId, StreamInfo stream) {
+ public boolean stopPlay(StreamInfo streamInfo) {
return false;
}
@Override
- public boolean stopPlay(String deviceId, String channelId) {
- return false;
- }
-
- @Override
- public StreamInfo queryPlay(String deviceId, String channelId) {
+ public StreamInfo queryPlay(StreamInfo streamInfo) {
return null;
}
@@ -176,4 +171,19 @@
public void cleanChannelsForDevice(String deviceId) {
}
+
+ @Override
+ public boolean startPlay(StreamInfo stream) {
+ return false;
+ }
+
+ @Override
+ public StreamInfo queryPlayBySSRC(String ssrc) {
+ return null;
+ }
+
+ @Override
+ public StreamInfo queryPlayByDevice(String deviceId, String code) {
+ return null;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java
index 1acd15c..5ca8b1c 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/redis/VideoManagerRedisStoragerImpl.java
@@ -329,40 +329,53 @@
/**
* 寮�濮嬫挱鏀炬椂灏嗘祦瀛樺叆redis
*
- * @param deviceId 璁惧ID
- * @param channelId 閫氶亾ID
* @return
*/
@Override
- public boolean startPlay(String deviceId, String channelId, StreamInfo stream) {
- return redis.set(String.format("%S_%s_%s", VideoManagerConstants.PLAYER_PREFIX, deviceId, channelId),
+ public boolean startPlay(StreamInfo stream) {
+ return redis.set(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX, stream.getSsrc(),stream.getDeviceID(), stream.getCahnnelId()),
stream);
}
/**
* 鍋滄鎾斁鏃朵粠redis鍒犻櫎
*
- * @param deviceId 璁惧ID
- * @param channelId 閫氶亾ID
* @return
*/
@Override
- public boolean stopPlay(String deviceId, String channelId) {
- return redis.del(String.format("%S_%s_%s", VideoManagerConstants.PLAYER_PREFIX, deviceId, channelId));
+ public boolean stopPlay(StreamInfo streamInfo) {
+ return redis.del(String.format("%S_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX,
+ streamInfo.getSsrc(),
+ streamInfo.getDeviceID(),
+ streamInfo.getCahnnelId()));
}
/**
* 鏌ヨ鎾斁鍒楄〃
- * @param deviceId 璁惧ID
- * @param channelId 閫氶亾ID
* @return
*/
@Override
- public StreamInfo queryPlay(String deviceId, String channelId) {
- return (StreamInfo)redis.get(String.format("%S_%s_%s", VideoManagerConstants.PLAYER_PREFIX, deviceId, channelId));
+ public StreamInfo queryPlay(StreamInfo streamInfo) {
+ return (StreamInfo)redis.get(String.format("%S_%s_%s_%s",
+ VideoManagerConstants.PLAYER_PREFIX,
+ streamInfo.getSsrc(),
+ streamInfo.getDeviceID(),
+ streamInfo.getCahnnelId()));
+ }
+ @Override
+ public StreamInfo queryPlayBySSRC(String ssrc) {
+ List<Object> playLeys = redis.keys(String.format("%S_%s_*", VideoManagerConstants.PLAYER_PREFIX, ssrc));
+ if (playLeys.size() == 0) return null;
+ return (StreamInfo)redis.get(playLeys.get(0).toString());
}
-
+ @Override
+ public StreamInfo queryPlayByDevice(String deviceId, String code) {
+ List<Object> playLeys = redis.keys(String.format("%S_*_%s_%s", VideoManagerConstants.PLAYER_PREFIX,
+ deviceId,
+ code));
+ return (StreamInfo)redis.get(playLeys.get(0).toString());
+ }
/**
* 鏇存柊娴佸獟浣撲俊鎭�
@@ -423,4 +436,7 @@
}
}
}
+
+
+
}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
index b7d6101..64bcf34 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
@@ -37,7 +37,18 @@
Device device = storager.queryVideoDevice(deviceId);
StreamInfo streamInfo = cmder.playStreamCmd(device, channelId);
-
+ // 绛夊緟鎺ㄦ祦, TODO 榛樿瓒呮椂15s
+
+ long startTime = System.currentTimeMillis();
+ while (storager.queryPlay(streamInfo) == null || storager.queryPlay(streamInfo).getFlv() == null) {
+ try {
+ if (System.currentTimeMillis() - startTime > 15 * 1000)
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ streamInfo = storager.queryPlay(streamInfo);
if (logger.isDebugEnabled()) {
logger.debug(String.format("璁惧棰勮 API璋冪敤锛宒eviceId锛�%s 锛宑hannelId锛�%s",deviceId, channelId));
logger.debug("璁惧棰勮 API璋冪敤锛宻src锛�"+streamInfo.getSsrc()+",ZLMedia streamId:"+Integer.toHexString(Integer.parseInt(streamInfo.getSsrc())));
@@ -55,7 +66,8 @@
public ResponseEntity<String> playStop(@PathVariable String ssrc){
cmder.streamByeCmd(ssrc);
-
+ StreamInfo streamInfo = storager.queryPlayBySSRC(ssrc);
+ storager.stopPlay(streamInfo);
if (logger.isDebugEnabled()) {
logger.debug(String.format("璁惧棰勮鍋滄API璋冪敤锛宻src锛�%s", ssrc));
}
diff --git a/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java b/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java
index d2644f3..8d845b1 100644
--- a/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java
+++ b/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java
@@ -70,7 +70,7 @@
return result;
}
// 鏌ヨ鏄惁宸茬粡鍦ㄦ挱鏀�
- StreamInfo streamInfo = storager.queryPlay(device.getDeviceId(), code);
+ StreamInfo streamInfo = storager.queryPlayByDevice(device.getDeviceId(), code);
if (streamInfo == null) streamInfo = cmder.playStreamCmd(device, code);
if (logger.isDebugEnabled()) {
@@ -86,10 +86,10 @@
result.put("ChannelName", deviceChannel.getName());
result.put("ChannelCustomName ", "");
result.put("FLV ", streamInfo.getFlv());
- result.put("WS_FLV ", streamInfo.getWS_FLV());
- result.put("RTMP", streamInfo.getRTMP());
- result.put("HLS", streamInfo.getHLS());
- result.put("RTSP", streamInfo.getRTSP());
+ result.put("WS_FLV ", streamInfo.getWs_flv());
+ result.put("RTMP", streamInfo.getRtmp());
+ result.put("HLS", streamInfo.getHls());
+ result.put("RTSP", streamInfo.getRtsp());
result.put("CDN", "");
result.put("SnapURL", "");
result.put("Transport", device.getTransport());
@@ -135,14 +135,14 @@
@RequestParam(required = false)String check_outputs
){
- StreamInfo streamInfo = storager.queryPlay(serial, code);
+ StreamInfo streamInfo = storager.queryPlayByDevice(serial, code);
if (streamInfo == null) {
JSONObject result = new JSONObject();
result.put("error","鏈壘鍒版祦淇℃伅");
return result;
}
cmder.streamByeCmd(streamInfo.getSsrc());
- storager.stopPlay(serial, code);
+ storager.stopPlay(streamInfo);
return null;
}
@@ -151,7 +151,6 @@
* @param serial 璁惧缂栧彿
* @param channel 閫氶亾搴忓彿
* @param code 閫氶亾鍥芥爣缂栧彿
- * @param check_outputs
* @return
*/
@RequestMapping(value = "/touch")
diff --git a/web_src/src/components/channelList.vue b/web_src/src/components/channelList.vue
index 5cd108e..7a1e0e2 100644
--- a/web_src/src/components/channelList.vue
+++ b/web_src/src/components/channelList.vue
@@ -35,8 +35,16 @@
</el-table-column>
<el-table-column prop="subCount" label="瀛愯妭鐐规暟">
</el-table-column>
- <el-table-column prop="ptztypeText" label="浜戝彴绫诲瀷">
- </el-table-column>
+ <el-table-column label="鐘舵��" width="180" align="center">
+ <template slot-scope="scope">
+ <div slot="reference" class="name-wrapper">
+ <el-tag size="medium" v-if="scope.row.status == 1">鍦ㄧ嚎</el-tag>
+ <el-tag size="medium" type="info" v-if="scope.row.status == 0">绂荤嚎</el-tag>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="ptztypeText" label="浜戝彴绫诲瀷">
+ </el-table-column>
<el-table-column label="鎿嶄綔" width="240" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" icon="el-icon-video-play" v-if="scope.row.parental == 0" @click="sendDevicePush(scope.row)">棰勮瑙嗛</el-button>
@@ -58,17 +66,20 @@
</el-main>
</el-container>
+ <Loading v-if="isLoging" marginTop="-50%"></Loading>
</div>
</template>
<script>
import devicePlayer from './gb28181/devicePlayer.vue'
import uiHeader from './UiHeader.vue'
+ import Loading from './Loading.vue'
export default {
name: 'channelList',
components: {
devicePlayer,
- uiHeader
+ uiHeader,
+ Loading
},
data() {
return {
@@ -85,7 +96,8 @@
currentPage: parseInt(this.$route.params.page),
count: parseInt(this.$route.params.count),
total:0,
- beforeUrl:"/videoList"
+ beforeUrl:"/videoList",
+ isLoging: false
};
},
@@ -182,7 +194,7 @@
//閫氱煡璁惧涓婁紶濯掍綋娴�
sendDevicePush: function(itemData) {
let deviceId = this.deviceId;
-
+ this.isLoging = true;
let channelId = itemData.channelId;
console.log("閫氱煡璁惧鎺ㄦ祦1锛�" + deviceId + " : " + channelId);
let that = this;
@@ -191,6 +203,7 @@
url: '/api/play/' + deviceId + '/' + channelId
}).then(function(res) {
let ssrc = res.data.ssrc;
+ that.isLoging = false
that.$refs.devicePlayer.play(res.data,deviceId,channelId);
}).catch(function(e) {
});
diff --git a/web_src/src/components/gb28181/devicePlayer.vue b/web_src/src/components/gb28181/devicePlayer.vue
index e193d7c..dc69adb 100644
--- a/web_src/src/components/gb28181/devicePlayer.vue
+++ b/web_src/src/components/gb28181/devicePlayer.vue
@@ -115,6 +115,7 @@
deviceId: '',
channelId: '',
tabActiveName: 'media'
+
};
},
methods: {
diff --git a/web_src/src/components/videoList.vue b/web_src/src/components/videoList.vue
index 234ddc8..efbb489 100644
--- a/web_src/src/components/videoList.vue
+++ b/web_src/src/components/videoList.vue
@@ -1,7 +1,6 @@
<template>
<div id="app">
<el-container>
-
<el-header>
<uiHeader></uiHeader>
</el-header>
@@ -37,14 +36,15 @@
<el-table-column label="鐘舵��" width="180" align="center">
<template slot-scope="scope">
<div slot="reference" class="name-wrapper">
- <el-tag size="medium">{{ scope.row.online==1?'鍦ㄧ嚎' :'绂荤嚎'}}</el-tag>
+ <el-tag size="medium" v-if="scope.row.online == 1">鍦ㄧ嚎</el-tag>
+ <el-tag size="medium" type="info" v-if="scope.row.online == 0">绂荤嚎</el-tag>
</div>
</template>
</el-table-column>
<el-table-column label="鎿嶄綔" width="240" align="center" fixed="right">
<template slot-scope="scope">
- <el-button size="mini" icon="el-icon-refresh" @click="refDevice(scope.row)">鍒锋柊</el-button>
+ <el-button size="mini" icon="el-icon-refresh" @click="refDevice(scope.row)">鍒锋柊閫氶亾</el-button>
<el-button size="mini" icon="el-icon-s-open" type="primary" @click="showChannelList(scope.row)">鏌ョ湅閫氶亾</el-button>
</template>
</el-table-column>
--
Gitblit v1.8.0