package com.SDK.HCNetSDK;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
import cc.eguid.FFmpegCommandManager.FFmpegManager;
import cc.eguid.FFmpegCommandManager.FFmpegManagerImpl;
import com.dfzx.common.util.CommonKit;
import com.sun.jna.examples.win32.W32API.HWND;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.ByteByReference;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.NativeLongByReference;
import java.util.HashMap;
import java.util.Map;
import javafx.scene.Camera;
import org.apache.commons.lang.StringUtils;
/**
* Created by Hanlex.Liu on 2018/9/22 11:55.
*/
public class HCNetTools {
static HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;
HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo;//设备信息
HCNetSDK.NET_DVR_IPPARACFG m_strIpparaCfg;//IP参数
HCNetSDK.NET_DVR_CLIENTINFO m_strClientInfo;//用户参数
boolean bRealPlay;//是否在预览.
String m_sDeviceIP;//已登录设备的IP地址
NativeLong lUserID;//用户句柄
NativeLong lPreviewHandle;//预览句柄
NativeLongByReference m_lPort;//回调预览时播放库端口指针
FFmpegManager manager;//rstp转rmtp工具
//FRealDataCallBack fRealDataCallBack;//预览回调函数实现
public HCNetTools()
{
JPopupMenu.setDefaultLightWeightPopupEnabled(false);//防止被播放窗口(AWT组件)覆盖
lUserID = new NativeLong(-1);
lPreviewHandle = new NativeLong(-1);
m_lPort = new NativeLongByReference(new NativeLong(-1));
//fRealDataCallBack= new FRealDataCallBack();
}
/**
* 初始化资源配置
*/
public int initDevices(){
if(!hCNetSDK.NET_DVR_Init()) return 1;//初始化失败
return 0;
}
/**
* 设备注册
* @param name 设备用户名
* @param password 设备登录密码
* @param ip IP地址
* @param port 端口
* @return 结果
*/
public int deviceRegist(String name,String password,String ip,String port){
if (bRealPlay){//判断当前是否在预览
return 2;//"注册新用户请先停止当前预览";
}
if (lUserID.longValue() > -1){//先注销,在登录
hCNetSDK.NET_DVR_Logout_V30(lUserID);
lUserID = new NativeLong(-1);
}
//注册(既登录设备)开始
m_sDeviceIP = ip;
m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();//获取设备参数结构
lUserID = hCNetSDK.NET_DVR_Login_V30(m_sDeviceIP,(short)Integer.parseInt("8000"),name,password, m_strDeviceInfo);//登录设备
long userID = lUserID.longValue();
if (userID == -1){
m_sDeviceIP = "";//登录未成功,IP置为空
return 3;//"注册失败";
}
return 0;
}
/**
* 获取设备通道
*/
public int getChannelNumber(){
IntByReference ibrBytesReturned = new IntByReference(0);//获取IP接入配置参数
boolean bRet = false;
int iChannelNum = -1;
m_strIpparaCfg = new HCNetSDK.NET_DVR_IPPARACFG();
m_strIpparaCfg.write();
Pointer lpIpParaConfig = m_strIpparaCfg.getPointer();
bRet = hCNetSDK.NET_DVR_GetDVRConfig(lUserID, HCNetSDK.NET_DVR_GET_IPPARACFG, new NativeLong(0), lpIpParaConfig, m_strIpparaCfg.size(), ibrBytesReturned);
m_strIpparaCfg.read();
String devices = "";
if (!bRet){
//设备不支持,则表示没有IP通道
for (int iChannum = 0; iChannum < m_strDeviceInfo.byChanNum; iChannum++){
devices = "Camera" + (iChannum + m_strDeviceInfo.byStartChan);
}
}else{
for(int iChannum =0; iChannum < HCNetSDK.MAX_IP_CHANNEL; iChannum++) {
if (m_strIpparaCfg.struIPChanInfo[iChannum].byEnable == 1) {
devices = "IPCamera" + (iChannum + m_strDeviceInfo.byStartChan);
}
}
}
if(StringUtils.isNotEmpty(devices)){
if(devices.charAt(0) == 'C'){//Camara开头表示模拟通道
//子字符串中获取通道号
iChannelNum = Integer.parseInt(devices.substring(6));
}else{
if(devices.charAt(0) == 'I'){//IPCamara开头表示IP通道
//子字符创中获取通道号,IP通道号要加32
iChannelNum = Integer.parseInt(devices.substring(8)) + 32;
}else{
return 4;
}
}
}
return iChannelNum;
}
public void shutDownDev(){
//如果已经注册,注销
if (lUserID.longValue() > -1){
hCNetSDK.NET_DVR_Logout_V30(lUserID);
}
hCNetSDK.NET_DVR_Cleanup();
}
public static void main(String[] args) {
}
}

Hanlex-Liu
- 粉丝: 62
最新资源
- 毕设&课设:大二课程设计 - 智慧班级管理系统 - 前端.zip
- 毕设&课设:电子科技大学 软件技术基础综合课程设计项目整合-1、最优物流路线计算实验 2、多进程多用户文件一致.zip
- 毕设&课设:杜亮的研究生毕业也设计-基于 SOA 的智慧社区管理系统的研究与实现.zip
- 毕设&课设:该作品是2021年中国高校计算机大赛-微信小程序应用开发大赛的作品,作品为智慧校园类型的微信小程序。.zip
- 毕设&课设:广州市城市规划勘测设计研究院智慧规划师系统.zip
- 毕设&课设:基于ISO IEC 14443 Type A的智慧车库门禁控制系统设计与实现.zip
- 毕设&课设:基于Java+Springboot+Vue校园选课小程序-毕业设计,本系统分微信小程序和管理后台两部.zip
- 毕设&课设:基于Java+Springboot+Vue教学培训小程序-毕业设计,本系统分微信小程序和管理后台两部.zip
- 毕设&课设:基于Java+SpringBoot+Vue充电桩管理系统-毕业设计,本系统前台和后台管理两部分,项目.zip
- 毕设&课设:基于SpringBoot的智慧社区管理系统,计算机毕业设计,毕设,Java毕业设计,SpringBo.zip
- 毕设&课设:基于SSM+Jquery+Bootstrap+Maven+JSP的智慧物流前台,该项目荣获北京联合大.zip
- 毕设&课设:基于SpringBoot和VUE技术的智慧生活商城系统设计与实现,计算机毕业设计,毕设,Java毕业.zip
- 毕设&课设:基于web的智慧社区设计与实现.zip
- 毕设&课设:基于web的智慧养老平台,计算机毕业设计,毕设,Java毕业设计,SpringBoot,SSM,小程.zip
- 毕设&课设:基于SSM智慧养老院服务系统设计毕业源码案例设计.zip
- 毕设&课设:基于安卓AndroidStudio智慧医疗医院预约挂号app设计毕业源码案例设计.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
前往页