在另一台计算机上运行时找不到声音文件位置。

3
我的C#程序在我的电脑上运行良好并播放声音,但是当我将它发送给我的讲师时,他说程序在运行但找不到我的声音文件。我的程序中文件的位置如下:C:\Documents\Visual Studio 2012\Projects\Barista3000_Aroka_Lab6\Barista3000_skal\Sounds\sound.wav。我该如何确保在不同的电脑上运行时声音总是能够被找到?

1
尝试将声音文件包含到项目中。 - bit
你如何在代码中定位文件?你使用相对路径吗? - kennyzx
嗨,Bit!我的项目中有一个名为“sounds”的文件夹,用于存储声音文件。在我的电脑上运行时可以找到它,但是当移动到另一台电脑上时就找不到了。我将整个项目文件夹压缩并发送给了讲师,声音文件夹也在项目文件夹中。 - Dan A
嗨kennyzx!我不确定相对路径是怎么工作的。它是如何工作的? - Dan A
你有两个选择:将文件包含在exe中,这将是简单可靠的,但也不灵活,并且会使exe变大。或者您可以使用适用于任何机器的路径。这里真正的问题是:它应该放在哪里?如果您想将其与exe一起保留,请将路径设置为类似于.\yoursound.wav的内容,这是一个相对路径(因为点表示从这里开始,而不是以\\开头的绝对路径)。 - TaW
1个回答

1
你需要像这样将文件添加到项目中,并将构建操作设置为内容: enter image description here 当你构建项目时,它会出现在输出文件夹中,只需使用类似于以下的方法播放它。
PlayFile("sound.wav"); // I made up this method btw.

注意,不是文件的完整路径,而是相对路径,它将在工作(当前)文件夹中查找此文件。
“我如何确保在其他计算机上运行时声音始终位于正确位置?”
为此,您仍需要将其与您的EXE和其他“东西”一起分发到生成输出文件夹中。
此外,请查看嵌入资源的方法,这样您就可以将WAV包含在EXE中。

谢谢大家的建议。我会按照建议去做,然后再回来。祝你们有个愉快的一天。 - Dan A
现在只是尝试修复,但我似乎无法通过Visual Studio解决方案浏览器看到我的声音文件,这些文件存储在名为sounds的文件夹中。由于某种原因,我只能通过解决方案浏览器看到一个声音文件,而其余的三个文件却看不到。问题出在哪里? - Dan A
点击“显示所有文件”,然后右键单击并选择“包含在项目中”或右键单击文件夹,选择“添加->现有项”,然后选择您的文件。 - Steve Drake
谢谢Drake!我现在可以看到这些文件了。但是我仍然有一个相对路径的问题。我可以播放声音,但不确定它们是否会在移动到另一台计算机时播放。在我的代码中,我将路径设置为:C:\Users\Acer\Documents\Visual Studio 2012\Projects\Barista3000_Aroka_Lab6\Barista3000_skal\Sounds\Sparkling Water Sound.wav - Dan A
如果你将其作为输出的一部分并确保在复制文件时包含所有文件,包括 EXE、DLLS 和 WAVS。 - Steve Drake
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接