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

use*_*461 2 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)
Run Code Online (Sandbox Code Playgroud)

我已将turkey.wav文件加载到我的资源中,但我无法使用"\ Resources\turkey.wav"或My.Resources.turkey为其提供本地目录.我打算在打包时找到一种发送文件的方法.

E_B*_*lue 12

很容易,如果您的资源音频文件被称为"丁"

My.Computer.Audio.Play(My.Resources.Ding, AudioPlayMode.Background)
Run Code Online (Sandbox Code Playgroud)

这就是所有人!:)


fea*_*thj 5

你的代码做了两次同样的事情。首先,您创建一个具有嵌入式资源的 SoundPlayer 对象,然后调用静态函数“My.Computer.Audio.Play”。你会想要做其中之一。

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

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

My.Computer.Audio.Play(System.AppDomain.CurrentDomain.BaseDirectory & "\turkey.wav")
Run Code Online (Sandbox Code Playgroud)

请注意,您的 wav 文件需要与 .exe 位于同一文件夹中,以上代码才能正常工作。