波形捕捉 (2)建立捕捉裝置物件

2021-04-27 06:05:22 字數 1586 閱讀 3167

建立「捕捉裝置物件」

你可以通過呼叫directsoundcapturecreate8directsoundfullduplexcreate8函式來建立乙個捕捉裝置物件。這兩個函式都獲取乙個指向idirectsoundcapture8 介面的指標。

directsoundcapturecreate的lpcguid引數或directsoundfullduplexcreate8的pcguidrenderdevice引數可以是乙個由列舉得到的guid,或者是如下預定義的guid之一:

guiddescription

dsdevid_defaultcapture

系統預設的聲音捕捉裝置。你也可以通過傳遞乙個null指標而不是裝置guid來指定乙個裝置。

dsdevid_defaultvoicecapture

預設聲音溝通裝置。通常情況下,這是乙個輔助裝置如帶麥克風的usb耳機。

如果當前沒有裝置驅動,則呼叫失敗。

你也可以使用cocreateinstance函式來建立乙個物件。這個過程與建立裝置物件類似。步驟如下:

1.在應用程式啟動時通過呼叫coinitializeex函式初始化com物件

hresult hr 

=coinitializeex(null, 0);

if(failed(hr))

2.通過呼叫cocreateinstance方法和idirectsound8::initialize方法建立裝置物件,而不是使用directsoundcreate8函式

lpdirectsound8 lpds; 

hr =

cocreateinstance(

&clsid_directsound8,

null, 

clsctx_inproc_server,

iid_idirectsound8,

(lpvoid*) 

&lpds);

if(failed(hr))

clsid_directsound8 是directsound驅動物件類的類識別符號,iid_idirectsound8 是介面識別符號。lpds引數接收這個介面的指標。

3.呼叫idirectsound8::initialize方法來關聯物件和裝置。這個方法使用的引數與directsoundcreate8使用的裝置guid引數相同。

code

hr =

lpds

->

initialize(null);

if(failed(hr))

4.在你結束應用程式的時候,通過呼叫couninitialize函式來結束com庫,如下:

couninitialize();

波形捕捉 (1)列舉 捕捉裝置

列舉 捕捉裝置 如果你的應用程式只是單純得通過使用者首選裝置用來捕捉聲音,那就沒有必要來列舉可用的裝置。當你通過呼叫directsoundcapturecreate8或directsoundfullduplexcreate8方法來建立乙個裝置物件時,你可以宣告乙個預設裝置。更多資訊,請檢視 crea...

慣性動作捕捉裝置的發展和原理初步介紹

隨著人機互動技術的不斷發展,人與計算機的自然的 多模態的互動技術已經進入白熱化的階段,而動作捕捉技術作為人機互動的乙個重要分支,近幾年,發展迅速。動作捕捉系統就是通過對人體或其他物體運動姿態和位置的檢測和記錄,將這些資訊轉換成數位化的抽象模型,表達不同時刻目標所處的姿態。運動捕捉系統已廣泛應用在運動...

I2C裝置除錯及波形分析

最新在開發oled屏驅動,需要用到i2c匯流排,下面大體上講解一下i2c裝置的除錯及波形分析,為大家做一些參考,由於剛涉及這部分內容,因此有什麼錯誤的,還請賜教 一 概要 i2c匯流排只需要兩條線,一條sda資料線,一條scl時鐘線 根據這兩條線的高低電平 上公升沿 下降沿就可以實現主機與i2c裝置...