public static string GetTimeText(int value, FrameRate frameRate) { int frameRateInt = (int)frameRate.GetAttribute <DefaultValueAttribute>().Value; int frame = value % frameRateInt; int second = value / frameRateInt; int minute = second / 60; int hour = minute / 60; second -= minute * 60; minute -= hour * 60; return($"{hour.ToString("00")}:{minute.ToString("00")}:{second.ToString("00")};{frame}"); }
public static TimeSpan FrameToTimeSpan(int frame, FrameRate frameRate) { int fr = (int)frameRate.GetAttribute <DefaultValueAttribute>().Value; return(TimeSpan.FromSeconds((int)Math.Truncate((double)frame / fr)) + TimeSpan.FromMilliseconds((1000 / fr) * (frame % fr))); }
public static int TimeSpanToFrame(TimeSpan span, FrameRate frame) { int fr = (int)frame.GetAttribute <DefaultValueAttribute>().Value; return(((int)Math.Truncate((span.TotalMilliseconds / 1000)) * fr) + (int)(fr * ((span.TotalMilliseconds % 1000) / 1000))); }
/// <summary> /// FrameRate가 가지고 있는 Int 값를 가져옵니다. /// </summary> /// <param name="frameRate"></param> /// <returns></returns> public static int ToInt32(this FrameRate frameRate) { return((int)frameRate.GetAttribute <DefaultValueAttribute>().Value); }