我无法在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>
答案 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 组件现在实际上正在播放视频(不需要重启)。