2012-11-13 85 views
2

我需要5個wav文件在我的程序結束時隨機播放。我知道如何讓它播放一首歌曲,並且我已經在這個網站上找到了一段代碼,但它不適合我,它每次只播放同一首歌曲。下面是代碼:VB 2010隨機播放wav文件Windows 8 RP

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() 

我在做什麼錯?

回答

0

MSDN

對於任何給定的初始種子,生成 相同數目的序列,因爲與Rnd函數的每個連續調用使用先前 生成的數作爲該序列中的下一個數的種子。

在調用Rnd之前,使用不帶參數的隨機數語句 使用基於系統 計時器的種子初始化隨機數發生器。

+0

想通了這一點之後我張貼這一點,但非常感謝! – user1821146

0

你可以試試這個,而不是看看它的工作?

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

試試這個爲你隨機函數:

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