Hogyan kell játszani a videót WPF MediaElement egy konzol alkalmazás

szavazat
2

Van egy konzolos alkalmazás, amely hivatkozik a WPF DLL-ek. Azt példányai és megpróbált játszani egy videót MediaElement de nem kilőni semmilyen eseményeket. Ami talán azt jelenti, hogy nem játszik a videót. A következőkben a kódot írtam:

class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            var element = new MediaElement();
            element.BeginInit();
            element.Source = new Uri(Wildlife.wmv, UriKind.RelativeOrAbsolute);
            element.EndInit();
            element.LoadedBehavior = element.UnloadedBehavior = MediaState.Manual;
            element.MediaOpened += new RoutedEventHandler(MediaElement_MediaOpened);
            element.Play();
            Console.ReadLine();
        }

        static void MediaElement_MediaOpened(object sender, RoutedEventArgs e)
        {
            Console.WriteLine(Media opened);
        }
    }

Elvárom „média nyitott” írandó konzol. Tökéletesen működik, a WPF alkalmazást. Mit csinálok rosszul van?

Én a WPF 4.0

EDIT: Felhívjuk figyelmét, nem vagyok érdekelt a videó kimenet. Tudom példányosíthatnánk egy ablak és a terhelés a videót, hogy de ez nem az, amit én akarok. Csak azt akarom, hogy miért nem ezt a kódrészletet működik?

Megjegyzés: A WPF ha végre ugyanazokat a sorokat Window_Load anélkül, hogy a WPF elem vizuális fa; Nem kap az esemény tüzelt. Ez nem arról elem egy bedugva vizuális fa. Van valami más, ami szükséges nem vagyok benne biztos, hogy mi ez.

A kérdést 12/06/2011 13:02
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
1

Ez egy bemutató, hogyan kell megnyitni a normális WPF ablak közvetlenül a PowerShell konzolt. Gondolom rendszeres konzol C # kódot viselkedik nagyjából ugyanaz.

Az érdekes része a következő:

$window = New-Object Windows.Window

$window.Title = $window.Content = “Hello World.  Check out PowerShell and WPF Together.”

$window.SizeToContent = “WidthAndHeight”

$null = $window.ShowDialog()

Meg kell nyitni egy új ablakot a párbeszédablak (egyébként meg kellett volna, hogy valahogy futtatni külön téma, azt hiszem.)

Ha nem szeretné, hogy egy ablak, akkor próbáld elrejtés után ShowDialog hívást, de nem hiszem, akkor képes lesz arra, hogy működjön együtt a konzol egyébként.

Válaszolt 12/06/2011 14:21
a forrás felhasználó

szavazat
2

A MediaElementvezérlő igényel Win32 üzenet hurok teljesítése érdekében tevékenységét . Anélkül, hogy egyik, hogy egyszerűen nem fog működni. Nem lesz az egyik az a konzol alkalmazás alapértelmezés szerint.

Az ok, hogy miért működik a Window.Loadrendezvény, mert van egy üzenet hurok fut részeként WPF alkalmazás. Ez független a „gyökereztető a vizuális fa”.

Ezért is @ mzabsky-oldatban PowerShell működik , mivel a Window.ShowDialogmódszer biztosítja üzenetet hurok van, hogy kezelni a Win32 üzeneteket.

Válaszolt 13/06/2011 13:14
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more