DirectShow应用
从广义上说,所有的DirectShow应用都必须完成三件事情,如下图B所示:
图B
1. 生成Filter Graph管理器的一个实例。
2. 利用Filter Grapth实例生成Filter Graph,具体应该由哪些Filter组成Filter Graph视我们的应用的需要而定。
3. 通过对Filter Graph管理器的方法调用和来自Filter Graph的消息的响应Filter Graph和数据流进行控制。
DirectShow是基于COM的,Filter Graph管理器和Filter都是COM对象 ,在开始着手之前你应该对COM有个基本的认识。
下面让我们着手开始做一个简单的DirectShow应用,在这个应用中我们实现这样的功能:打开一个媒体文件,并对其进行播放。
设置环境 在利用DirectShow进行流媒体的处理之前,必须正确安装DirectX的SDK,DirectX SDK可以到微软的网站上下载,目前,DirectX最新版本为9.0。
在正确安装好DirectX SDK后,我们必须设置DirectX SDK的头文件和库文件,使其在Visual Studio的搜索路径内。对于Visual Studio .NET 2003可如下进行设置:菜单→工具→选项→项目→VC++目录,在包含文件中加入D:\DXSDK\Include,在库文件中加入D:\DXSDK\lib(我的SDK的安装路径是D:\DXSDK):
头文件
文件名称 |
描述 |
Dshow.h |
所有的DirectShow应用都必须包含 |
库文件
文件名称 |
描述 |
Strmiids.lib |
此库文件中导出类标识(CLSID)和接口标识(IID),所有的DirectShow应用都必须包含此文件。 |
Quartz.lib |
此库文件中导出函数AMGetErrorText,如果你的程序中调用了此函数,则必须包含此库文件。 |