C# Fromで動画再生するには
WPFやWinRTならXAMLベースのMediaElementクラスを使うことが、
MSDNでも書かれているように鉄板だと思います。
http://msdn.microsoft.com/ja-jp/library/aa970915(v=vs.110).aspx
しかし現在自分が今行っている案件はWindows Form開発。
Formアプリケーションではどうするのって事になったので、
調べてみた。
WindowsMediaPlayerコントロールを使う
一番簡単に実装するならコレが手っ取り早い模様。
再生、停止、スクロール等のUI操作は、
全部このコントロールにおまかせできます。
コントロール追加方法
- VisualStudioから[ツール]→[ツールボックス アイテムの選択]をクリック。
- [COMコンポーネント]のタブを選択
- [Windows Media Player]にチェックを入れOKをクリック
- ツールボックスに追加された[Windows Media Player]をFormに貼り付け
これだけでプレイヤーが画面に追加できます。
再生時にはコントロールのURLプロパティに、
ファイルパスを指定するだけでOK。
axWindowsMediaPlayer1.URL = "moviefile.wmv";
コントロールリファレンス
日本語
http://msdn.microsoft.com/ja-jp/library/cc429683.aspx
英語
http://msdn.microsoft.com/en-us/library/windows/desktop/dd562388(v=vs.85).aspx
ちょっと気になるところ
- コマ送り再生ができない
- WindowsMediaPlayerの外観使ってます感バリバリ
- UI部分のカスタマイズができない
- 一時停止中にシークしてもサムネイルが移動しない
これらの点が気に食わないので、
楽せずにやる方法で現在は実装中。
具体的にはC#でDirectShowを使ってます。
DirectShowについては今後まとめていく予定。