Mithilfe der MediaElement zu spielen, video-Stream aus
Ist es möglich, die WPF-MediaElement zu spielen, streaming-video von einem System.IO.Stream-Objekt? Das Stream-Objekt abgerufen wird, die von einem WCF-Dienst, speichert die media-Dateien.
InformationsquelleAutor rafale | 2011-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
WENN du die WCF-liefern die Medien-Objekt über eine
http-URL (GET)
dann können Sie geben Sie einfach die URL zumMediaElement.Source
Eigenschaft - siehe http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement.source.aspx.Fällen, in denen eine solche URL ist nicht verfügbar/möglich:
Zuweisen einer Stream ist derzeit nicht möglich - es gibt zwar einige hacks, die das möglich machen, für einen DirectShow-basierten Beispiel sehen http://social.msdn.microsoft.com/forums/en-US/wpf/thread/6191ef1a-0010-4294-a5b4-451bbadca33a/ und http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/15/WPF-Hackery-Part-I.aspx .
Eine andere option wäre, irgendwie Gastgeber der
Silverlight MediaElement
und verwenden Sie dieSetSource
Methode, die einen Strom-und spielen Sie es... siehe http://silverlightviewport.codeplex.com/SourceControl/list/changesets und http://msdn.microsoft.com/en-us/library/cc190669%28v=vs.95%29.aspxInformationsquelleAutor Yahia
Könnte es zu spät sein, hoffentlich helfen könnte, wenn Sie noch auf der Suche nach einer Antwort.
Ja du kannst das video aus dem Speicher-stream mit WPF-media-element.
Benutzt habe ich eine Dritte Komponente namens boxed-app, Eine Millionen Dank BoxedApp - http://www.boxedapp.com/boxedappsdk/
Ich das update den code ein kleines bisschen, um es Arbeit für byte[]. Kopieren Sie die unten Konstruktor CustomFileStream Klasse aus BoxedApp
Eine wpf-Anwendung erstellen und hinzufügen von Medien-element und einem button und kopieren Sie den code unten
- für Box-app, Folgen Sie bitte den Proben und das ist es.. du bist in einer glücklichen Welt...
Es ist die gleiche Sache, für die QT-Player als auch.
Basierend auf der Antwort, die ich ' ll fügen Sie ein vollständiges Beispiel, wenn die Informationen nicht ausreichend.
Happy coding....
InformationsquelleAutor user1108125
Bevor jemand Abfällen Stunden zu finden, diese für sich selbst: es ist unmöglich, die host für die Silverlight-MediaElement in einer WPF-Anwendung. Der Grund dafür ist, dass es eine Reihe von Arten erscheinen, dass in PresentationFramework.dll (unvermeidbar für WPF) und System.Windows.dll (Silverlight-Versionen), die den gleichen Namen und die gleichen Namensräume, sind aber unterschiedliche Arten.
(Jemand sollte erklären, warum wir namespaces microsoft!)
Ich weiß, das ist ein Jahr alte Antwort, aber nicht "mehrere verschiedene Typen mit dem gleichen Namen im gleichen namespace" der Grund, dass der Referenz-Aliase vorhanden sind?
Es ist immer möglich, Silverlight-Website, und verwenden Sie MediaElement dort und in WPF applicatione hinzufügen WebBrowser-Steuerelement mit der Quelle zu, die Silverlight-website, und es ist getan.
ja @Damien_The_Unbeliever meine Gedanken auf den ersten, aber es hängt davon ab, wie es spielt und ich habe gesehen, Situationen, in denen ähnliche tricks sind nicht möglich. Obwohl ich sagen würde, dass dies immer noch "könnte" möglich sein, mit einigen hacken. Habe nicht versucht, obwohl, sieht aus wie ärger
InformationsquelleAutor Robert
Ich weiß, das ist nicht das, was Sie gefragt, aber Sie können host eine VLC-ActiveX-Komponente in einem Fenster in WPF und verwenden Sie dann das VLC-control-Verbindung zum streamen und den stream anzeigen. Dies ist, wie ich das streaming funktioniert über WPF.
Edit: diese Seite ist ein Beispiel dafür, wie zu host ein ActiveX-Steuerelement in WPF
Hi Stuart, könnte Sie nach Ihrem Beispiel mit VLC irgendwo, so dass ich einen Blick. Danke.
InformationsquelleAutor stuartmclark
Als WPF-mediaelement intern verwendet windows media player. Wenn Sie ändern die buffer-Einstellungen von media player die Standard-Puffer-Einstellung auf "Benutzerdefiniert". Öffnen Sie den windows media player Tools Optionen Leistung.
Wenn Sie wählen Sie die "Buffer" - option und stellen Sie "Sekunden der Inhalte," 2 ist. Die folgenden Registrierungswerte Hinzugefügt werden unter media player.
HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences
UseDefaultBufferTime=0
CustomBufferTime=2000
Können Sie verwenden, dotnet registry-Klasse, um änderungen vorzunehmen.
Siehe diesen link:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/1b4b8fb9-ff8f-4861-8e99-4a7a4fc75596/setting-windows-media-player-properties-in-wpf?forum=wpf#ac879a7f-37bc-4ccc-854d-ab6e047086e5
InformationsquelleAutor somu