package com.iailab.netsdk.demo.module; import com.iailab.netsdk.lib.NetSDKLib; import com.iailab.netsdk.lib.NetSDKLib.LLong; import com.iailab.netsdk.lib.ToolKits; import com.sun.jna.ptr.IntByReference; /** * \if ENGLISH_LANG * Capture Picture Interface * contains:localã€remoteã€timer and stop capture picture * \else * 抓图接å£å®žçŽ° * 包å«: 本地ã€è¿œç¨‹ã€å®šæ—¶å’Œåœæ¢æŠ“图 * \endif */ public class CapturePictureModule { /** * \if ENGLISH_LANG * Local Capture Picture * \else * 本地抓图 * \endif */ public static boolean localCapturePicture(LLong hPlayHandle, String picFileName) { if (!LoginModule.netsdk.CLIENT_CapturePictureEx(hPlayHandle, picFileName, NetSDKLib.NET_CAPTURE_FORMATS.NET_CAPTURE_JPEG)) { System.err.printf("CLIENT_CapturePicture Failed!" + ToolKits.getErrorCodePrint()); return false; } else { System.out.println("CLIENT_CapturePicture success"); } return true; } /** * \if ENGLISH_LANG * Remote Capture Picture * \else * 远程抓图 * \endif */ public static boolean remoteCapturePicture(int chn) { return snapPicture(chn, 0, 0); } /** * \if ENGLISH_LANG * Timer Capture Picture * \else * 定时抓图 * \endif */ public static boolean timerCapturePicture(int chn) { return snapPicture(chn, 1, 2); } /** * \if ENGLISH_LANG * Stop Timer Capture Picture * \else * åœæ¢å®šæ—¶æŠ“图 * \endif */ public static boolean stopCapturePicture(int chn) { return snapPicture(chn, -1, 0); } /** * \if ENGLISH_LANG * Capture Picture (except local capture picture, others all call this interface) * \else * 抓图 (除本地抓图外, 其他全部调用æ¤æŽ¥å£) * \endif */ public static boolean snapPicture(int chn, int mode, int interval) { // send caputre picture command to device NetSDKLib.SNAP_PARAMS stuSnapParams = new NetSDKLib.SNAP_PARAMS(); stuSnapParams.Channel = chn; // channel stuSnapParams.mode = mode; // capture picture mode stuSnapParams.Quality = 3; // picture quality stuSnapParams.InterSnap = interval; // timer capture picture time interval stuSnapParams.CmdSerial = 0; // request serial IntByReference reserved = new IntByReference(0); if (!LoginModule.netsdk.CLIENT_SnapPictureEx(LoginModule.m_hLoginHandle, stuSnapParams, reserved)) { System.err.printf("CLIENT_SnapPictureEx Failed!" + ToolKits.getErrorCodePrint()); return false; } else { System.out.println("CLIENT_SnapPictureEx success"); } return true; } /** * \if ENGLISH_LANG * Set Capture Picture Callback * \else * 设置抓图回调函数 * \endif */ public static void setSnapRevCallBack(NetSDKLib.fSnapRev cbSnapReceive){ LoginModule.netsdk.CLIENT_SetSnapRevCallBack(cbSnapReceive, null); } }