src/main/java/com/whyc/controller/VideoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/schedule/SNMPScheduleService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/schedule/VideoScheduleService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/VideoService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/VideoController.java
New file @@ -0,0 +1,37 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.service.VideoService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("video") @Api(tags = "摄像头视频") public class VideoController { @Autowired private VideoService service; @RequestMapping("getVideoStreamIds") public Response<List> getVideoStreamIds() { List<String> videoStreamIds = service.getVideoStreamIds(); return new Response<List>().set(1, videoStreamIds, "获取摄像头视频流成功"); } @RequestMapping("startRecord") public Response<String> startRecord(String streamId) { service.startRecord(streamId); return new Response<String>().set(1, "开始录制视频流成功"); } @RequestMapping("stopRecord") public Response<String> stopRecord(String streamId) { service.stopRecord(streamId); return new Response<String>().set(1, "停止录制视频流成功"); } } src/main/java/com/whyc/schedule/SNMPScheduleService.java
File was deleted src/main/java/com/whyc/schedule/VideoScheduleService.java
New file @@ -0,0 +1,33 @@ package com.whyc.schedule; import com.whyc.factory.ThreadPoolExecutorFactory; import com.whyc.service.VideoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @EnableScheduling @Component public class VideoScheduleService { @Autowired private VideoService service; /**凌晨0点执行一次,录制视频流*/ @Scheduled(cron = "0 0 0 * * ? ") public void getAndSaveB247(){ ThreadPoolExecutorFactory.getPoolExecutor().execute(()->{ //service.getAndSaveB247(); }); } /**凌晨0点0分2秒执行一次,停止上次的录制视频流*/ @Scheduled(cron = "2 0 0 * * ? ") public void getAndSaveA250(){ ThreadPoolExecutorFactory.getPoolExecutor().execute(()->{ //service.getAndSaveA250(); }); } } src/main/java/com/whyc/service/VideoService.java
New file @@ -0,0 +1,90 @@ package com.whyc.service; import com.whyc.dto.Response; import com.whyc.util.ActionUtil; import com.whyc.util.HttpUtil; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.whyc.util.HttpUtil.urlEncode; /** * 视频相关服务封装 */ @Service public class VideoService { /** * 获取视频流id * @return */ public List<String> getVideoStreamIds() { Map<String, Object> params = new HashMap<>();//组合参数 params.put("pageIndex", 1); params.put("pageSize", 1); String queryParams = urlEncode(params); String httpUrl ="http://192.168.10.133:9092/index/api/getMediaList"; Response response = HttpUtil.doGet(httpUrl, queryParams); Integer httpResponseCode = response.getCode(); String responseJson = (String) response.getData(); if(httpResponseCode == 1) { //请求成功 Response responseHttp = HttpUtil.getGson().fromJson(responseJson, Response.class); if(responseHttp.getCode() == 1) { //TODO 需要实际调试,目前返回的数据结构未确定 return HttpUtil.getGson().fromJson(responseHttp.getData().toString(), List.class); }else{ return null; } }else{ return null; } } public void startRecord(String streamId){ Map<String, Object> params = new HashMap<>();//组合参数 params.put("secret", "TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj"); params.put("type", 1); params.put("vhost", "__defaultVhost__"); params.put("app", "rtp"); params.put("stream", streamId); String queryParams = urlEncode(params); String httpUrl ="http://192.168.10.133:9092/index/api/startRecord"; Response response = HttpUtil.doGet(httpUrl, queryParams); Integer code = response.getCode(); String responseJson = (String) response.getData(); if(code == 1) { //请求成功 Response responseHttp = HttpUtil.getGson().fromJson(responseJson, Response.class); if(responseHttp.getCode() == 0 && responseHttp.getMsg().equals("success")) { //请求成功 }else{ System.out.println(responseHttp.getMsg()); } } } public void stopRecord(String streamId){ Map<String, Object> params = new HashMap<>();//组合参数 params.put("secret", "TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj"); params.put("type", 1); params.put("vhost", "__defaultVhost__"); params.put("app", "rtp"); params.put("stream", streamId); String queryParams = urlEncode(params); String httpUrl ="http://192.168.10.133:9092/index/api/stopRecord"; Response response = HttpUtil.doGet(httpUrl, queryParams); Integer code = response.getCode(); String responseJson = (String) response.getData(); if(code == 1) { //请求成功 Response responseHttp = HttpUtil.getGson().fromJson(responseJson, Response.class); if(responseHttp.getCode() == 0 && responseHttp.getMsg().equals("success")) { //请求成功 }else{ System.out.println(responseHttp.getMsg()); } } } }