程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#實現DirectShow技術開發准備

C#實現DirectShow技術開發准備

編輯:關於C#

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個步驟:初始化接口→利用接口中的控制函數使用控制操作→最後釋放接口。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved