WPF MediaElement控件在Windows 8中无法播放.wmv视频。

3
我在使用WPF MediaElement播放视频时遇到了问题,这个问题出现在Windows 8系统上。由于MediaElement控件依赖于Windows Media Player,我尝试在Win 8上使用WMP播放视频,发现它可以正常播放,因此似乎不是编解码器的问题。我的目前理论是它与WMP有关,而不是需要对代码进行更改。非常感谢您的帮助!
以下是我制作的一个测试应用程序,也存在同样的问题;它在Windows 7上运行得很好(在单击时加载黑屏视频),但在Windows 8上无法播放(白屏且没有互动)。在我得出结论之前,我尝试了几种不同的方法来加载视频,但最终结果都是一样的。如果您想看到这个问题本身(实际上,只要知道它是否只是我的Windows 8机器就非常有帮助),这是一个相当小的WPF应用程序,任何WMV格式的视频都可以工作。
C#:
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        bool opened = false;
        var mre = new ManualResetEvent(false);


        currentMediaElement.BeginInit();
        currentMediaElement.Source = new Uri("Video.wmv", UriKind.RelativeOrAbsolute);
        currentMediaElement.EndInit();
        currentMediaElement.LoadedBehavior = currentMediaElement.UnloadedBehavior = MediaState.Manual;
        currentMediaElement.MediaOpened += delegate
        {

            opened = true;
            mre.Set();
        };
        currentMediaElement.Stop();

        mre.WaitOne(5000);
    }

    private void currentMediaElement_MouseDown(object sender, MouseButtonEventArgs e)
    {
        currentMediaElement.Play();
    }
}

XAML:
<Window x:Class="TestApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        <MediaElement Name="currentMediaElement" MouseDown="currentMediaElement_MouseDown"></MediaElement>
    </Grid>
</Window>
3个回答

2

事实证明,这可能是因为我们公司使用的Windows 8镜像或者他们使用远程桌面连接进行测试。如果你遇到了这个问题,我建议尝试更改测试环境!


我曾经遇到过同样的问题。那是因为我在远程机器上进行测试。 - Jaynesh Shah

1
如果您的MediaElement仍然无法正常工作,请尝试更新您的NVDIA驱动程序。更新NVDIA驱动程序后,重新启动即可使.wmv视频再次正常工作!

0

我在使用 Windows 8.1 时遇到了同样的问题。我在网上搜索了几个小时,但没有找到解决方法。后来我偶然看到了这个 StackOverflow 的问题,以及这篇文章:https://social.msdn.microsoft.com/Forums/en-US/d859208a-0fe9-41d2-b3b2-3ce3a0527c0f/wpf-media-element-is-not-playing-videos-in-xp-but-it-is-playing-in-vista?forum=wpf

以下是引用(已加粗):

只有当目标计算机安装了 Windows Media Player 10 或更高版本时,MediaElementMediaPlayer 才能正常工作。

这在某个地方点亮了一个灯泡。我通过进入程序和功能[appwiz.cpl]>打开或关闭Windows功能,然后在媒体功能文件夹下启用Windows Media Player来解决了这个问题。

MediaElement组件现在实际上正在播放视频,就像它应该的那样(无需重新启动)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接