我正在关注this tutorial与NAudio播放MP3音频文件。要创建WaveStream,我使用此方法:
private WaveStream CreateInputStream(string fileName)
{
WaveChannel32 inputStream;
if (fileName.EndsWith(".mp3"))
{
WaveStream mp3Reader = new Mp3FileReader(fileName);
inputStream = new WaveChannel32(mp3Reader);
}
else
{
throw new InvalidOperationException("Unsupported extension");
}
volumeStream = inputStream;
return volumeStream;
}
不幸的是我总是在
中得到一个例外line inputStream = new WaveChanne32(mp3Reader):
块引用
System.ApplicationException was unhandled
Message=Only PCM supported
Source=NAudio
StackTrace:
答案 0 :(得分:2)
您可以使用
var pStream = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(mp3Reader);
var inputStream = new NAudio.Wave.BlockAlignReductionStream(pStream);
答案 1 :(得分:0)
PCM是一种编码类型(脉冲编码调制)。好像NAudio只能处理PCM编码文件。