コード例 #1
0
 /// <summary>
 /// 播放海康的回放
 /// </summary>
 /// <param name="_iLoginHandle">登录句柄</param>
 /// <param name="_sEndTime">结束时间</param>
 /// <param name="_sStartTime">开始时间</param>
 public void StartPlayHik(int _iLoginHandle, string _sStartTime, string _sEndTime, int _iChannel)
 {
     if (!m_bIsConnect)
     {
         m_iChannel     = _iChannel;
         m_iLoginHandle = _iLoginHandle;
         //录像回放的参数
         CHCNetSDK.NET_DVR_VOD_PARA oHikLoginInfo = new CHCNetSDK.NET_DVR_VOD_PARA();
         oHikLoginInfo.struIDInfo           = new CHCNetSDK.NET_DVR_STREAM_INFO();
         oHikLoginInfo.dwSize               = (uint)Marshal.SizeOf(oHikLoginInfo); //结构体大小
         oHikLoginInfo.struIDInfo.dwChannel = (uint)m_iChannel;
         oHikLoginInfo.struBeginTime        = GetTimeObjectHik(_sStartTime);       //开始播放的时间
         oHikLoginInfo.struEndTime          = GetTimeObjectHik(_sEndTime);         //结束播放的时间
         oHikLoginInfo.hWnd = ucSinglePanle.Handle;                                //播放窗口句柄
         m_iPlayHandle      = CHCNetSDK.NET_DVR_PlayBackByTime_V40(m_iLoginHandle, ref oHikLoginInfo);
         //CHCNetSDK.NET_DVR_TIME oStartTime = GetTimeObjectHik(_sStartTime);
         //CHCNetSDK.NET_DVR_TIME oEndTime = GetTimeObjectHik(_sEndTime);
         //CHCNetSDK.NET_DVR_TIME oStartTime = GetTimeObjectHik(_sStartTime);
         //CHCNetSDK.NET_DVR_TIME oEndTime = GetTimeObjectHik(_sEndTime);
         //m_iPlayHandle = CHCNetSDK.NET_DVR_PlayBackByTime(m_iLoginHandle, m_iChannel, ref oStartTime, ref oEndTime, ucSinglePanle.Handle);
         uint a = CHCNetSDK.NET_DVR_GetLastError();
         if (m_iPlayHandle != -1)
         {
             //播放录像
             PlayControlHik(EHikControlInfo.NET_DVR_PLAYSTART);
             m_bIsConnect = true;
         }
     }
 }
コード例 #2
0
        private CHCNetSDK.NET_DVR_VOD_PARA CreateVideoPlayParameter(DateTime beginTime, DateTime endTime)
        {
            CHCNetSDK.NET_DVR_VOD_PARA struVodPara = new CHCNetSDK.NET_DVR_VOD_PARA();
            struVodPara.dwSize = (UInt32)Marshal.SizeOf(struVodPara);
            struVodPara.struIDInfo.dwChannel = (UInt32)_channelNo; //通道号
            struVodPara.hWnd = _hPlayWnd;                          //回放窗口句柄

            //设置回放的开始时间 Set the starting time to search video files
            struVodPara.struBeginTime.dwYear   = (UInt32)beginTime.Year;
            struVodPara.struBeginTime.dwMonth  = (UInt32)beginTime.Month;
            struVodPara.struBeginTime.dwDay    = (UInt32)beginTime.Day;
            struVodPara.struBeginTime.dwHour   = (UInt32)beginTime.Hour;
            struVodPara.struBeginTime.dwMinute = (UInt32)beginTime.Minute;
            struVodPara.struBeginTime.dwSecond = (UInt32)beginTime.Second;

            //设置回放的结束时间 Set the stopping time to search video files
            struVodPara.struEndTime.dwYear   = (UInt32)endTime.Year;
            struVodPara.struEndTime.dwMonth  = (UInt32)endTime.Month;
            struVodPara.struEndTime.dwDay    = (UInt32)endTime.Day;
            struVodPara.struEndTime.dwHour   = (UInt32)endTime.Hour;
            struVodPara.struEndTime.dwMinute = (UInt32)endTime.Minute;
            struVodPara.struEndTime.dwSecond = (UInt32)endTime.Second;

            return(struVodPara);
        }
