日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

波形捕捉:(7)“捕捉缓冲区”特效

發布時間:2025/7/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 波形捕捉:(7)“捕捉缓冲区”特效 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

“捕捉緩沖區”特效

????? 在 Windows XP 中,有兩種可以作為內核級的實現方式的“捕捉緩沖區”特效是可行的:
????? ·回聲消除(AEC)
????? ·降噪

????? 不支持其它DMOs中的特效(諸如那些被用于緩沖區渲染的效果)。

????? DirectSoundFullDuplexCreate8?函數和 IDirectSoundCapture8::CreateCaptureBuffer 方法都以一個表明 DSCEFFECTDESC 結構體數組(該數組用于表示想要的特效)地址的?DSCBUFFERDESC?結構體作為參數。但是,如果你想利用微軟的實現方式你必須通過 DirectSoundFullDuplexCreate8 創建一個捕捉緩沖區。你也必須使用該函數創建輔助聲音緩沖區。如果不這樣做,那特效就無法實現。

????? 在每個 DSCEFFECTDESC 結構體的 dwFlags 成員中,你必須指定 DSCFX_LOCHARDWARE 或 DSCFX_LOCSOFTWARE。在大多數情況下,指定 DSCFX_LOCSOFTWARE。如果特效在指定的位置不可行,那么緩沖區創建失敗。

????? 特效由 DSCEFFECTDESC 結構體中的 guidDSCFXClass 成員來標識。在 guidDSCFXInstance 成員中指定 DSCFX_MS_AEC?或 DSCFX_MS_NS 就可以得到微軟的軟件實現方式。要想在硬件或軟件上使用其它可行的實現方式,就得從制造商那里獲取類和實例GUID。

????? 當緩沖區被創建之后,你可以通過 IDirectSoundCaptureBuffer8::GetFXStatus 方法獲取特效的信息。

????? AEC主要利于那些用于一端到另一端進行語音交流的應用程序。由A區域麥克風發出的信號從B區域的喇叭中輸出,同時被B區域的麥克風接收。不使用AEC的話,這個信號就又會被發送回A區域。導致回聲也可能是囂叫。AEC通過在每個區域監控輸入信號(以整個房間的環境作為考慮因素對輸入信號進行調整,將它從當前正在輸出的信號中排除)克服了這個問題。它同時也除去了任何由本地電腦播放著的聲音(比如音樂),從而通過網絡傳輸的語音將不會受干擾。

????? AEC在操作系統內核級別上實現并且全局使用這種效果。它有如下限制:
????? ·同一時刻只能有一個捕捉緩沖區使用AEC。
????? ·如果其它應用程序正在捕捉或播放音頻,那么AEC就不能被啟動。如果AEC已經啟動了,其它任何應用程序要捕捉聲音都會使用AEC。
????? ·不管輸入輸出的格式如何,內核混音器都以16位 mono格式處理聲音。這樣的結果是聲音質量可能會下降。以16位 mono格式捕捉聲音是為了減少對處理器的使用。
????? ·當AEC正在被使用時,所有DirectSound設備上的硬件回聲都會失效,這將會影響到其它共享了該設備的用戶的體驗。
????? ·AEC參數的變化將會影響所有正在運行的應用程序。
????? ·AEC無法在有些組合聲效卡和驅動程序的情況下使用。應用程序應該始終提供用戶關閉AEC的功能。
????? ·在操作系統版本上主要是Windows XP SP1,AEC無法在使用USB喇叭的情況下工作,也無法在那些提供不同時鐘頻率的捕捉和渲染的機器上工作。
????? ·如果音效環境改變,適配過濾器將會花費2秒或以上的時間進行調節。
????? ·任何出現在原始聲音信號后128毫秒以上的后期混響將不會從正在輸出的信號中除去。

????? 在具有這個效果的捕捉緩沖區上,使用 IDirectSoundCaptureFXAec8?接口來設置和得到AEC參數。你也可以允許噪音來填充。(一種用于防止在輸出信號中沒有新數據時而產生完全的寂靜)

????? 降噪特效只有在AEC被啟用的情況下才能被使用。降噪捕捉效果除去頻繁的背景噪音,諸如風扇噪音。使用 IDirectSoundCaptureFXNoiseSuppress8?接口來設置和獲取參數。

????? 通過使用 IDirectSoundCaptureBuffer8::GetObjectInPath 方法從捕捉緩沖區對象中得到特效接口。

?

查看其它:
??????導 言
????? 1.枚舉“捕捉設備”
????? 2.創建“捕捉設備對象”
??????3.“捕捉設備”性能
????? 4.創建一個“捕捉緩沖區”
????? 5.“捕捉緩沖區”信息
????? 6.“捕捉緩沖區”通知
????? 7.?“捕捉緩沖區”特效
????? 8.使用“捕捉緩沖區”
????? 9.寫入到WAV文件?

轉載于:https://www.cnblogs.com/stg609/archive/2008/10/23/1314479.html

總結

以上是生活随笔為你收集整理的波形捕捉:(7)“捕捉缓冲区”特效的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。