PortAudio庫環境搭建

在qt creator中,我用openCV捕獲攝像頭的幀,
並把結合了高斯平滑和微分求導離散微分算子sobel 應用在每幀圖像上,
看着屏幕中,那實時的用黑底白色線條勾勒出來的自己,感覺好好玩,
感覺openCV好強大,可惜我沒找到它捕獲麥克風的功能,
既然媒體I/O模塊可以處理視頻,既然封裝了DirectShow的攝像頭捕獲功能,
openCV可真夠視覺庫的,視覺得也太徹底了點吧!不過我喜歡。
搜索後發現DirectShow是當然的首選,可惜我不是微軟家豢養的,我是野生的,
看了看DirectShow的教程,那代碼竟不認識我,發現被豢養其實也挻幸福的。
我能搜到PortAudio庫也不容易,網上相關的中文教程更是少得可憐!
和openCV一樣,我的需求僅僅只是採集數據,至於處理播放,壓縮打包,
udp發送等等交給qt來處理。我就納悶了,怎麼我在qt多媒體庫沒找到實時採集功能?
就像騰訊在線視頻點播,竟不支持本地文件播放一樣不可思議,又理所當然!
強大的openAL音頻庫我是一定要學的,不過不是現在,現在我得開始進入正題:
我剛開始下的是pa_stable_v19_20111121.tgz 那個最新版本的,
解壓後,竟發現那東東打不開,我是win7 64位版的操作系統,360的解壓縮。
後來改下載portaudio_v18_1.zip 那個老版本的,才發現裏面有代碼資源。
點擊 \portaudio_v18_1\docs那個目錄index.html看了起來,
沒辦法,我英文不好,網上又沒中文的教程,好在那英文文檔並不大,
PortAudio只是提供了一個接口,對底層實現進行了封裝,對不同的平臺選用不同的實現。
PortAudio在windows平臺中有三種實現,我選擇DirectSound API. 實現,呵呵,真夠賤的!
把pa_win_ds目錄中的文件複製到pa_common目錄中,
找到pa_tests目錄中的patest_saw.c文件,它例子當中最簡單的一個,用於測試環境。
把pa_common目錄中的幾個文件連同patest_saw.c文件一同拷貝進項目中,
那項目是我用vc9創建的空項目,接下來應該是設置編譯環境了,我準備讓PortAudio庫依賴DX嘛,
所以在項目屬性頁,c/c++ ,附加包含目錄 "D:\Microsoft DirectX SDK (June 2010)\Include"
以前裝了DX SDK的,不過後來又重裝了系統,所以有必要設置它的搜索目錄,
再來設置鏈接器的附加庫目錄"D:\Microsoft DirectX SDK (June 2010)\Lib\x86"
千萬別設置成x64位的,否則編譯器會給你整一小版---無法解析的外部符號,我試過的。
再下來就設置鏈接器->輸入->附加依賴項 dsound.lib winmm.lib
我也不知道爲什麼會要winmm.lib,文檔上說是要,我不要它就通不過編譯,所以,就這樣了。
不必設置bin目錄了,生成解決方案,運行,然後就會發現音響中發出的那刺耳又難聽的聲音是如此動聽,
到此PortAudio庫的使用環境搭建完畢,接下來該是看例子學習怎麼使用它了。
上面提到的我拷貝進項目的那些文件,其實沒必要管它是什麼東東的,封裝嘛,就是爲了易於使用,
去糾纏那些細節,我還不如去學DirectShow,去學習openAL,不過portaudio.h這個接口文件除外。
先寫到這兒,這庫具體怎麼用,以及怎麼在qt creator中使用,有機會再寫,
日記是記錄成長足跡的嘛,不是憑空想像寫還沒發生的科幻小說的,是吧?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章