问题描述
要求是创建一个快进按钮,可以连续转发视频。我通过在视频快进时添加时间跨度来使用位置属性。在手动转发时(单击单击),对于每个按钮单击,它会按时间跨度 amt 执行和媒体移动。问题是如果我多次点击快进按钮(大约 10 次),媒体就会冻结。还有一个搜索栏,可以继续前进而没有问题。但是媒体元素会冻结。
XAML
<MediaElement x:Name="Mediaelement" LoadedBehavior="Manual" ScrubbingEnabled="True" MediaOpened="MediaOpened" UnloadedBehavior="Manual" Source="{Binding MediaFile}"/>
视图模型中的代码
private void FastForward()
{
Mediaelement.Position += TimeSpan.FromMilliseconds(100);
}
我还尝试使用以下代码模拟连续前进。但这也会导致在几次(~10)帧移动后帧冻结
代码:
private async void FastForward()
{
do
{
Mediaelement.Position += TimeSpan.FromMilliseconds(100);
await Task.Delay(1000);
} while (MediaelementPosition < Mediaelement.NaturalDuration.TimeSpan);
}
我确实使用 dispatcherTimer 和 TimerTick 将搜索器/进度条与媒体元素同步。这工作正常,但不确定这是否对帧冻结有任何影响。
帧在结尾或开头没有冻结。它发生在下一帧应该出现的中间。我也有按预期工作的播放和暂停功能。 任何建议/指导将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)