我尝试用NAudio库打开和播放.wav文件。
private OpenFileDialog openFileDialog = null;
private NAudio.Wave.IWavePlayer waveOutDevice;
private NAudio.Wave.BlockAlignReductionStream reductionStream = null;
private NAudio.Wave.BlockAlignReductionStream CreateStream(OpenFileDialog fileDialog)
{
if (fileDialog.FileName.EndsWith(".mp3"))
{
NAudio.Wave.WaveStream pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(fileDialog.FileName));
reductionStream = new NAudio.Wave.BlockAlignReductionStream(pcm);
}
else if (fileDialog.FileName.EndsWith(".wav"))
{
NAudio.Wave.WaveStream pcm = new NAudio.Wave.WaveChannel32(new NAudio.Wave.WaveFileReader(openFileDialog.FileName));
reductionStream = new NAudio.Wave.BlockAlignReductionStream(pcm);
}
else
{
throw new InvalidOperationException("Unsupported");
}
return reductionStream;
}在播放按钮中:
waveOutDevice = new NAudio.Wave.DirectSoundOut();
reductionStream = CreateStream(openFileDialog);
waveOutDevice.Init(reductionStream);我使用的是NAudio 1.5版本。对于mp3文件来说,这个剧本很不错。当我选择.wav时,播放速度很慢,并且发出咯咯声。也许WaveStream pcm = WaveChannel32出了什么问题
发布于 2012-04-03 05:09:01
您不需要使用BlockAlignReductionStream、WaveChannel32或CreatePcmStream。只需使用Mp3FileReader或WaveFileReader并将其传递给您的IWavePlayer,
https://stackoverflow.com/questions/9979972
复制相似问题