波形捕捉:(2)创建捕捉设备对象
創(chuàng)建“捕捉設備對象”?
????? 你可以通過調用?DirectSoundCaptureCreate8?或?DirectSoundFullDuplexCreate8?函數(shù)來創(chuàng)建一個捕捉設備對象。這兩個函數(shù)都獲取一個指向IDirectSoundCapture8?接口的指針。
????? DirectSoundCaptureCreate?的lpcGUID參數(shù)或?DirectSoundFullDuplexCreate8?的pcGuidRenderDevice參數(shù)可以是一個由枚舉得到的GUID,或者是如下預定義的GUID之一:
| GUID | Description |
| DSDEVID_DefaultCapture | 系統(tǒng)默認的聲音捕捉設備。你也可以通過傳遞一個NULL指針而不是設備GUID來指定一個設備。 |
| DSDEVID_DefaultVoiceCapture | 默認聲音溝通設備。通常情況下,這是一個輔助設備如帶麥克風的USB耳機。 |
????? 你也可以使用?CoCreateInstance?函數(shù)來創(chuàng)建一個對象。這個過程與創(chuàng)建設備對象類似。步驟如下:
????? 1.在應用程序啟動時通過調用?CoInitializeEx?函數(shù)初始化COM對象
Code ????? 2.通過調用?CoCreateInstance?方法和?IDirectSound8::Initialize?方法創(chuàng)建設備對象,而不是使用?DirectSoundCreate8?函數(shù)
Code CLSID_DirectSound8 是DirectSound驅動對象類的類標識符,IID_IDirectSound8 是接口標識符。lpds參數(shù)接收這個接口的指針。
????? 3.調用?IDirectSound8::Initialize?方法來關聯(lián)對象和設備。這個方法使用的參數(shù)與?DirectSoundCreate8?使用的設備GUID參數(shù)相同。 Code ????? 4.在你結束應用程序的時候,通過調用?CoUninitialize?函數(shù)來結束COM庫,如下:
????? CoUninitialize();
????? 如果你使用?CoCreateInstance,那么用戶在控制面板中選擇的默認捕捉設備對象將被創(chuàng)建。
????? 如果你想要播放設備對象和捕捉設備對象同時存在,那么你應該在創(chuàng)建和初始化捕捉設備對象前創(chuàng)建并初始化播放設備對象,或者使用?DirectSoundFullDuplexCreate8。
????? 有些音頻設備默認沒有設定為全雙工音頻。如果你的應用程序在創(chuàng)建和初始化播放設備對象和捕捉設備對象時出現(xiàn)問題,你應該建議用戶檢查音頻設備屬性,從而確保全雙工已經(jīng)被啟用了。?
?
查看其它:
??????導 言
????? 1.枚舉“捕捉設備”
????? 2.創(chuàng)建“捕捉設備對象”
??????3.“捕捉設備”性能
????? 4.創(chuàng)建一個“捕捉緩沖區(qū)”
????? 5.“捕捉緩沖區(qū)”信息
????? 6.“捕捉緩沖區(qū)”通知
????? 7.?“捕捉緩沖區(qū)”特效
????? 8.使用“捕捉緩沖區(qū)”
????? 9.寫入到WAV文件?
本文轉自stg609博客園博客,原文鏈接:http://www.cnblogs.com/stg609/archive/2008/10/20/1314020.html,如需轉載請自行聯(lián)系原作者
總結
以上是生活随笔為你收集整理的波形捕捉:(2)创建捕捉设备对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工厂对象模式简介
- 下一篇: jQuery中实现全选功能时使用attr