| | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.ScheduledExecutorService; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | |
| | | @Service |
| | | public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarService { |
| | | |
| | | @Value("${live.output.path}") |
| | | private String outputPath; |
| | | @Value("${live.hls.output-path}") |
| | | private String hlsOutputPath; |
| | | |
| | | @Resource |
| | | private UPExgMsgRegisterClient upExgMsgRegisterClient; |
| | |
| | | * 检测视频播放,清除没有播放的视频流 |
| | | */ |
| | | @Override |
| | | public void taskPlayDetection() { |
| | | List<Car> list = this.list(); |
| | | for (Car car : list) { |
| | | if(!redisTemplate.hasKey("live:" + car.getId())){ |
| | | String folderPath = outputPath + "hls\\" + car.getVehicleNumber(); |
| | | JavaCVStreamUtil.close(car.getId(), folderPath); |
| | | } |
| | | public void taskPlayDetection(Integer deviceNumber) { |
| | | Car car = this.getById(deviceNumber); |
| | | try { |
| | | ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); |
| | | executorService.scheduleWithFixedDelay(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | if(!redisTemplate.hasKey("live:" + car.getId())){ |
| | | String folderPath = hlsOutputPath + "hls\\" + car.getVehicleNumber(); |
| | | JavaCVStreamUtil.close(car.getId(), folderPath); |
| | | } |
| | | }}, 1, 1, TimeUnit.MINUTES); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |