//视频控制 public int SDK_RealPlay(int lChannel, int lLinkMode, IntPtr hPlayWnd) { lpClientInfo = new NET_DVR_CLIENTINFO(); lpClientInfo.lChannel = lChannel; lpClientInfo.lLinkMode = lLinkMode; lpClientInfo.hPlayWnd = hPlayWnd; _real_handles[lChannel - 1] = HCNetSDK.NET_DVR_RealPlay_V30(_user_id, ref lpClientInfo, null, 1, false); return(_real_handles[lChannel - 1]); }
// 播放视频 public bool RealPlay(int channel, IntPtr hPlayWnd) { lpClientInfo = new NET_DVR_CLIENTINFO(); lpClientInfo.lChannel = channel; lpClientInfo.lLinkMode = 0; lpClientInfo.hPlayWnd = hPlayWnd; _real_handles[channel - 1] = HCNetSDK.NET_DVR_RealPlay_V30(_user_id, ref lpClientInfo, null, 1, false); HCNetSDK.NET_DVR_SetAudioMode(1); if (_real_handles[channel - 1] < 0) { return(false); } return(true); }
// Start work public void Start(ref CameraInfo cameraInfo) { if ((!_deviceInfo.IsReady) || _deviceInfo.ServiceID < 0) { return; } NET_DVR_CLIENTINFO struClientInfo; //定义预览参数结构体 struClientInfo.lChannel = cameraInfo.ChannelNo; struClientInfo.lLinkMode = 0; struClientInfo.hPlayWnd = cameraInfo.Handle; int m_iSubWndIndex = 0; //用户数据 struClientInfo.sMultiCastIP = "0.0.0.0"; // 实时预览 不回调 // m_lPlayHandle = HCNetSDK.NET_DVR_RealPlay_V30(_deviceInfo.ServiceID, ref struClientInfo, null, m_iSubWndIndex, true); //实时预览 回调 _cameraInfo = cameraInfo; //m_lPlayHandle = HCNetSDK.NET_DVR_RealPlay_V30(_deviceInfo.ServiceID, ref struClientInfo, new RealDataCallBack_V30(g_RealDataCallBack_V30), m_iSubWndIndex, true); m_lPlayHandle = HCNetSDK.NET_DVR_RealPlay_V30(_deviceInfo.ServiceID, ref struClientInfo, null, m_iSubWndIndex, true); cameraInfo.PlayHandle = m_lPlayHandle; if (m_lPlayHandle > -1) { isValidVideo = true; } _cameraInfo = cameraInfo; if (thread == null) { framesReceived = 0; bytesReceived = 0; stopEvent = new ManualResetEvent(false); thread = new Thread(new ThreadStart(WorkerThread)); thread.Name = source; thread.Start(); } }