> 『YOU、LabVIEWでDirectShow直接叩いチャイなYO!』
という電波を受信したので、色々調べて勉強がてらに、先ずは
・ DirectShowを使ってLabVIEWで動画再生
から作ってみることにしました。
最初に、参考にさせていただいたWebページを以下に挙げておきます。
- [DirectShow][C#]動画のサムネイルを作成
- DirectShow関係
- USBカメラをC#で使おう
- webカメラのシャッターボタンでイメージを保存したい
- サンプル グラバ フィルタ (ISampleGrabber)
最初はActiveX使って叩こうとしたんですが、LabVIEWのActiveXで
インターフェイスの切り替え方が分からずに断念しました。
で、.NET使うんですが、なぜかDirectShowに.NETからアクセスするための
ライブラリがありません。のでオープンソースライブラリ「DirectShow.NET」を
インストールして使用します。
DirectShow.NET使って、指定した動画ファイルを再生するVI(スニペット)がコレ。
…ファイルから動画再生するだけだったらカンタンw
- コンストラクタで[FilterGraph]作って、
- 再生したいファイルのパスを[IGraphBuilder.RenderFile()] に渡すと、
- 自動的にフィルタグラフが作成されるので、
- [IMediaControl]インターフェイスから.Run()すれば再生ウィンドウ(別ウィンドウで)が表示される。
- 再生中にVIが停止しないよう、whileループを回しておいて、
- [停止]ボタン押したら、[IMediaControl.Stop()]で再生停止させる。
実行中はこんな感じ。
再生が別ウィンドウってのもアレなので、フロントパネル内に表示させてみましょう。
さぁ、グっとヤヤこしくなってきましたw 要点は、
- フロントパネルにPictureBox .NETコンテナを置いて、
- [IVideoWindow]インターフェイスを使って、そのピクチャーボックスに表示させてる
今回はここまで。次回以降で、静止画キャプチャを実装します。
ちなみに、デモで使ってるイルカの動画は「GOM Player」のサンプル動画です。
~~ その2 へ続く ~~
0 件のコメント:
コメントを投稿