定时调用海康威视摄像头接口抓取图片

本文介绍了如何将原本使用while + Thread.sleep()实现的定时调用海康威视摄像头接口的任务,改为使用Quartz定时任务来执行,以减少资源浪费。在实现过程中,引入了log4j和相关依赖,并提供了Job接口实现类的代码示例,以及任务调度和执行的代码片段。在解决执行时可能出现的log4j警告问题上,通过创建log4j.properties文件进行配置。
摘要由CSDN通过智能技术生成

    上一次实现了调用摄像头接口,并实现了每间隔五分钟执行一次;用的是while语句加上Thread.sleep(),虽然能实现定时调用的功能,但是sleep会长时间占用内存,浪费资源;后来经朋友提醒,改用了Quartz指针,去实现定时任务。

    参考了相关资料,加上本地的实际情况,改进后的代码如下:

    首先是引入的架包:包括log4j-1.2.16.jar、quartz-2.2.1.jar、slf4j-api-1.6.6.jar、slf4j-log4j12-1.6.6.jar 4个架包

    其次先新建一个实现Job接口的类,加上本地的代码,实现了整合,如下所示:

package ClientDemo;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import ClientDemo.HCNetSDK.NET_DVR_DEVICEINFO_V30;
import ClientDemo.HCNetSDK.NET_DVR_IPPARACFG;
import ClientDemo.HCNetSDK.NET_DVR_JPEGPARA;
import ClientDemo.HCNetSDK.NET_DVR_WORKSTATE_V30;

import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;

public class TestQuartz implements Job {
	
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		
		TestQuartz tqQuartz = new TestQuartz();
		
		try {
			tqQuartz.getImages();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
              	
	}
	
	public void getImages() throws IOException{
		
        final TestQuartz app = new TestQuartz();

        final MonitorCameraInfo cameraInfo = new MonitorCameraInfo();
        camer
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值