录音和播放MP3音频

问题描述:

我按照在不同的线程如何录制和播放MP3,但我还是总能得到这个例外试图播放,我已经录制的MP3文件:录音和播放MP3音频

mp3filereader does not support sample rate changes 

因此,这里是我的代码记录:

waveInStream = new WaveIn(); 
waveInStream.WaveFormat = new WaveFormat(8000, 16, 1); 
writer = new WaveFileWriter(outputfileName, waveInStream.WaveFormat); 
waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable); 
waveInStream.StartRecording(); 

的waveInStream_DataAvailable是:

void waveInStream_DataAvailable(object sender, WaveInEventArgs e) 
{ 
    writer.Write(e.Buffer, 0, e.BytesRecorded); 
} 

此时将R生态文件应该是PCM无压缩的权利?
在播放它之前是否需要将其转码为MP3?

我的演奏代码:

WaveChannel32 inputStream; 

WaveStream mp3Reader = new Mp3FileReader(fileName);   var pStream = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(mp3Reader); 
inputStream = new WaveChannel32(mp3Reader); 

volumeStream = inputStream; 
return volumeStream; 

发生异常时,每次在Mp3FileReader电话,说是这样的:

Got a frame at sample rate 44100, in a MP3 sample rate 32000 
Mp3FileReader does not support sample rate change 

是的,你已经保存WAV文件,而不是MP3文件。使用LAME.exe之类的东西转换为MP3,或者使用WaveFileReader而不是Mp3FileReader。 MP3在任何情况下都不支持8kHz等低采样率,通常只用于电话。

+0

是的谢谢马克。我实际上切换到了16K,16b,Mono并使用Lame进行编码。它完美的作品。 – blop 2013-02-25 09:12:41