コード例 #3
0
        private void chongbo()
        {
            this.Invoke((EventHandler) delegate
            {
                CHCNetSDK.NET_DVR_VOD_PARA struVodPara = new CHCNetSDK.NET_DVR_VOD_PARA();
                //struVodPara.dwSize = (uint)Marshal.SizeOf(struVodPara);
                if (mytongdao <= 0)
                {
                    return;
                }
                struVodPara.struIDInfo.dwChannel = (uint)iChannelNum[(int)(mytongdao - 1)]; //通道号 Channel number
                struVodPara.hWnd      = pictureBox1.Handle;                                 //回放窗口句柄
                DateTime nowstarttime = mystarttime.AddSeconds(-10);

                //设置回放的开始时间 Set the starting time to search video files
                struVodPara.struBeginTime.dwYear   = (uint)nowstarttime.Year;
                struVodPara.struBeginTime.dwMonth  = (uint)nowstarttime.Month;
                struVodPara.struBeginTime.dwDay    = (uint)nowstarttime.Day;
                struVodPara.struBeginTime.dwHour   = (uint)nowstarttime.Hour;
                struVodPara.struBeginTime.dwMinute = (uint)nowstarttime.Minute;
                struVodPara.struBeginTime.dwSecond = (uint)nowstarttime.Second;

                //设置回放的结束时间 Set the stopping time to search video files
                struVodPara.struEndTime.dwYear   = (uint)mystarttime.Year;
                struVodPara.struEndTime.dwMonth  = (uint)mystarttime.Month;
                struVodPara.struEndTime.dwDay    = (uint)mystarttime.Day;
                struVodPara.struEndTime.dwHour   = (uint)mystarttime.Hour;
                struVodPara.struEndTime.dwMinute = (uint)mystarttime.Minute;
                struVodPara.struEndTime.dwSecond = (uint)mystarttime.Second;

                //按时间回放 Playback by time
                m_lPlayHandle = CHCNetSDK.NET_DVR_PlayBackByTime_V40(m_lUserID, ref struVodPara);
                if (m_lPlayHandle < 0)
                {
                    uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    string str    = "NET_DVR_PLAYSTART failed, error code= " + iLastErr; //回放控制失败,输出错误号
                    //MessageBox.Show(str);
                    //return;
                    //MessageBox.Show("回放错误!");
                    return;
                }

                uint iOutValue = 0;
                if (!CHCNetSDK.NET_DVR_PlayBackControl_V40(m_lPlayHandle, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue))
                {
                    uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    string str    = "NET_DVR_PLAYSTART failed, error code= " + iLastErr; //回放控制失败,输出错误号
                    // MessageBox.Show(str);
                    return;
                }
            });
            //timerPlayback.Interval = 1000;
            //timerPlayback.Enabled = true;
            //btnStopPlayback.Enabled = true;
        }
コード例 #4
0
ファイル: HK_NVR.cs プロジェクト: nangs/ry-rec-client
        /// <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);
            }
        }
コード例 #5
0
        public int StartReplayByTime(IntPtr screenHandle, string devIp, int devPort, string userName, string password, int channelNumber, DateTime beginTime, DateTime endTime)
        {
            int userId = -1;

            DevLoginModel devLoginModel = DeviceLogin(devIp, devPort, userName, password);

            if (devLoginModel != null)
            {
                userId = devLoginModel.LoginId;
            }

            if (userId < 0)
            {
                return(-1);
            }

            CHCNetSDK.NET_DVR_VOD_PARA struVodPara = new CHCNetSDK.NET_DVR_VOD_PARA();
            struVodPara.dwSize = (uint)Marshal.SizeOf(struVodPara);
            struVodPara.struIDInfo.dwChannel = (uint)channelNumber; //通道号 Channel number
            struVodPara.hWnd = screenHandle;                        //回放窗口句柄

            //设置回放的开始时间 Set the starting time to search video files
            struVodPara.struBeginTime = beginTime.ToHCDeviceTime();

            //设置回放的结束时间 Set the stopping time to search video files
            struVodPara.struEndTime = endTime.ToHCDeviceTime();

            //按时间回放 Playback by time
            int playHandle = CHCNetSDK.NET_DVR_PlayBackByTime_V40(userId, ref struVodPara);

            if (playHandle < 0)
            {
                uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                return(Math.Abs((int)iLastErr) * (-1));
            }

            uint iOutValue = 0;

            if (!CHCNetSDK.NET_DVR_PlayBackControl_V40(playHandle, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue))
            {
                uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                return(Math.Abs((int)iLastErr) * (-1));
            }

            return(playHandle);
        }
