| | |
| | | `mobilePositionSubmissionInterval` int(11) NOT NULL DEFAULT '5', |
| | | `subscribeCycleForAlarm` int(11) NOT NULL, |
| | | `hostAddress` varchar(50) NOT NULL, |
| | | `audioChannelForReceive` varchar(50) NOT NULL, |
| | | `audioChannelForSend` varchar(50) NOT NULL, |
| | | `charset` varchar(50) NOT NULL, |
| | | `ssrcCheck` int(11) DEFAULT '0', |
| | | PRIMARY KEY (`id`), |
| | |
| | | alter table parent_platform |
| | | add startOfflinePush int default 0 null; |
| | | |
| | | alter table parent_platform |
| | | add administrativeDivision varchar(50) not null; |
| | | |
| | | alter table parent_platform |
| | | add catalogGroup int default 1 null; |
| | | alter table device |
| | | add audioChannelForReceive VARCHAR(50) null; |
| | | |
| | | alter table device |
| | | add ssrcCheck int default 0 null; |
| | | |
| | | add audioChannelForSend VARCHAR(50) null; |
| | |
| | | private static ConfigurableApplicationContext context;
|
| | | public static void main(String[] args) {
|
| | | VManageBootstrap.args = args;
|
| | | System.out.println("test");
|
| | | VManageBootstrap.context = SpringApplication.run(VManageBootstrap.class, args);
|
| | | }
|
| | | // 项目重启
|
| | |
| | | */ |
| | | private boolean ssrcCheck; |
| | | |
| | | /** |
| | | * 设备用于接收语音消息的通道 |
| | | */ |
| | | private String audioChannelForReceive; |
| | | |
| | | /** |
| | | * 设备用于发送语音消息的通道 |
| | | */ |
| | | private String audioChannelForSend; |
| | | |
| | | |
| | | public String getDeviceId() { |
| | | return deviceId; |
| | |
| | | public void setSsrcCheck(boolean ssrcCheck) { |
| | | this.ssrcCheck = ssrcCheck; |
| | | } |
| | | |
| | | public String getAudioChannelForReceive() { |
| | | return audioChannelForReceive; |
| | | } |
| | | |
| | | public void setAudioChannelForReceive(String audioChannelForReceive) { |
| | | this.audioChannelForReceive = audioChannelForReceive; |
| | | } |
| | | } |
| | |
| | | "subscribeCycleForMobilePosition," + |
| | | "mobilePositionSubmissionInterval," + |
| | | "subscribeCycleForAlarm," + |
| | | "audioChannelForReceive," + |
| | | "audioChannelForSend," + |
| | | "ssrcCheck," + |
| | | "online" + |
| | | ") VALUES (" + |
| | |
| | | "#{subscribeCycleForMobilePosition}," + |
| | | "#{mobilePositionSubmissionInterval}," + |
| | | "#{subscribeCycleForAlarm}," + |
| | | "#{audioChannelForReceive}," + |
| | | "#{audioChannelForSend}," + |
| | | "#{ssrcCheck}," + |
| | | "#{online}" + |
| | | ")") |
| | |
| | | "<if test=\"subscribeCycleForMobilePosition != null\">, subscribeCycleForMobilePosition=${subscribeCycleForMobilePosition}</if>" + |
| | | "<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=${mobilePositionSubmissionInterval}</if>" + |
| | | "<if test=\"subscribeCycleForAlarm != null\">, subscribeCycleForAlarm=${subscribeCycleForAlarm}</if>" + |
| | | "<if test=\"audioChannelForReceive != null\">, audioChannelForReceive=#{audioChannelForReceive}</if>" + |
| | | "<if test=\"audioChannelForSend != null\">, audioChannelForSend=#{audioChannelForSend}</if>" + |
| | | "<if test=\"ssrcCheck != null\">, ssrcCheck=${ssrcCheck}</if>" + |
| | | "WHERE deviceId='${deviceId}'"+ |
| | | " </script>"}) |
| | |
| | | @ApiOperation("语音广播命令") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "deviceId", value = "设备Id", dataTypeClass = String.class), |
| | | @ApiImplicitParam(name = "channelForSend", value = "设备用于发送语音数据的通道", dataTypeClass = String.class), |
| | | @ApiImplicitParam(name = "channelForReceive", value = "设备用于接收语音数据的通道", dataTypeClass = String.class), |
| | | }) |
| | | @GetMapping("/broadcast/{deviceId}") |
| | | @PostMapping("/broadcast/{deviceId}") |
| | | public DeferredResult<ResponseEntity<String>> broadcastApi(@PathVariable String deviceId) { |
| | | public DeferredResult<ResponseEntity<String>> broadcastApi(@PathVariable String deviceId, |
| | | String channelForSend, |
| | | String channelForReceive) { |
| | | if (logger.isDebugEnabled()) { |
| | | logger.debug("语音广播API调用"); |
| | | } |
| | | Device device = storager.queryVideoDevice(deviceId); |
| | | DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(3 * 1000L); |
| | | DeferredResult<ResponseEntity<String>> result = new DeferredResult<>(3 * 1000L); |
| | | String key = DeferredResultHolder.CALLBACK_CMD_BROADCAST + deviceId; |
| | | if (resultHolder.exist(key, null)) { |
| | | result.setResult(new ResponseEntity<>("设备使用中",HttpStatus.OK)); |
| | | return result; |
| | | } |
| | | |
| | | // playService.audioBroadcast(deviceId, channelForSend, channelForReceive); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | String uuid = UUID.randomUUID().toString(); |
| | | if (device == null) { |
| | | |
| | |
| | | <el-option key="UTF-8" label="UTF-8" value="utf-8"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="语音发送通道" prop="name"> |
| | | <el-input v-model="form.audioChannelForSend" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="语音接收送通道" prop="name"> |
| | | <el-input v-model="form.audioChannelForReceive" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="目录订阅" title="0为取消订阅" prop="subscribeCycleForCatalog" > |
| | | <el-input v-model="form.subscribeCycleForCatalog" clearable ></el-input> |
| | | </el-form-item> |
| | |
| | | }) |
| | | }, |
| | | onSubmit: function () { |
| | | console.log("onSubmit"); |
| | | console.log(this.form); |
| | | this.form.subscribeCycleForCatalog = this.form.subscribeCycleForCatalog||0 |
| | | this.form.subscribeCycleForMobilePosition = this.form.subscribeCycleForMobilePosition||0 |
| | | this.form.mobilePositionSubmissionInterval = this.form.mobilePositionSubmissionInterval||0 |
| | |
| | | }); |
| | | } |
| | | }).catch(function (error) { |
| | | console.log(error); |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | close: function () { |