public void Preview() { if (App.DataCamera[this.postion].m_lRealHandle >= 0) { CHCNetSDK.NET_DVR_StopRealPlay(App.DataCamera[this.postion].m_lRealHandle); } CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); lpClientInfo.lChannel = App.DataCamera[this.postion].channel; lpClientInfo.lLinkMode = 0x0000; lpClientInfo.sMultiCastIP = ""; // App.DataCamera[this.postion].m_iPreviewType = 1; lpClientInfo.hPlayWnd = IntPtr.Zero; // todo!!! 这边应该做2中情况考虑去编写代码 m_ptrRealHandle = pictureBox1.Handle; m_fRealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); IntPtr pUser = new IntPtr(); App.DataCamera[this.postion].m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(App.DataCamera[this.postion].m_lUserID, ref lpClientInfo, m_fRealData, pUser, 1); if (App.DataCamera[this.postion].m_lRealHandle == -1) { uint nError = CHCNetSDK.NET_DVR_GetLastError(); MessageBox.Show("Lỗi không thể truy cập camera"); return; } }
public void Preview() { CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); lpClientInfo.lChannel = this.Camera.channel; lpClientInfo.lLinkMode = 0x0000; lpClientInfo.sMultiCastIP = ""; if (this.Camera.m_iPreviewType == 0) // use by callback { lpClientInfo.hPlayWnd = IntPtr.Zero; // todo!!! 这边应该做2中情况考虑去编写代码 m_ptrRealHandle = pictureBox1.Handle; m_fRealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); IntPtr pUser = new IntPtr(); this.Camera.m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(this.Camera.m_lUserID, ref lpClientInfo, m_fRealData, pUser, 1); } else if (1 == this.Camera.m_iPreviewType) { m_ptrRealHandle = pictureBox1.Handle; IntPtr pUser = new IntPtr(); this.Camera.m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(this.Camera.m_lUserID, ref lpClientInfo, null, pUser, 1); } if (this.Camera.m_lRealHandle == -1) { uint nError = CHCNetSDK.NET_DVR_GetLastError(); MessageBox.Show("Lỗi không thể truy cập camera"); return; } }
private void btnPreview_Click() { CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); int channel = 1; lpClientInfo.lChannel = channel; lpClientInfo.lLinkMode = 0x0000; lpClientInfo.sMultiCastIP = ""; if (m_iPreviewType == 0) // use by callback { lpClientInfo.hPlayWnd = IntPtr.Zero; // todo!!! 这边应该做2中情况考虑去编写代码 m_ptrRealHandle = pictureBox1.Handle; m_fRealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); IntPtr pUser = new IntPtr(); m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, m_fRealData, pUser, 1); } else if (1 == m_iPreviewType) { lpClientInfo.hPlayWnd = pictureBox1.Handle; IntPtr pUser = new IntPtr(); m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, null, pUser, 1); } if (m_lRealHandle == -1) { // uint nError = CHCNetSDK.NET_DVR_GetLastError(); // DebugInfo("NET_DVR_RealPlay fail %d!"); return; } }
public async void Preview() { // if (App.DataCamera[this.Postion].m_lRealHandle > 0) CHCNetSDK.NET_DVR_StopRealPlay(App.DataCamera[this.Postion].m_lRealHandle); await Task.Delay(50); //LocationMedia media = new LocationMedia(App.DataCamera[this.Postion].rtsp); // media.ParsedChanged += media_ParsedChanged; // this.myVlcControl.Media = media; CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); lpClientInfo.lChannel = App.DataCamera[this.Postion].channel; lpClientInfo.lLinkMode = 0x0000; lpClientInfo.sMultiCastIP = ""; lpClientInfo.hPlayWnd = IntPtr.Zero; // todo!!! 这边应该做2中情况考虑去编写代码 m_ptrRealHandle = pictureBox1.Handle; m_fRealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); IntPtr pUser = new IntPtr(); App.DataCamera[this.Postion].m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(App.DataCamera[this.Postion].m_lUserID, ref lpClientInfo, m_fRealData, pUser, 1); if (App.DataCamera[this.Postion].m_lRealHandle == -1) { uint nError = CHCNetSDK.NET_DVR_GetLastError(); MessageBox.Show("Lỗi không thể truy cập camera"); return; } }
private void VideoInitAndPriview() { if (sbtnLook.Text == "预览") { m_bInitSDK = CHCNetSDK.NET_DVR_Init(); if (m_bInitSDK == false) { //MessageBox.Show("设备初始化失败!"); return; } m_lUserID = CHCNetSDK.NET_DVR_Login_V30(DVRIPAddress, DVRPortNumber, DVRUserName, DVRPassword, ref m_struDeviceInfo); if (m_lUserID == -1) { MessageBox.Show("登录失败!"); return; } else { //MessageBox.Show("登录成功!"); TimerStart(); //StartAlarmVideo(); CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); //摄像头 配置信息结构 lpClientInfo.lChannel = 1; lpClientInfo.lLinkMode = 0x0000; //最高位(31)为0表示主码流,为1表示子码流,0-30位表示码流连接方式: 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-音视频分开(TCP) lpClientInfo.sMultiCastIP = ""; //多播组地址 if (m_iPreviewType == 0) // use by callback { lpClientInfo.hPlayWnd = IntPtr.Zero; //播放窗口的句柄,为NULL表示不播放图象 m_ptrRealHandle = RealPlayWnd.Handle; //获取控件绑定到的窗口句柄。 RealPlayWnd显示界面 m_fRealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); // 预览回调 IntPtr pUser = new IntPtr(); m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, m_fRealData, pUser, 1); //实时预览 } else if (1 == m_iPreviewType) { lpClientInfo.hPlayWnd = RealPlayWnd.Handle; IntPtr pUser = new IntPtr(); m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, null, pUser, 1); } if (m_lRealHandle == -1) { uint nError = CHCNetSDK.NET_DVR_GetLastError(); VideoRetErrorDis(nError); //DebugInfo("NET_DVR_RealPlay fail %d!"); return; } sbtnLook.Text = "停止预览"; //this.btnPriview.Image = global::HikHelp.Properties.Resources.停止预览; } } else if (sbtnLook.Text == "停止预览") { sbtnLook.Text = "预览"; //btnPriview.Image = global::HikHelp.Properties.Resources.预览; StopPriview(); } }
public static int RealPlay(CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo) { CHCNetSDK.REALDATACALLBACK RealData = new CHCNetSDK.REALDATACALLBACK(SDKCommon.RealDataCallBack); IntPtr pUser = new IntPtr(); m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, RealData, pUser, 1); return(m_lRealHandle); }
/// <summary> /// 预览硬盘录像机视频 /// </summary> /// <param name="lpClientInfo">预览参数 </param> /// <returns></returns> public static int RealPlay(int ilChannel, System.Windows.Forms.PictureBox RealPlayWnd) { CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = GetRealPlay(ilChannel, RealPlayWnd); CHCNetSDK.REALDATACALLBACK RealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); IntPtr pUser = new IntPtr(); m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, RealData, pUser, 1); return(m_lRealHandle); }
/// <summary> /// 设置硬盘录像机客户端设置 /// </summary> /// <param name="ilChannel"></param> /// <returns></returns> public static CHCNetSDK.NET_DVR_CLIENTINFO GetRealPlay(int ilChannel, System.Windows.Forms.PictureBox RealPlayWnd) { CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); lpClientInfo.hPlayWnd = RealPlayWnd.Handle; lpClientInfo.lChannel = ilChannel; lpClientInfo.lLinkMode = 0x0000; lpClientInfo.sMultiCastIP = ""; return(lpClientInfo); }
/// <summary> /// 启用实时预览 /// </summary> public void SDKRealPlay() { //登录 int m_UserID = DVRLogin(DVRIP,DVRPort,DVRUserName,DVRPassword); //实时预览 CHCNetSDK.NET_DVR_CLIENTINFO clientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); clientInfo.lChannel = 1; clientInfo.lLinkMode = 0; int iRealPlayHandle= CHCNetSDK.NET_DVR_RealPlay_V30(m_UserID,ref clientInfo,null,IntPtr.Zero,0); //注册回调函数 // if(realDataCallBackEvent==null) realDataCallBackEvent = new SETREALDATACALLBACK(iRealPlayHandle,2,); }
private void StartPlay() { if (m_lRealPlayHandle != -1) { return; } CHCNetSDK.NET_DVR_CLIENTINFO struClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); struClientInfo.hPlayWnd = PreViewBox.Handle; struClientInfo.lChannel = 1; struClientInfo.lLinkMode = 0; IntPtr ptrUser = new IntPtr(); m_lRealPlayHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref struClientInfo, null, ptrUser, 1); if (m_lRealPlayHandle == -1) { uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); string strTemp = "NET_DVR_RealPlay_V30 failed, error code= " + iLastErr; g_formList.AddLog(m_iDevIndex, AcsDemoPublic.OPERATION_FAIL_T, strTemp); } Marshal.FreeHGlobal(ptrUser); }
/// <summary> /// 实时视频信息 /// </summary> private void GetRealPlay() { try { IntPtr pUser = new IntPtr(); CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO() { lChannel = Common.Channel, lLinkMode = 0, sMultiCastIP = "", hPlayWnd = Controls.Find("pictureBox1", true)[0].Handle }; m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, null, pUser, 0); if (this.m_lRealHandle == -1) { uint nError = CHCNetSDK.NET_DVR_GetLastError(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private bool StartVideo(ref string info) { try { if (FileSavePath != "") { //保存路径存在 if (m_lRealHandle != -1) { //有预览的录像 if (CHCNetSDK.NET_DVR_SaveRealData(m_lRealHandle, FileSavePath)) { m_IsStartVideo = true; return(true); } else { m_IsStartVideo = false; uint nError = CHCNetSDK.NET_DVR_GetLastError(); info = VideoRetErrorDis(nError); return(false); } } else {//不带预览的录像 这样可以不用监控就可以预览 CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO(); lpClientInfo.lChannel = 1; lpClientInfo.lLinkMode = 0x0000; lpClientInfo.sMultiCastIP = ""; //lpClientInfo.hPlayWnd = RealPlayWnd.Handle; IntPtr pUser = new IntPtr(); m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_lUserID, ref lpClientInfo, null, pUser, 1); if (m_lRealHandle == -1) { //MessageBox.Show("录像失败!"); info = "录像失败!"; return(false); } else { if (CHCNetSDK.NET_DVR_SaveRealData(m_lRealHandle, FileSavePath)) { m_IsStartVideo = true; return(true); } else { m_IsStartVideo = false; uint nError = CHCNetSDK.NET_DVR_GetLastError(); info = VideoRetErrorDis(nError); return(false); } } } } else { info = "保存路径不正确!"; return(false); } } catch (Exception ex) { info = ex.Message; return(false); } }