我正在尝试在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));
}
答案 0 :(得分:0)
要获得一个好的答案,您需要发布getFrameDuration
方法的代码。
我敢打赌getFrameDuration()会返回0
。
修改强>
如果媒体不支持搜索操作(情况就是如此) 直播流媒体),设置此属性将不起作用 媒体播放。在尝试设置之前检查CanSeek的值 位置。
如果Position可设置,则以下运行时值约束 适用:
如果“位置”设置为负值,则该值将恢复为a TimeSpan,值为0:0:0。
如果将Position设置为大于媒体的NaturalDuration的值, 然后将NaturalDuration设置为Position