原創(chuàng)|使用教程|編輯:郝浩|2013-08-13 14:05:07.000|閱讀 507 次
概述:在TVideoGrabber中可以使用第三方過濾器,并可插入到預(yù)覽、錄制或回放流中,添加到列表中,要使用第三方的過濾器,步驟如下。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
在TVideoGrabber中可以使用第三方過濾器,并可插入到預(yù)覽、錄制或回放流中,添加到列表里。
要在一個圖像中中應(yīng)用一個過濾器,需要像下面的例子中一樣調(diào)用ThirdPartyFilter_AddToList。如果過濾器的文件路徑在OptionalDLLPath的參數(shù)中被指定,這個過濾器就不需要用regsvr32.exe注冊,就講會直接從.AX 或 .DLL文件中加載。第三方的過濾器可以作為一個視頻源或音頻源,當(dāng)VideoSource = vs_ThirdPartyFilter的時候。但是需要注意的是一個過濾器在相同的列表中只可以被插入一次。
要使用第三方的過濾器,步驟如下,先來概要的看一下:
先假設(shè)使用的顧慮器被命名為“myfilter.ax”;
(1)來自命令行的注冊的過濾器:
——復(fù)制myfilter.ax文件在你的windows/system32 或是winnt/system32目錄中。
——點擊“開始” ,“執(zhí)行” ,然后輸入以下命令行:
regsvr32 c:/windows/system32/myfilter.ax
(2)編程注冊的第三方過濾器。
——添加單元ComObj到你的單元的“使用”聲明中。
——復(fù)制myfilter.ax 文件到你的windows/system32或 winnt/system32目錄中(比如使用CopyFile)。
——調(diào)用
RegisterComServer ('c:/windows/system32/myfilter.ax');
在預(yù)覽、錄制或回放圖像中,根據(jù)TThirdPartyFilterList的位置找到正確地位置。這個位置將會指定ThirdPartyFilter_AddToList,就是音頻或視頻圖像中你想要放置過濾器位置。
我們必須知道過濾器的CLSID,或在過濾器用戶指南中可以找到,或是從注冊表中可以檢測到。
從注冊表中檢索CLSID,需要執(zhí)行下面的步驟:
——運行注冊表編輯器
——在樹的頂端,點擊“編輯”
——點擊“搜索”
——輸入的過濾器的文件名(比如:myfilter.ax)
——開始搜索
——當(dāng)搜索停止時,就會定位過濾器的CLSID的位置,以及復(fù)制GUID key。你必須作為字符串傳遞到the ThirdPartyFilter_AddToList function。
用過濾器的CLSID調(diào)用ThirdPartyFilter_AddToList。
比如簡單的添加一個過濾器到圖像中:
procedure TForm1.Button1Click (Sender: TObject); const CLSID_MYFILTER: String = "463D645D-48F7-11D4-8464-0008C782A257"; begin if VideoGrabber1.ThirdPartyFilter_AddToList(tpf_AddToGraph, CLSID_MYFILTER, "", "my custom source filter", True, True) then begin ... end; end;
另外,可以直接給出到AX 或 .DLL的文件的文件路徑,所以不需要用regsvr32.exe進(jìn)行注冊,如下:
procedure TForm1.Button1Click (Sender: TObject); const CLSID_MYFILTER: String = "463D645D-48F7-11D4-8464-0008C782A257"; begin if VideoGrabber1.ThirdPartyFilter_AddToList(tpf_AddToGraph, CLSID_MYFILTER, "c:", "my custom source filter", True, True) then begin ... end; end;
設(shè)置過濾器屬性
——使用ThirdPartyFilter_ShowDialog交互。
——使用OnThirdPartyFilterConnected事件編程,當(dāng)圖像開始的時候,將會返回IUnknown過濾器的接口。圖像不運行的話,有可能一些過濾器不會顯示對話框。
在接下來的預(yù)覽、錄制或回放直到ThirdPartyFilter_ClearList被調(diào)用,或是用ThirdPartyFilter_Enable被禁用。
如何使用第三方過濾器作為視頻或視頻+音頻源?
如果想將第三方過濾器作為視頻源使用:
——設(shè)置
VideoSource = vs_ThirdPartyFilter
——調(diào)用
VideoGrabber1.ThirdPartyFilter_AddToList(tpf_ThirdPartyVideoSource, CLSID of your video third-party filter, '', '...any label of your choice...', True, True);
——調(diào)用tPreview 或 StartRecording
VideoGrabber1.ThirdPartyFilter_AddToList(tpf_ThirdPartyAudioSource, CLSID of your audio third-party filter, '', '...any label of your choice...', True, True);
將第三方過濾器只為一個音頻源使用:
——設(shè)置
oSource = vs_ThirdPartyFilter
——調(diào)用
VideoGrabber1.ThirdPartyFilter_AddToList(tpf_ThirdPartyAudioSource, CLSID of your third-party filter, '', '...any label of your choice...', True, True);
——然后調(diào)用
StartAudioRendering or StartAudioRecording
如果過濾器公開了一個audio pin,并啟用了AudioDeviceRendering 或 AudioRecording,這個audio out將會作為音頻源使用,如果AudioSource = as_Default。
>>>TVideoGrabber 下載
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件