【WPF知识积累】MediaElement在windows7上双显示器播放的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w815878564/article/details/55565985

当系统接入了多个显示器,而我们的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

猜你喜欢

转载自blog.csdn.net/w815878564/article/details/55565985