我正在尝试捕获activeX flash组件正在播放的音频。
我通过找到flash.ocx module and hook the waveOutWrite function。
来做到这一点这似乎运行良好,但是我不能区分在内部调用waveOutWrite的不同activex实例,因为音频似乎来自同一个线程并且目标是相同的输出设备。
我的问题是如何区分谁在调用waveOutWrite?
我认为答案在于为每个activex实例加载flash.ocx实例,但不确定如何实现,尽管COM会自动处理模块加载。我的一个想法是在不同的进程中创建activex组件,这有望导致从不同的线程调用waveOutWrite函数。然而,这似乎是实现这一目标的一种相当复杂的方式。
有什么想法吗?
答案 0 :(得分:1)
我很惊讶几个OCX实例共享同一个线程。我本可以发誓他们会得到独一无二的。因此我之前的[已删除]答案。
请问:你为什么一次演奏几首声音?那是绝对必要的吗?或者,如果其他OCX实例正在播放“静音”声音,您可以通过查看波形缓冲区来识别它们。或者可能是 WAVEHDR 结构中的其他数据,也许是 dwUser ......