DataPlayCallBackClass.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.persagy.nvr;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import com.sun.jna.Pointer;
  5. import com.sun.jna.platform.win32.WinDef.LPVOID;
  6. import com.sun.jna.platform.win32.WinDef.UINT;
  7. public class DataPlayCallBackClass implements VskClient.DataPlayCallBack {
  8. Logger logger = LoggerFactory.getLogger(DataPlayCallBackClass.class);
  9. // interface DataPlayCallBack extends Callback {
  10. // void Callback(WinDef.UINT PlayHandle, WinDef.UINT DateType, byte[] pBuffer,
  11. // WinDef.UINT BufferSize, WinDef.LPVOID pUser);
  12. // }
  13. @Override
  14. public void Callback(UINT PlayHandle, int DateType, Pointer pBuffer, int BufferSize, LPVOID pUser) {
  15. // byte[] byteArr = pBuffer.getByteArray(0, BufferSize);
  16. // backByteBufferList.add(byteArr);
  17. logger.error("数据回调,byteArr。length:" + BufferSize + ",DateType:" + DateType+",线程ID:"+Thread.currentThread().getId());
  18. switch (DateType) {
  19. case 0:
  20. logger.error("********************************************系统头");
  21. break;
  22. case 2:
  23. logger.error("********************************************最后");
  24. break;
  25. default:
  26. break;
  27. }
  28. if(pBuffer!=null) {
  29. long size=Pointer.nativeValue(pBuffer);
  30. pBuffer.clear(size);
  31. }
  32. if(pUser!=null) {
  33. Pointer puser=pUser.getPointer();
  34. long size2=Pointer.nativeValue(puser);
  35. puser.clear(size2);
  36. }
  37. // try {
  38. // RandomAccessFile randomFile = new
  39. // RandomAccessFile("./config/tempVideo/a.mp4", "rw");
  40. // long fileLength = randomFile.length();
  41. // // 将写文件指针移到文件尾
  42. // randomFile.seek(fileLength);
  43. // randomFile.write(byteArr);
  44. // randomFile.close();
  45. // } catch (Exception e) {
  46. // logger.error("byteArr写入异常:",e);
  47. // }
  48. };
  49. }