0

我按照 NAudio 网站上关于如何加载和播放 mp3 文件的教程进行操作,但即使我将音频文件放在正确的目录中,每当我运行时,程序都会因“vshost32.exe 已停止工作”而崩溃。有任何想法吗?我在 Windows 7 上使用 Visual Studio 10.0。

这是教程给我的(确切的)代码:

   namespace NAudioTest
   {
       class Program
    {
    static IWavePlayer waveOutDevice;
    static WaveStream mainOutputStream;
    static WaveChannel32 volumeStream;

    static void Main(string[] args)
    {
        waveOutDevice = new WaveOut();
        mainOutputStream = CreateInputStream("Kalimba.mp3");
        waveOutDevice.Init(mainOutputStream);
        waveOutDevice.Play();
    }

    private static 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;
    }

}
}

(抱歉格式不好)

4

1 回答 1

0

没关系,使用此代码使音频文件正常工作:

如何使用 NAudio 播放 MP3 文件

 class Program
 {
     static void Main()
     {
         using (var rdr = new Mp3FileReader(filename))
         using (var waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
         {
              waveOut.Play();
              while (waveOut.PlaybackState == PlaybackState.Playing)
              {
                  Thread.Sleep(100);
              }
         }
     }
  }

这是否更好?虽然我不太确定 WaveOutEvent 的去向。感谢您所有的帮助!!

于 2013-03-11T08:26:01.387 回答