From 381e3129a3e4efbf2423be6a63342fc9c35befbc Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: Tue, 5 Jan 2021 11:25:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=98=E5=82=A8=E9=83=A8=E5=88=86=E4=BD=BF?= =?UTF-8?q?=E7=94=A8sqlite=E4=BB=A3=E6=9B=BFredis-4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transmit/cmd/impl/SIPCommander.java | 6 +--- .../vmp/storager/dao/DeviceChannelMapper.java | 3 +- .../service/impl/PlayServiceImpl.java | 7 +++++ src/main/resources/application-dev.yml | 13 ++++++-- src/main/resources/wvp.sqlite | Bin 32768 -> 32768 bytes web_src/src/components/channelList.vue | 28 ++++++++++++------ 6 files changed, 39 insertions(+), 18 deletions(-) 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 af9030b9..13b83d16 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 @@ -357,11 +357,7 @@ public class SIPCommander implements ISIPCommander { ClientTransaction transaction = transmitRequest(device, request, errorEvent); streamSession.put(streamId, transaction); - DeviceChannel deviceChannel = storager.queryChannel(device.getDeviceId(), channelId); - if (deviceChannel != null) { - deviceChannel.setStreamId(streamId); - storager.updateChannel(device.getDeviceId(), deviceChannel); - } + } catch ( SipException | ParseException | InvalidArgumentException e) { diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index 072b1bfe..eecc0bb5 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -23,7 +23,8 @@ public interface DeviceChannelMapper { "SET name=#{name}, manufacture=#{manufacture}, model=#{model}, owner=#{owner}, civilCode=#{civilCode}, " + "block=#{block}, address=#{address}, parental=#{parental}, parentId=#{parentId}, safetyWay=#{safetyWay}, " + "registerWay=#{registerWay}, certNum=#{certNum}, certifiable=#{certifiable}, errCode=#{errCode}, secrecy=#{secrecy}, " + - "ipAddress=#{ipAddress}, port=#{port}, password=#{password}, PTZType=#{PTZType}, status=#{status} " + + "ipAddress=#{ipAddress}, port=#{port}, password=#{password}, PTZType=#{PTZType}, status=#{status}, streamId=#{streamId}, " + + "hasAudio=#{hasAudio}" + "WHERE deviceId=#{deviceId} AND channelId=#{channelId}") int update(DeviceChannel channel); diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java index 6ce0868f..f4bdd2b7 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.conf.MediaServerConfig; +import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; @@ -37,6 +38,12 @@ public class PlayServiceImpl implements IPlayService { msg.setId(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid); StreamInfo streamInfo = onPublishHandler(resonse, deviceId, channelId, uuid); if (streamInfo != null) { + DeviceChannel deviceChannel = storager.queryChannel(deviceId, channelId); + if (deviceChannel != null) { + deviceChannel.setStreamId(streamInfo.getStreamId()); + storager.updateChannel(deviceId, deviceChannel); + } + redisCatchStorage.startPlay(streamInfo); msg.setData(JSON.toJSONString(streamInfo)); resultHolder.invokeResult(msg); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6cee0cb6..7b98bd10 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -20,13 +20,20 @@ spring: timeout: 10000 # [不可用] jdbc数据库配置, 暂不支持 datasource: + # name: eiot + # url: jdbc:mysql://127.0.0.1:3306/eiot?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true + # username: + # password: + # type: com.alibaba.druid.pool.DruidDataSource + # driver-class-name: com.mysql.jdbc.Driver name: eiot - url: jdbc:mysql://127.0.0.1:3306/eiot?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true + url: jdbc:sqlite::resource:wvp.sqlite username: password: type: com.alibaba.druid.pool.DruidDataSource - driver-class-name: com.mysql.jdbc.Driver - + driver-class-name: org.sqlite.JDBC + max-active: 1 + min-idle: 1 # [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口 server: diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite index ab68634ccb6fa74bb0b623e28126efafc9832f55..023ea355e92eefd18ce96e253a769d687769c5ed 100644 GIT binary patch delta 153 zcmZo@U}|V!njkHBf`Ng71Blsxm%^sma(WyP2Ean2BF0BeB@AG$k`% viPOo)-)XWnrxb^dQc7xBW^(H0AkGSA#@fxNd2EF@f42X@zsZ2Z0n7jZxX>&2 delta 182 zcmZo@U}|V!njkHBl!1YP1BlsxmX zHe;sA#+>4tLpe*C84EX`=CKuK;pgG!0h-Uu&-i6x - 在线状态: + 在线状态: - + 自动刷新 @@ -56,7 +56,7 @@ 播放 - 停止 + 停止 查看 设备录象 @@ -98,13 +98,17 @@ export default { count: parseInt(this.$route.params.count), total: 0, beforeUrl: "/videoList", - isLoging: false + isLoging: false, + autoList: false }; }, mounted() { this.initData(); - this.updateLooper = setInterval(this.initData, 1000); + if (this.autoList) { + this.updateLooper = setInterval(this.initData, 1500); + } + }, destroyed() { this.$destroy('videojs'); @@ -179,12 +183,11 @@ export default { let deviceId = this.deviceId; this.isLoging = true; let channelId = itemData.channelId; - let getEncoding = itemData.hasAudio ? '1' : '0' - console.log("通知设备推流1:" + deviceId + " : " + channelId + ":" + getEncoding); + console.log("通知设备推流1:" + deviceId + " : " + channelId ); let that = this; this.$axios({ method: 'get', - url: '/api/play/' + deviceId + '/' + channelId + '?getEncoding=' + getEncoding + url: '/api/play/' + deviceId + '/' + channelId }).then(function (res) { console.log(res.data) let streamId = res.data.streamId; @@ -258,7 +261,7 @@ export default { }) .then(function (res) { that.total = res.data.total; - that.deviceChannelList = res.data.data; + that.deviceChannelList = res.data.list; // 防止出现表格错位 that.$nextTick(() => { that.$refs.channelListTable.doLayout(); @@ -283,6 +286,13 @@ export default { }).then(function (res) { console.log(JSON.stringify(res)); }); + }, + autoListChange: function () { + if (this.autoList) { + this.updateLooper = setInterval(this.initData, 1500); + }else{ + window.clearInterval(this.updateLooper); + } } }