C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)
2009-03-04 15:58
507 查看
前言
这几天加紧赶工写服务器端的程序,所有系列文章更新较慢,见谅: )
注意
本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心、实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)
系列
1. C# 视频监控系列(1):准备
2. C# 视频监控系列(2):客户端——封装API
3. C# 视频监控系列(3):客户端——连接服务器
4. C# 视频监控系列(4):客户端——音频接收和抓图
5. C# 视频监控系列(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无所谓。
遗留问题
保存下来的mp4文件显示的播放总时间和实际播放时间总是差3秒,例如总时间是48秒,而播到45就没有了,比较奇怪,不过影响不大:)
结束
本章内容仍然简单,出错仍然出在数据类型对应上,所以大家需要多留意了: )
这几天加紧赶工写服务器端的程序,所有系列文章更新较慢,见谅: )
注意
本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心、实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)
系列
1. C# 视频监控系列(1):准备
2. C# 视频监控系列(2):客户端——封装API
3. C# 视频监控系列(3):客户端——连接服务器
4. C# 视频监控系列(4):客户端——音频接收和抓图
5. C# 视频监控系列(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无所谓。
遗留问题
保存下来的mp4文件显示的播放总时间和实际播放时间总是差3秒,例如总时间是48秒,而播到45就没有了,比较奇怪,不过影响不大:)
结束
本章内容仍然简单,出错仍然出在数据类型对应上,所以大家需要多留意了: )
相关文章推荐
- C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)
- C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)
- C# 视频监控系列(9):服务器端——数据捕获(抓图 + 录像)
- C# 视频监控系列(9):服务器端——数据捕获(抓图 + 录像)
- C# 视频监控系列(9):服务器端——数据捕获(抓图 + 录像)
- C# 视频监控系列(8):服务器端——预览和可被客户端连接
- C# 视频监控系列(8):服务器端——预览和可被客户端连接
- C# 视频监控系列(8):服务器端——预览和可被客户端连接
- 服务器端压缩发送数据到客户端ASP.NET MVC
- C# 视频监控系列(4):客户端——音频接收和截图
- socket编程,实现简单的客户端服务器端发送数据
- 【转】C# 视频监控系列(12):H264播放器——播放录像文件
- 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串
- 基于Web Service的客户端框架搭建一:C#使用Http Post方式传递Json数据字符串调用Web Service
- Android客户端与服务器端数据交互之——字符串拼接
- Android客户端通过TCP接收服务器端发送的数据
- Windows系统下Memcached缓存系列一:Couchbase(服务器端)和CouchbaseClient(c#客户端)的安装教程
- C# 视频监控系列(7):服务器端——封装API(下)(2)
- ajax之xml数据的服务器端发送和客户端接收。
- C# 如何捕获一个USB设备发送到PC的数据