我正在制作XNA 4.0游戏,我使用NAudio播放声音,因为它比XNA的声音模块更强大。播放较慢播放的MP3文件
我需要播放较慢的MP3文件(速度为0.75x或0.5x)。我最初的想法是改变WaveStream的采样率。这里是我想要做的事:
WaveStream originalWaveStream = new MP3FileReader(filepath);
WaveChannel32 volumeStream = new WaveChannel32(originalWaveStream); //So I can change the volume of the playback
WaveFormat tempFormat = new WaveFormat((int)(volumeStream.WaveFormat.SampleRate * 0.75f),(int)volumeStream.WaveFormat.BitsPerSample,(int)volumeStream.WaveFormat.Channels);
WaveFormatConversionStream tempStream = new WaveFormatConversionStream(tempFormat, volumeStream);
WaveChannel32 slowerWaveStream = new WaveChannel32(tempStream);
如果我跑,我得到,说:“AcmNotPossible调用acmStreamOpen”的tempStream的构造函数运行时的MmException。
我做错了什么?改变采样率是改变播放速度的唯一方法吗?有没有一个正确的方法来做到这一点?
这个SoundTouch似乎很适合我需要的东西。我会看看它。 – UBSophung