2011-08-21 100 views
9

私は、メディアファイルをストリーミングするWCFサービスを作成しました。私は現在、このサービスを利用するWPFアプリケーションを作成していますが、MediaElementがStreamオブジェクトをソースプロパティの入力パラメータとして受け入れないことがわかりました。WPFでストリーミングビデオを再生する

私は過去2日間、絶え間なくグーグルで行きました。WPF、VLC ActiveXコントロール、VideoRendererElement、WPFMediaKitの中のSilverlightビューポートを含むいくつかの選択肢を見てきました。残念ながら、私はドキュメントやサンプルが不足していて、これまでに何の進歩も見せていませんでした。私がWPFを使用しているのはこれが初めてであるという事実はどちらも役に立ちません。

簡単に言えば、私が探しているのは、WPFでのストリーミングを示すドキュメンテーションや例が付属していて、可能であれば実装するのも簡単です。解決策は完璧である必要はありません。私が必要とするのは、うまくいくものです。

答えて

5

HttpListenerをWPFアプリ内でホストし、HttpListenerからMediaElement.Sourceのサービスを受けたURLを通じてWCFサービスから受け取ったストリームを提供することができます。

その他のオプション(あなたがそれらを除外しているように見えるが):

これはあなたのためのオプションがある場合は、わからないけど、市販のライブラリがありますWPFのストリームからのビデオ再生を含むマルチメディアの場合:

+0

WCFサービスは、TCPバインディングを使用し、 IISの外部で管理対象Windowsサービスとして実行されます。私は何らかの方法で着信ストリームのURLを取得するためにHttpListenerの代わりにTcpListenerを使用できますか? – rafale

+0

あなたのWCFサービスがaa IStreamを返すと仮定しています - この仮定が真であれば、WCFプロキシクラスを使用してストリームを取得し、そのストリームを私が言及したライブラリに提供するか、http URLあなたのアプリケーションの中でHttpListenerを使用して、そのhttp URLを使用するようにMediaElementに指示してください...私は強くライブラリの1つを使用することをお勧めします... – Yahia

+0

私はHttpListenerクラスを使用したことがないので、ストリームをHTTP URLにリレーします。これはあなたが意味することですか?最初のステップであるhttp://pastebin.com/iELVyybp – rafale

0

ファイルシステムコールの疑似ファイル、すなわちエミュレーションを使用して、これを達成するための方法があります。

パスが通過すると、メディアプレーヤーはまずファイルを開き(CreateFileが呼び出されます)、そこからデータを読み取り(ReadFileが呼び出されます)、ファイル内の位置を移動します(SetFilePointerが呼び出されます)。

ビデオファイル内を移動し、必要なブロックを読み込むだけです。例えば

ここでこの方法を説明します(ファイルがちょうど適切なのIStreamメソッドにマッピングされた呼び出します:ReadFile関数 - >読み取り、SetFilePointer - >シーク、のCreateFile - >クローンなど):http://boxedapp.com/encrypted_video_streaming.html

関連する問題