From 77e3e0878f9ffe8881bc8b168cc4173257c707df Mon Sep 17 00:00:00 2001
From: 64850858 <648540858@qq.com>
Date: 星期一, 19 七月 2021 17:22:54 +0800
Subject: [PATCH] 修复云端录像查看
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java | 16 ++++++-
web_src/src/components/StreamProxyList.vue | 17 ++++++--
src/main/resources/wvp.sqlite | 0
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 2
web_src/src/components/CloudRecord.vue | 19 +++++----
pom.xml | 6 +-
web_src/src/components/CloudRecordDetail.vue | 14 +++---
7 files changed, 47 insertions(+), 27 deletions(-)
diff --git a/pom.xml b/pom.xml
index 6223945..93b4257 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,8 +10,8 @@
</parent>
<groupId>com.genersoft</groupId>
- <artifactId>wvp-gb28181</artifactId>
- <version>2.0.0</version>
+ <artifactId>wvp-pro</artifactId>
+ <version>2.0</version>
<name>web video platform</name>
<repositories>
@@ -44,7 +44,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
+ <maven.build.timestamp.format>MMddHHmm</maven.build.timestamp.format>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<!-- 渚濊禆鐗堟湰 -->
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index a90225a..52c9f85 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -194,7 +194,7 @@
mediaConfig.setId(zlmServerConfig.getGeneralMediaServerId());
mediaConfig.setCreateTime(now);
mediaConfig.setUpdateTime(now);
- serverItem = mediaConfig;
+ serverItem = mediaConfig.getMediaSerItem();
mediaServerMapper.add(mediaConfig);
}else {
// 涓�涓柊鐨剒lm鎺ュ叆wvp
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
index 450c54a..b4b7469 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
@@ -4,6 +4,7 @@
import com.genersoft.iot.vmp.service.IStreamPushService;
import com.genersoft.iot.vmp.service.IMediaService;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
+import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -47,9 +48,18 @@
})
@GetMapping(value = "/stream_info_by_app_and_stream")
@ResponseBody
- public StreamInfo getStreamInfoByAppAndStream(@RequestParam String app, @RequestParam String stream, @RequestParam String mediaServerId){
-
- return mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream,mediaServerId);
+ public WVPResult<StreamInfo> getStreamInfoByAppAndStream(@RequestParam String app, @RequestParam String stream, @RequestParam String mediaServerId){
+ StreamInfo streamInfoByAppAndStreamWithCheck = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId);
+ WVPResult<StreamInfo> result = new WVPResult<>();
+ if (streamInfoByAppAndStreamWithCheck != null){
+ result.setCode(0);
+ result.setMsg("scccess");
+ result.setData(streamInfoByAppAndStreamWithCheck);
+ }else {
+ result.setCode(-1);
+ result.setMsg("fail");
+ }
+ return result;
}
diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite
index f399e6e..8e41983 100644
--- a/src/main/resources/wvp.sqlite
+++ b/src/main/resources/wvp.sqlite
Binary files differ
diff --git a/web_src/src/components/CloudRecord.vue b/web_src/src/components/CloudRecord.vue
index 284578b..c08a6cc 100644
--- a/web_src/src/components/CloudRecord.vue
+++ b/web_src/src/components/CloudRecord.vue
@@ -8,12 +8,12 @@
<div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;">
<span style="font-size: 1rem; font-weight: bold;">浜戠褰曞儚</span>
<div style="position: absolute; right: 5rem; top: 0.3rem;">
- 鑺傜偣閫夋嫨: <el-select size="mini" @change="chooseMediaChange" style="width: 16rem; margin-right: 1rem;" v-model="mediaServer" placeholder="璇烽�夋嫨" default-first-option>
+ 鑺傜偣閫夋嫨: <el-select size="mini" @change="chooseMediaChange" style="width: 16rem; margin-right: 1rem;" v-model="mediaServerId" placeholder="璇烽�夋嫨">
<el-option
v-for="item in mediaServerList"
:key="item.id"
- :label="item.id + '( ' + item.streamIp + ' )'"
- :value="item">
+ :label="item.id"
+ :value="item.id">
</el-option>
</el-select>
</div>
@@ -52,7 +52,7 @@
:total="total">
</el-pagination>
</div>
- <cloud-record-detail ref="cloudRecordDetail" v-if="recordDetail" :recordFile="chooseRecord" :mediaServer="mediaServer" ></cloud-record-detail>
+ <cloud-record-detail ref="cloudRecordDetail" v-if="recordDetail" :recordFile="chooseRecord" :mediaServerId="mediaServerId" ></cloud-record-detail>
</el-main>
</el-container>
</div>
@@ -70,7 +70,7 @@
data() {
return {
mediaServerList: [], // 婊呬綋鑺傜偣鍒楄〃
- mediaServer: null, // 濯掍綋鏈嶅姟
+ mediaServerId: null, // 濯掍綋鏈嶅姟
recordList: [], // 璁惧鍒楄〃
chooseRecord: null, // 濯掍綋鏈嶅姟
@@ -111,9 +111,9 @@
getMediaServerList: function (){
let that = this;
that.mediaServerObj.getMediaServerList((data)=>{
- that.mediaServerList = data;
+ that.mediaServerList = data.data;
if (that.mediaServerList.length > 0) {
- that.mediaServer = that.mediaServerList[0]
+ that.mediaServerId = that.mediaServerList[0].id
that.getRecordList();
}
})
@@ -122,7 +122,7 @@
let that = this;
this.$axios({
method: 'get',
- url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/list`,
+ url:`/record_proxy/${that.mediaServerId}/api/record/list`,
params: {
page: that.currentPage,
count: that.count
@@ -142,7 +142,8 @@
},
chooseMediaChange(val){
console.log(val)
- this.mediaServer = val;
+ this.total = 0;
+ this.recordList = [];
this.getRecordList();
},
showRecordDetail(row){
diff --git a/web_src/src/components/CloudRecordDetail.vue b/web_src/src/components/CloudRecordDetail.vue
index 87182e1..b6d1932 100644
--- a/web_src/src/components/CloudRecordDetail.vue
+++ b/web_src/src/components/CloudRecordDetail.vue
@@ -110,7 +110,7 @@
components: {
uiHeader, player
},
- props: ['recordFile', 'mediaServer', 'dateFiles'],
+ props: ['recordFile', 'mediaServerId', 'dateFiles'],
data() {
return {
basePath: process.env.NODE_ENV === 'development'?`${location.origin}/debug/zlm`:`${location.origin}/zlm`,
@@ -238,7 +238,7 @@
let that = this;
that.$axios({
method: 'get',
- url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/file/list`,
+ url:`/record_proxy/${that.mediaServerId}/api/record/file/list`,
params: {
app: that.recordFile.app,
stream: that.recordFile.stream,
@@ -263,7 +263,7 @@
this.videoUrl = "";
}else {
// TODO 鎺у埗鍒楄〃婊氬姩鏉�
- this.videoUrl = `${this.basePath}/${this.mediaServer.recordAppName}/${this.recordFile.app}/${this.recordFile.stream}/${this.chooseDate}/${this.choosedFile}`
+ this.videoUrl = `${this.basePath}/${this.mediaServerId}/record/${this.recordFile.app}/${this.recordFile.stream}/${this.chooseDate}/${this.choosedFile}`
console.log(this.videoUrl)
}
@@ -312,7 +312,7 @@
let that = this;
this.$axios({
method: 'delete',
- url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/delete`,
+ url:`/record_proxy/${that.mediaServerId}/api/record/delete`,
params: {
page: that.currentPage,
count: that.count
@@ -331,7 +331,7 @@
that.dateFilesObj = {};
this.$axios({
method: 'get',
- url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/date/list`,
+ url:`/record_proxy/${that.mediaServerId}/api/record/date/list`,
params: {
app: that.recordFile.app,
stream: that.recordFile.stream
@@ -380,7 +380,7 @@
let that = this;
this.$axios({
method: 'get',
- url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/file/download/task/add`,
+ url:`/record_proxy/${that.mediaServerId}/api/record/file/download/task/add`,
params: {
app: that.recordFile.app,
stream: that.recordFile.stream,
@@ -405,7 +405,7 @@
let that = this;
this.$axios({
method: 'get',
- url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/file/download/task/list`,
+ url:`/record_proxy/${that.mediaServerId}/api/record/file/download/task/list`,
params: {
isEnd: isEnd,
}
diff --git a/web_src/src/components/StreamProxyList.vue b/web_src/src/components/StreamProxyList.vue
index 45fd573..746bcdb 100644
--- a/web_src/src/components/StreamProxyList.vue
+++ b/web_src/src/components/StreamProxyList.vue
@@ -211,10 +211,19 @@
}
}).then(function (res) {
that.getListLoading = false;
- that.$refs.devicePlayer.openDialog("streamPlay", null, null, {
- streamInfo: res.data,
- hasAudio: true
- });
+ if (res.data.code === 0) {
+ that.$refs.devicePlayer.openDialog("streamPlay", null, null, {
+ streamInfo: res.data.data,
+ hasAudio: true
+ });
+ }else {
+ that.$message({
+ showClose: true,
+ message: "鑾峰彇鍦板潃澶辫触锛�" + res.data.msg,
+ type: "error",
+ });
+ }
+
}).catch(function (error) {
console.log(error);
that.getListLoading = false;
--
Gitblit v1.8.0