.net - 通过软件将音频输出路由到麦克风输入

标签 .net vb.net audio naudio

我正在使用某个应用程序,处理从声卡的麦克风插孔传入的音频。因为我需要它来处理在我的 Windows 7 系统上播放的音频,所以我在声卡的扬声器输出插孔和麦克风的输入插孔之间物理连接了一根电缆。

这可以通过软件来完成吗?通过 NAudio?

我在 this thread 上找到了答案这似乎描述了如何完成相反的路线,即麦克风到扬声器,但无法弄清楚如何将其转换为相反的方式。

我还找到了 this未回答的问题,虽然底线不同,但目标似乎很接近。

我使用的是 VB.Net 2010。目标平台是 Windows 7 或更高版本。

使用“虚拟音频电缆”等外部音频路由应用程序目前不是有效选项。

最佳答案

要将音频输出路由为另一个应用程序的输入,您需要能够处理以下事项:

  1. 在播放应用程序上选择特定的音频输出
  2. 在录音/处理应用程序上选择特定的音频输入
  3. 将输入和输出连接在一起

有几种方法可以实现上述项目。

一个明显的解决方案是硬件环回。这涵盖了上面的#3,其他内容通过将电缆插入适当的连接器来涵盖。不需要软件,但存在明显的缺点:开销、噪声和由于 DAC 和 ADC 转换可能导致的质量损失,无法使用某些多 channel 格式。

然后,您可以安装 Virtual Audio Cable,它会在后台创建一对连接的设备。您将此解决方案标记为不令人满意,因此我们将跳过它。

下一个选项是软件环回设备。此选项取决于硬件,并且在许多板载音频设备上可用。播放像往常一样进行,并且您有一个额外的音频输入设备可用,它可以生成发送到硬件输出的音频馈送副本。一旦启用此设备(通常默认情况下禁用),您需要将此设备用作处理应用程序的音频输入。参见 Is it possible to record sound played on the sound card?了解详情。这类似于硬件环回,但没有物理电缆。同样的缺点适用。 据推测,这是最接近您需求的。

然后另一个选项是一对只有软件的虚拟音频设备。类似于 Virtual Audio Cable,但具有这些设备的特定应用消费者,可以在用户模式下实现设备,无需第三方应用程序设置,特别不需要管理权限。我不知道有任何开箱即用的实现,如果您打算只使用 VB.NET(也就是说,无论如何都需要高级编程,即使不需要内核模式,这也不太可能成为您的解决方案司机)。

关于.net - 通过软件将音频输出路由到麦克风输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20953107/

相关文章:

.net - 通过 ASMX Web 服务传输大型数据集的最佳方法是什么?

c# - sizeof 根据字段顺序给出不同的结果

使用套接字的 C# 代理,我应该怎么做?

.net - ASP.NET MVC 4 WebAPI PostAsJsonAsync Newtonsoft.Json 错误

c# - 如何使音频文件自身重叠?

c# - 将 HttpListener 用于生产口径的 Web 服务器?

asp.net - 访问数据库错误 "Could not find file"?

linux - Jack2 的 SuperCollider 没有声音

java - 如何让 EasySound(.wav 播放器)在我的代码中工作?

.net - 通过身份验证自动从网站下载图片