我想动态加载资源文件。

如果我静态地执行它,显然效果很好:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources._88);
player.Play();

这将加载并播放资源_88。

但是,我希望这是动态的,

我有一个变量“num”,它可以是1-90中的任何数字,并且我想加载与该数字有关的资源。

因此,我创建了另一个名为“soundURL”的变量,如下所示:
var soundURL = "_" + num;

但是当我将其与以前的版本一起使用时,显然不起作用:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.soundURL);

我该如何克服呢?

最佳答案

您可以使用ResourceManager按名称加载资源

object O = Properties.Resources.ResourceManager.GetObject("_88");

然后,您只需要将其转换为流即可。
var s = (Stream)O;
System.Media.SoundPlayer player = new System.Media.SoundPlayer(s);
player.Play();

关于c# - 动态加载资源文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20663329/

10-17 01:15