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