我有一個Keyframe
s的列表,它們只是TimeSpans的對象,而 是一個字段(類型long),它有自己的timeSpan的標記tempTicks
。 完整列表從Keyframe 1 - 7000.計算TimeSpan的ticks
幾乎每個關鍵幀都有一個比以前更大的時間戳。 我想抓住300-800的關鍵幀,我想給他們 一個新的TimeSpan從0開始。
List<Keyframe> region = new List<Keyframe>();
long highestTicks = 0;
long durationTicks = 0; //Stores the whole duration of this new region
//beginFrame and endFrame are 300 and 800
for (int i = beginFrame; i < endFrame; i += 1)
{
//Clip is the full list of keyframes
Keyframe k = clip.Keyframes[i];
if (region.Count < 1)
{
k.Time = TimeSpan.FromTicks(0);
}
else
{
//This is the trouble-part
if (k.Time.Ticks > highestTicks)
{
highestTicks = k.Time.Ticks;
k.Time =
TimeSpan.FromTicks(highestTicks - region[region.Count -1].tempTicks);
}
}
durationTicks += k.Time.Ticks;
region.Add(k);
}
我沒有把它們全部正確地這樣。 你明白爲什麼了嗎?
示例:拍攝喜愛的電影場景。您希望以媒體播放器中的場景從0:00開始,而不是從87:00開始的方式導出場景。
你的問題對我來說不是很清楚......你開始談論擁有時間跨度,然後開始引用時間戳。這兩者非常不同。時間跨度測量持續時間(即兩點之間),時間戳是單個時間點。是的,你只是在談論改變300-800的時間戳到0-500之間的任何東西?可能值得給出一些前後值的例子,以明確你想要的東西...... – Chris 2013-04-22 22:49:20
也許時間跨度不是幀之間的時間,而是每幀從零開始的時間。 – 2013-04-22 22:52:45
Sry Chris。我的意思是timeSpans。例如:現在在我的問題。 @Steve:時間跨度是相對於時間線 – 2013-04-22 22:53:37