Exemple #1
0
        /// <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);
        }
Exemple #2
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));
        }