C# を使用して、WinForms アプリに AVI ファイルの再生を埋め込んで制御できるようにする必要があります。ビデオは、別のメディア プレーヤー ウィンドウで起動するのではなく、フォームに埋め込む必要があります。
これを行うための最良のアプローチは何ですか? 私は System.Media 名前空間を見つけました。これは有望に思えましたが、サウンドにのみ役立つようです。
これには DirectX を使用しますか? MCI? それとも他のアプローチですか?
Winform 内でMedia Playerを使用できます。これはそれを行う簡単な方法でした。
私がやった方法は次のとおりです。
ツールボックスを右クリックし、[アイテムの選択] をクリックします。
注: ツールボックスが表示されない場合は、[表示] メニューの [ツールボックス] をクリックして開きます。[ツールボックス アイテムのカスタマイズ] ダイアログ ボックスが開きます。
[COM コンポーネント] タブで、[Windows Media Player] チェック ボックスをオンにして、[OK] をクリックします。
Windows Media Player コントロールが現在のツールボックス タブに表示されます。
Windows Media Player コントロールをツールボックスに追加すると、Visual Studio は AxWMPLib と WMPLib の 2 つのライブラリへの参照を自動的に追加します。次の手順では、コントロールを Windows フォームに追加します。
Windows Media Player コントロールを Windows フォームに追加するには
Windows Media Player コントロールをツールボックスから Windows フォームにドラッグします。
[プロパティ] ウィンドウで、Dock プロパティを Fill に設定します。これを行うには、中央の四角をクリックします。
フォームのタイトル バーをダブルクリックして、コード エディターに既定の Load イベントを追加します。
次のコードを Form_Load イベント ハンドラーに追加して、アプリケーションが開いたときにビデオをロードします。
axWindowsMediaPlayer1.URL =
@"http://go.microsoft.com/fwlink/?LinkId=95772";
http://msdn.microsoft.com/en-us/library/bb383953(v=vs.90).aspx
このライブラリを強くお勧めします:
http://directshownet.sourceforge.net/
DirectShow API の .NET ラッパーです。
(サンプル アプリを使用すると、すぐに作業を開始できます。)
――ブルース
DaokとBrian Genisioからの提案は、どちらも良い選択肢です。3 番目を追加しましょう: DirectShow。以前は DirectX の一部でしたが、現在は Windows SDK に昇格されています。参考になる優れた C# サンプル アプリケーションが多数あり、再生を完全に制御できます。
WPF メディア コントロールの使用を検討し、ElementHost を使用して WPF コントロールを WinForms アプリ内に配置します。より豊かな体験ができると思います。
詳細については、 System.Windows.Forms.Integrationを参照してください。