提问者:小点点

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


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

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

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个答案

匿名用户

不幸的是,各种Windows音频API无法为您提供将实际输入设备接收的音频替换为您自己的音频的方法,因此这不是您可以使用NAudio实现的。您需要的是创建一个虚拟音频输入设备。这是一项相当多的工作,因此最简单的解决方案是购买类似虚拟音频电缆的东西,这将允许您创建虚拟声音设备并将其连接在一起。