Commit ca16a79255f27709f88abc59bea362abdd1e2cc7
1 parent
ee2dda21
添加语音发送通道和语音接收通道字段
Showing
7 changed files
with
50 additions
and
16 deletions
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 () { |