3

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>
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でも同じ問題がありました。何時間も Web を検索しましたが、役に立ちませんでした。私はこのStackOverflowの質問と、この投稿にも出くわしました: playing-videos-in-xp-but-it-is-playing-in-vista?forum=wpf

引用(強調を追加):

...ターゲット マシンにWindows Media Player 10以上が インストールされている場合にのみ、MediaElementMediaPlayerが正常に動作します。

それがどこかの電球を照らした。Programs and Features[ appwiz.cpl ]に移動し、Media FeaturesフォルダーでWindows Media Player> Turn Windows features on or offを有効にして問題を解決しました。

MediaElementコンポーネントは実際に動画を再生してます (再起動する必要はありません)。

于 2015-06-14T14:38:51.130 に答える