示例#1
0
 /// <summary>
 /// 获取某索引文件中指定时间点索引信息
 /// </summary>
 /// <param name="fileName">索引文件地址</param>
 /// <param name="time">查找时间</param>
 /// <returns>该索引文件中指定时间点的索引信息</returns>
 public static IndexesPacket GetIndexesPacket(string fileName, DateTime time)
 {
     try
     {
         return(GetIndexesPackets(fileName).FirstOrDefault(_ => TimePeriodManager.IsValid(_, time)));
     }
     catch (Exception ex) {
         Console.WriteLine(ex);
     }
     return(null);
 }
示例#2
0
        /// <summary>
        /// 获取某文件夹下某段时间内首个视频头文件
        /// </summary>
        /// <param name="folder">文件夹路径</param>
        /// <param name="beginTime">起始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <returns>视频头</returns>
        public static StreamPacket GetVideoHeader(string folder, DateTime beginTime, DateTime endTime)
        {
            StreamPacket header = null;

            string[] files = GetIndexesFiles(folder);
            if (files.Length > 0)
            {
                TimePeriodPacket   validTi = new TimePeriodPacket(beginTime, endTime);
                TimePeriodPacket[] tis     = FolderManager.GetTimePeriods(folder);
                if (TimePeriodManager.GetIntersections(tis, validTi).Length != 0)
                {
                    foreach (var file in files)
                    {
                        header = FileManager.GetVideoHeader(GlobalProcess.GetRecFileName(file));
                        if (header != null)
                        {
                            break;
                        }
                    }
                }
            }
            return(header);
        }