.NET SoundPlayer问题

时间:2010-12-13 21:32:44

标签: c# .net audio

我希望下面的代码能够播放与.exe相同目录中的Fireball.wav文件。

 SoundPlayer simpleSound = new SoundPlayer(@"Fireball.wav");
 simpleSound.Play();

我相信我正在设置错误的文件路径。

2 个答案:

答案 0 :(得分:3)

您可以这样做:

var path = Path.Combine(
              Path.GetDirectoryName(Application.ExecutablePath) 
             ,"Fireball.wav");
SoundPlayer simpleSound = new SoundPlayer(path);
simpleSound.Play();

答案 1 :(得分:0)

使用没有指定基本路径的相对路径(即相对于当前目录)通常是个坏主意 我可以解决的一个常见异常是作为命令行参数传递到应用程序的相对路径。

特别是当前目录与应用程序目录不同。它可以是启动时的任何目录,常见的对话框(取决于它们的标志)可以更改它。此外,它是每个进程而不是每个线程变量,因此另一个线程可能随时更改它。

因此我强烈建议您在访问之前从相对路径创建绝对路径(请参阅Dog Ears的帖子了解如何执行此操作)