博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)
阅读量:6414 次
发布时间:2019-06-23

本文共 1673 字,大约阅读时间需要 5 分钟。

 一、给服务器发送字符串

          实现这个功能非常简单,感觉不怎么实用。

          1.     VC++ Code:

MP4_ClientCommandtoServer((LPCTSTR)ctemp,sendcont,
400
);

          2.     C# Code: 

PcHikClient.MP4_ClientCommandtoServer(
"
192.168.0.188
"
"
服务器你好:)
"
14
);

          从API文档中能找到关于这个方法的说明:第一个参数是服务器的IP,第二个是要发送的字符串,第三个参数是字符串长度。

二、客户端对视频录像

          客户端视频录像从API文档(Hikvision 板卡网络开发包编程手册V4.7)中可以看得出可以由MP4_ClientStartCapture或MP4_ClientStartCaptureFile函数来实现这个功能,从VC++的源码可以看得出他是用后者来实现的,简单省事,但是服务器端就没这个函数了- _-#。但是MP4_ClientStartCapture通过回调自己写存储代码更加灵活,可以实现诸如统计信息之类的额外功能,这里只提供VC++对应的C#版本的MP4_ClientStartCaptureFile

          1.     VC++ Code:

    
//
开始录像
    
if
 (nn1 
>=
 
0
)
    {
        sprintf(filename,
"
d:\\mp4test1_%d.mp4
"
,capcount);
        MP4_ClientStartCaptureFile(nn1,filename);
        
//
MP4_ClientStartCapture(nn1);
    }
    
//
关闭录像
    
if
 (nn1
>=
0
)
        MP4_ClientStopCapture(nn1);

           2.     C# Code: 

        
///
 
<summary>
        
///
 开始录像
        
///
 
</summary>
        
///
 
<param name="sender"></param>
        
///
 
<param name="e"></param>
        
private
 
void
 btnStartCap_Click(
object
 sender, EventArgs e)
        {
            PcHikClient.MP4_ClientStartCaptureFile(cs, 
"
D:\\mp4test1_0.mp4
"
);
        }
        
///
 
<summary>
        
///
 停止录像
        
///
 
</summary>
        
///
 
<param name="sender"></param>
        
///
 
<param name="e"></param>
        
private
 
void
 btnStopCap_Click(
object
 sender, EventArgs e)
        {
            PcHikClient.MP4_ClientStopCapture(cs);
        }

          方法很简单,但是注意之前帖的MP4_ClientStartCaptureFile参数对应错误,否则无法创建文件并一直返回false,现在已经更新前面的SDK封装API的文章了,具体错误如下:

          VC++原型:

BOOL  __stdcall MP4_ClientStartCaptureFile(LONG StockHandle, LPTSTR FileName);

          之前版本:

public
 
static
 
extern
 
bool
 MP4_ClientStartCaptureFile(
long
 StockHandle, 
string
 FileName);

          更改后版本:

public
 
static
 
extern
 
bool
 MP4_ClientStartCaptureFile(
int
 StockHandle, 
string
 FileName);

          注意StockHandle参数数据类型变化。MP4_ClientStopCapture的参数也是long数据类型,不过不影响,改不改成int无所谓。

本文转自博客园农民伯伯的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
IO输入/输出流的简单总结
查看>>
JavaScript之DOM-9 HTML DOM(HTML DOM概述、常用HTML DOM对象、HTML表单)
查看>>
技术成长之路(一)
查看>>
中国北方国际五金城硬件选型
查看>>
php.exe启动时提示缺少MVCR110.dall 64位 window系统 解决
查看>>
判断是否为数字方法
查看>>
[翻译] EF Core in Action 关于这本书
查看>>
js Uncaught TypeError: undefined is not a function
查看>>
数据库存储引擎
查看>>
[2019.2.13]BZOJ4318 OSU!
查看>>
版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )
查看>>
QCustomplot使用分享(三) 图
查看>>
什么是java?
查看>>
WPF路径动画(动态逆向动画)
查看>>
Low Level Reader Protocol (LLRP) 简介
查看>>
[Micropython]TPYBoard v10x NRF24L01无线通讯模块使用教程
查看>>
mysql中show processlist过滤和杀死线程
查看>>
最新Sublime Text 2 激活 汉化
查看>>
基础数据类型之字典
查看>>
第七次作业
查看>>