コード例 #6
0
        void delayPlay(int delayMinute)
        {
            CHCNetSDK.NET_DVR_VOD_PARA struVodPara = new CHCNetSDK.NET_DVR_VOD_PARA();
            struVodPara.dwSize = (uint)Marshal.SizeOf(struVodPara);
            struVodPara.struIDInfo.dwChannel = (uint)chanid; //通道号 Channel number
            struVodPara.hWnd = pictureBox.Handle;            //回放窗口句柄

            DateTime dt   = DateTime.Now;
            DateTime dt10 = dt.AddMinutes(-delayMinute);

            //设置回放的开始时间 Set the starting time to search video files
            struVodPara.struBeginTime.dwYear   = (uint)dt10.Year;
            struVodPara.struBeginTime.dwMonth  = (uint)dt10.Month;
            struVodPara.struBeginTime.dwDay    = (uint)dt10.Day;
            struVodPara.struBeginTime.dwHour   = (uint)dt10.Hour;
            struVodPara.struBeginTime.dwMinute = (uint)dt10.Minute;
            struVodPara.struBeginTime.dwSecond = (uint)dt10.Second;

            //设置回放的结束时间 Set the stopping time to search video files
            dt10 = dt.AddYears(1000);
            struVodPara.struEndTime.dwYear   = (uint)dt10.Year;
            struVodPara.struEndTime.dwMonth  = (uint)dt10.Month;
            struVodPara.struEndTime.dwDay    = (uint)dt10.Day;
            struVodPara.struEndTime.dwHour   = (uint)dt10.Hour;
            struVodPara.struEndTime.dwMinute = (uint)dt10.Minute;
            struVodPara.struEndTime.dwSecond = (uint)dt10.Second;


            int  m_lPlayHandle = CHCNetSDK.NET_DVR_PlayBackByTime_V40(userid, ref struVodPara);
            uint iLastErr;
            uint iOutValue = 0;

            if (!CHCNetSDK.NET_DVR_PlayBackControl_V40(m_lPlayHandle, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue))
            {
                iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                string str = "NET_DVR_PLAYSTART failed, error code= " + iLastErr; //回放控制失败,输出错误号
                MessageBox.Show(str);
                pictureBox.Dispose();
                return;
            }
        }
コード例 #7
0
 /// <summary>
 /// 播放海康的回放
 /// </summary>
 /// <param name="_iLoginHandle">登录句柄</param>
 /// <param name="_sEndTime">结束时间</param>
 /// <param name="_sStartTime">开始时间</param>
 /// <param name="iType">摄像机类型1.自己 2.海康</param>
 /// <param name="_iChannel">通道号</param>
 public void StartPlayHik(int _iLoginHandle, string _sStartTime, string _sEndTime,
                          int _iChannel, int iType)
 {
     m_iType        = iType;
     m_iChannel     = _iChannel;
     m_iLoginHandle = _iLoginHandle;
     //录像回放的参数
     CHCNetSDK.NET_DVR_VOD_PARA oHikLoginInfo = new CHCNetSDK.NET_DVR_VOD_PARA();
     oHikLoginInfo.struIDInfo           = new CHCNetSDK.NET_DVR_STREAM_INFO();
     oHikLoginInfo.dwSize               = (uint)Marshal.SizeOf(oHikLoginInfo); //结构体大小
     oHikLoginInfo.struIDInfo.dwChannel = (uint)m_iChannel;
     oHikLoginInfo.struBeginTime        = GetTimeObjectHik(_sStartTime);       //开始播放的时间
     oHikLoginInfo.struEndTime          = GetTimeObjectHik(_sEndTime);         //结束播放的时间
     oHikLoginInfo.hWnd = PanelFull.Handle;                                    //播放窗口句柄
     m_iHandle          = CHCNetSDK.NET_DVR_PlayBackByTime_V40(m_iLoginHandle, ref oHikLoginInfo);
     if (m_iHandle != -1)
     {
         //播放录像
         PlayControlHik(EHikControlInfo.NET_DVR_PLAYSTART);
     }
 }
