¶Ô±ÈÐÂÎļþ |
| | |
| | | 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, int stream) { |
| | | NetSDKLib.LLong m_hPlayHandle = netsdk.CLIENT_RealPlayEx(m_hLoginHandle, channel, null, stream); |
| | | if (m_hPlayHandle.longValue() == 0) { |
| | | System.err.println("å¼å§å®æ¶é¢è§å¤±è´¥ï¼é误ç " + ToolKits.getErrorCodePrint()); |
| | | } else { |
| | | System.out.println("Success to start realplay"); |
| | | // netsdk.CLIENT_SetRealDataCallBackEx(m_hPlayHandle, CbfRealDataCallBackEx.getInstance(),null, 0x0000001f); |
| | | } |
| | | return m_hPlayHandle; |
| | | } |
| | | |
| | | public static NetSDKLib.LLong startRealPlay1(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; |
| | | //net_in_realplay_by_data_type.cbRealData = CbfRealDataCallBackEx.getInstance(); |
| | | 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 |
| | | * Start 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å
åç±SDKå
é¨ç³è¯·éæ¾) |
| | | */ |
| | | 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" + "ç æµç±»å为yuvæ°æ®"); |
| | | break; |
| | | case 3: |
| | | //pcm é³é¢æ°æ® |
| | | System.out.println("ç æµå¤§å°ä¸º" + dwBufSize + "\n" + "ç æµç±»å为é³é¢æ°æ®"); |
| | | break; |
| | | case 4: |
| | | //åå§é³é¢æ°æ® |
| | | System.out.println("ç æµå¤§å°ä¸º" + dwBufSize + "\n" + "ç æµç±»å为åå§é³é¢æ°æ®"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |