需要知道DirectShow是DirectX中的一部分。DirectX是Microsoft公司推出的一套底层应用程序编程接口,主要用于游戏和其它高性能多媒体应用。这些接口包含对二维图形、三维图形、声效和音乐、输入设备及多玩家网络游戏等的支持。这里重点讲用DirectShow设计视频播放器。关于DirectShow安装流程见网上的教程。
下面介绍DirectShow系统组成,如下图(摘自网上):
其中过滤器流水线是由一系列各种功能的过滤器,其实DirectShow对数据流是分成几个独立的过程进行处理的,每个过程完成不同的工作。
IGraphBuilder:为应用程序提供创建过滤器图表的方法;
IMediaControl:提供控制过滤器图表中多媒体数据流的方法,包括运行、暂停和停止;
IMediaEventEx:继承自IMediaEvent接口,处理过滤器图表的事件;
IVideoWindow:用于设置多媒体播放器窗口的属性,应用程序可以用它来设置窗口的所有者、位置和尺寸等属性;
IBasicAudio:用于控制音频流的音量和平衡;
IBas