2011-03-23 81 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 ...