亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現IP攝像頭的方法

2020-01-24 01:55:44
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現IP攝像頭的方法。分享給大家供大家參考。具體實現方法如下:

#region IP攝像頭代碼/// <summary>/// ip攝像頭代碼/// </summary>  //視頻private IntPtr m_hChannel;private IntPtr m_hServer, phPlay;public delegate void MyInvoke(string str);public delegate void OutDelegate(IntPtr hSearch, DVSNET_FILE_TIME pFileTime, DVSNET_FILE_INFO pFileInfo, IntPtr pcontext);//遠程視頻處理public void BeforeRecordFrame(IntPtr hChannel, ref RECORD_INFO pRecordInfo, ref FRAME_HEADER pFrameHeader, IntPtr pcontext){}DVSNETClient.FileSearchCallback File_SearchCallback; //遠程視頻回放public void FileSearchCallback(IntPtr hSearch, ref DVSNET_FILE_TIME pFileTime, ref DVSNET_FILE_INFO pFileInfo, IntPtr pcontext){OutText(hSearch, pFileTime, pFileInfo, pcontext);   }public void OutText(IntPtr hSearch, DVSNET_FILE_TIME pFileTime, DVSNET_FILE_INFO pFileInfo, IntPtr pcontext){  if (lvVideo.InvokeRequired)  {   OutDelegate outdelegate = new OutDelegate(OutText);   this.BeginInvoke(outdelegate, new object[] { hSearch, pFileTime, pFileInfo, pcontext });   return;  }  lvVideo.View = View.Details;  lvVideo.FullRowSelect = true;  for (int i = 0; i < pFileInfo.sFileName.Count(); i++)  {   ListViewItem item1 = new ListViewItem(pFileInfo.sFileName, i);   lvVideo.Items.AddRange(new ListViewItem[] { item1 });  } } private void pb_del_video_Click(object sender, EventArgs e) {  this.Close(); } public void SearchNotify(int nDevType,string sServName,string sServSerial,string sUrl,IntPtr MacAddr,ushort wWebPort,ushort wDataPort,string sSubNetMask,string sGateWay,string sMultiIp,string sDNS,ushort wMultiPort,int nChCount,uint bDHCP,IntPtr pcontext) {  string str = Convert.ToString(wDataPort);  //string str2 = sUrl + "(" + str + ")";  string str2 = sUrl;  this.AddText(str2); } //賦值給cmbIP private void AddText(string str) {  MyInvoke method = new MyInvoke(this.AddTextToCmb);  base.BeginInvoke(method, new object[] { str }); } public void AddTextToCmb(string str) {  this.CmbIP.Items.Add(str); } //s搜索服務器 private void btnVideoSearck_Click(object sender, EventArgs e) {     this.CmbIP.Items.Clear();   errornum errornum = DVSNETClient.DVSNET_SearchServers(0xbb8, 1, new DVSNETClient.SearchNotify(this.SearchNotify), base.Handle, IntPtr.Zero);   if (errornum == errornum.DVSNET_ERR_OK)   {    timerVideo.Enabled = true;    btnVideoSearck.Enabled = false;   }   else   {   } } //打開鏈接 private void btnVideoOpen_Click(object sender, EventArgs e) {  string text = this.CmbIP.Text;  string sServIp = text;  int index = text.IndexOf('(');  if (index != -1)  {   string str3 = new string(text.ToCharArray(), 0, index);   sServIp = str3;  }  errornum errornum = DVSNETClient.DVSNET_OpenServer(this.EdtName.Text, sServIp, Convert.ToUInt16(this.EdtPort.Text), this.EdtUser.Text, this.EdtPassword.Text, ref this.m_hServer, 0, 0);  this.btnVideoOpen.Enabled = false; //不能點擊  if (errornum == errornum.DVSNET_ERR_OK)  {   DVSNET_SERVER_INFO dvsnet_server_info = new DVSNET_SERVER_INFO();   MessageBox.Show("打開鏈接成功!");   dvsnet_server_info = new DVSNET_SERVER_INFO   {    lStructSize = Marshal.SizeOf(dvsnet_server_info)   };   DVSNETClient.DVSNET_GetServerInfo(this.m_hServer, ref dvsnet_server_info);   // this.CmbChannel.Items.Clear();   for (int i = 0; i < dvsnet_server_info.nChnNum; i++)   {    int num3 = i + 1;    // this.CmbChannel.Items.Add(num3.ToString());   }   // this.CmbChannel.SelectedIndex = 0;  }  else  {   MessageBox.Show("打開鏈接失敗,錯誤碼為:" + errornum.ToString());   this.btnVideoOpen.Enabled = true; //不能點擊  } } //關閉鏈接 private void btnVideoClose_Click(object sender, EventArgs e) {  if (this.m_hChannel != IntPtr.Zero)  {   MessageBox.Show("請關閉通道!再關閉鏈接");  }  else  {   if (this.m_hServer != IntPtr.Zero)   {    DVSNETClient.DVSNET_CloseServer(this.m_hServer);    this.m_hServer = IntPtr.Zero;    this.btnVideoOpen.Enabled = true; //不能點擊   }  } } //打開通道 IntPtr selServer = IntPtr.Zero; private void btnVideoOpenChnnel_Click(object sender, EventArgs e) {  this.panelVideo.Visible = true;  this.pannelVideoTwo.Visible = false;  if (this.m_hServer != IntPtr.Zero)  {   this.btnVideoOpenChnnel.Enabled = false; //不能點擊   DVSNET_CHANNEL_INFO dvsnet_channel_info = new DVSNET_CHANNEL_INFO();   MessageBox.Show("打開通道成功!請稍候");   dvsnet_channel_info = new DVSNET_CHANNEL_INFO   {    lStructSize = Marshal.SizeOf(dvsnet_channel_info),    nProtocol = 0,    hWndDisplay = this.panelVideo.Handle,    bPlayStart = 1,    dwStreamNo = 0   };   DVSNETClient.DVSNET_OpenChannel(this.m_hServer, Convert.ToUInt16(0), ref dvsnet_channel_info, ref this.m_hChannel);  }  else  {   MessageBox.Show("請打開鏈接!");  } } //關閉通道 private void btnVideoCloseChnnel_Click(object sender, EventArgs e) {  if (this.m_hChannel != IntPtr.Zero)  {   DVSNETClient.DVSNET_CloseChannel(this.m_hChannel);   MessageBox.Show("關閉通道成功!請稍候");   this.m_hChannel = IntPtr.Zero;   this.btnVideoOpenChnnel.Enabled = true; //不能點擊  } } //開始錄像 private void btnVideoOn_Click(object sender, EventArgs e) {  try  {   string ss = DateTime.Now.ToString().Replace(":", "-").Replace(" ", "-").Replace("/", "-") + ".asf";     if (this.panelVideo.Visible == false)   {    MessageBox.Show("請切換到打開通道");   }   else   {    if (this.m_hChannel != IntPtr.Zero)    {     this.btnVideoOn.Enabled = false; //不能點擊     //DVSNETClient.DVSNET_StartRecord(this.m_hChannel, 1, FILETYPE.FILETYPE_ASF, ss, new DVSNETClient.BeforeRecordFrame(this.BeforeRecordFrame), base.Handle);     DVSNETClient.DVSNET_StartRecord(this.m_hChannel, 1, FILETYPE.FILETYPE_ASF, ss,Before_RecordFrame, base.Handle);    }    else    {     MessageBox.Show("請打開通道!");    }   }  }  catch (Exception ex)  {   MessageBox.Show(ex.ToString());  }   } //停止錄像 private void btnStopRec_Click(object sender, EventArgs e) {  DVSNETClient.DVSNET_StopRecord(this.m_hChannel);  MessageBox.Show("已停止錄像!");  this.btnVideoOn.Enabled = true; //不能點擊 } //打開本地視頻 IntPtr phPlayer; private void btnsearch_Click(object sender, EventArgs e) {  try  {   if (m_hServer != IntPtr.Zero)   {    string fName = "";    OpenFileDialog openFileDialog = new OpenFileDialog();    openFileDialog.InitialDirectory = Application.StartupPath;    //注意這里寫路徑時要用c:/而不是c:    openFileDialog.Filter = "文本文件|*.asf|所有文件|*.asf";    openFileDialog.RestoreDirectory = true;    openFileDialog.FilterIndex = 1;    if (openFileDialog.ShowDialog() == DialogResult.OK)    {     this.panelVideo.Visible = false;     this.pannelVideoTwo.Visible = true;     this.btnsearch.Enabled = false;     fName = openFileDialog.FileName;     IntPtr hDisplayWnd = pannelVideoTwo.Handle;     phPlayer = (IntPtr)0;     DVSNETClient.DVSPLAYER_ReleaseInstance(phPlayer); //釋放     DVSNETClient.DVSPLAYER_Stop(phPlayer); //釋放本地     errornum aa = DVSNETClient.DVSPLAYER_CreateInstance(hDisplayWnd, ref phPlayer, 0);           aa = DVSNETClient.DVSPLAYER_OpenFile(phPlayer,ref fName, 1);     DVSNETClient.DVSPLAYER_Start(phPlayer);    }    else    {     this.panelVideo.Visible = true;     this.pannelVideoTwo.Visible = false;    }   }   else   {    MessageBox.Show("請打開通道!");   }  }  catch (Exception)  {   throw;  }    } //停止視頻播放 private void btnhf_Click(object sender, EventArgs e) {  this.panelVideo.Visible = true;  this.pannelVideoTwo.Visible = false;  IntPtr phPlayer = (IntPtr)0;  DVSNETClient.DVSPLAYER_Stop(phPlayer);  MessageBox.Show("已停止回放錄像!");  this.btnsearch.Enabled = true; ;   } //查找遠程視頻 private void btnSearchbyName_Click(object sender, EventArgs e) {  if (m_hServer == IntPtr.Zero)  {   MessageBox.Show("請先打開鏈接登錄服務器!");   return;  }  this.btnSearchbyName.Enabled = false;  DVSNET_FILE_TIME pStartTime = new DVSNET_FILE_TIME();  pStartTime.lYear = (uint)this.dateTimePicker1.Value.Year;  pStartTime.lMonth = (uint)this.dateTimePicker1.Value.Month;  pStartTime.lDay = (uint)this.dateTimePicker1.Value.Day;  pStartTime.nHour = 0;  pStartTime.nMinute = 0;  DVSNET_FILE_TIME pEndTime = new DVSNET_FILE_TIME();  pEndTime.lYear = (uint)this.dateTimePicker1.Value.Year;  pEndTime.lMonth = (uint)this.dateTimePicker1.Value.Month;  pEndTime.lDay = (uint)this.dateTimePicker1.Value.Day;  pEndTime.nHour = 23;  pEndTime.nMinute = 59;  IntPtr phSearch = IntPtr.Zero;  //if(){}  errornum bak = DVSNETClient.DVSNET_ServerFindFile(m_hServer, 0, 0, (char)0xff, ref pStartTime, ref pEndTime, File_SearchCallback, (IntPtr)0, ref phSearch);  if (bak != errornum.DVSNET_ERR_OK)  {   MessageBox.Show("查找遠程視頻失??!");  }     this.btnSearchbyName.Enabled = true; } //鼠標雙擊事件 private void lvVideo_MouseDoubleClick(object sender, MouseEventArgs e) {  this.panelVideo.Visible = false;  this.pannelVideoTwo.Visible = true;     string sa = "";  IntPtr hWnd = pannelVideoTwo.Handle;  if (lvVideo.SelectedItems.Count > 0)  { //this.listView1.SelectedIndices   sa = lvVideo.SelectedItems[0].Text.ToString();  }    DVSNETClient.DVSPLAYER_Stop(phPlayer); //釋放本地回放  DVSNETClient.DVSNET_ClosePlayFile(phPlay); //釋放遠程  phPlay = IntPtr.Zero;  errornum bak = DVSNETClient.DVSNET_PlayFileByName(m_hServer, sa, 1, hWnd, ref phPlay);  if (bak == errornum.DVSNET_ERR_OK)  {   UInt32 value = 0;   DVSNETClient.DVSNET_ControlPlayFile(phPlay, 1, 0, ref value);  }  else  {   MessageBox.Show("回放遠程文件 失敗,錯誤碼為" + bak.ToString());  } } #endregion //時間控件 1s private void timerVideo_Tick(object sender, EventArgs e) {  int nStatus = 0;  errornum errnum = DVSNETClient.DVSNET_GetSearchStatus(ref nStatus);  if (errnum == errornum.DVSNET_ERR_OK)  {   if (nStatus == 1)   {    btnVideoSearck.Enabled = true;    timerVideo.Enabled = false;    MessageBox.Show("沒有啟動搜索");   }   if (nStatus == 2)   {    //MessageBox.Show("正在搜索!");   }   if (nStatus == 3)   {    timerVideo.Enabled = false;    btnVideoSearck.Enabled = true;    if (this.CmbIP.Items.Count == 0)    {     MessageBox.Show("沒有找到設備!請接上設備");    }    else    {     MessageBox.Show("已找到設備,請選擇IP地址");    }   }  }  else  {   MessageBox.Show("DVSNET_GetSearchStatus 失敗,錯誤碼為" + errnum.ToString());  }}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国产精品视频在线| 亚洲最大的免费| 91在线|亚洲| 久久久国产91| 亚洲精品永久免费精品| 日韩国产精品视频| 日韩免费观看在线观看| 国产精品久久久久久久av大片| 久久视频免费观看| 亚洲新声在线观看| 日韩欧美第一页| 亚洲精品国精品久久99热| 国产伦精品免费视频| 最新国产成人av网站网址麻豆| 国产日韩精品一区二区| 亚洲欧美日韩图片| 亚洲第一中文字幕在线观看| 91精品久久久久久久久不口人| 68精品久久久久久欧美| 欧美一级bbbbb性bbbb喷潮片| 国产99久久精品一区二区永久免费| 国产精品福利网| 亚洲激情久久久| 亚洲天堂男人天堂| 国产精品成人一区| 欧美高清在线视频观看不卡| 国产福利精品av综合导导航| 国产精品手机播放| 日韩黄色av网站| 国产精品久久电影观看| 亚洲午夜激情免费视频| 日韩亚洲综合在线| 亚洲毛片在线免费观看| 欧美中文在线视频| www.亚洲成人| 91精品国产91久久久久| 91av网站在线播放| 欧美电影免费观看高清完整| 成人亚洲综合色就1024| 亚洲女人天堂视频| 在线观看视频亚洲| 国产成人高清激情视频在线观看| 亚洲影院在线看| 在线播放日韩专区| 亚洲系列中文字幕| 成人www视频在线观看| 国产精品99久久久久久白浆小说| 91av在线免费观看| 久久久精品电影| 亚洲已满18点击进入在线看片| 精品国产依人香蕉在线精品| 欧美日韩激情视频8区| 国产精品自产拍在线观| 欧美成人激情视频免费观看| 国产成人福利夜色影视| 久久国产加勒比精品无码| 亚洲午夜色婷婷在线| 亚洲伊人第一页| 欧美日韩国产色| 久久视频中文字幕| 日韩精品极品毛片系列视频| 亚洲欧美日韩视频一区| 欧美午夜精品久久久久久人妖| 欧美国产日韩一区二区在线观看| 日韩精品视频免费| 欧美www视频在线观看| 亚洲欧美国产va在线影院| 亚洲欧美国产精品| 亚洲aⅴ日韩av电影在线观看| 欧美电影免费播放| 最近免费中文字幕视频2019| 日韩最新av在线| 日韩极品精品视频免费观看| 国产精品永久免费视频| 97色在线观看免费视频| 国产精品久久久久久搜索| 91经典在线视频| 久久人体大胆视频| 欧美日韩ab片| 欧美在线一级视频| 国产有码一区二区| 日韩欧美在线国产| 久久九九全国免费精品观看| 隔壁老王国产在线精品| 日韩在线观看成人| 在线视频精品一| 欧美日韩在线视频一区| 欧美精品在线观看| 国产亚洲精品日韩| 日韩成人av在线播放| 亚洲国产成人爱av在线播放| 黑人巨大精品欧美一区二区免费| 日韩av黄色在线观看| 另类视频在线观看| 亚洲人永久免费| 91精品久久久久久久久| 精品国产一区二区三区久久狼5月| 国内免费久久久久久久久久久| 中文字幕综合在线| 欧美日韩中国免费专区在线看| 久久久人成影片一区二区三区| 少妇精69xxtheporn| 久久精品视频va| 91精品国产91久久久久福利| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲精品少妇网址| 俺去亚洲欧洲欧美日韩| 日韩精品在线免费播放| 91精品国产色综合久久不卡98口| 欧美激情在线狂野欧美精品| 欧美理论在线观看| 国产99视频在线观看| 精品日韩中文字幕| 日韩成人av网址| 欧美性猛交xxxx偷拍洗澡| 美女久久久久久久久久久| 国产精品免费观看在线| 97在线视频免费播放| 久久久国产视频91| 亚洲在线一区二区| 欧美大尺度激情区在线播放| 亚洲高清久久网| 91亚洲精品在线观看| 欧美精品午夜视频| 欧美成人在线网站| 欧美激情精品久久久久久黑人| 欧美大全免费观看电视剧大泉洋| 久久久999成人| 欧美色另类天堂2015| 国产精品十八以下禁看| 亚洲一区二区三区在线视频| 欧美电影《睫毛膏》| 久久69精品久久久久久国产越南| 欧美疯狂xxxx大交乱88av| 日韩中文字幕视频在线| 国产精品久久久久一区二区| 国产综合在线观看视频| 欧美成人免费大片| 亚洲视频在线看| 亚洲春色另类小说| 久久成人国产精品| 国产精品video| 亚洲男人天堂九九视频| 91午夜理伦私人影院| 成人性教育视频在线观看| 高跟丝袜欧美一区| 欧美成人精品在线观看| 国产美女久久精品香蕉69| 久久久噜噜噜久久| 亚洲第一男人av| 日韩欧美国产免费播放| 日韩在线免费观看视频| 在线视频欧美性高潮| 亚洲娇小xxxx欧美娇小| 国产一区二区三区在线观看网站| 久久的精品视频| 亚洲片在线观看| 欧美黄色三级网站| 中文在线资源观看视频网站免费不卡| 亚洲伊人久久大香线蕉av| 欧美日韩免费在线观看| 一区二区三区国产在线观看| 精品视频在线观看日韩| 日韩免费观看网站|