如何将音频流从输出设备发送到输入设备?

时间:2015-01-20 20:04:20

标签: c# naudio

我正在开展一个项目,我正在通过软电话使用naudio通过电话播放wave文件。打电话的人戴着USB耳机(外接声卡)需要能够与波形文件一起说话。现在,我正在从输出端运行双3.5毫米音频线到计算机背面的输入端,以实现这一目标。这使得我必须使用板载声卡用于波和头部设置供人说话,这意味着我必须按需切换默认输入音频设备以允许听到人或听到波。这会导致软电话应用程序出现问题,具体取决于其设备的设置方式。我想完全删除板载声卡。我想将我的wave音频和讲话的人发送到同一个输入设备。

播放音频时,这就是我调用的代码:

WaveStream waveStream = new WaveFileReader(@"C:\Users\Public\Music\tester.wav");

WaveOut waveOut = new WaveOut();

waveOut.DeviceNumber = int.Parse(device1);

WaveOut.Init(waveStream);

WaveOut.Play();

此时我不仅希望发送到选定的输出设备,还希望发送到输入设备。有什么简单的方法可以做到这一点吗?感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不幸的是,各种Windows音频API无法用您自己的音频替换实际输入设备接收的音频,因此这不是您可以使用NAudio开箱即用的功能。您需要的是创建一个虚拟音频输入设备。这是相当多的工作,所以最简单的解决方案是购买类似Virtual Audio Cable的东西,这将允许您创建虚拟声音设备并将它们拼凑在一起。