DSPack各種使用方法

2021-05-22 10:30:58 字數 2328 閱讀 2082

首先,要閱讀一下(dspackdir)/help目錄下的help.chm檔案,粗略地看了一下,內容太多看不出頭緒。

還是先學習一下(dspackdir)/demos/d6-d7目錄下的那些例子,邊動手做邊學習吧。

看得差不多後,自己照葫蘆畫瓢仿製乙個。

1. 新建乙個應用,在介面上先放4、5個按鈕。

2. 在控制項面板上選擇dspack那頁,把前兩個控制項(tfiltergraph和tvideowindow)在視窗上各放乙個。

3. 關聯

選中videowindow1控制項,在屬性視窗中將filtergraph屬性設定為filtergraph1。

選中filtergraph1控制項,確認屬性視窗中的mode屬性為gmnormal。

5. 為form1增加乙個onclosequery事件處理程式。

內容為:

filtergraph1.active := false ;

6.把button1的caption改為start,並增加乙個onclick事件

內容為:

filtergraph1.play;

7. 把button2的caption改為pause,並增加乙個onclick事件

內容為:

filtergraph1.pause;

8. 把button3的caption改為stop,並增加乙個onclick事件

內容為:

filtergraph1.stop;

可以看出4-8步都是呼叫了tfiltergraph類的方法。

下面,再增加個全屏功能吧。

9. 把button4的caption改為fullscreen,並增加乙個onclick事件

內容為:

videowindow1.fullscreen :=true ;

10. 為videowindow1增加乙個onclick事件

內容為:

if videowindow1.fullscreen then

videowindow1.fullscreen := false ; //退出全屏方式

二:使用dspack開啟攝像頭

在這個例子中,又用到了乙個新類:tfilter。

先跟上次一樣:

下面該有所不同了

3.在dspack中選擇tfilter控制項,放到視窗上。

4.選中filtergraph1控制項,在屬性視窗中將mode屬性設為gmcapture。

5. 關聯

選中videowindow1控制項,將filtergraph屬性設定為filtergraph1。

選中filter1控制項,將filtergraph屬性設定為filtergraph1。

6. 在**模式中,在inte***ce後的uses中增加

dsutil, directshow9,

在implementation前面的var中增加

sysdev: tsysdevenum;

end;

7. 同前。為form1增加乙個onclosequery事件處理程式。

內容為:

sysdev.free;

filtergraph1.cleargraph;

filtergraph1.active := false ;

執行一下試試,看是否能看到自己的攝像頭的內容。

幾個按鈕沒用,等到下乙個例子用吧。

三:dspack抓幀

在例子playvideocap中,還有抓幀和回放的功能。這用到第4個控制項tsamplegrabber。

我們以前兩個例子為基礎,增加抓幀的功能。

開啟前面的例子,然後:

1. 在dspack中選擇tsamplegrabber控制項,放到視窗上。然後將其filtergraph屬性設定為filtergraph1。

2. 在選擇乙個標準控制項timage(在additional頁籤中),放在視窗上。

3.講乙個沒用的按鈕的caption改為「snapshot」,在它的onclick事件中寫:

samplegrabber1.getbitmap(image1.picture.bitmap);

前面兩個例子都可以這樣增加抓幀功能。不過,對於第二個例子(即操作攝像頭的例子),需要做額外的修改,就是:

將renderstream(@pin_category_preview, nil, filter as ibasefilter, nil, videowindow as ibasefilter);

改為renderstream(@pin_category_preview, nil, filter as ibasefilter, samplegrabber as ibasefilter, videowindow as ibasefilter);

這樣就可以了

vue 各種使用方法

安裝 vue cli3 安裝 vue cli npm install g vue cli 建立乙個專案 vue create baifubin 開啟圖形化介面 vue ui 安裝 vue 移動端rem 通過cli3 直接搜尋或npm npm install postcss pxtorem postc...

AutoLayout的各種使用方法

關於autolayout 下面通過乙個簡單的列子分別演示autolayout的各種使用方法 需求是在控制器view底部新增2個view,1個藍色,1個紅色2個view寬度 高度永遠相等距離父控制項左邊 右邊 下邊間距和2個view之間的間距相等,效果如下圖 橫屏效果 橫屏效果 豎屏效果 豎屏效果 在...

AutoLayout的各種使用方法

關於autolayout 下面通過乙個簡單的列子分別演示autolayout的各種使用方法 需求是在控制器view底部新增2個view,1個藍色,1個紅色2個view寬度 高度永遠相等距離父控制項左邊 右邊 下邊間距和2個view之間的間距相等,效果如下圖 橫屏效果 橫屏效果 豎屏效果 豎屏效果 在...