2017-09-26 123 views
0

我在ISampleProvider模型中编写了一些DSP效果。要应用一个效果,我这样做,它工作正常。如何链接多个NAudio ISampleProvider效果

string filename = "C:\myaudio.mp3"; 
MediaFoundationReader mediaFileReader = new MediaFoundationReader(filename); 
ISampleProvider sampProvider = mediaFileReader.ToSampleProvider(); 
ReverbSampleProvider reverbSamplr = new ReverbSampleProvider(sampProvider); 
IWavePlayer waveOutDevice.Init(reverbSamplr); 
waveOutDevice.Play(); 

如何将多个效果同时应用于同一个输入文件? 例如,如果我有混响效果和失真效果提供程序,如何将它们链接在一起以将它们同时应用于一个输入文件?

回答

1

效果可以通过传递一个作为下一个的“源”链接在一起。所以如果你想让你的音频首先通过混响,然后失真,你可能会这样做,将原始音频传递到混响效果,混响输出到失真效果,然后发送失真到waveOut设备。

var reverb = new ReverbSampleProvider(sampProvider); 
var distortion = new DistortionSampleProvider(reverb); 
waveOutDevice.Init(distortion); 

(注:n音讯不附带内置混响/失真效果 - 你必须让这些自己或从其他地方采购他们)

+0

哈,这么容易。它是完美的。谢谢Mark,ISampleProvider框架是Genius。 –