/// <summary> /// 实时预览扩展接口。 /// </summary> /// <param name="iUserID"> NET_DVR_Login()或NET_DVR_Login_V30()的返回值 </param> /// <param name="lpPreviewInfo"> 预览参数 </param> /// <param name="fRealDataCallBack_V30"> 码流数据回调函数 </param> /// <param name="pUser"> 用户数据 </param> /// <returns></returns> public static int NET_DVR_RealPlay_V40(int iUserID, ref SDKTypes.NET_DVR_PREVIEWINFO lpPreviewInfo, SDKTypes.REALDATACALLBACK fRealDataCallBack_V30, IntPtr pUser) { if (IsLinux()) { return(NET_DVR_RealPlay_V40_LINUX(iUserID, ref lpPreviewInfo, fRealDataCallBack_V30, pUser)); } else { return(NET_DVR_RealPlay_V40_WIN(iUserID, ref lpPreviewInfo, fRealDataCallBack_V30, pUser)); } }
/// <summary> /// 启动实时预览(支持多码流)。 /// </summary> /// <param name="userId"> 用户id </param> /// <param name="previewInfo"> 预览参数 </param> /// <param name="realPlayHandle"> 预览句柄 </param> /// <param name="userPtr"> 用户数据 </param> /// <param name="fRealDataCallBack_V30"></param> /// <returns></returns> public static KeyValuePair <bool, string> RealPlay_V40(int userId, ref SDKTypes.NET_DVR_PREVIEWINFO previewInfo, ref IntPtr realPlayHandle, IntPtr userPtr, SDKTypes.REALDATACALLBACK fRealDataCallBack_V30 = null) { try { int handle = NET_DVR_RealPlay_V40(userId, ref previewInfo, fRealDataCallBack_V30, userPtr); if (handle == -1) { return(new KeyValuePair <bool, string>(false, string.Format("启动实时预览失败,错误消息:{0}", GetLastErrorMsg()))); } else { realPlayHandle = new IntPtr(handle); return(new KeyValuePair <bool, string>(true, string.Format("启动实时预览成功,预览句柄:{0}", handle))); } } catch (Exception ex) { return(new KeyValuePair <bool, string>(false, string.Format("启动实时预览失败,异常消息:{0}", ex.Message))); } }
/// <summary> /// 启动实时预览 /// </summary> /// <returns></returns> public override KeyValuePair <bool, string> StartRealPlay() { if (!this.IsLogin) { return(new KeyValuePair <bool, string>(false, "未登录!")); } if (this.IsRealPlay) { this.StopRealPlay(); } try { SDKTypes.NET_DVR_PREVIEWINFO previewInfo = this.PreviewInfo; previewInfo.hPlayWnd = this.RealPlayWnd; return(SDKWrap.RealPlay_V40(this.userId, ref previewInfo, ref this.realPlayHandle, IntPtr.Zero)); } catch (Exception e) { return(new KeyValuePair <bool, string>(false, e.Message)); } }
private static extern int NET_DVR_RealPlay_V40_LINUX(int iUserID, ref SDKTypes.NET_DVR_PREVIEWINFO lpPreviewInfo, SDKTypes.REALDATACALLBACK fRealDataCallBack_V30, IntPtr pUser);