我想要捕获使用Waveform Audio API的扬声器音频。
我搜索并找到了解释如何使用Waveform Audio从麦克风捕获音频并保存到文件或播放的帖子。然而,没有人解释如何从扬声器捕获音频。
我的理解是,如果我在waveInOpen()中提供回放设备的句柄,那么我可以从扬声器捕获声音。这就是我需要帮助的地方。如何获取播放设备的句柄?当我提供WAVE_MAPPER (or 0) for uDeviceID时,它总是从麦克风录制。如果我设置了任何其他值,我总是会得到超出范围的错误。
编辑:
自从我发布了问题后,我做了一些更多的研究。我找到了可以用于音频捕获的其他选项/API。我需要帮助来指出正确的方向,其中一个用于捕获扬声器的音频。我不想要任何花哨的东西,这涉及到很多代码。我的目标操作系统是XP或更高版本。
waveInOpen和混音器:
这些链接上的评论/讨论提示可以使用waveInOpen()从扬声器中抓取音频。根据这些,必须打开搅拌器。我用过mixerOpen()来获取混音器的句柄,但不知道如何在waveInOpen()中使用这个句柄。
How do I capture the audio that is being played?
Sound from mic vs sound from speaker
XAudio2:
是否可以使用XAudio2从扬声器捕获音频?如果是,那么请分享一些示例代码。
发布于 2015-01-17 14:28:29
该API不是为该用例设计的。扬声器输出是一个输出设备,可通过waveOutOpen访问。一种解决方法是安装一个虚拟声卡,如the one at this like,这将允许您将音频输出重定向回音频输入。
https://stackoverflow.com/questions/27992964
复制相似问题