VB 2010随机播放wav文件Windows 8 RP

时间:2012-11-13 15:21:33

标签: vb.net audio wav

我需要在程序结束时随机播放5个wav文件。我知道如何让它播放一首歌,我在这个网站上找到了一个代码,但它对我不起作用,它每次只播放同一首歌。这是代码:

    Public Sub PlayRandomTrack()


    Dim trackNum As Integer = CInt(Rnd() * 5 + 0.5)

    Select Case trackNum
        Case 1
            My.Computer.Audio.Play(My.Resources.CallingMonsters, AudioPlayMode.Background)
        Case 2
            My.Computer.Audio.Play(My.Resources.McclainSisters, AudioPlayMode.Background)
        Case 3
            My.Computer.Audio.Play(My.Resources.Mendler, AudioPlayMode.Background)
        Case 4
            My.Computer.Audio.Play(My.Resources.Pray, AudioPlayMode.Background)
        Case Else
            My.Computer.Audio.Play(My.Resources.WillowWhip, AudioPlayMode.Background)

    End Select
End Sub

然后我用它作为:

    PlayRandomTrack()

我做错了什么?

3 个答案:

答案 0 :(得分:0)

来自MSDN

  

对于任何给定的初始种子,生成相同的数字序列   因为每次连续调用Rnd函数都会使用之前的函数   生成的数字作为序列中下一个数字的种子。

     

在调用Rnd之前,请使用不带参数的Randomize语句   使用基于系统的种子初始化随机数生成器   计时器。

答案 1 :(得分:0)

你可以尝试一下,看看它是否有效?

Dim trackNum As Integer = (New Random).Next(1,5)

答案 2 :(得分:0)

尝试使用随机函数:

    Dim tempRnd As New Random(Now.Millisecond)
    Dim trackNum As Integer = tempRnd.Next(1, 5)