【问题标题】:Capture Sound from Speaker Using Waveform Audio API Windows使用 Waveform Audio API Windows 从扬声器捕获声音
【发布时间】: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


【解决方案1】:

API 不是为该用例设计的。扬声器输出是一个输出设备,由waveOutOpen 访问。一种解决方法是安装一个像the one at this like 这样的虚拟声卡,这样您就可以将音频输出重定向回音频输入。

【讨论】:

  • 感谢您的回复。我已经快速访问了您共享的链接。我正在寻找更简单的东西,因为我只需要在不修改声音或执行其他更复杂功能的情况下捕获功能。我将编辑我的原始帖子,因为我做了更多的研究。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 2012-08-27
  • 2019-06-17
  • 2023-04-08
  • 2011-10-06
  • 1970-01-01
  • 2011-08-31
相关资源
最近更新 更多