我(在我的资源文件有些奇怪之后)能够在我的项目中播放.wav文件:
SoundPlayer player = new SoundPlayer();
player.Stream = Sounds.L1;
Player.Play();
这很好但我想要做的是能够将字符串连接在一起,然后调用该文件。 .wav文件名的格式为“L”+ int,int为1-99之间的任何值,即L1,L2 ...... L99。所有不同的声音文件都在resx文件标题中。声音。
我怎么能打电话给他们?
我正在尝试使用ResXResourceSet resxSet = new ResXResourceSet(“btc.Sounds”)ResXResourceSet来加载资源文件,然后按照建议使用.getobject()。但是,如何指定嵌入资源文件的位置?如果我使用上面的路径,我会收到一个错误,因为它在我的bin / debug文件夹中查找,这是.exe所在的位置。如果我明确地指定路径,我会得到一个访问错误,而我真正好奇的一件事是'Sounds.resx'文件是一个嵌入式资源,所以它应该'知道'它在哪里,不应该需要任何路径...我已经尝试了几乎所有的排列,包括使用Assembly.GetExecutingAssembly()。GetManifestResourceStream(“btc_I_Cap.Sounds”),@“.... \ Sounds”@“.... \ Resources”,@“btc。听起来“”Sounds.resx“等等,到目前为止还没有。有人可以把我从我的痛苦中解救出来,以便我可以去'哦是的,这显然是为什么我没有想到这一点!'
万圣节快乐。
感谢。
答案 0 :(得分:1)
使用ResXResrouceSet调用声音文件,如下所示:
using (ResXResourceSet resxSet = new ResXResourceSet(resxFile))
{
for (int i = 1; i <= 99; i ++)
{
SoundPlayer simpleSound = (SoundPlayer)resxSet.GetObject("L" + i.ToString());
simpleSound.Play();
}
}