Ich habe einen WCF-Dienst geschrieben, der Mediendateien streamt. Ich schreibe jetzt eine WPF-Anwendung, die diesen Dienst verwendet und erst kürzlich festgestellt hat, dass das MediaElement Stream-Objekte nicht als Eingabeparameter für die Quelleigenschaft akzeptiert.
Ich habe die letzten zwei Tage endlos gegoogelt und mir verschiedene Alternativen angeschaut, darunter die Silverlight Viewports in WPF, VLC ActiveX-Steuerelemente, VideoRendererElement und WPFMediaKit. Leider wurde ich durch fehlende Dokumentation und / oder Beispiele behindert und bin bisher noch nicht wirklich vorangekommen. Die Tatsache, dass dies das erste Mal ist, dass ich WPF benutze, hilft auch nicht.
Um es einfach auszudrücken: Was ich suche, ist etwas, das mit Dokumentation oder Beispielen geliefert wird, die Streaming in WPF demonstrieren und, wenn möglich, auch einfach zu implementieren sind. Die Lösung muss nicht perfekt sein; Alles was ich brauche, ist etwas, das funktioniert.
Sie könnten ein HttpListener
in Ihrer WPF-App hosten und bereitstellen den Stream, den Sie von Ihrem WCF-Dienst über eine URL erhalten, die von HttpListener
MediaElement.Source
.
Andere Optionen (obwohl Sie sie scheinbar ausgeschlossen haben):
Nicht sicher, ob dies eine Option für Sie ist, aber es gibt kommerzielle Bibliotheken für Multimedia einschließlich der Wiedergabe von Videos aus Streams in WPF:
Es gibt eine Möglichkeit, dies unter Verwendung von Pseudofiles, d. h. der Emulation von Dateisystemaufrufen, zu erreichen.
Wenn ein Pfad übergeben wurde, öffnet ein Medienplayer zuerst die Datei (CreateFile wird aufgerufen), liest dann Daten daraus (ReadFile wird aufgerufen), verschiebt die Position innerhalb der Datei (SetFilePointer wird aufgerufen).
Es bewegt sich nur innerhalb der Videodatei und liest die erforderlichen Blöcke.
Hier wurde beispielsweise dieser Ansatz beschrieben (Dateiaufrufe, die nur den entsprechenden IStream-Methoden zugeordnet wurden: ReadFile - & gt; Lesen, SetFilePointer - & gt; Suchen, CreateFile - & gt; Klonen usw.): Ссылка