2011-07-03 23 views

回答

0

我知道一種方法來實現這一點,雖然我不知道這是否是最好的方法:如果您不熟悉DirectShow,這不一定容易,因爲它需要您學習該技術的許多方面。您可以使用DirectShow來建立一個媒體管道,看起來大致如下:

捕獲源 - > SampleGrabber - >音頻渲染

這是一個簡單的播放圖形。在採樣器中,您可以在通過管道時截取樣本。在這裏例如你可以處理樣品,看它是否是沉默的。當你有這種權利,嘗試建立,看起來像這樣

捕獲源的圖形 - > SampleGrabber - > MP3編碼器 - > FileWriter的

有關的FileWriter不知道(是否適合MP3編碼數據):爲你做更多的功課。然後使用GMFBridge您可以設置多個圖表。

1)捕獲源 - > SampleGrabber - > GMFBridgeSink 2)GMFBridgeSource - >的mp3編碼器 - >的FileWriter 3)GMFBridgeSource - >渲染器(或其它)

GMFBridge允許你圖之間動態地播放期間切換。 所以1)通常會連接到3),直到您檢測到一定的音頻水平,然後橋接到2)。一旦音頻電平回落到3)。

我不知道這是不是最好的解決辦法,但它是一個解決或起點。也許別人可以建議另一種方式。祝你好運。

+0

謝謝,我不瞭解它很多,因爲我是新來的v-C++,但我會盡力去做,並再次感謝如果你現在有人幫助,請讓他回答我。 – Sam