2011-03-23 83 views
3

我試圖捕獲activeX閃存組件正在播放的音頻。閃存和音頻掛鉤

我這樣做是通過找到flash.ocx module and hook the waveOutWrite function

這似乎工作得很好,但是我無法區分不同的activex實例,它們在內部調用waveOutWrite,因爲音頻看起來似乎來自同一個線程並且指向相同的輸出設備。

我的問題是我如何區分誰叫waveOutWrite?

我認爲答案就在於爲每個activex實例加載一個flash.ocx實例,不確定如何實現,因爲模塊加載是由COM自動處理的。我的一個想法是在不同的進程中創建activex組件,希望這會導致從不同的線程調用waveOutWrite函數。但是,這似乎是一個相當複雜的方式來實現這一點。

任何想法?

回答

1

我真的很驚訝幾個OCX實例共享相同的線程。我可以宣誓他們得到獨一無二的。因此,我以前的[刪除]答案。

請問:你爲什麼一次演奏幾種聲音?這是絕對必要的嗎?或者,如果其他OCX實例正在播放「靜音」聲音,則可以通過查看波形緩衝區來識別它們。或可能的話,WAVEHDR結構中的其他數據,或許dwUser ...