【发布时间】:2015-03-15 14:08:44
【问题描述】:
我想使用Waveform Audio API 从扬声器捕获音频。
我搜索并找到了解释如何使用波形音频从麦克风捕获音频并保存到文件或播放的帖子。但是,没有人解释如何从扬声器捕获音频。
我的理解是,如果我在waveInOpen() 中为播放设备提供句柄,那么我可以从扬声器中捕捉声音。这是我需要帮助的地方。如何获取播放设备的句柄?当我提供WAVE_MAPPER (or 0) for uDeviceID 时,它总是从麦克风录制。如果我设置任何其他值,我总是会出现超出范围的错误。
编辑:
自从我发布问题以来,我做了更多的研究。我找到了可用于音频捕获的其他选项/API。我需要帮助来指出正确的方向,该方向用于从扬声器捕获音频。我不想要任何涉及大量代码的花哨的东西。我的目标操作系统是 XP 及以上。
waveInOpen 和混音器:
对这些链接的评论/讨论暗示waveInOpen() 可用于从扬声器中获取音频。根据这些,必须打开Mixer。我已经使用mixerOpen() 来获取混音器手柄,但不知道如何将此手柄与waveInOpen() 一起使用。
How do I capture the audio that is being played?
Sound from mic vs sound from speaker
XAudio2:
我可以使用 XAudio2 从扬声器捕获音频吗?如果是,请分享一些示例代码。
【问题讨论】:
-
您包含的第一个链接有 3 条建议,可以满足您的要求。三个中的最后一个基本上是我回答的。我不会说第一个是不可能的,但根据我的经验,我从未见过有这种能力的声卡。我刚刚检查了我电脑中的那个,还检查了我桌子上的 4 个专业音频设备。祝你好运。
-
您找到解决方案了吗?我也需要录制系统输出的音频。
标签: winapi audio audio-recording xaudio2