2017-09-26 3 views
0

일부 DSP 효과가 ISampleProvider 모델에 코딩되어 있습니다. 하나의 효과를 적용하려면이 작업을 수행하면됩니다.여러 개의 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

효과는 다음 소스의 "소스"로 전달하여 함께 연결할 수 있습니다. 따라서 오디오를 리버브 및 왜곡을 통해 먼저 처리하고 싶다면 원본 오디오를 리버브 (Reverb) 효과에 전달하고 리버브를 왜곡 효과로 출력 한 다음 왜곡을 waveOut에 전송하십시오. 장치.

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

은 (N.B. NAudio 리버브/왜곡 효과에 내장되어 있지 않습니다 - 당신이 직접 만들거나 다른 곳에서 그들을 소스한다)

+0

하, 너무 쉽게합니다. 그것은 완벽하게 작동합니다. Thanks Mark, ISampleProvider 프레임 워크는 Genius입니다. –

관련 문제