如何将系统mic音频流传输到连接的设备mic音频流

我正在尝试连接用于远程呼叫的USB设备,它具有用于麦克风和扬声器的pnp声音控制器。 现在我有两个扬声器和两个麦克风用于输入输出,如下图所示。 <img src="http://sofzh.miximages.com/c%23/AXVcd.png" alt="扬声器”> MIC 。 现在我的动机是将音频流从系统麦克风传输到USB麦克风,从USB扬声器传输到系统扬声器。

我试图用虚拟有线电视软件来解决这个问题但是我需要依赖第三方。 使用c#可以获得什么样的解决方案。

我对此并不了解,所以不知道如何开始。 谷歌搜索后我找到了

  1. CS核心
  2. N音频

可以帮助我,我不知道如何。

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { List sources = new List(); for (int i = 0; i < NAudio.Wave.WaveIn.DeviceCount; i++) { sources.Add(NAudio.Wave.WaveIn.GetCapabilities(i)); } sourceList.Items.Clear(); foreach (var source in sources) { ListViewItem item = new ListViewItem(source.ProductName); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, source.Channels.ToString())); sourceList.Items.Add(item); } } NAudio.Wave.WaveIn sourceStream,sourceStream1 = null; NAudio.Wave.DirectSoundOut waveOut = null; private void button2_Click(object sender, EventArgs e) { if (sourceList.SelectedItems.Count == 0) return; int deviceNumber = sourceList.SelectedItems[0].Index; sourceStream = new NAudio.Wave.WaveIn(); sourceStream.DeviceNumber = 0; sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels); NAudio.Wave.WaveInProvider waveIn = new NAudio.Wave.WaveInProvider(sourceStream1); sourceStream. waveOut = new NAudio.Wave.DirectSoundOut(); waveOut.Init(waveIn); sourceStream1.StartRecording(); waveOut.Play(); } private void button3_Click(object sender, EventArgs e) { if (waveOut != null) { waveOut.Stop(); waveOut.Dispose(); waveOut = null; } if (sourceStream != null) { sourceStream.StopRecording(); sourceStream.Dispose(); sourceStream = null; } } private void button4_Click(object sender, EventArgs e) { button3_Click(sender, e); this.Close(); } } 

使用此代码我可以将麦克风音频发送到扬声器,但我如何使用它来实现我的任务。

实际上没有编写任何自定义驱动程序就无法做到这一点。 您无法将音频数据渲染到输入设备。 输入设备用于读取数据。 输出设备(扬声器)用于写入数据。

有一些程序,如虚拟音频线,使用自定义驱动程序来绕过这些限制。