directshowでAVIファイルが再生が出来ません…
Directshowを用いて動画を再生しようと試みています。
Direct sdkとplarformの両方を入れて、インクルードパスとライブラリパスを通しました。
ビルドしてもエラーは無いので某所のシンプルなソースでデバッグ無しで開始をクリック。
すると、再生が終わらないようにメッセージBlock Executionが表示されるものの肝心の動画が映りません。
プログラムはしっかりと動いているはずですが、、
動画aviはMSMPEG4V2です。Directshowのコーデックで動くとのことです。何がおかしいのか、さっぱりです。
環境はwindowsXP visual studio2005
DirectxSDK2008
microsoft platform(しっかりDirectshowフォルダは存在します)
ここまで来たなら設定ミスは無いとは思いますが、(設定ミスがあれば、開けない等エラーが出ると思いますので)
どうかお願い致します。
サンプルソース
↓
#include <stdio.h>
#include <dshow.h>
#define FILENAME L"C:\\Documents and Settings\\057104\\My Documents\\homerun2.avi"
int
main()
{
IGraphBuilder *pGraphBuilder;
IMediaControl *pMediaControl;
// COMを初期化
CoInitialize(NULL);
// FilterGraphを生成
CoCreateInstance(CLSID_FilterGraph,
NULL,
CLSCTX_INPROC,
IID_IGraphBuilder,
(LPVOID *)&pGraphBuilder);
// MediaControlインターフェース取得
pGraphBuilder->QueryInterface(IID_IMediaControl,
(LPVOID *)&pMediaControl);
// Graphを生成
pMediaControl->RenderFile(FILENAME);
// 再生開始
pMediaControl->Run();
// 再生中にプログラムが終わってしまわないように
MessageBox(NULL,
"Block Execution",
"Block",
MB_OK);
// 資源を解放
pMediaControl->Release();
pGraphBuilder->Release();
// COM終了
CoUninitialize();
return 0;
}
お礼
Platform SDKにありました。有難うございます。 bcc -I で無事動きました。有難うございます。。