C#实现DirectShow技术开发准备
DirectShow组件在“C:\WINDOWS\system32”目录下的Quartz.dll动态库中,要使C#代码引用COM对象和接口,必须将COM类型库转换为.NET框架元数据,从而有效地创建一个可以从任何托管语言调用的托管包装。在转换过程中需要使用FrameWork SDK自带的TlbImp命令工具,该命令工具在“D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\TlbImp.exe”目录下(取决于Visual Studio 2005的安装路径)。该命令的使用方法为: TlbImp C:\WINDOWS\system32\quartz.dll out:C:\WINDOWS\system32\quartzDriectShow.dll 在DOS命令下执行转换成功。 转换完成后需在应用程序引用quartzDriectShow,引用quartzDriectShow.dll组件步骤如下: (1)在Visual Studio 2005开发环境中,选择菜单“项目”/“添加引用”命令,弹出“添加引用”对话框。 (2)选择“浏览”选项卡,通过浏览找到引用quartzDriectShow.dll所在的位置,并引用到程序中来。 (3)最后引入using quartzDriectShow,在程序中可以开发相关多媒体程序了。 开发人员还可以通过编写自己的过滤器扩展DirectShow多媒体支持。下面是DirectShow组件的接口。 l IFilterGraph:过滤通道接口。 l IFilterGraph2:增强的IfilterGraph。 l IGraphBuilder:最为重用的COM接口,用于手动或者自动构造过滤通道Filter Graph Manager。 l IMediaControl:用来控制流媒体(如流的启动和停止暂停等)播放控制接口。 l IMediaEvent:播放事件接口,该接口在FilterGraph发生一些事件时用来创建事件的标志信息并传送给应用程序。 l IMediaEventEx:扩展播放事件窗口。 l IMediaPosition:播放的位置和速度控制接口(控制播放放置只能为设置时间控制方式)。 l IMediaSeeking:另一个播放的位置和播放速度控制接口,在位置选择方面功能较强,设置播放格式。常用的控制播放方式有:TIME_FORMAT_MEDIA_TIME单位100纳秒;TIME_FORMAT_FRAME按帧播放。 l IBasicAudio:声音控制接口。 l IBasic Video:图像控制接口(波特率,宽度,长度等信息)。 l IVideoWindow:显示窗口控制接口(有关播放窗口的一切控制,包括caption显示,窗口位置控制等)。 l ISampleGrabber:捕获图像接口(可用于抓图控制)。 l IVideoFrameStep:控帛单帧播放的接口。 注意:使用DirectShow接口编程有3个步骤:初始化接口→利用接口中的控制函数使用控制操作→最后释放接口。
DirectShow组件在“C:\WINDOWS\system32”目录下的Quartz.dll动态库中,要使C#代码引用COM对象和接口,必须将COM类型库转换为.NET框架元数据,从而有效地创建一个可以从任何托管语言调用的托管包装。在转换过程中需要使用FrameWork SDK自带的TlbImp命令工具,该命令工具在“D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\TlbImp.exe”目录下(取决于Visual Studio 2005的安装路径)。该命令的使用方法为: TlbImp C:\WINDOWS\system32\quartz.dll out:C:\WINDOWS\system32\quartzDriectShow.dll 在DOS命令下执行转换成功。 转换完成后需在应用程序引用quartzDriectShow,引用quartzDriectShow.dll组件步骤如下: (1)在Visual Studio 2005开发环境中,选择菜单“项目”/“添加引用”命令,弹出“添加引用”对话框。 (2)选择“浏览”选项卡,通过浏览找到引用quartzDriectShow.dll所在的位置,并引用到程序中来。 (3)最后引入using quartzDriectShow,在程序中可以开发相关多媒体程序了。 开发人员还可以通过编写自己的过滤器扩展DirectShow多媒体支持。下面是DirectShow组件的接口。 l IFilterGraph:过滤通道接口。 l IFilterGraph2:增强的IfilterGraph。 l IGraphBuilder:最为重用的COM接口,用于手动或者自动构造过滤通道Filter Graph Manager。 l IMediaControl:用来控制流媒体(如流的启动和停止暂停等)播放控制接口。 l IMediaEvent:播放事件接口,该接口在FilterGraph发生一些事件时用来创建事件的标志信息并传送给应用程序。 l IMediaEventEx:扩展播放事件窗口。 l IMediaPosition:播放的位置和速度控制接口(控制播放放置只能为设置时间控制方式)。 l IMediaSeeking:另一个播放的位置和播放速度控制接口,在位置选择方面功能较强,设置播放格式。常用的控制播放方式有:TIME_FORMAT_MEDIA_TIME单位100纳秒;TIME_FORMAT_FRAME按帧播放。 l IBasicAudio:声音控制接口。 l IBasic Video:图像控制接口(波特率,宽度,长度等信息)。 l IVideoWindow:显示窗口控制接口(有关播放窗口的一切控制,包括caption显示,窗口位置控制等)。 l ISampleGrabber:捕获图像接口(可用于抓图控制)。 l IVideoFrameStep:控帛单帧播放的接口。 注意:使用DirectShow接口编程有3个步骤:初始化接口→利用接口中的控制函数使用控制操作→最后释放接口。
本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/articles/1524865.html,如需转载请自行联系原作者