我需要在程序结束时随机播放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()
我做错了什么?
答案 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)