在我的应用程序中,我有fullscreen MediaElement
可以再现全屏视频。
当我暂停视频时,我无法恢复它(with MediaElement1.Play())
,因为只有音频恢复。
似乎视频没有正确重绘,因为我试图在它前面加button
并且如果我hold the button
(所以我想我强迫背景中的媒体元素重绘)
视频开始显示。
这似乎可以通过以下事实得到证实:
Application.Current.Host.Settings.EnableFrameRateCounter = true;
即使没有按钮利用,视频播放也能正常恢复。
如果有人可以提供帮助,我将非常感激。非常感谢阅读和评论。
答案 0 :(得分:1)
我以另一种方式解决了这个问题。 我注意到视频在单击“播放”按钮两次后恢复,所以我使用DispatcherTimer稍后再调用MyPlayer.Play()一次
DispatcherTimer dt = new DispatcherTimer();
public MainPage()
{
InitializeComponent();
dt.Interval = new TimeSpan(0, 0, 0, 1);
dt.Tick += new EventHandler(Ticked);
}
private void Ticked(object sender, EventArgs e)
{
MyPlayer.Play();
dt.Stop();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
MyPlayer.Play();
dt.Start();
}
答案 1 :(得分:0)
我找到了一个可能的,丑陋的解决方法:
video_timer = new System.Threading.Timer(x=>refresh_video(), null, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(1 / 60.0));
private void refresh_video()
{
Dispatcher.BeginInvoke(delegate() { MediaElement1.InvalidateArrange(); });
}
因为它可行,所以我会选择这个,但我真的很喜欢更好的解决方案。