コード例 #8
0
        private void btnPlaybackTime_Click(object sender, EventArgs e)
        {
            if (m_lPlayHandle >= 0)
            {
                //如果已经正在回放,先停止回放
                if (!CHCNetSDK.NET_DVR_StopPlayBack(m_lPlayHandle))
                {
                    iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    str      = "NET_DVR_StopPlayBack failed, error code= " + iLastErr;
                    MessageBox.Show(str);
                    return;
                }

                m_bReverse        = false;
                btnReverse.Text   = "Reverse";
                labelReverse.Text = "切换为倒放";

                m_bPause        = false;
                btnPause.Text   = "||";
                labelPause.Text = "暂停";

                m_lPlayHandle = -1;

                PlaybackprogressBar.Value = 0;
            }

            CHCNetSDK.NET_DVR_VOD_PARA struVodPara = new CHCNetSDK.NET_DVR_VOD_PARA();
            struVodPara.dwSize = (uint)Marshal.SizeOf(struVodPara);
            struVodPara.struIDInfo.dwChannel = (uint)iChannelNum[(int)iSelIndex]; //通道号 Channel number
            struVodPara.hWnd = VideoPlayWnd.Handle;                               //回放窗口句柄

            //设置回放的开始时间 Set the starting time to search video files
            struVodPara.struBeginTime.dwYear   = (uint)dateTimeStart.Value.Year;
            struVodPara.struBeginTime.dwMonth  = (uint)dateTimeStart.Value.Month;
            struVodPara.struBeginTime.dwDay    = (uint)dateTimeStart.Value.Day;
            struVodPara.struBeginTime.dwHour   = (uint)dateTimeStart.Value.Hour;
            struVodPara.struBeginTime.dwMinute = (uint)dateTimeStart.Value.Minute;
            struVodPara.struBeginTime.dwSecond = (uint)dateTimeStart.Value.Second;

            //设置回放的结束时间 Set the stopping time to search video files
            struVodPara.struEndTime.dwYear   = (uint)dateTimeEnd.Value.Year;
            struVodPara.struEndTime.dwMonth  = (uint)dateTimeEnd.Value.Month;
            struVodPara.struEndTime.dwDay    = (uint)dateTimeEnd.Value.Day;
            struVodPara.struEndTime.dwHour   = (uint)dateTimeEnd.Value.Hour;
            struVodPara.struEndTime.dwMinute = (uint)dateTimeEnd.Value.Minute;
            struVodPara.struEndTime.dwSecond = (uint)dateTimeEnd.Value.Second;

            //按时间回放 Playback by time
            m_lPlayHandle = CHCNetSDK.NET_DVR_PlayBackByTime_V40(m_lUserID, ref struVodPara);
            if (m_lPlayHandle < 0)
            {
                iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                str      = "NET_DVR_PlayBackByTime_V40 failed, error code= " + iLastErr;
                MessageBox.Show(str);
                return;
            }

            uint iOutValue = 0;

            if (!CHCNetSDK.NET_DVR_PlayBackControl_V40(m_lPlayHandle, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue))
            {
                iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                str      = "NET_DVR_PLAYSTART failed, error code= " + iLastErr; //回放控制失败,输出错误号
                MessageBox.Show(str);
                return;
            }
            timerPlayback.Interval  = 1000;
            timerPlayback.Enabled   = true;
            btnStopPlayback.Enabled = true;
        }
