我正在製作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