Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET声音播放器问题_C#_.net_Audio - Fatal编程技术网

C# .NET声音播放器问题

C# .NET声音播放器问题,c#,.net,audio,C#,.net,Audio,我希望下面的代码能够播放Fireball.wav文件,该文件与.exe文件位于同一目录中 SoundPlayer simpleSound = new SoundPlayer(@"Fireball.wav"); simpleSound.Play(); 我认为我设置了错误的文件路径。您可以执行以下操作: var path = Path.Combine( Path.GetDirectoryName(Application.ExecutablePath)

我希望下面的代码能够播放Fireball.wav文件,该文件与.exe文件位于同一目录中

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

我认为我设置了错误的文件路径。

您可以执行以下操作:

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

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

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


因此,我强烈建议在访问相对路径之前从相对路径创建一个绝对路径(请参阅Dog Ears的帖子了解如何做到)

是的,您实际上没有使用路径。OpenFileDialog.RestoreDirectory往往是相关的。-1这个问题与这个问题有什么不同:或者甚至与这个问题有什么不同???我们是否应该一直猜测,直到我们确定Fireball.wav在哪个文件夹中?或者你是想在web应用程序中这样做,但问得不太对吗?此外,这是一个.NET SoundPlayer问题,而不是C#SoundPlayer问题。这是可以的,但假设该文件是应用程序的本地文件。请查看我对OP和链接的尖刻评论。让我想知道OP是否混淆了网络世界中的相对文件夹和桌面应用程序中的路径?