将多个音调发生器发送到混音器并播放混音器的输出

问题描述

我不明白的是如何将多个音源/音源组合到一个混音器中并播放该混音器的输出,如下所示:

enter image description here

我认为这里缺少对流程的一些基本理解,因此任何指示或进一步的细节都会真正帮助我前进。

创建混音器:

WavemixerStream32 mixer = new WavemixerStream32();
mixer.AddInputStream(GenerateUpperSine(args[0]));
mixer.AddInputStream(GenerateLowerSine(args[1]));

创建正弦发生器:

private static WaveStream GenerateUpperSine(string frequency){
  var outFormat = WaveFormat.CreateIeeeFloatWaveFormat(44100,1);
  const int durationInSecods = 5;
  var UpperFreq = new SignalGenerator();
  {
    Gain = 0.2,Frequency = Double.Parse(frequency),Type = SignalGeneratorType.Sin
  }
  var sp = UpperFreq.ToWaveProvider16();
  byte{} data = new Byte[outFormat.AverageBytesPerSecond * durationInSeconds];
  var bytesRead = new sp.Read(data,data.Length);
  return new RawSourceWaveStream(new MemoryStream(data),outFormat);
}

GenerateLowerSine 函数与上面的函数完全相同,只是更改了一些变量。

从命令行调用这个应用程序如下:

c:\path\to\exe\my.exe 1000 750

我有一些代码可以添加生成代码中,按预期一个一个地播放音调。这可能驻留在函数中,如下所示:

var wo = new WaveOutEvent();
wo.Init(UpperFreq);
wo.Play();

这表明基本功能正在运行,至少是部分运行。

我认为我缺少的是:

  • 如何将音调发生器的输出发送到混音器,然后从混音器的输出开始播放

  • 可能将混音器的输出连接到 WaveOut 设备并发送 从音调发生器到混音器输入端的音频/数据

也许是别的。

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)