From 3591fc47eaa3e301252dc06d257d46bd3a45e120 Mon Sep 17 00:00:00 2001 From: liusuyi <13324259@qq.com> Date: 星期一, 23 十月 2023 22:10:19 +0800 Subject: [PATCH] 相机sdk异步登录 --- ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java | 204 +++++++++++++++++++++++++------------------------- 1 files changed, 103 insertions(+), 101 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java b/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java index a97ce4c..767f9f3 100644 --- a/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java +++ b/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java @@ -1,102 +1,104 @@ -package com.ruoyi.device.dhsdk.module; - -import com.ruoyi.device.dhsdk.lib.NetSDKLib; -import com.ruoyi.device.dhsdk.lib.ToolKits; -import com.sun.jna.Pointer; - -import static com.ruoyi.device.dhsdk.module.LoginModule.netsdk; - -/** - * 瀹炴椂棰勮鎺ュ彛瀹炵幇 - * 涓昏鏈� 锛氬紑濮嬫媺娴併�佸仠姝㈡媺娴佸姛鑳� - */ -public class RealPlayModule { - /** - * \if ENGLISH_LANG - * Start RealPlay - * \else - * 寮�濮嬮瑙� - * \endif - */ - - public static NetSDKLib.LLong startRealPlay(NetSDKLib.LLong m_hLoginHandle, int channel, String path) { - NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE net_in_realplay_by_data_type = new NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE(); - net_in_realplay_by_data_type.nChannelID = channel; - net_in_realplay_by_data_type.hWnd = null; - net_in_realplay_by_data_type.rType = 0; - net_in_realplay_by_data_type.emDataType = NetSDKLib.EM_REAL_DATA_TYPE.EM_REAL_DATA_TYPE_MP4; - net_in_realplay_by_data_type.szSaveFileName = path; - NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE net_out_realplay_by_data_type = new NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE(); - NetSDKLib.LLong m_hPlayHandle = netsdk.CLIENT_RealPlayByDataType(m_hLoginHandle, net_in_realplay_by_data_type, net_out_realplay_by_data_type, 5000); - if (m_hPlayHandle.longValue() == 0) { - System.err.println("寮�濮嬪疄鏃堕瑙堝け璐ワ紝閿欒鐮�" + ToolKits.getErrorCodePrint()); - } else { - System.out.println("Success to start realplay"); - } - return m_hPlayHandle; - } - - /** - * \if ENGLISH_LANG - * Stop RealPlay - * \else - * 鍋滄棰勮 - * \endif - */ - public static void stopRealPlay(NetSDKLib.LLong m_hPlayHandle) { - if (m_hPlayHandle.longValue() == 0) { - return; - } - boolean bRet = netsdk.CLIENT_StopRealPlayEx(m_hPlayHandle); - if (bRet) { - m_hPlayHandle.setValue(0); - } - } - - /** - * 瀹炴椂棰勮鏁版嵁鍥炶皟鍑芥暟--鎵╁睍(pBuffer鍐呭瓨鐢盨DK鍐呴儴鐢宠閲婃斁) - */ - private static class CbfRealDataCallBackEx implements NetSDKLib.fRealDataCallBackEx { - private CbfRealDataCallBackEx() { - } - - private static class CallBackHolder { - private static CbfRealDataCallBackEx instance = new CbfRealDataCallBackEx(); - } - - public static CbfRealDataCallBackEx getInstance() { - return CallBackHolder.instance; - } - - @Override - public void invoke(NetSDKLib.LLong lRealHandle, int dwDataType, Pointer pBuffer, - int dwBufSize, int param, Pointer dwUser) { - int bInput = 0; - if (0 != lRealHandle.longValue()) { - switch (dwDataType) { - case 0: - System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓哄師濮嬮煶瑙嗛娣峰悎鏁版嵁"); - break; - case 1: - //鏍囧噯瑙嗛鏁版嵁 - System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓烘爣鍑嗚棰戞暟鎹�"); - break; - case 2: - //yuv 鏁版嵁 - System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓簓uv鏁版嵁"); - break; - case 3: - //pcm 闊抽鏁版嵁 - System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓洪煶棰戞暟鎹�"); - break; - case 4: - //鍘熷闊抽鏁版嵁 - System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓哄師濮嬮煶棰戞暟鎹�"); - break; - default: - break; - } - } - } - } +package com.ruoyi.device.dhsdk.module; + +import com.ruoyi.device.dhsdk.lib.NetSDKLib; +import com.ruoyi.device.dhsdk.lib.ToolKits; +import com.sun.jna.Pointer; +import lombok.extern.slf4j.Slf4j; + +import static com.ruoyi.device.dhsdk.module.LoginModule.netsdk; + +/** + * 瀹炴椂棰勮鎺ュ彛瀹炵幇 + * 涓昏鏈� 锛氬紑濮嬫媺娴併�佸仠姝㈡媺娴佸姛鑳� + */ +@Slf4j(topic = "dhSdk") +public class RealPlayModule { + /** + * \if ENGLISH_LANG + * Start RealPlay + * \else + * 寮�濮嬮瑙� + * \endif + */ + + public static NetSDKLib.LLong startRealPlay(NetSDKLib.LLong m_hLoginHandle, int channel, String path) { + NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE net_in_realplay_by_data_type = new NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE(); + net_in_realplay_by_data_type.nChannelID = channel; + net_in_realplay_by_data_type.hWnd = null; + net_in_realplay_by_data_type.rType = 0; + net_in_realplay_by_data_type.emDataType = NetSDKLib.EM_REAL_DATA_TYPE.EM_REAL_DATA_TYPE_MP4; + net_in_realplay_by_data_type.szSaveFileName = path; + NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE net_out_realplay_by_data_type = new NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE(); + NetSDKLib.LLong m_hPlayHandle = netsdk.CLIENT_RealPlayByDataType(m_hLoginHandle, net_in_realplay_by_data_type, net_out_realplay_by_data_type, 5000); + if (m_hPlayHandle.longValue() == 0) { + log.error("寮�濮嬪疄鏃堕瑙堝け璐ワ紝閿欒鐮�" + ToolKits.getErrorCodePrint()); + } else { + log.debug("Success to start realplay"); + } + return m_hPlayHandle; + } + + /** + * \if ENGLISH_LANG + * Stop RealPlay + * \else + * 鍋滄棰勮 + * \endif + */ + public static void stopRealPlay(NetSDKLib.LLong m_hPlayHandle) { + if (m_hPlayHandle.longValue() == 0) { + return; + } + boolean bRet = netsdk.CLIENT_StopRealPlayEx(m_hPlayHandle); + if (bRet) { + m_hPlayHandle.setValue(0); + } + } + + /** + * 瀹炴椂棰勮鏁版嵁鍥炶皟鍑芥暟--鎵╁睍(pBuffer鍐呭瓨鐢盨DK鍐呴儴鐢宠閲婃斁) + */ + private static class CbfRealDataCallBackEx implements NetSDKLib.fRealDataCallBackEx { + private CbfRealDataCallBackEx() { + } + + private static class CallBackHolder { + private static CbfRealDataCallBackEx instance = new CbfRealDataCallBackEx(); + } + + public static CbfRealDataCallBackEx getInstance() { + return CallBackHolder.instance; + } + + @Override + public void invoke(NetSDKLib.LLong lRealHandle, int dwDataType, Pointer pBuffer, + int dwBufSize, int param, Pointer dwUser) { + int bInput = 0; + if (0 != lRealHandle.longValue()) { + switch (dwDataType) { + case 0: + log.debug("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓哄師濮嬮煶瑙嗛娣峰悎鏁版嵁"); + break; + case 1: + //鏍囧噯瑙嗛鏁版嵁 + log.debug("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓烘爣鍑嗚棰戞暟鎹�"); + break; + case 2: + //yuv 鏁版嵁 + log.debug("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓簓uv鏁版嵁"); + break; + case 3: + //pcm 闊抽鏁版嵁 + log.debug("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓洪煶棰戞暟鎹�"); + break; + case 4: + //鍘熷闊抽鏁版嵁 + log.debug("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓哄師濮嬮煶棰戞暟鎹�"); + break; + default: + break; + } + } + } + } } \ No newline at end of file -- Gitblit v1.9.3