我正在尝试用c#播放Wav文件我的一些文件通过错误"波头是损坏的。"我设置Position = 0,它仍然会发生。
using (System.Media.SoundPlayer sound = new System.Media.SoundPlayer(soundStream))
{
sound.Stream.Position = 0;
sound.Play();
}
如果我将流保存到磁盘上的文件,我可以用媒体播放器播放它,所以我知道它没有损坏。
尝试重新加载流:
soundStream.Position = 0;
using (System.Media.SoundPlayer sound = new System.Media.SoundPlayer(soundStream))
{
sound.Play();
}
另外:
if (soundStream.CanSeek) soundStream.Seek(0, System.IO.SeekOrigin.Begin);
这段代码在我的应用程序中可以很好地播放mp3流:
using (var mp3 = new Mp3FileReader(new MemoryStream(buffer)))
{
using (var pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
{
using (var wave = new MemoryStream())
{
WaveFileWriter.WriteWavFileToStream(wave, pcm);
using (var sound = new SoundPlayer(wave))
{
sound.Play();
}
}
}
}
}