播放wav文件,将字符串连接到调用文件

时间:2010-10-31 23:18:18

标签: c# visual-studio-2008

我(在我的资源文件有些奇怪之后)能够在我的项目中播放.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“等等,到目前为止还没有。有人可以把我从我的痛苦中解救出来,以便我可以去'哦是的,这显然是为什么我没有想到这一点!'

万圣节快乐。

感谢。

1 个答案:

答案 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();
    }
}