概要
DirectShowを使った、単純再生プログラム
確認環境
Windows XP SP2
DirectX SDK June 2007
Windows Server 2003 R2 Platform SDK
Visual Studio 2005 SP1
必要な設定
リンカの設定で「strmiids.lib」が必要です。
その他、インクルードパスやリンカパスの設定は、
DirectShow 開発資料をご覧ください。
サンプルソース
とりあえず、Win32コンソールプロジェクトでスタートします。
あとは、以下のソースでOK。
// SimplePlayback.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 //
#include "stdafx.h" #include <DShow.h> #pragma comment(lib, "strmiids.lib") // リンカの設定が面倒なときは、コレ。
int _tmain(int argc, _TCHAR* argv[]) { IGraphBuilder * pGraph = NULL; IMediaControl * pMediaControl = NULL; CoInitialize(NULL); CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, reinterpret_cast<void**>(&pGraph) ); if (pGraph == NULL) { CoUninitialize(); } pGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&pMediaControl)); if (pMediaControl == NULL) { CoUninitialize(); } pGraph->RenderFile(L"D:\\Data\\NoriNori.avi", NULL); pMediaControl->Run(); MessageBoxW(NULL, L"Click me to end playback", L"SimpleDirectShowPlayer", MB_OK); pMediaControl->Release(); pGraph->Release(); CoUninitialize(); return 0; }
補足
上記のサンプルを動かすと、ムービーを描画するウィンドウが別途開く。
これを抑止したい場合、つまりムービーの描画先を特定のウィンドウに
関連付ける方法は別サンプルで紹介する(予定)。