| | |
| | | package com.ycl.controller.platformApi; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
| | | import com.ycl.api.CommonResult; |
| | | import com.ycl.dto.video.AlarmParam; |
| | | import com.ycl.enums.common.ResultCode; |
| | | import com.ycl.service.video.IVideoAlarmReportService; |
| | | import com.ycl.util.VideoUtil; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.SneakyThrows; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | |
| | | /** |
| | | * @author admin |
| | |
| | | @RequestMapping("/API") |
| | | public class AlarmController { |
| | | |
| | | |
| | | private IVideoAlarmReportService videoAlarmReportService; |
| | | |
| | | @Autowired |
| | | private VideoUtil videoUtil; |
| | | |
| | | @Autowired |
| | | public void setVideoAlarmReportService(IVideoAlarmReportService videoAlarmReportService) { |
| | |
| | | return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage()); |
| | | } |
| | | |
| | | } |
| | | @GetMapping("/Video/{code}/{subType}") |
| | | @ApiOperation(value = "设备获取监控地址") |
| | | @SneakyThrows |
| | | public CommonResult getMonitorAddress(@PathVariable String code, @PathVariable Integer subType, |
| | | @RequestParam(required = false) String scheme) { |
| | | |
| | | if (subType == null) { |
| | | subType = 1; |
| | | } |
| | | if (!StringUtils.isNotBlank(scheme)) { |
| | | scheme = "RTSP"; |
| | | } |
| | | return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType)); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "获取图片") |
| | | @GetMapping(value = "/img", produces = MediaType.IMAGE_PNG_VALUE) |
| | | @ResponseBody |
| | | public byte[] getImages(HttpServletResponse response, @RequestParam String fileUrl) { |
| | | try { |
| | | URL url = new URL(fileUrl); |
| | | HttpURLConnection conn = (HttpURLConnection) url.openConnection(); |
| | | conn.setRequestMethod("GET"); |
| | | conn.setConnectTimeout(5 * 1000); |
| | | conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); |
| | | |
| | | InputStream inputStream = conn.getInputStream();// 通过输入流获取图片数据 |
| | | |
| | | byte[] data = readInputStream(inputStream); |
| | | return data; |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private byte[] readInputStream(InputStream inStream) throws Exception { |
| | | ByteArrayOutputStream outStream = new ByteArrayOutputStream(); |
| | | //创建一个Buffer字符串 |
| | | byte[] buffer = new byte[1024]; |
| | | //每次读取的字符串长度,如果为-1,代表全部读取完毕 |
| | | int len = 0; |
| | | //使用一个输入流从buffer里把数据读取出来 |
| | | while ((len = inStream.read(buffer)) != -1) { |
| | | //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度 |
| | | outStream.write(buffer, 0, len); |
| | | } |
| | | //关闭输入流 |
| | | inStream.close(); |
| | | //把outStream里的数据写入内存 |
| | | return outStream.toByteArray(); |
| | | } |
| | | } |