CSCore音频播放器(C#)-SoundTouch造成的失真

时间:2019-04-12 20:57:43

标签: c# cscore soundtouch

我正在尝试实现一个简单的音频播放器,并从SoundTouchPitchAndTempo示例(https://github.com/filoe/cscore)开始。当我播放MP3时,声音会失真得无法识别。如果我从GetCodec函数(MainWindowViewModel.cs-第129行)中注释SoundTouch引用,则输出很好。但是,当然,音调和速度控制没有任何作用。由于这是示例,因此通常可以正常使用,而我缺少一些基本知识。 我正在使用Olli网站上预编译的SoundTouch.dll。 显然,我对CSCore还是很陌生,有点困惑。如果有人可以指出正确的方向开始观看,我将不胜感激。

相关代码(示例项目中的代码是:

    private void OpenHandler()
        {
            var fileName = OpenFileDialog("MP3 Files|*.mp3");
            if(string.IsNullOrEmpty(fileName))
            {
                return;
            }

            var waveSource = CodecFactory.Instance.GetCodec(fileName)
                //.AppendSource(x => new SoundTouchSource(x), out _soundTouchSource)
                    .ToSampleSource()
                    .ToWaveSource();

            _soundOut = new WasapiOut();
            _soundOut.Initialize(waveSource);

            TempoSliderValue = 0;
            PitchSliderValue = 0;
        }

如果我通过取消注释.AppendSource行来包含SoundTouch,则输出将变得非常失真。

0 个答案:

没有答案