Windows8ボックスでWPFMediaElementを使用してビデオを再生するのに問題があります。MediaElementコントロールはWindowsMediaPlayerに依存しているため、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>