我有这段代码:
private void button4_MouseEnter(object sender, MouseEventArgs e)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"Resources/navigation.wav");
player.Play();
}
我得到FileNotFoundException,但是navigation.wav在Project / Resources中。请帮助!!!
答案 0 :(得分:2)
这会查找Bin\Debug
文件夹
您有几种选择:
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "NamespaceName.FolderName.Sound.wav";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
var wave = new WaveFileReader(stream);
Console.WriteLine(wave.TotalTime);
}
答案 1 :(得分:1)
路径是相对于可执行文件确定的,因此在这种情况下可能是Bin\Debug
。
尝试将应用程序中的资源添加为Content
(它将文件复制到Bin\Debug
)。这应该有用。
答案 2 :(得分:0)
该路径相对于当前运行应用程序的目录。如果你在Visual Studio中点击F5,这很可能是bin / Debug,所以文件应该在那里。
考虑嵌入此资源,或将Copy to output directory属性设置为“始终复制”。
答案 3 :(得分:0)
首先,您需要一个反斜杠:@"Resources\navigation.wav"
如果这没有帮助,那么很可能您从不同的目录运行应用程序。你是否在VS的调试模式下运行?您的文件是Project\bin\Debug\Resources
吗?