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