/// <summary> /// 根据进度时间值,获取当前需要执行的点的索引 /// </summary> /// <param name="f"></param> /// <param name="accuracy">精确度:时间相差accuracy秒</param> public override int GetCompareTime(double f, float accuracy = 0.1f) { DateTime startTimeT = LocationHistoryUITool.GetStartTime(); ////相匹配的第一个元素,结果为-1表示没找到 //return PosInfoList.FindIndex((item) => //{ // double timeT = (item.Time - startTimeT).TotalSeconds; // if (Math.Abs(f - timeT) < accuracy) // { // return true; // } // else // { // return false; // } //}); return(PosInfoList.FindIndexByTime(startTimeT, f, accuracy)); }
/// <summary> /// 获取离它最近的下一个播放点 /// </summary> public override int GetNextPoint(float value) { double f = timeLength * value; //DateTime startTimeT = MultHistoryPlayUI.Instance.GetStartTime(); DateTime startTimeT = LocationHistoryUITool.GetStartTime(); //相匹配的第一个元素,结果为-1表示没找到 return(PosInfoList.FindIndex((item) => { double timeT = (item.Time - startTimeT).TotalSeconds; if (timeT > f) { return true; } else { return false; } })); }