開発環境 |
Microsoft Visual C++ 2010 Express (SP1) |
実行環境 |
Microsoft Windows XP Home Edition (SP3) |
プロジェクトの種類 |
Win32 プロジェクト |
プロジェクト名 |
dshow1 |
アプリケーションの種類 |
Windows アプリケーション |
追加のオプション |
空のプロジェクト |
文字セット |
Unicode |
ActiveMovie Windowで再生: .wmv .mpg .mp4 .avi
音声のみ再生: .wav .mp3
以下のファイルをインストールすることによりmp4動画の再生が可能になった。
- MPC-HC_standalone_filters.1.6.5.6081.x86.ICL12.7z
- ffdshow_rev4486_20120825_clsid.exe
また、音声のみ再生だったavi動画もffdshowにより動画も再生されるようになった。
フィルタグラフの様子はGraphEdit(graphedt.exe)にて確認できる。
いくつか見つかる場合はとりあえず最新のものを使う。
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
DirectX 10.0 - Build 100513
作成日時:2010年5月13日、22:44:58
- Windows Driver Kit 7.1.0版
C:\WinDDK\7600.16385.1\tools\avstream\i386
DirectX 10.0 - Build 100208
作成日時:2010年2月8日、20:21:10
参考
dshow1.cpp
/*
インクルード・ライブラリとも以下のディレクトリを参照していると思われる。
C:\Program Files\Microsoft SDKs\Windows\v7.0A
Unicode文字セット
*/
#pragma comment(lib, "strmiids.lib")
//#include <Windows.h>
#include <DShow.h>
//==============================================================================
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
IGraphBuilder *pGraph = NULL;
IMediaControl *pControl = NULL;
IMediaEvent *pEvent = NULL;
HRESULT hr;
ULONG ur;
// COMライブラリの初期化
hr = CoInitialize(NULL);
if (FAILED(hr)) {
return 0;
}
// フィルタグラフマネージャ
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pGraph));
if (FAILED(hr)) {
return 0;
}
hr = pGraph->QueryInterface(IID_PPV_ARGS(&pControl));
hr = pGraph->QueryInterface(IID_PPV_ARGS(&pEvent));
hr = pGraph->RenderFile(L"c:\\tmp\\hoge.mpg", NULL);
if (SUCCEEDED(hr)) {
hr = pControl->Run();
if (SUCCEEDED(hr)) {
long evCode;
pEvent->WaitForCompletion(10000, &evCode); // 10秒
}
}
ur = pControl->Release();
ur = pEvent->Release();
ur = pGraph->Release();
CoUninitialize();
return 0;
}
最終更新:2012年10月17日 05:53