VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • c#视频监控系列 (5)给服务器端发送字符串和录像数据捕获

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

   一、给服务器发送字符串

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

   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就没有了,比较奇怪,不过影响不大:)

  结束

   本章内容仍然简单,出错仍然出在数据类型对应上,所以大家需要多留意了: )



相关教程