/// <summary> /// 播放历史视频 /// </summary> /// <param name="nvr"></param> /// <param name="channel"></param> /// <param name="start"></param> /// <param name="end"></param> /// <param name="handle"></param> /// <param name="iPlayBack"></param> /// <returns></returns> public int playBackByTime(int nvr, int channel, DateTime start, DateTime end, IntPtr handle, PlayBackEvent iPlayBack) { NVR_INFO nvrInfo = (NVR_INFO)nvrConfig[nvr]; if (nvrInfo == null) { return(Convert.ToInt32(NVR_ERROR.NO_NVR_CFG)); } if (nvrInfo.session < 1) { return(Convert.ToInt32(NVR_ERROR.NO_LOGIN)); } NvrInterface nvrAdp = (NvrInterface)nvrAdapters[nvrInfo.type]; if (nvrAdp == null) { return(Convert.ToInt32(NVR_ERROR.NO_NVR_ADP)); } return(nvrAdp.playBackByTime(nvrInfo.session, channel, start, end, handle, iPlayBack)); }
/// <summary> /// 根据时间进行回放 /// </summary> /// <param name="session"></param> /// <param name="cha"></param> /// <param name="start"></param> /// <param name="end"></param> /// <param name="handle"></param> /// <returns></returns> int NvrInterface.playBackByTime(int session, int cha, DateTime start, DateTime end, IntPtr handle, PlayBackEvent iPlayBack) { int result; // 播放信息的对象 CHCNetSDK.NET_DVR_VOD_PARA struVodPara = new CHCNetSDK.NET_DVR_VOD_PARA(); struVodPara.dwSize = (uint)Marshal.SizeOf(struVodPara); struVodPara.struIDInfo.dwChannel = (uint)cha; struVodPara.hWnd = handle; // 开始时间 struVodPara.struBeginTime.dwYear = (uint)start.Year; struVodPara.struBeginTime.dwMonth = (uint)start.Month; struVodPara.struBeginTime.dwDay = (uint)start.Day; struVodPara.struBeginTime.dwHour = (uint)start.Hour; struVodPara.struBeginTime.dwMinute = (uint)start.Minute; struVodPara.struBeginTime.dwSecond = (uint)start.Second; // 结束时间 struVodPara.struEndTime.dwYear = (uint)end.Year; struVodPara.struEndTime.dwMonth = (uint)end.Month; struVodPara.struEndTime.dwDay = (uint)end.Day; struVodPara.struEndTime.dwHour = (uint)end.Hour; struVodPara.struEndTime.dwMinute = (uint)end.Minute; struVodPara.struEndTime.dwSecond = (uint)end.Second; result = CHCNetSDK.NET_DVR_PlayBackByTime_V40(session - 1, ref struVodPara); if (result == -1) { // 播放失败 return(0); } else { // 播放成功 PlayBackCtlBlock ctlBlack = new PlayBackCtlBlock(); ctlBlack.session = result + 1; ctlBlack.start = start; ctlBlack.end = end; ctlBlack.even = iPlayBack; playBackBlocks.Add(result + 1, ctlBlack); return(result + 1); } }