專家對于VS2003 ActiveX控件的調試與方法
本文講述VS 2003 ActiveX控件的調試功能,怎樣使用ActiveX控件。這些內容都是我今天花花了一周的時間查閱資料并像IT精英學習出來的,中間可能有不少錯誤是我沒有挑出的,歡迎大家指正。
簡單?。。。∵@也就足夠了。并且往往第三方提供的控件功能更強大。但是世界上沒有免費的午餐——這種控件往往是要收費的。在這里肯定有的朋友會想到:“不是還可以利用DX(DirectX)來實現嗎,微軟也提供了Manager DX托管代碼的SDK”。
的確,利用DX來實現視頻捕獲和回放是一個很好的方法,無論從效率還是效果來說都是上上之選。不幸的是:微軟雖然提供了D3D、DirectDraw、DirectSound、DirectPlayer......但是唯獨沒有我們感興趣的,可以實現視頻捕獲的DirectShow的SDK。據我所知,國外有開源的代碼對DirectShow進行了封裝,我也用過,個人感覺還不錯,有興趣的朋友可以查找一下這方面的資料,這里我就不多說了。
言歸正傳,要利用ActiveX在C#中實現視頻捕獲,先要做好以下準備工作:
首先是要有VS2003或者VS2005的開發環境,這個我就不多說,相信地球人都知道。
其次是要安裝好攝像頭的驅動程序,也就是說你在QQ或者MSN視頻聊天時能看到你自己攝像頭的圖像。
然后是最重要的了:安裝支持視頻捕獲的ActiveX控件!什么控件?Pegasus CapturePro。哪里下載?下載地址:http://www.cncode.com/downinfo/3504.html 這個地址應該是可以下載的,我剛剛又測試了一次。#t#
但是我不能保證它一直有效。這個控件是收費的,網上有它的評估版,相信大家也有辦法,實在不行,那么給我發Email吧,我來告訴你怎么辦。安裝時一直"Next"下去后就可以了。
在VS2003中新建一個“Windows 應用程序”工程,工程建立后,首先要向“工具箱”中添加ActiveX控件具體方法是在VS2003菜單的“工具”菜單中單擊“添加/移除工具箱項”。在彈出的對話框中選擇“COM 組件”選項卡,在下面的列表框中,將“Pegasus Imaging CapturePRO Control v3.0”前面的復選框選中,然后單擊“確定”返回編譯器編輯界面就可以了。然后將剛剛添加的控件拖放到窗體上調整好大小和位置,在屬性頁中修改屬性。修改屬性的方法和普通控件一樣,至于各個屬性的含義可以參考控件的幫助文檔??丶械姆椒?、屬性和事件在幫助文檔中都有詳細的說明。
這里建議修改其“Name”屬性,方便以后操作,比如將Name屬性改為axCap(以后axCap都表示該控件)。將axCap的Size屬性改為320,240。因為很多攝像頭的默認分辨率是320X240。窗體布局大概如下圖:
然后再窗體上放一個Button控件,在該控件的單擊事件中添加以下代碼:
- private void butConnect_Click(object sender, System.EventArgs e)
- ...{
- axCap.Connect (0);
- true;
- }
到這里就表示我們的ActiveX控件操作成功了,最基本的功能實現了,這里對上述兩行代碼進行簡單的解釋。第一行axCap.Connect(0)表示將控件連接到設備0。在Windows中,可以同時支持多個視頻設備,每個設備都有一個編號。第一個設備編號0,第二個設備編號1,依次類推。由于我的電腦上只連接了一個視頻攝像頭,所以視頻設備的編號是0。這里也就可以看出Connect()函數的參數實際上就是視頻設備的參數,至于怎樣來確定視頻設備對于得編號,下面會有詳細的說明。第二行axCap.Preview = true;表示打開預覽。Preview屬性為真時表示在控件上顯示視頻圖像,當然要是該屬性為false,我們就看不到視頻了。