2015-01-20 79 views
0

我正在使用naudio通过软电话通过电话向某人播放wave文件的项目。打电话的人,佩戴USB耳机(这是一个外部声卡)需要能够与波形文件一起说话。现在,我正在将两根3.5毫米音频电缆从输出端连接到计算机背面的输入端,以实现此目的。这使得我不得不使用板载声卡来处理声音和头部声音,这意味着我必须根据需要切换默认输入音频设备,以便让人听到或者听到声音。这会导致softphone应用程序出现问题,具体取决于其设备的设置。我想完全切掉板载声卡。我想将我的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(); 

此时我很想不仅发送到所选的输出设备,还向输入设备为好。有什么简单的方法可以做到这一点?感谢您的帮助提前。

回答

0

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

+0

谢谢马克,我很害怕这个。我发现通过将耳机输入发送到板载输出(似乎更容易从输入到输出,然后反过来),但我昨晚进行了测试,似乎会导致音频质量降低大时间。波浪听起来很好,但声音很糟糕。希望我能找到解决方案。 – JasonV 2015-01-21 16:44:29

相关问题