/// <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); }
/// <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); }