2011-11-04 56 views
2

我剛開始用C++學習DirectShow。我需要使用DirectShow錄製音頻並將其寫入磁盤上的WAV文件。我從其他人那裏聽說,Win 7不允許使用DirectShow渲染音頻。如何使用DirectShow在C++中渲染音頻

此外,我想知道如何開始使用DirectShow和C++重新編碼音頻?如果有樣品來源,那就太好了。

在此先感謝。

回答

4

我想你可能誤解了這些其他人。 Windows Media Foundation旨在成爲DirectShow的繼任者,但DirectShow仍然是very valid technology on Windows 7

完成你想要做的最簡單的事情是,首先使用GraphEdit工具來正確地做到這一點(我假設你想以編程方式做到這一點)。

創建一個圖表,其中包含您的音頻設備WavDestFilterfile writer

Source -> WavDest -> File Writer 

播放圖形。停止圖形,你應該創建一個帶有錄製音頻的.wav文件。如果你能做到這一點,那麼你需要以編程方式完成整個事情。 SDK中有幾個示例向您展示瞭如何以編程方式向圖中添加過濾器並將它們連接起來,這將使您能夠開始使用。

WRT WavDestFilter,IIRC它可能不是所有版本的SDK,你必須找到一個合適的。您還需要構建它,並使用regsvr32,以便它將顯示在GraphEdit中可用過濾器的列表中。

如果這一切似乎有點多,我會通過MSDN上的DirectShow文檔閱讀,以至少獲得DirectShow的概述。