Commit ca16a79255f27709f88abc59bea362abdd1e2cc7

Authored by 648540858
1 parent ee2dda21

添加语音发送通道和语音接收通道字段

sql/mysql.sql
@@ -44,6 +44,8 @@ CREATE TABLE `device` ( @@ -44,6 +44,8 @@ CREATE TABLE `device` (
44 `mobilePositionSubmissionInterval` int(11) NOT NULL DEFAULT '5', 44 `mobilePositionSubmissionInterval` int(11) NOT NULL DEFAULT '5',
45 `subscribeCycleForAlarm` int(11) NOT NULL, 45 `subscribeCycleForAlarm` int(11) NOT NULL,
46 `hostAddress` varchar(50) NOT NULL, 46 `hostAddress` varchar(50) NOT NULL,
  47 + `audioChannelForReceive` varchar(50) NOT NULL,
  48 + `audioChannelForSend` varchar(50) NOT NULL,
47 `charset` varchar(50) NOT NULL, 49 `charset` varchar(50) NOT NULL,
48 `ssrcCheck` int(11) DEFAULT '0', 50 `ssrcCheck` int(11) DEFAULT '0',
49 PRIMARY KEY (`id`), 51 PRIMARY KEY (`id`),
sql/update.sql
1 -alter table parent_platform  
2 - add startOfflinePush int default 0 null;  
3 -  
4 -alter table parent_platform  
5 - add administrativeDivision varchar(50) not null;  
6 -  
7 -alter table parent_platform  
8 - add catalogGroup int default 1 null;  
9 -  
10 alter table device 1 alter table device
11 - add ssrcCheck int default 0 null; 2 + add audioChannelForReceive VARCHAR(50) null;
12 3
  4 +alter table device
  5 + add audioChannelForSend VARCHAR(50) null;
13 \ No newline at end of file 6 \ No newline at end of file
src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java
@@ -23,7 +23,6 @@ public class VManageBootstrap extends LogManager { @@ -23,7 +23,6 @@ public class VManageBootstrap extends LogManager {
23 private static ConfigurableApplicationContext context; 23 private static ConfigurableApplicationContext context;
24 public static void main(String[] args) { 24 public static void main(String[] args) {
25 VManageBootstrap.args = args; 25 VManageBootstrap.args = args;
26 - System.out.println("test");  
27 VManageBootstrap.context = SpringApplication.run(VManageBootstrap.class, args); 26 VManageBootstrap.context = SpringApplication.run(VManageBootstrap.class, args);
28 } 27 }
29 // 项目重启 28 // 项目重启
src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
@@ -134,6 +134,16 @@ public class Device { @@ -134,6 +134,16 @@ public class Device {
134 */ 134 */
135 private boolean ssrcCheck; 135 private boolean ssrcCheck;
136 136
  137 + /**
  138 + * 设备用于接收语音消息的通道
  139 + */
  140 + private String audioChannelForReceive;
  141 +
  142 + /**
  143 + * 设备用于发送语音消息的通道
  144 + */
  145 + private String audioChannelForSend;
  146 +
137 147
138 public String getDeviceId() { 148 public String getDeviceId() {
139 return deviceId; 149 return deviceId;
@@ -334,4 +344,12 @@ public class Device { @@ -334,4 +344,12 @@ public class Device {
334 public void setSsrcCheck(boolean ssrcCheck) { 344 public void setSsrcCheck(boolean ssrcCheck) {
335 this.ssrcCheck = ssrcCheck; 345 this.ssrcCheck = ssrcCheck;
336 } 346 }
  347 +
  348 + public String getAudioChannelForReceive() {
  349 + return audioChannelForReceive;
  350 + }
  351 +
  352 + public void setAudioChannelForReceive(String audioChannelForReceive) {
  353 + this.audioChannelForReceive = audioChannelForReceive;
  354 + }
337 } 355 }
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
@@ -37,6 +37,8 @@ public interface DeviceMapper { @@ -37,6 +37,8 @@ public interface DeviceMapper {
37 "subscribeCycleForMobilePosition," + 37 "subscribeCycleForMobilePosition," +
38 "mobilePositionSubmissionInterval," + 38 "mobilePositionSubmissionInterval," +
39 "subscribeCycleForAlarm," + 39 "subscribeCycleForAlarm," +
  40 + "audioChannelForReceive," +
  41 + "audioChannelForSend," +
40 "ssrcCheck," + 42 "ssrcCheck," +
41 "online" + 43 "online" +
42 ") VALUES (" + 44 ") VALUES (" +
@@ -60,6 +62,8 @@ public interface DeviceMapper { @@ -60,6 +62,8 @@ public interface DeviceMapper {
60 "#{subscribeCycleForMobilePosition}," + 62 "#{subscribeCycleForMobilePosition}," +
61 "#{mobilePositionSubmissionInterval}," + 63 "#{mobilePositionSubmissionInterval}," +
62 "#{subscribeCycleForAlarm}," + 64 "#{subscribeCycleForAlarm}," +
  65 + "#{audioChannelForReceive}," +
  66 + "#{audioChannelForSend}," +
63 "#{ssrcCheck}," + 67 "#{ssrcCheck}," +
64 "#{online}" + 68 "#{online}" +
65 ")") 69 ")")
@@ -86,6 +90,8 @@ public interface DeviceMapper { @@ -86,6 +90,8 @@ public interface DeviceMapper {
86 "<if test=\"subscribeCycleForMobilePosition != null\">, subscribeCycleForMobilePosition=${subscribeCycleForMobilePosition}</if>" + 90 "<if test=\"subscribeCycleForMobilePosition != null\">, subscribeCycleForMobilePosition=${subscribeCycleForMobilePosition}</if>" +
87 "<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=${mobilePositionSubmissionInterval}</if>" + 91 "<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=${mobilePositionSubmissionInterval}</if>" +
88 "<if test=\"subscribeCycleForAlarm != null\">, subscribeCycleForAlarm=${subscribeCycleForAlarm}</if>" + 92 "<if test=\"subscribeCycleForAlarm != null\">, subscribeCycleForAlarm=${subscribeCycleForAlarm}</if>" +
  93 + "<if test=\"audioChannelForReceive != null\">, audioChannelForReceive=#{audioChannelForReceive}</if>" +
  94 + "<if test=\"audioChannelForSend != null\">, audioChannelForSend=#{audioChannelForSend}</if>" +
89 "<if test=\"ssrcCheck != null\">, ssrcCheck=${ssrcCheck}</if>" + 95 "<if test=\"ssrcCheck != null\">, ssrcCheck=${ssrcCheck}</if>" +
90 "WHERE deviceId='${deviceId}'"+ 96 "WHERE deviceId='${deviceId}'"+
91 " </script>"}) 97 " </script>"})
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
@@ -251,20 +251,32 @@ public class PlayController { @@ -251,20 +251,32 @@ public class PlayController {
251 @ApiOperation("语音广播命令") 251 @ApiOperation("语音广播命令")
252 @ApiImplicitParams({ 252 @ApiImplicitParams({
253 @ApiImplicitParam(name = "deviceId", value = "设备Id", dataTypeClass = String.class), 253 @ApiImplicitParam(name = "deviceId", value = "设备Id", dataTypeClass = String.class),
  254 + @ApiImplicitParam(name = "channelForSend", value = "设备用于发送语音数据的通道", dataTypeClass = String.class),
  255 + @ApiImplicitParam(name = "channelForReceive", value = "设备用于接收语音数据的通道", dataTypeClass = String.class),
254 }) 256 })
255 @GetMapping("/broadcast/{deviceId}") 257 @GetMapping("/broadcast/{deviceId}")
256 @PostMapping("/broadcast/{deviceId}") 258 @PostMapping("/broadcast/{deviceId}")
257 - public DeferredResult<ResponseEntity<String>> broadcastApi(@PathVariable String deviceId) { 259 + public DeferredResult<ResponseEntity<String>> broadcastApi(@PathVariable String deviceId,
  260 + String channelForSend,
  261 + String channelForReceive) {
258 if (logger.isDebugEnabled()) { 262 if (logger.isDebugEnabled()) {
259 logger.debug("语音广播API调用"); 263 logger.debug("语音广播API调用");
260 } 264 }
261 Device device = storager.queryVideoDevice(deviceId); 265 Device device = storager.queryVideoDevice(deviceId);
262 - DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(3 * 1000L); 266 + DeferredResult<ResponseEntity<String>> result = new DeferredResult<>(3 * 1000L);
263 String key = DeferredResultHolder.CALLBACK_CMD_BROADCAST + deviceId; 267 String key = DeferredResultHolder.CALLBACK_CMD_BROADCAST + deviceId;
264 if (resultHolder.exist(key, null)) { 268 if (resultHolder.exist(key, null)) {
265 result.setResult(new ResponseEntity<>("设备使用中",HttpStatus.OK)); 269 result.setResult(new ResponseEntity<>("设备使用中",HttpStatus.OK));
266 return result; 270 return result;
267 } 271 }
  272 +
  273 +// playService.audioBroadcast(deviceId, channelForSend, channelForReceive);
  274 +
  275 +
  276 +
  277 +
  278 +
  279 +
268 String uuid = UUID.randomUUID().toString(); 280 String uuid = UUID.randomUUID().toString();
269 if (device == null) { 281 if (device == null) {
270 282
web_src/src/components/dialog/deviceEdit.vue
@@ -36,6 +36,12 @@ @@ -36,6 +36,12 @@
36 <el-option key="UTF-8" label="UTF-8" value="utf-8"></el-option> 36 <el-option key="UTF-8" label="UTF-8" value="utf-8"></el-option>
37 </el-select> 37 </el-select>
38 </el-form-item> 38 </el-form-item>
  39 + <el-form-item label="语音发送通道" prop="name">
  40 + <el-input v-model="form.audioChannelForSend" clearable></el-input>
  41 + </el-form-item>
  42 + <el-form-item label="语音接收送通道" prop="name">
  43 + <el-input v-model="form.audioChannelForReceive" clearable></el-input>
  44 + </el-form-item>
39 <el-form-item label="目录订阅" title="0为取消订阅" prop="subscribeCycleForCatalog" > 45 <el-form-item label="目录订阅" title="0为取消订阅" prop="subscribeCycleForCatalog" >
40 <el-input v-model="form.subscribeCycleForCatalog" clearable ></el-input> 46 <el-input v-model="form.subscribeCycleForCatalog" clearable ></el-input>
41 </el-form-item> 47 </el-form-item>
@@ -99,8 +105,6 @@ export default { @@ -99,8 +105,6 @@ export default {
99 }) 105 })
100 }, 106 },
101 onSubmit: function () { 107 onSubmit: function () {
102 - console.log("onSubmit");  
103 - console.log(this.form);  
104 this.form.subscribeCycleForCatalog = this.form.subscribeCycleForCatalog||0 108 this.form.subscribeCycleForCatalog = this.form.subscribeCycleForCatalog||0
105 this.form.subscribeCycleForMobilePosition = this.form.subscribeCycleForMobilePosition||0 109 this.form.subscribeCycleForMobilePosition = this.form.subscribeCycleForMobilePosition||0
106 this.form.mobilePositionSubmissionInterval = this.form.mobilePositionSubmissionInterval||0 110 this.form.mobilePositionSubmissionInterval = this.form.mobilePositionSubmissionInterval||0
@@ -120,7 +124,7 @@ export default { @@ -120,7 +124,7 @@ export default {
120 }); 124 });
121 } 125 }
122 }).catch(function (error) { 126 }).catch(function (error) {
123 - console.log(error); 127 + console.error(error);
124 }); 128 });
125 }, 129 },
126 close: function () { 130 close: function () {