/// <summary> /// 启动实时监视或多画面预览 /// </summary> /// <param name="nChannelID"></param> /// <param name="hWnd"></param> /// <param name="rType"></param> /// <returns></returns> public int RealPlay(int nChannelID, IntPtr hWnd, int nStreamType, int nNetType) { if (nChannelID < 0 || nChannelID > 31 || 0 > m_lLogin) { return(0); } NET_DVR_CLIENTINFO lpClientInfo = new NET_DVR_CLIENTINFO(); lpClientInfo.hPlayWnd = hWnd; lpClientInfo.lChannel = nChannelID; lpClientInfo.lLinkMode = 0; lpClientInfo.sMultiCastIP = ""; CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO(); lpPreviewInfo.hPlayWnd = hWnd; //预览窗口 lpPreviewInfo.lChannel = nChannelID; //预te览的设备通道 lpPreviewInfo.dwStreamType = 0; //码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推 lpPreviewInfo.dwLinkMode = 0; //连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP lpPreviewInfo.bBlocked = true; //0- 非阻塞取流,1- 阻塞取流 lpPreviewInfo.dwDisplayBufNum = 1; //播放库播放缓冲区最大缓冲帧数 lpPreviewInfo.byProtoType = 0; lpPreviewInfo.byPreviewMode = 0; IntPtr pUser = new IntPtr();//用户数据 //CHCNetSDK.NET_DVR_RealPlay m_lPlayHandel[nChannelID] = CHCNetSDK.NET_DVR_RealPlay_V40(m_lLogin, ref lpPreviewInfo, null /*RealData*/, pUser); uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); return(m_lPlayHandel[nChannelID]);//!= 0 }
//视频控制 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); }
public static extern int NET_DVR_RealPlay(int lUserID, ref NET_DVR_CLIENTINFO lpClientInfo);
/********************************************************* Function: NET_DVR_RealPlay_V30 Desc: 实时预览。 Input: lUserID [in] NET_DVR_Login()或NET_DVR_Login_V30()的返回值 lpClientInfo [in] 预览参数 cbRealDataCallBack [in] 码流数据回调函数 pUser [in] 用户数据 bBlocked [in] 请求码流过程是否阻塞:0-否;1-是 Output: Return: 1表示失败,其他值作为NET_DVR_StopRealPlay等函数的句柄参数 **********************************************************/ public static extern int NET_DVR_RealPlay_V30(int iUserID, ref NET_DVR_CLIENTINFO lpClientInfo, REALDATACALLBACK fRealDataCallBack_V30, IntPtr pUser, UInt32 bBlocked);
public static extern Int32 NET_SDK_RealPlay(int iUserLogID, ref NET_DVR_CLIENTINFO lpDVRClientInfo);
public static extern Int32 NET_DVR_RealPlay(int iUserID, ref NET_DVR_CLIENTINFO lpClientInfo);
public static extern int NET_DVR_RealPlay_V30(int lUserID, ref NET_DVR_CLIENTINFO lpClientInfo, RealDataCallBack_V30 fRealDataCallBack_V30, int pUser, bool bBlocked);
/// <summary> /// 功能:启动图像实时预览 /// </summary> /// <param name="IUserId">用户登录ID,DeviceLogin 的返回值.</param> /// <param name="lChannel">硬盘录像机通道号</param> /// <param name="hPlayWnd">播放窗口的句柄</param> /// <returns>返回值:-1 表示失败,其他值作为其它函数的参数</returns> public int RealPlay(int IUserId, int lChannel, IntPtr hPlayWnd) { NET_DVR_CLIENTINFO lpInfo = new NET_DVR_CLIENTINFO(); lpInfo.lChannel = lChannel; lpInfo.lLinkMode = 0; lpInfo.hPlayWnd = hPlayWnd; lpInfo.sMultiCastIP = ""; return NET_DVR_RealPlay(IUserId, ref lpInfo); }