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 | 44 | `mobilePositionSubmissionInterval` int(11) NOT NULL DEFAULT '5', |
| 45 | 45 | `subscribeCycleForAlarm` int(11) NOT NULL, |
| 46 | 46 | `hostAddress` varchar(50) NOT NULL, |
| 47 | + `audioChannelForReceive` varchar(50) NOT NULL, | |
| 48 | + `audioChannelForSend` varchar(50) NOT NULL, | |
| 47 | 49 | `charset` varchar(50) NOT NULL, |
| 48 | 50 | `ssrcCheck` int(11) DEFAULT '0', |
| 49 | 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 | 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 | 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 | 23 | private static ConfigurableApplicationContext context; |
| 24 | 24 | public static void main(String[] args) { |
| 25 | 25 | VManageBootstrap.args = args; |
| 26 | - System.out.println("test"); | |
| 27 | 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 | 134 | */ |
| 135 | 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 | 148 | public String getDeviceId() { |
| 139 | 149 | return deviceId; |
| ... | ... | @@ -334,4 +344,12 @@ public class Device { |
| 334 | 344 | public void setSsrcCheck(boolean ssrcCheck) { |
| 335 | 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 | 37 | "subscribeCycleForMobilePosition," + |
| 38 | 38 | "mobilePositionSubmissionInterval," + |
| 39 | 39 | "subscribeCycleForAlarm," + |
| 40 | + "audioChannelForReceive," + | |
| 41 | + "audioChannelForSend," + | |
| 40 | 42 | "ssrcCheck," + |
| 41 | 43 | "online" + |
| 42 | 44 | ") VALUES (" + |
| ... | ... | @@ -60,6 +62,8 @@ public interface DeviceMapper { |
| 60 | 62 | "#{subscribeCycleForMobilePosition}," + |
| 61 | 63 | "#{mobilePositionSubmissionInterval}," + |
| 62 | 64 | "#{subscribeCycleForAlarm}," + |
| 65 | + "#{audioChannelForReceive}," + | |
| 66 | + "#{audioChannelForSend}," + | |
| 63 | 67 | "#{ssrcCheck}," + |
| 64 | 68 | "#{online}" + |
| 65 | 69 | ")") |
| ... | ... | @@ -86,6 +90,8 @@ public interface DeviceMapper { |
| 86 | 90 | "<if test=\"subscribeCycleForMobilePosition != null\">, subscribeCycleForMobilePosition=${subscribeCycleForMobilePosition}</if>" + |
| 87 | 91 | "<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=${mobilePositionSubmissionInterval}</if>" + |
| 88 | 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 | 95 | "<if test=\"ssrcCheck != null\">, ssrcCheck=${ssrcCheck}</if>" + |
| 90 | 96 | "WHERE deviceId='${deviceId}'"+ |
| 91 | 97 | " </script>"}) | ... | ... |
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
| ... | ... | @@ -251,20 +251,32 @@ public class PlayController { |
| 251 | 251 | @ApiOperation("语音广播命令") |
| 252 | 252 | @ApiImplicitParams({ |
| 253 | 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 | 257 | @GetMapping("/broadcast/{deviceId}") |
| 256 | 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 | 262 | if (logger.isDebugEnabled()) { |
| 259 | 263 | logger.debug("语音广播API调用"); |
| 260 | 264 | } |
| 261 | 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 | 267 | String key = DeferredResultHolder.CALLBACK_CMD_BROADCAST + deviceId; |
| 264 | 268 | if (resultHolder.exist(key, null)) { |
| 265 | 269 | result.setResult(new ResponseEntity<>("设备使用中",HttpStatus.OK)); |
| 266 | 270 | return result; |
| 267 | 271 | } |
| 272 | + | |
| 273 | +// playService.audioBroadcast(deviceId, channelForSend, channelForReceive); | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 268 | 280 | String uuid = UUID.randomUUID().toString(); |
| 269 | 281 | if (device == null) { |
| 270 | 282 | ... | ... |
web_src/src/components/dialog/deviceEdit.vue
| ... | ... | @@ -36,6 +36,12 @@ |
| 36 | 36 | <el-option key="UTF-8" label="UTF-8" value="utf-8"></el-option> |
| 37 | 37 | </el-select> |
| 38 | 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 | 45 | <el-form-item label="目录订阅" title="0为取消订阅" prop="subscribeCycleForCatalog" > |
| 40 | 46 | <el-input v-model="form.subscribeCycleForCatalog" clearable ></el-input> |
| 41 | 47 | </el-form-item> |
| ... | ... | @@ -99,8 +105,6 @@ export default { |
| 99 | 105 | }) |
| 100 | 106 | }, |
| 101 | 107 | onSubmit: function () { |
| 102 | - console.log("onSubmit"); | |
| 103 | - console.log(this.form); | |
| 104 | 108 | this.form.subscribeCycleForCatalog = this.form.subscribeCycleForCatalog||0 |
| 105 | 109 | this.form.subscribeCycleForMobilePosition = this.form.subscribeCycleForMobilePosition||0 |
| 106 | 110 | this.form.mobilePositionSubmissionInterval = this.form.mobilePositionSubmissionInterval||0 |
| ... | ... | @@ -120,7 +124,7 @@ export default { |
| 120 | 124 | }); |
| 121 | 125 | } |
| 122 | 126 | }).catch(function (error) { |
| 123 | - console.log(error); | |
| 127 | + console.error(error); | |
| 124 | 128 | }); |
| 125 | 129 | }, |
| 126 | 130 | close: function () { | ... | ... |