您的位置:首页 > 其它

VS2010 配置DirectShow详细步骤(WIN7)

2014-04-23 17:17 218 查看
1:配置之前首先要在这里来下载DirectShow,不到600M

2:下载完成之后解压iso文件,运行setup.exe文件来执行安装

3:安装完成之后,在你所安装目录下找到..\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\baseclasses.sln文件,打开之后编译,这里要在Debug,Debug_MBCS,Release,Release_MBCS四个状态下都编译才可以

4:编译完成之后只要再在自己的项目中配置一下就可以用了,具体配置如下,一定要按着顺序来添加,

      在包含目录中添加

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\common

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
在库目录中添加

C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release
如果在配置lib的时候没有Debug和Release说明第三步没有做完!!!
在附加依赖项中添加我们项目所需要的lib,如:strmiids.lib
到此位置,DirectShow的配置就已经全部完成了,下面为大家附上一个测试代码,功能就是一个播放avi的文件,配置如果没有问题的话一定是可以播放的,avi文件的路径改成自己的就可以了! :)
int main()
{
IGraphBuilder *pGraph = NULL;
IMediaControl *pControl = NULL;
IMediaEvent *pEvent = NULL;
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
printf("ERROR - Could not initialize COM library");
return 0;

}
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,

IID_IGraphBuilder, (void **)&pGraph);
if (FAILED(hr))
{
printf("ERROR - Could not create the Filter Graph Manager.");
return 0;
}

hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
hr = pGraph->RenderFile(L"F:\\Test.avi", NULL); //这里的路径改成自己的
if (SUCCEEDED(hr))
{
hr = pControl->Run();
if (SUCCEEDED(hr))
{
long evCode;
pEvent->WaitForCompletion(INFINITE, &evCode);
}
}
pControl->Release();
pEvent->Release();
pGraph->Release();
CoUninitialize();
reutrn 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: