海康威视摄像头本身的SDK为:
//JPEG抓图到内存
boolean NET_DVR_CaptureJPEGPicture_NEW(NativeLong lUserID, NativeLong lChannel, NET_DVR_JPEGPARA lpJpegPara, String sJpegPicBuffer, int dwPicSize, IntByReference lpSizeReturned);
发现第四个参数sJpegPicBuffer是无法获取到内存数据。改用了指针对象则可以获取到数据。
改为指针对象:
boolean NET_DVR_CaptureJPEGPicture_NEW(NativeLong lUserID, NativeLong lChannel, NET_DVR_JPEGPARA lpJpegPara, Pointer p, int dwPicSize, IntByReference lpSizeReturned);
方法:
//抓取到内存
public byte[] CaptureJPEGPicture_NEW(){
byte[] bytes = null;
boolean returnboll=false;
if (m_lUserID.longValue()>-1){
HCNetSDK.NET_DVR_JPEGPARA jpeginfo=new HCNetSDK.NET_DVR_JPEGPARA();
jpeginfo.wPicQuality=2;
jpeginfo.wPicSize=0;
int dwPicSize = 200*1024;
IntByReference lpSizeReturned = new IntByReference();
lpSizeReturned.setValue