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组件的接口。
 IFilterGraph:过滤通道接口。
IFilterGraph2:增强的IfilterGraph。
IGraphBuilder:最为重用的COM接口,用于手动或者自动构造过滤通道Filter Graph Manager。
 IMediaControl:用来控制流媒体(如流的启动和停止暂停等)播放控制接口。
IMediaEvent:播放事件接口,该接口在FilterGraph发生一些事件时用来创建事件的标志信息并传送给应用程序。
IMediaEventEx:扩展播放事件窗口。
IMediaPosition:播放的位置和速度控制接口(控制播放放置只能为设置时间控制方式)。
 IMediaSeeking:另一个播放的位置和播放速度控制接口,在位置选择方面功能较强,设置播放格式。常用的控制播放方式有:TIME_FORMAT_MEDIA_TIME单位100纳秒;TIME_FORMAT_FRAME按帧播放。
IBasicAudio:声音控制接口。
 IBasic Video:图像控制接口(波特率,宽度,长度等信息)。
 IVideoWindow:显示窗口控制接口(有关播放窗口的一切控制,包括caption显示,窗口位置控制等)。
  ISampleGrabber:捕获图像接口(可用于抓图控制)。
  IVideoFrameStep:控帛单帧播放的接口。
   注意:使用DirectShow接口编程有3个步骤:初始化接口→利用接口中的控制函数使用控制操作→最后释放接口。

C#实现DirectShow技术开发准备的更多相关文章

  1. IT技术开发人员获得成功的六大步骤

    IT技术开发人士成功的6大步骤 一个前辈在移民加拿大后写的文章,写得不错,值得借鉴,转来给大家看看,也给自己   序言:经过001多年的洗礼,认识了这里这么多的JJMMGGDD,前几天刚得到签证, 无 ...

  2. 跟我一起学WCF(2)——利用.NET Remoting技术开发分布式应用

    一.引言 上一篇博文分享了消息队列(MSMQ)技术来实现分布式应用,在这篇博文继续分享下.NET平台下另一种分布式技术——.NET Remoting. 二..NET Remoting 介绍 2.1 . ...

  3. 转:Google技术开发指南:给大学生自学的建议

    原文来自于:http://blog.jobbole.com/80621/ 技术开发指南 想要成为成功的软件工程师,必须拥有坚实的计算机科学的基础.本指南针对大学生,给出一条自学途径,让学生以科班和非科 ...

  4. 用web技术开发出原生的App应用的体会(1)

    本人是是个前端小白,学前端已经有半年的时间了,前几天开了个博客,希望记录自己学习历程的点滴. 今天要写的是关于用html,css,javascript等web技术开发原生的app应用. 总所周知,we ...

  5. Java技术开发程序员如果在2019年立足

    2019年的互联网环境相对以往来说要更复杂一些,互联网领域也正在经历从消费互联网向产业互联网转型的阵痛期.其实不少公司从2018年开始已经在陆续进行结构化调整,这些调整中的重要内容就是岗位调整,而岗位 ...

  6. 未来-区块链-IBM:IBM 区块链技术开发社区

    ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...

  7. React VR 技术开发群 579149907

    React VR 技术开发群 579149907,欢迎加入讨论!分享经验!

  8. Java技术开发标准JSR介绍

    JSR我们需要先提及JCP(Java Community Process SM(JCP SM)).JCP是为Java技术开发标准技术规范的机制.任何人都可以注册并参与审阅和提供Java规范请求(JSR ...

  9. web技术开发桌面应用

    三款前端工程师桌面应用开发神器! http://mini.eastday.com/a/160630023107669-2.html 如果我告诉你,以后你们可以用前端语言(html5+css3+js)开 ...

随机推荐

  1. cnblog排版

    记录一些自己写博客中的排版技巧 一.标题 红色部分代码用在标题的CSS样式中 <p style="background: gray; font-size: 18px; font-fam ...

  2. 分页查询不知你是否真正的懂和PHP的正则的应用和一些性能优化

    一.不废话太多  直接进入例子. 1  问题: 有一张收藏表,里面存储的是用户和图书ID.数据量为1亿.现在要求分页获取所有用户ID(不重复),写下你的sql语句.   表结构大致如下:       ...

  3. SQL server学习(五)——T-SQL编程之存储过程

    周五了,祝大家周末愉快. 之前一直在写SQL server的分享,今天再来个T-SQL编程中的存储过程. 存储过程 存储过程(procedure)类似于C语言中的函数,用来执行管理任务或应用复杂的业务 ...

  4. c# 多线程传递参数以及任务

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. 【学习】文本框输入监听事件oninput

    真实项目中遇到的,需求是:一个文本框,一个按钮,当文本框输入内容时,按钮可用,当删除内容时,按钮不可用. 刚开始用的focus和blur, $(".pay-text").focus ...

  6. JAVA中子类会不会继承父类的构造方法

    声明:刚刚接触java不久,如果理解有错误或偏差望各位大佬强势批判 java中子类能继承父类的构造方法吗? 父类代码: class Father { String name ; //就不set/get ...

  7. hover与click样式冲突

    如果你的hover事件和click事件的样式不同,如元素背景本来是#fff,如果hover时背景是#ddd,点击时背景是#aaa,那么问题是当你点击后,鼠标再移动到这个元素时背景会变成#ddd,而你希 ...

  8. JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法

    函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留 ...

  9. .NET企业级应用WebService上传下载文件

    在建立好一个WebService后会有一个自带的 [WebMethod]//在待会写的所有方法中都要写这个,便于调试 public string HelloWorld() { return " ...

  10. js的事件循环绑定和jQuery的隐式迭代

    js的事件循环绑定和jQuery的隐式迭代 js事件循环绑定 jQuery隐式迭代 先举一个例子:给定一个ul,点击列表内的每一个li元素,使它的背景色变红,下边分别用js代码和jQuery实现. & ...