2013-02-19 4 views
0

Я следовал различные темы о том, как записывать и воспроизводить 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); 
} 

в этой точке г ecorded файл должен быть 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 

ответ

0

Да, вы сохранили файл WAV, а не MP3-файл , Или конвертируйте в MP3, используя что-то вроде LAME.exe, или просто используйте WaveFileReader вместо Mp3FileReader. В любом случае, MP3 не поддерживает низкие частоты дискретизации, например, 8 кГц, что обычно используется только для телефонии.

+0

Да, спасибо, Марк. Я фактически переключился на 16K, 16b, Mono и использовал Lame для кодирования. Он работает отлично. – blop

Смежные вопросы