package com.persagy.nvr; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.sun.jna.Pointer; import com.sun.jna.platform.win32.WinDef.LPVOID; import com.sun.jna.platform.win32.WinDef.UINT; public class DataPlayCallBackClass implements VskClient.DataPlayCallBack { Logger logger = LoggerFactory.getLogger(DataPlayCallBackClass.class); // interface DataPlayCallBack extends Callback { // void Callback(WinDef.UINT PlayHandle, WinDef.UINT DateType, byte[] pBuffer, // WinDef.UINT BufferSize, WinDef.LPVOID pUser); // } @Override public void Callback(UINT PlayHandle, int DateType, Pointer pBuffer, int BufferSize, LPVOID pUser) { // byte[] byteArr = pBuffer.getByteArray(0, BufferSize); // backByteBufferList.add(byteArr); logger.error("数据回调,byteArr。length:" + BufferSize + ",DateType:" + DateType+",线程ID:"+Thread.currentThread().getId()); switch (DateType) { case 0: logger.error("********************************************系统头"); break; case 2: logger.error("********************************************最后"); break; default: break; } if(pBuffer!=null) { long size=Pointer.nativeValue(pBuffer); pBuffer.clear(size); } if(pUser!=null) { Pointer puser=pUser.getPointer(); long size2=Pointer.nativeValue(puser); puser.clear(size2); } // try { // RandomAccessFile randomFile = new // RandomAccessFile("./config/tempVideo/a.mp4", "rw"); // long fileLength = randomFile.length(); // // 将写文件指针移到文件尾 // randomFile.seek(fileLength); // randomFile.write(byteArr); // randomFile.close(); // } catch (Exception e) { // logger.error("byteArr写入异常:",e); // } }; }