大华C#SDK实现监控画面切换

简介: 大华C#SDK实现监控画面切换

最近在做和公司监控设备有关的项目,要求将所有的监控画面调出来,而监控探头一共24个。如果将24个画面平铺起来,还不能太小,画面会不清晰,那得多大一个屏幕,同时平铺的画面查看也不方便,这不符合简约人性化的产品设计原则,于是最后采取的是下拉框切换的方式,听起来很简单,但是实现起来遇到了没想象到的情况:

这个项目开发采用的是大华SDK,显示监控画面采用的是绑定PictureBox控件句柄的方式

 m_PlayID2 = NETClient.RealPlay(m_LoginID, 0, pictureBox3.Handle);

其中0是通道号,公司24个探头的通道号对应0~23,通过改变通道号显示对应的画面。

于是给每个探头封装了一个显示的方法,想要再通过switch case语句,结合下拉框,切换到不同的画面……接下来遇到了第一个异常:

        #region 监视摄像内容切换方法
        public void Monitor0()
        {
            m_PlayID2 = NETClient.RealPlay(m_LoginID, 0, pictureBox3.Handle);
        }

写好之后画面并没有想象中切换地顺利,而是当前画面和切换画面一直频闪,瞬间让人觉得很不可思议,思考片刻,明白了其中的缘由:

显示画面的picturebox控件好比一个容器,被当前容器里的画面占满,画面驻守在容器里努力发挥着他的使命。当点击切换下拉框,调用其他画面的显示方法的时候,容器没有空余,新的画面想进来,现在的画面想要坚守着,于是他们两个打起来了,且势不两立,造成了频闪。而解决办法就是把现有的画面请出容易,容易空余,则可以让新的画面进来。

所以在调用显示方法的之前,先调用了一个当前监控画面退出的方法,将容器腾出

        public void nMonitor()
        {
            NETClient.StopRealPlay(m_PlayID2);
        }

新的画面再进来,顺利实现了监控画面的“工作交接”

效果图如下:

相关文章
|
8月前
|
监控 C# C++
VS+C#+WPF多线程视频摄像头播放器监控
VS+C#+WPF多线程视频摄像头播放器监控
175 0
VS+C#+WPF多线程视频摄像头播放器监控
|
6月前
|
JSON 监控 安全
通用网络安全编程:C#实现监控上网时间的软件与警报系统
在当今数字时代,网络安全已经成为每个人都必须关心的问题。为了保护家庭成员或企业员工在互联网上的安全,开发一款能够监控上网时间并实现警报系统的软件变得至关重要。本文将介绍如何使用C#编程语言创建这样一款软件,并通过一些具体的代码例子来阐述其实现过程。
201 0
|
10月前
|
监控 C#
C#大华监控画面切换
C#大华监控画面切换
101 0
|
监控 API
C#-FileSystemWatcher文件和文件夹监控
FileSystemWatcher这个类用于当目录或目录中的文件发生更改时,侦听文件系统更改通知并引发事件
110 0
|
Web App开发 监控 前端开发
C# WPF 嵌入网页版WebGL油田三维可视化监控
C# WPF 嵌入网页版WebGL油田三维可视化监控
C# WPF 嵌入网页版WebGL油田三维可视化监控
|
存储 监控 安全
C# 监控 Windows 文件夹
C# 监控 Windows 文件夹
223 0
C# 监控 Windows 文件夹
|
监控 JavaScript 应用服务中间件
C# WinForm 开发配置文件更新/EXE应用启动及监控检测工具
使用C# WinForm 开发快速更新配置文件切换环境以及启动外部EXE应用并进行监控的windows桌面EXE应用
|
编解码 人工智能 监控
如何基于芯片SDK开发安防监控产品
本文将围绕如何打造一款高效的安防监控芯片SDK,介绍芯片厂商在输出给方案商SDK之前需要考虑的方方面面。本文是根据笔者近期IPC设备端项目经验总结,对于庞杂的安防监控行业,难免有坐井观天之嫌,不足之处请指正。
如何基于芯片SDK开发安防监控产品
|
监控 网络安全 C#
C# Windows IPSEC监控(仅此一家,别无分店)
版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.
791 0