コード例 #9
0
ファイル: CameraPlayBackControl.cs プロジェクト: rcw0125/-
        /// <summary>
        /// 设置播放录像的时间段
        /// </summary>
        /// <param name="pStartTime">录像开始时间</param>
        /// <param name="pEndTime">录像结束时间</param>
        /// <returns></returns>
        public bool PlayByTime(DateTime pStartTime, DateTime pEndTime)
        {
            bool rtn = false;

            if (!_initSDK)
            {
                _initSDK = CHCNetSDK.NET_DVR_Init();
                VideoPlayBackLogger.Debug("按时间回放时,初始化设备。", _cameraCfg.Channel);
            }
            else
            {
                if (_playBackHandel >= 0)
                {
                    CHCNetSDK.NET_DVR_StopPlayBack(_playBackHandel);
                    VideoPlayBackLogger.Debug("按时间回放时,初始化设备。", _cameraCfg.Channel);
                    _playBackHandel = -1;
                }

                if (_userID >= 0)
                {
                    CHCNetSDK.NET_DVR_Logout(_userID);
                    VideoPlayBackLogger.Debug("按时间回放时,强制退出当前用户。", _cameraCfg.Channel);
                    _userID = -1;
                }
            }

            if (_initSDK)
            {
                CHCNetSDK.NET_DVR_DEVICEINFO_V30 DeviceInfo = new CHCNetSDK.NET_DVR_DEVICEINFO_V30();
                //登录设备
                VideoPlayBackLogger.Debug(string.Format("按时间回放时,登录设备。_cameraCfg.Ip={0},_cameraCfg.Port={1},_cameraCfg.UserName={2},_cameraCfg.PassWord={3}",
                                                        _cameraCfg.Ip, _cameraCfg.Port, _cameraCfg.UserName, _cameraCfg.PassWord), _cameraCfg.Channel);
                _userID = CHCNetSDK.NET_DVR_Login_V30(_cameraCfg.Ip, int.Parse(_cameraCfg.Port), _cameraCfg.UserName, _cameraCfg.PassWord, ref DeviceInfo);

                if (_userID >= 0)
                {
                    VideoPlayBackLogger.Debug("按时间回放时,登录成功。", _cameraCfg.Channel);

                    CHCNetSDK.NET_DVR_VOD_PARA tPara = new CHCNetSDK.NET_DVR_VOD_PARA();
                    tPara.dwSize = (uint)Marshal.SizeOf(tPara);
                    tPara.struIDInfo.dwChannel = uint.Parse((int.Parse(_cameraCfg.Channel) + (int)DeviceInfo.byStartDChan).ToString()); //通道号 Channel number
                    tPara.hWnd = _controlHandel;                                                                                        //回放窗口句柄
                    VideoPlayBackLogger.Debug("设置回放通道号 tPara.struIDInfo.dwChannel=" + tPara.struIDInfo.dwChannel, _cameraCfg.Channel);
                    //设置回放的开始时间
                    tPara.struBeginTime.dwYear   = (uint)pStartTime.Year;
                    tPara.struBeginTime.dwMonth  = (uint)pStartTime.Month;
                    tPara.struBeginTime.dwDay    = (uint)pStartTime.Day;
                    tPara.struBeginTime.dwHour   = (uint)pStartTime.Hour;
                    tPara.struBeginTime.dwMinute = (uint)pStartTime.Minute;
                    tPara.struBeginTime.dwSecond = (uint)pStartTime.Second;
                    VideoPlayBackLogger.Debug(string.Format("设置回放开始时间dwYear={0},dwMonth={1},dwDay={2},dwHour={3},dwMinute={4},dwSecond={5}",
                                                            pStartTime.Year, pStartTime.Month, pStartTime.Day, pStartTime.Hour, pStartTime.Minute, pStartTime.Second),
                                              _cameraCfg.Channel);


                    //设置回放的结束时间
                    tPara.struEndTime.dwYear   = (uint)pEndTime.Year;
                    tPara.struEndTime.dwMonth  = (uint)pEndTime.Month;
                    tPara.struEndTime.dwDay    = (uint)pEndTime.Day;
                    tPara.struEndTime.dwHour   = (uint)pEndTime.Hour;
                    tPara.struEndTime.dwMinute = (uint)pEndTime.Minute;
                    tPara.struEndTime.dwSecond = (uint)pEndTime.Second;
                    VideoPlayBackLogger.Debug(string.Format("设置回放结束时间dwYear={0},dwMonth={1},dwDay={2},dwHour={3},dwMinute={4},dwSecond={5}",
                                                            pEndTime.Year, pEndTime.Month, pEndTime.Day, pEndTime.Hour, pEndTime.Minute, pEndTime.Second),
                                              _cameraCfg.Channel);
                    _playBackHandel = CHCNetSDK.NET_DVR_PlayBackByTime_V40(_userID, ref tPara);
                    if (_playBackHandel < 0)
                    {
                        uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                        ShowMsg("回放初始化失败,错误编码=" + iLastErr);
                        VideoPlayBackLogger.Error("回放初始化失败,错误编码=" + iLastErr, _cameraCfg.Channel);
                    }
                    else
                    {
                        uint iOutValue = 0;
                        if (!CHCNetSDK.NET_DVR_PlayBackControl_V40(_playBackHandel, CHCNetSDK.NET_DVR_PLAYSTART, IntPtr.Zero, 0, IntPtr.Zero, ref iOutValue))
                        {
                            uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                            ShowMsg("启动回放失败,错误码:" + iLastErr);
                            VideoPlayBackLogger.Debug("启动回放失败,错误码:" + iLastErr, _cameraCfg.Channel);
                        }
                        else
                        {
                            _playbackTimer.Start();
                            VideoPlayBackLogger.Debug("开始按照时间段回放。", _cameraCfg.Channel);
                            //ShowMsg("启动定时器成功");
                            rtn = true;
                        }
                    }
                }
            }

            return(rtn);
        }
