首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与SoundPlayer的问题

与SoundPlayer的问题
EN

Stack Overflow用户
提问于 2015-05-11 01:21:44
回答 2查看 414关注 0票数 0

Situation

这可能是一个非常简单的问题,有一个非常简单的答案,但我在任何地方都找不到答案,所以我在这里问,我一直在努力解决这个问题,因为这对我来说不是什么大问题,但当我提交我的工作时,我会这样做的。

问题

我有一个声音播放器,它在我的电脑上工作的很好,并做我希望它在这台电脑上做的事情。

代码语言:javascript
复制
SoundPlayer player = new SoundPlayer(@"C:\Users\Font\Desktop\GRADED_UNIT_SOLUTION_PLANNING_UPDATED\HillRacingGraded\HillRacingGraded\Resources\Audio\" + track + ".wav");

问题在于这条路。

因为有了这条路,我的程序就不会在任何其他系统上工作,除了它现在正在运行的系统。它在启动后不久就崩溃了。

然后..。正如您可能从路径中看到的,它最终会被分级,所以我的讲师将需要使用这个程序而不必切换目录。

如何让Soundplayer路径从"HillRacingGraded\ ...\ .“开始?

而不是从C:驱动器开始。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-11 02:10:07

如果您使用的是System.Media.SoundPlayer,它支持从流中读取声音文件,而且我在过去已经从嵌入式资源获得的UnmanagedResourceStream中成功地使用了它。因此,一种选择是将您的声音文件作为资源嵌入到您的应用程序中,然后从那里播放。

如果嵌入文件不是选项,则可以使用类似于下面所示的代码获取相对于可执行文件夹的路径。然后,您只需在子目录中提供您的可执行文件和资源文件(但是如果您的代码可能位于DLL中,并且可以由任意可执行文件承载,请小心使用GetExecutingAssembly() )。

代码语言:javascript
复制
var assembly = Assembly.GetExecutingAssembly();
var folder = Path.GetDirectoryName(assembly.Location);
var soundFile = Path.Combine(folder, "MySoundFile.wav");

特殊文件夹路径帮助程序也可以减少硬编码,但是当您的应用程序通过安装程序安装时,您可以自动将文件放在适当的位置(这在学校项目中不太可能)。

票数 0
EN

Stack Overflow用户

发布于 2022-10-20 18:40:00

对我来说(VS 2022,.net 6,C# 10)它起了作用:

  1. 将"file.wav“文件导入主目录。
  2. 更改:属性(file.wav) -将输出目录复制为:始终复制。后来,它就足以: SoundPlayer player =新SoundPlayer("file.wav");player.Load ();player.Play ();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30158423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档