使用c#时,波头被破坏了

本文关键字:坏了 使用 | 更新日期: 2023-09-27 18:03:10

我正在尝试用c#播放Wav文件我的一些文件通过错误"波头是损坏的。"我设置Position = 0,它仍然会发生。

   using (System.Media.SoundPlayer sound = new System.Media.SoundPlayer(soundStream))
            {
                sound.Stream.Position = 0;
                sound.Play();
            }

如果我将流保存到磁盘上的文件,我可以用媒体播放器播放它,所以我知道它没有损坏。

使用c#时,波头被破坏了

尝试重新加载流:

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(); 
            }
        }
     }
  }
}