如何在VB.NET中从资源中播放.wav

时间:2011-08-19 03:35:33

标签: vb.net

我正在抛光一个VB.NET刽子手游戏。当你赢得比赛时,我添加了一只火鸡吞虎咽的声音。当你获胜时,这就在我的循环中:

        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文件加载到我的资源中,但我无法使用“\ Resources \ turkey.wav”或My.Resources.turkey为其提供本地目录。我打算在打包时找到一种发送文件的方法。

2 个答案:

答案 0 :(得分:11)

很简单,如果您的资源音频文件名为“Ding”

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

那是所有人! :)

答案 1 :(得分:3)

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

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

如果要使用静态函数,可以传入相对于exe位置的路径。像这样:

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

请注意,您的wav文件需要与.exe位于同一文件夹中才能使上述代码生效。