コード例 #10
0
        /// <summary>
        /// 鹰眼回放
        /// </summary>
        private void EaglePlayBack()
        {
            if (m_lPlayBackHandle != -1)
            {
                CHCNetSDK.NET_DVR_StopRealPlay(m_lPlayBackHandle);
                m_lPlayBackHandle = -1;
            }
            CHCNetSDK.NET_DVR_VOD_PARA struVodPara = new CHCNetSDK.NET_DVR_VOD_PARA();
            struVodPara.Init();
            if (m_iChanIndex > (g_struDeviceInfo[m_iDeviceIndex].iDeviceChanNum - 1) && (g_struDeviceInfo[m_iDeviceIndex].byMirrorChanNum) > 0)
            {
                m_iChanPlayBack = (uint)g_struDeviceInfo[m_iDeviceIndex].struMirrorChan[m_iChanIndex + 1 - g_struDeviceInfo[m_iDeviceIndex].wStartMirrorChanNo].iChannelNO;
            }
            else
            {
                m_iChanPlayBack = (uint)g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[m_iChanIndex].iChannelNO;
            }
            struVodPara.struBeginTime.dwYear   = dtStart.Year;
            struVodPara.struBeginTime.dwMonth  = dtStart.Month;
            struVodPara.struBeginTime.dwDay    = dtStart.Day;
            struVodPara.struBeginTime.dwHour   = dtStart.Hour;
            struVodPara.struBeginTime.dwMinute = dtStart.Minute;
            struVodPara.struBeginTime.dwSecond = dtStart.Second;
            struVodPara.struEndTime.dwYear     = dtEnd.Year;
            struVodPara.struEndTime.dwMonth    = dtEnd.Month;
            struVodPara.struEndTime.dwDay      = dtEnd.Day;
            struVodPara.struEndTime.dwHour     = dtEnd.Hour;
            struVodPara.struEndTime.dwMinute   = dtEnd.Minute;
            struVodPara.struEndTime.dwSecond   = dtEnd.Second;
            struVodPara.struIDInfo.dwChannel   = m_iChanPlayBack;
            struVodPara.hWnd = IntPtr.Zero;
            struVodPara.struIDInfo.dwSize = (uint)Marshal.SizeOf(struVodPara.struIDInfo);
            struVodPara.dwSize            = (uint)Marshal.SizeOf(struVodPara);
            m_lPlayBackHandle             = CHCNetSDK.NET_DVR_PlayBackByTime_V40((uint)m_lUserID, ref struVodPara);
            if (m_lPlayBackHandle == -1)
            {
                string strShow = null;
                strShow = string.Format("NET_DVR_PlayBackByTime_V40 ChanNum[" + m_iChanPlayBack + "]");
                MessageBox.Show(strShow);
                return;
            }
            m_StreamPlayMode        = 1;
            g_fPlayDataCallBack_V40 = new CHCNetSDK.PLAYDATACALLBACK_V40(PlayDataCallBack_V40);
            if (!CHCNetSDK.NET_DVR_SetPlayDataCallBack_V40(m_lPlayBackHandle, g_fPlayDataCallBack_V40, IntPtr.Zero))
            {
                //m_dwLastError = CHCNetSDK.NET_DVR_GetLastError();
                return;
            }
            uint dwTemp       = 0;
            int  dwFileOffset = 0;

            if (CHCNetSDK.NET_DVR_PlayBackControl(m_lPlayBackHandle, CHCNetSDK.NET_DVR_PLAYSTART, (uint)dwFileOffset, ref dwTemp))
            {
                SetPlayState();
                //strShow = string.Format("NET_DVR_PLAYSTART offset{0}", dwFileOffset);
                //g_formList.AddLog(m_iDeviceIndex, CHCNetSDK.OPERATION_SUCC_T, strShow);
            }
            else
            {
                //strShow = string.Format("NET_DVR_PLAYSTART offset{0}", dwFileOffset);
                //g_formList.AddLog(m_iDeviceIndex, CHCNetSDK.OPERATION_FAIL_T, strShow);
                CHCNetSDK.NET_DVR_StopPlayBack(m_lPlayBackHandle);
                m_lPlayBackHandle = -1;
                //g_formList.g_StringLanType(ref strShow, "回放失败!", "NET_DVR_PLAYSTART Failed!");
                //MessageBox.Show(strShow);
                return;
            }
            if (!TimerPlayBack.Enabled)
            {
                TimerPlayBack.Enabled = true;
            }
        }