• C#实现DirectShow技术开发准备


    DirectShow组件在“C:WINDOWSsystem32目录下的Quartz.dll动态库中,要使C#代码引用COM对象和接口,必须将COM类型库转换为.NET框架元数据,从而有效地创建一个可以从任何托管语言调用的托管包装。在转换过程中需要使用FrameWork SDK自带的TlbImp命令工具,该命令工具在“D:Program FilesMicrosoft Visual Studio 8SDKv2.0BinTlbImp.exe”目录下(取决于Visual Studio 2005的安装路径)。该命令的使用方法为:

    TlbImp C:WINDOWSsystem32quartz.dll out:C:WINDOWSsystem32quartzDriectShow.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个步骤:初始化接口→利用接口中的控制函数使用控制操作→最后释放接口。
  • 相关阅读:
    关联本地代码的方式 HTTPS和SSH---Gitee码云
    详解elementUI表单的验证规则---vue(基本用法)
    vscode 设置缩进 4
    vue的图片懒加载
    A complete log of this run can be found in问题解决
    简单直观的搞懂Vue3的ref、reactive、toRef、toRefs
    vue-cli3.0 引入外部字体并使用
    迅为与龙芯强强联合匠心之作iTOP-2K1000开发板正式发布
    迅为RK3399开发板外接固态硬盘测试
    迅为i.MX6Q开发板Ubuntu20.04 Can通信
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/3566062.html
Copyright © 2020-2023  润新知