2008-09-21 98 views
4

如何以編程方式捕獲音頻?我正在實現一個實時在網絡上傳輸桌面的應用程序。視頻部分完成。我需要實現音頻部分。我需要一種方法從聲卡中獲取PCM數據以供給我的編碼器(使用Windows Media格式實現)。如何從Wave Out捕獲PCM數據

我認爲答案與Win32 API中的openMixer(),waveInOpen()函數有關,但我不確定我該怎麼做。

如何打開必要的通道以及如何從中讀取PCM數據?

在此先感謝。

回答

4

我不認爲有一種直接的方式來使用操作系統來做到這一點 - 它可能(或不可能)出現在聲卡上的功能。一些聲卡具有環回接口 - Creative稱之爲「What U Hear」。您只需將其選爲輸入而不是麥克風,然後使用您已知的正常waveInOpen()進行記錄。

如果聲卡沒有這個功能,那麼我認爲你運氣不好,除了像做自己的驅動程序那樣瘋狂。或者你可以說服你的用戶從揚聲器輸出端連接到線路輸入端:)

7

新的Windows Vista核心音頻API有明確的支持(稱爲環回錄音),所以如果你可以住在Vista只有應用程序這是要走的路。

有關如何執行此操作的說明,請參閱MSDN上的Loopback Recording文章。

+1

正確的URL是http://msdn.microsoft.com/en-us/library/ms679146(VS.85).aspx – 2011-02-20 14:25:46