/// <summary> /// 回放控制 /// </summary> /// <param name="session"></param> /// <param name="cmd"></param> /// <param name="parm"></param> /// <returns></returns> int NvrInterface.playBackCtl(int session, PLAY_BACK_CMD cmd, Object parm) { uint iOutValue = 0; switch (cmd) { case PLAY_BACK_CMD.START: // 播放 CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue); break; case PLAY_BACK_CMD.PAUSE: // 暂停 CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYPAUSE, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue); break; case PLAY_BACK_CMD.RESUME: // 恢复 CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYRESTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue); break; case PLAY_BACK_CMD.POSITION: // 定位 DateTime pTime = (DateTime)parm; CHCNetSDK.NET_DVR_TIME pTimeS = new CHCNetSDK.NET_DVR_TIME(); uint inSize = (uint)Marshal.SizeOf(pTimeS); pTimeS.dwYear = (uint)pTime.Year; pTimeS.dwMonth = (uint)pTime.Month; pTimeS.dwDay = (uint)pTime.Day; pTimeS.dwHour = (uint)pTime.Hour; pTimeS.dwMinute = (uint)pTime.Minute; pTimeS.dwSecond = (uint)pTime.Second; IntPtr buffer = Marshal.AllocHGlobal(Marshal.SizeOf(pTimeS)); Marshal.StructureToPtr(pTimeS, buffer, false); CHCNetSDK.NET_DVR_PlayBackControl_V40(session - 1, CHCNetSDK.NET_DVR_PLAYSETTIME, buffer, inSize, IntPtr.Zero, ref iOutValue); Marshal.FreeHGlobal(buffer); break; } return(0); }
public int playBackCtl(int nvr, int session, PLAY_BACK_CMD cmd, Object parm) { 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.playBackCtl(session, cmd, parm)); }