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

时间:2012-11-06 02:40:32

标签: wpf video windows-8 mediaelement

我无法在Windows 8机器上使用WPF MediaElement播放视频。由于MediaElement控件依赖于Windows Media Player,我尝试在WMP中的Win 8盒子上播放视频并且播放正常,因此它似乎不是编解码器问题。我目前的理论是它与WMP有关,而不是我需要对代码做出的改变。任何帮助将不胜感激!

这是一个我嘲笑的测试应用程序也存在问题;它在Windows 7上运行得很好(加载一个黑屏,当你点击它时播放),但在win 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 个答案:

答案 0 :(得分:2)

原来它是我公司正在使用的Windows 8映像,或者是他们使用远程桌面连接进行测试的事实。如果您遇到此问题,我建议您尝试更改测试环境!

答案 1 :(得分:1)

如果您的MediaElement仍未使用上述建议。我通过更新我的NVDIA驱动程序来工作MediaElement,更新NVDIA驱动程序然后重新启动并重新启动我的.wmv视频再次工作!

答案 2 :(得分: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 或更高版本时   已安装 MediaElement MediaPlayer 可以正常运行。

在某处点亮了一个灯泡。我通过转到Programs and Features [ appwiz.cpl ] > Turn Windows features on or off,然后启用 Windows Media Player 解决了该问题在媒体功能文件夹下。

MediaElement 组件现在实际上正在播放视频(不需要重启)。