1

我想使用Waveform Audio API.

我搜索并找到了解释如何使用 Waveform Audio 从麦克风捕获音频并保存到文件或播放的帖子。但是,没有人解释如何从扬声器捕获音频。

我的理解是,如果我提供播放设备的句柄,waveInOpen()那么我可以从扬声器中捕捉声音。这是我需要帮助的地方。如何获取播放设备的句柄?当我提供WAVE_MAPPER (or 0) for uDeviceID时,它总是从麦克风录制。如果我设置任何其他值,我总是会出现超出范围的错误。

编辑:

自从我发布问题以来,我做了更多的研究。我找到了可用于音频捕获的其他选项/API。我需要帮助来指出正确的方向,该方向用于从扬声器捕获音频。我不想要任何涉及大量代码的花哨的东西。我的目标操作系统是 XP 及以上。

WaveInOpen 和混音器:

对这些链接的评论/讨论提示waveInOpen()可用于从扬声器中获取音频。根据这些,必须打开Mixer。我曾经mixerOpen()得到搅拌机手柄,但不知道如何使用这个手柄waveInOpen()

如何捕捉正在播放的音频?

来自麦克风的声音与来自扬声器的声音

XAudio2:

我可以使用 XAudio2 从扬声器捕获音频吗?如果是,那么请分享一些示例代码。

4

1 回答 1

0

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

于 2015-01-17T06:28:28.643 回答