我正在尝试实现一个简单的音频播放器,并从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,则输出将变得非常失真。