c#对接海康双目客流相机SDK调用示例

发布时间 2023-11-06 12:11:00作者: ptsmise

c# 调用视频并显示在WinForm的PictureBox控制上面,实现一直播放视频的功能

 

首先需要使用visual studio nuget 下载安装海康客流相机的SDK包

然后根据以下代码和页面来设计一下 实现逻辑 就可以实现播放实时视频的需求了

private int m_lRealHandle = -1;

 

public MainForm()
{
InitializeComponent();
}


private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
// 停止实时预览
if (m_lRealHandle >= 0)
{
CHCNetSDK.CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle);
}
// 登出设备
CHCNetSDK.CHCNetSDK.NET_DVR_Logout(int.Parse(textBoxChannel.Text));

// 释放SDK资源
CHCNetSDK.CHCNetSDK.NET_DVR_Cleanup();
}

private void btnLogin_Click(object sender, EventArgs e)
{
// 初始化SDK
bool initResult = CHCNetSDK.CHCNetSDK.NET_DVR_Init();
if (!initResult)
{
MessageBox.Show("SDK初始化失败");
return;
}

// 登录设备
CHCNetSDK.CHCNetSDK.NET_DVR_DEVICEINFO_V30 deviceInfo = new CHCNetSDK.CHCNetSDK.NET_DVR_DEVICEINFO_V30();
int userId = CHCNetSDK.CHCNetSDK.NET_DVR_Login_V30(textBoxIP.Text, 8000, textBoxUserName.Text, textBoxPassword.Text, ref deviceInfo);

if (userId < 0)
{
MessageBox.Show("登录设备失败");
CHCNetSDK.CHCNetSDK.NET_DVR_Cleanup(); // 清理SDK资源
return;
}

// 设置预览参数
CHCNetSDK.CHCNetSDK.NET_DVR_PREVIEWINFO previewInfo = new CHCNetSDK.CHCNetSDK.NET_DVR_PREVIEWINFO();
previewInfo.hPlayWnd = RealPlayWnd.Handle; // 设置显示窗口为PictureBox
previewInfo.lChannel = 1; // 通道号
previewInfo.dwStreamType = 1; // 主码流
previewInfo.dwLinkMode = 0; // TCP模式

// 开始实时预览
m_lRealHandle = CHCNetSDK.CHCNetSDK.NET_DVR_RealPlay_V40(userId, ref previewInfo, null, IntPtr.Zero);
// 获取实时客流数据(示例)
//int customerCount = GetCustomerCountFromDevice();
//labelCustomerCount.Text = "实时客流:" + customerCount.ToString();
if (m_lRealHandle < 0)
{
MessageBox.Show("实时预览失败");
CHCNetSDK.CHCNetSDK.NET_DVR_Logout(userId); // 登出设备
CHCNetSDK.CHCNetSDK.NET_DVR_Cleanup(); // 清理SDK资源
return;
}
}