Silverlight MediaElement位置奇怪的行为

时间:2011-07-30 04:24:11

标签: silverlight

我正在尝试在SL中进行逐帧导航。 到目前为止,我已经成功地使用Ticks。 但我注意到,如果我在媒体元素位置添加常量刻度,然后删除相同的刻度值,我会得到不同的位置。

例如:

MoviePlayer.Position = MoviePlayer.Position.Add(getFrameDuration());
var X = MoviePlayer.Position.Ticks;
MoviePlayer.Position = MoviePlayer.Position.Substract(getFrameDuration());
var Y = MoviePlayer.Position.Ticks;

X不等于Y.

这怎么可能?

private TimeSpan getFrameDuration()
{
    return new TimeSpan((int)Math.Round(1000 / 29.97* 10000));
}

1 个答案:

答案 0 :(得分:0)

要获得一个好的答案,您需要发布getFrameDuration方法的代码。

我敢打赌getFrameDuration()会返回0

修改

From the documentation

  

如果媒体不支持搜索操作(情况就是如此)   直播流媒体),设置此属性将不起作用   媒体播放。在尝试设置之前检查CanSeek的值   位置。

     

如果Position可设置,则以下运行时值约束   适用:

     

如果“位置”设置为负值,则该值将恢复为a   TimeSpan,值为0:0:0。

     

如果将Position设置为大于媒体的NaturalDuration的值,   然后将NaturalDuration设置为Position