Настройка аудиосписи с DmoeffectwaveProviderC#

Место общения программистов C#
Anonymous
Настройка аудиосписи с DmoeffectwaveProvider

Сообщение Anonymous »

Я строю аудио миксер, используя Naudio, и я столкнулся с проблемой с DmoeffectwaveProvider. Я пытаюсь настроить звуковую цепочку, передавая IsamplePrivider через последовательность: SampleChannel -> FiltersAmpleProvider -> StereOpanningProvider -> Evalizer -> DmoeffectwaveProvider -> MeteringSampleProvider -> wasaPiout. Все работало нормально, пока я не добавил dmoeffectwaveprovider; Кажется, это нарушает цепь, но я понятия не имею, почему. Текущий код ниже: < /p>
private void SetupAudioChain()
{
var sampleChannel = new SampleChannel(AudioFileReader, true);
SetVolumeDelegate = vol => sampleChannel.Volume = vol;

FilterSampleProvider = new FilterSampleProvider(sampleChannel, AudioFileReader.WaveFormat.SampleRate);
PanningProvider = new StereoPanningSampleProvider(Equalizer.FilterSampleProvider);
Eq = new Equalizer(Equalizer.PanningProvider, Equalizer.Bands);

if (reverbEnabled)
{
effectWaveProvider = new DmoEffectWaveProvider(Equalizer.equalizer.ToWaveProvider());

var reverbEffectParams = effectWaveProvider.EffectParams;
reverbEffectParams.InGain = 0f;
reverbEffectParams.ReverbMix = 0f;
reverbEffectParams.ReverbTime = 1000f;
reverbEffectParams.HighFreqRtRatio = 0.001f;

outputProvider = new MeteringSampleProvider(effectWaveProvider.ToSampleProvider());
}
else
{
outputProvider = new MeteringSampleProvider(Eq);
}

if (volumeMeteredHandlers != null)
{
((MeteringSampleProvider)outputProvider).StreamVolume += volumeMeteredHandlers;
}
((MeteringSampleProvider)outputProvider).StreamVolume += (s, e) =>
{
leftChanelVolumeLevel = e.MaxSampleValues[0];
rightChanelVolumeLevel = e.MaxSampleValues[1];
};
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... veprovider

Вернуться в «C#»