问题描述
- 使用 NAudio 库
- 我看到了以下链接: https://markheath.net/post/mixing-and-looping-with-naudio(不完全了解细节)
- 我能够一个接一个地播放生成的音调。
我不明白的是如何将多个音源/音源组合到一个混音器中并播放该混音器的输出,如下所示:
我认为这里缺少对流程的一些基本理解,因此任何指示或进一步的细节都会真正帮助我前进。
创建混音器:
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 (将#修改为@)