3

我正在尝试捕获 activeX flash 组件正在播放的音频。

我通过找到flash.ocx 模块并挂钩 waveOutWrite 函数来做到这一点。

这似乎运作良好,但是我无法区分在内部调用 waveOutWrite 的不同 activex 实例,因为音频似乎来自同一个线程并针对同一个输出设备。

我的问题是如何区分谁在调用 waveOutWrite?

我认为答案在于为每个 activex 实例加载一个 flash.ocx 实例,虽然模块加载由 COM 自动处理,但不确定如何实现这一点。我的一个想法是在不同的进程中创建 activex 组件,希望这会导致从不同的线程调用 waveOutWrite 函数。然而,这似乎是实现这一目标的一种相当复杂的方法。

有任何想法吗?

4

1 回答 1

1

我真的很惊讶几个 OCX 实例共享同一个线程。我本可以发誓他们会得到独一无二的。因此,我之前的[已删除]答案。

请问:你为什么要同时播放几个声音?这是绝对必要的吗?或者,如果其他 OCX 实例正在播放“静音”声音,您可以通过查看波形缓冲区来识别它们。或者可能是WAVEHDR结构中的其他数据,可能是dwUser ...

于 2011-08-04T14:10:10.097 回答