一、給伺服器發送字元串
實作這個功能非常簡單,感覺不怎麼實用。
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
//開始錄像
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");
}
/// 停止錄像
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無所謂。