예제 #1
0
        //按时间获取录像文件,存储在本地
        public IntPtr DownloadVideoFileByTime(IntPtr m_LoginID, int channelID, DateTime startTime, DateTime endTime, string FileName)
        {
            //set stream type 设置码流类型
            EM_STREAM_TYPE streamType = EM_STREAM_TYPE.MAIN;
            IntPtr         pStream    = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(int)));

            Marshal.StructureToPtr((int)streamType, pStream, true);
            NETClient.SetDeviceMode(m_LoginID, EM_USEDEV_MODE.RECORD_STREAM_TYPE, pStream);
            //调用下载API
            m_DownloadID = NETClient.DownloadByTime(m_LoginID, channelID, EM_QUERY_RECORD_TYPE.ALL, startTime, endTime, FileName, m_DownloadPosCallBack, IntPtr.Zero, null, IntPtr.Zero, IntPtr.Zero);
            return(m_DownloadID);
        }
예제 #2
0
        /// <summary>
        /// 查询指定时间录像文件,,返回文件数量
        /// </summary>
        /// <param name="m_LoginID"></param>
        /// <param name="channelID"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="FileName"></param>
        /// <returns></returns>
        public int QueryRecordFile(IntPtr m_LoginID, int channelID, DateTime startTime, DateTime endTime)
        {
            NET_RECORDFILE_INFO[] infos = new NET_RECORDFILE_INFO[5000];
            int fileCount = 0;//返回文件数量
            //set stream type 设置码流类型
            EM_STREAM_TYPE streamType = EM_STREAM_TYPE.AUTO;
            IntPtr         pStream    = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(int)));

            Marshal.StructureToPtr((int)streamType, pStream, true);
            NETClient.SetDeviceMode(m_LoginID, EM_USEDEV_MODE.RECORD_STREAM_TYPE, pStream);
            //query record file 查询录像文件
            bool ret = NETClient.QueryRecordFile(m_LoginID, channelID, EM_QUERY_RECORD_TYPE.ALL, startTime, endTime, null, ref infos, ref fileCount, m_WaitTime, false);

            Thread.Sleep(500);
            if (false == ret)
            {
                return(-1);//标示查询失败;
            }
            else
            {
                return(fileCount);
            }
        }