我正在尋找如何使用Naudio + WASAPI捕獲麥克風音頻的示例代碼。使用Naudio + WASAPI捕獲麥克風音頻?
(我是直接到磁盤記錄不感興趣,我需要的是對實時處理的輸入緩衝區,以做一些音頻效果。)
我搜索了很多,但找不到任何體面的在線樣本。
你能幫忙嗎?
P.S. BASS庫和C#示例也很受歡迎!
我正在尋找如何使用Naudio + WASAPI捕獲麥克風音頻的示例代碼。使用Naudio + WASAPI捕獲麥克風音頻?
(我是直接到磁盤記錄不感興趣,我需要的是對實時處理的輸入緩衝區,以做一些音頻效果。)
我搜索了很多,但找不到任何體面的在線樣本。
你能幫忙嗎?
P.S. BASS庫和C#示例也很受歡迎!
NAudio source code附帶演示應用程序,演示如何使用WASAPI捕獲音頻。看看NAudioDemo\RecordingDemo\RecordingPanel.cs
。
MSDN有很多代碼示例,雖然不覆蓋NAudio,但他們確實有幾個示例詳細顯示瞭如何使用Windows音頻會話API。
由於WASAPI是純API本身,因此兩個示例項目都向您展示瞭如何從純本機應用程序Here使用該API以及向您展示如何構建包裝API的本地組件的示例來自CSharp應用程序的消耗。我找不到C#/ C++ - 樣本的直接鏈接,但它包含在Windows 8 App Samples包中。然後可以選擇爲API編寫託管包裝,但除非您喜歡痛苦,並且正在尋找編組中的冒險,我不會推薦它......
如果您正在爲Windows Phone開發,那麼有一個VOIP-WP8 SDK中的示例,介紹如何使用WASAPI捕獲和呈現PCM音頻數據。
正如Mark指出的那樣,pcm數據緩衝區的大小可能會隨着時間而有所不同,這部分是由於WASAPI是低延遲音頻API,因此消費者(您的應用程序)和生產者(司機)儘可能。雖然沒有什麼能夠阻止您對自己的緩衝區進行一些修復,並且只在您自己的緩衝區已滿時將數據傳遞到應用程序。
感謝您的回答。我已經看到了這個例子,但似乎緩衝區大小不斷變化(7000-8000字節)。 有沒有辦法修改這段代碼來使緩衝區大小一致? – AudioMaster
我認爲這是WASAPI的實施方式。如果你需要恆定的大小,你可以自行將緩衝區分成塊。 –