2011-08-19 56 views
2

我正在抛出一个VB.NET hang子手游戏。当你赢得比赛时,我加入了火鸡的声音。这是我的循环,当你赢得:如何在VB.NET中从资源中播放.wav

 Dim sndPing As New SoundPlayer(My.Resources.turkey) 
     sndPing.Play() 
     My.Computer.Audio.Play("C:\Users\john\Desktop\CS120_FinalProject_Hannonv2.0\CS120_FinalProject_Hannonv1.5\FinalProject_Hangman_Hannon\FinalProject_Hangman_Hannon\Resources\turkey.wav", AudioPlayMode.Background) 

我已经加载了turkey.wav文件到我的资源,但我不能用“\资源\ turkey.wav”或者我给它一个本地目录。 Resources.turkey。我试图找到一种方式来发送文件,当我打包它。

+0

你能更好地解释你的问题吗?如果您已经将wav文件作为资源嵌入,为什么还需要将它放在磁盘位置? wave文件应该被编译到你的可执行文件中 – briddums

回答

2

你的代码做了两次相同的事情。首先创建一个带有嵌入资源的SoundPlayer对象,然后调用静态函数“My.Computer.Audio.Play”。你会想做一个或另一个。

SoundPlayer的优势是您可以使用嵌入式资源(因此您不必跟踪wav文件)。但它确实需要更多的设置。

如果你想使用静态函数,你可以传入一个相对于你的EXE位置的路径。类似这样的:

My.Computer.Audio.Play(System.AppDomain.CurrentDomain.BaseDirectory & "\turkey.wav") 

请注意,您的wav文件需要与您的.exe文件在上述代码工作在同一文件夹中。

11

容易,如果你的资源的音频文件被称为“丁”

My.Computer.Audio.Play(My.Resources.Ding, AudioPlayMode.Background) 

这是所有乡亲! :)