天天看點

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

C# 視訊監控系列(5):用戶端——給伺服器端發送字元串和錄像(資料捕獲)

    //開始錄像

    if (nn1 >= 0)

    {

        sprintf(filename,"d:\\mp4test1_%d.mp4",capcount);

        mp4_clientstartcapturefile(nn1,filename);

        //mp4_clientstartcapture(nn1);

    }

    //關閉錄像

    if (nn1>=0)

        mp4_clientstopcapture(nn1);

C# 視訊監控系列(5):用戶端——給伺服器端發送字元串和錄像(資料捕獲)

           2.     c# code: 

C# 視訊監控系列(5):用戶端——給伺服器端發送字元串和錄像(資料捕獲)

        /// <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");

        }

        /// 停止錄像

        private void btnstopcap_click(object sender, eventargs e)

            pchikclient.mp4_clientstopcapture(cs);

C# 視訊監控系列(5):用戶端——給伺服器端發送字元串和錄像(資料捕獲)

          方法很簡單,但是注意之前帖的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就沒有了,比較奇怪,不過影響不大:)

結束

          本章内容仍然簡單,出錯仍然出在資料類型對應上,是以大家需要多留意了: )

轉載:http://www.cnblogs.com/over140/archive/2009/03/04/1400223.html

繼續閱讀