C# と DirectShow.net を使用して簡単なビデオ エディターを開発しました。今のところ、DirectShow Editing Services を使用して構築された DirectShow フィルター グラフがあります。私のアプリケーションは、グラフを制御し、必要に応じてプレビュー ウィンドウで再生を実行、一時停止、および停止します。編集セッションでは、メディアを追加、削除、または変更するユーザーの要求に従って、グラフが変更されます。
現在、WindowsFormsHost にラップされた PictureBox を使用して、編集したビデオをプレビューしています。しかし、代わりに Jeremiah Morril の WPF MediaKit を使用してみたいと思っています。(http://wpfmediakit.codeplex.com)
最初の考え (私のブルート フォース アプローチ) は、グラフから IGraphBuilder と IPin を WPF MediaKit の MediaUriPlayer.cs の OpenSource() 関数に渡すことでした。元の OpenSource() で行われた新しいグラフ。これはうまくいかず、さまざまな組み合わせを試した後、あきらめましたが、ほとんどの場合、「COM オブジェクトが基になる RCW から分離されました」というエラーが発生しました。
最初の失敗の後、検索したところ、Morrill の同様の VideoRendererElement がhttp://videorendererelement.codeplex.comにありました。サンプル グラバーを DirectShow グラフに追加し、それを使用してサンプルを VideoRendererElement に送信するのはそれほど難しくないようです。これは、VideoRendererElement に含まれている Web カメラの例とまったく同じです。
最後に、グラフのサンプル グラバーからのサンプルを MediaUriElement、DvdPlayerElement、または別のコントロールに渡すことによって、同じ方法で WPF MediaKit の新しいコントロールを使用できないかどうか疑問に思っています。 WPF MediaKit コレクション。基本的に私の質問は次のとおりです。WPF MediaKit または VideoRenderingElement を使用してこのサンプル グラバー シナリオを実装することを推奨できる人はいますか? または、誰かが、DES で作成したフィルター グラフを WPF コントロールにレンダリングするためのさらに良い方法を提案できます...