110,571
社区成员
发帖
与我相关
我的任务
分享
class nvr_info
{
private string _nvr_name;
private string _nvr_ip;
private int _nvr_port;
private string _nvr_user;
private string _nvr_pass;
public string nvr_name
{
get { return _nvr_name; }
set { _nvr_name = value; }
}
public string nvr_ip
{
get { return _nvr_ip; }
set { _nvr_ip = value; }
}
public int nvr_port
{
get { return _nvr_port; }
set { _nvr_port = value; }
}
public string nvr_user
{
get { return _nvr_user; }
set { _nvr_user = value; }
}
public string nvr_pass
{
get { return _nvr_pass; }
set { _nvr_pass = value; }
}
public NET_DVR_DEVICEINFO_V30 nvr_device;
}
NET_DVR_IPPARACFG_V40 m_struIpParaCfgV40;
NET_DVR_PICCFG_V40 m_struPicCfgV40;
int pre_ch = 0;
//读取硬盘录像机及摄像头信息
private void show_nvr_tree()
{
//bool flag;
long i;
int j, k, m, n, p, ch, numb, nvr_numb, vh;
string rs;
char[] sp = { '\r', '\n' };
string[] rss = rs.Split(sp, StringSplitOptions.RemoveEmptyEntries);
//flag = NET_DVR_Init();
nvr_info nvrinfo = new nvr_info();
treeView1.Nodes.Clear();
//硬盘录像机名称(可以随便起名)
nvrinfo.nvr_name = "东部区硬盘录像机1";
//硬盘录像机IP
nvrinfo.nvr_ip = "";
//硬盘录像机端口
nvrinfo.nvr_port = 8000;
//硬盘录像机登录名
nvrinfo.nvr_user = "admin";
//硬盘录像机登密码
nvrinfo.nvr_pass = "123456";
p = NET_DVR_Login_V30(nvrinfo.nvr_ip, nvrinfo.nvr_port, nvrinfo.nvr_user, nvrinfo.nvr_pass, ref nvrinfo.nvr_device);
if (p != -1)
{
TreeNode tn = new TreeNode();
tn.Text = nvrinfo.nvr_name + "-" + nvrinfo.nvr_ip;
tn.Name = nvrinfo.nvr_name + "," + nvrinfo.nvr_ip + "," + nvrinfo.nvr_port + "," + nvrinfo.nvr_user + "," + nvrinfo.nvr_pass;
tn.ToolTipText = nvrinfo.nvr_ip;
treeView1.Nodes.Add(tn);
n = nvrinfo.nvr_device.byHighDChanNum * 256 + nvrinfo.nvr_device.byIPChanNum;
ch = nvrinfo.nvr_device.byStartDChan;
vh = nvrinfo.nvr_device.byStartDTalkChan;
uint dwSize = (uint)Marshal.SizeOf(m_struIpParaCfgV40);
IntPtr ptrIpParaCfgV40 = Marshal.AllocHGlobal((Int32)dwSize);
Marshal.StructureToPtr(m_struIpParaCfgV40, ptrIpParaCfgV40, false);
uint dwReturn = 0;
if (NET_DVR_GetDVRConfig(p, NET_DVR_GET_IPPARACFG_V40, -1, ptrIpParaCfgV40, dwSize, ref dwReturn))
{
m_struIpParaCfgV40 = (NET_DVR_IPPARACFG_V40)Marshal.PtrToStructure(ptrIpParaCfgV40, typeof(NET_DVR_IPPARACFG_V40));
for (numb = 0; numb < m_struIpParaCfgV40.dwDChanNum; numb++)
{
byte byStreamType;
NET_DVR_STREAM_MODE m_struStreamMode = new NET_DVR_STREAM_MODE();
byStreamType = m_struIpParaCfgV40.struStreamMode[numb].byGetStreamType;
dwSize = (uint)Marshal.SizeOf(m_struStreamMode);
if (byStreamType == 0)
{
IntPtr ptrChanInfo = Marshal.AllocHGlobal((Int32)dwSize);
Marshal.StructureToPtr(m_struIpParaCfgV40.struStreamMode[numb].uGetStream, ptrChanInfo, false);
NET_DVR_IPCHANINFO m_struChanInfo = new NET_DVR_IPCHANINFO();
m_struChanInfo = (NET_DVR_IPCHANINFO)Marshal.PtrToStructure(ptrChanInfo, typeof(NET_DVR_IPCHANINFO));
//列出IP通道 List the IP channel
if (m_struChanInfo.byEnable == 1)
{
TreeNode tns = new TreeNode();
tns.Name = (numb + 1).ToString();
tns.Text = (numb + 1).ToString() + " 通道:";
dwReturn = 0;
Int32 nSize = Marshal.SizeOf(m_struPicCfgV40);
IntPtr ptrPicCfg = Marshal.AllocHGlobal(nSize);
Marshal.StructureToPtr(m_struPicCfgV40, ptrPicCfg, false);
if (NET_DVR_GetDVRConfig(p, NET_DVR_GET_PICCFG_V40, numb + ch, ptrPicCfg, (UInt32)nSize, ref dwReturn))
{
m_struPicCfgV40 = (NET_DVR_PICCFG_V40)Marshal.PtrToStructure(ptrPicCfg, typeof(NET_DVR_PICCFG_V40));
tns.Text = tns.Text + Encoding.GetEncoding("GBK").GetString(m_struPicCfgV40.sChanName);
tns.Name = (numb + ch).ToString() + "," + (vh + numb).ToString();
//tns.Text=tns.Text+m_struPicCfgV40.
}
treeView1.Nodes[0].Nodes.Add(tns);
}
}
}
}
//m=nvrinfo.nvr_device.
}
//}
treeView1.ExpandAll();
//NET_DVR_Cleanup();
}
//播放画面
private void button5_Click(object sender, EventArgs e)
{
int k;
NET_DVR_DEVICEINFO_V30 nvrinf = new NET_DVR_DEVICEINFO_V30();
if (treeView1.SelectedNode != null)
{
if (treeView1.SelectedNode.Parent != null)
{
string[] nvr_str = treeView1.SelectedNode.Parent.Name.Split(',');
k = NET_DVR_Login_V30(nvr_str[1], int.Parse(nvr_str[2]), nvr_str[3], nvr_str[4], ref nvrinf);
if (k != -1)
{
NET_DVR_PREVIEWINFO nvr_pre = new NET_DVR_PREVIEWINFO();
nvr_pre.hPlayWnd = pictureBox1.Handle;
string[] nvr_ch = treeView1.SelectedNode.Name.Split(',');
nvr_pre.lChannel = int.Parse(nvr_ch[0]);
nvr_pre.dwStreamType = 0;
nvr_pre.dwLinkMode = 0;
nvr_pre.bBlocked = true;
nvr_pre.dwDisplayBufNum = 15;
//pre_ch = nvr_pre.lChannel;
pre_ch = NET_DVR_RealPlay_V40(k, ref nvr_pre, null, IntPtr.Zero);
}
//button5.Enabled = false;
}
}
}
//停止播放
private void button6_Click(object sender, EventArgs e)
{
NET_DVR_StopRealPlay(pre_ch);
}