3

我无法在 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>
4

3 回答 3

2

事实证明,要么是我公司使用的 Windows 8 映像,要么是他们使用远程桌面连接进行测试。如果您遇到此问题,我建议您尝试更改测试环境!

于 2012-11-19T06:43:29.533 回答
1

如果您的 MediaElement 仍然无法根据上述建议工作。我通过更新我的 NVDIA 驱动程序让 MediaElement 正常工作,更新 NVDIA 驱动程序然后重新启动并让我的 .wmv 视频再次正常工作!

于 2016-03-04T17:09:42.990 回答
0

与Windows 8.1有同样的问题。我在网上搜索了几个小时,但无济于事。我偶然发现了这个StackOverflow问题,还有这篇文章:https ://social.msdn.microsoft.com/Forums/en-US/d859208a-0fe9-41d2-b3b2-3ce3a0527c0f/wpf-media-element-is-not-在 xp 中播放视频,但在 vista 中播放?forum=wpf

引用(强调):

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

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

MediaElement组件现在实际上正在播放视频,因为它应该(无需重新启动)。

于 2015-06-14T14:38:51.130 回答