我有一个MediaElement,它错误地、奇怪地报告了它的立场,但却是一贯的。当它到达音频的最后一秒时(它总是最后一秒钟,不管声音是2秒还是10秒),它在结束之前不会更新它的位置。
示例输出:
播放进度:0/3.990-0回放
进度: 0.01/3.99 -0回放
进度: 0.03/3.99 -0回放
进度: 0.06/3.99 -1回放
进度: 0.07/3.99 -1回放
进度: 0.08/3.99 -2回放
进度: 0.11/3.99 -2回放
进度: 0.14/3.99 -3回放
进度: 0.19/3.99 -4回放
进度: 0.23/3.99 -5回放
进度: 0.25/3.99 -6回放
进度: 0.28/3.99 -7回放
进展: 0.3/3.99 -7回放
狙击
回放进度: 2.8/3.99 - 70
回放进度: 2.83/3.99 - 70
播放进度: 2.88/3.99 - 72
播放进度: 2.9/3.99 - 72
播放进度: 2.91/3.99 - 72
回放进度: 2.92/3.99 - 73
播放进度: 2.99/3.99 - 74
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3/3.99 - 75
播放进度: 3.99/3.99 - 100
这是由于:
WriteLine("Playback Progress: " + Position + "/" + LengthInSeconds + " - " + (int)((Position / LengthInSeconds) * 100));
public double Position
{
get
{
return my_media_element != null ? my_media_element.Position.TotalSeconds : 0;
}
}
public double LengthInSeconds
{
get
{
return my_media_element != null ? my_media_element.NaturalDuration.TimeSpan.TotalSeconds : 0;
}
}
有人知道为什么会发生这种事吗?
发布于 2010-06-18 03:18:48
Silverlight中的位置属性具有“夹紧”效应,可以导致这种情况,以防止试图说出最后1s的内容。
不幸的是,没有简单的修复AFAIK。
https://stackoverflow.com/questions/3065873
复制相似问题