当系统接入了多个显示器,而我们的Window又位于非主屏幕,可能会出现MediaElement无法正常工作的情况(这个情况在windows7有,windows10已经修复了,windows8和8.1不太清楚)。大概的解决办法有下面几种: 1、使用CPU进行解码计算,代码如下
PRivate void Window_Loaded(object sender, RoutedEventArgs e){ var hwndSource = PresentationSource.FromVisual(this) as HwndSource; if (hwndSource != null) { var hwndTarget = hwndSource.CompositionTarget; if (hwndTarget != null) hwndTarget.RenderMode = RenderMode.SoftwareOnly; }}2、让位于副屏幕的windows挪一下位置,在主屏幕上一个像素就行了,代码如下:
this.Left = bounds.Left - 1;this.Width = bounds.Width;this.Top = bounds.Top;this.Height = bounds.Height;3、使用其他播放器,比如vlc或者ffmpeg。关于vlc的播放器,可以使用这个开源的播放器框架:Meta.Vlc
新闻热点
疑难解答