2

プログラムの最後にランダムに再生するには、5 つの wav ファイルが必要です。1 つの曲を再生する方法を知っています。このサイトで既にコードを見つけましたが、うまくいきません。毎回同じ曲を再生するだけです。コードは次のとおりです。

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

私は何を間違っていますか?

4

3 に答える 3

0

代わりにこれを試して、動作するかどうかを確認できますか?

Dim trackNum As Integer = (New Random).Next(1,5)
于 2012-11-13T15:44:15.767 に答える
0

ランダム関数でこれを試してください:

    Dim tempRnd As New Random(Now.Millisecond)
    Dim trackNum As Integer = tempRnd.Next(1, 5)
于 2012-11-13T15:44:51.037 に答える
0

MSDNから:

Rnd 関数を連続して呼び出すたびに、以前に生成された数値がシーケンス内の次の数値のシードとして使用されるため、任意の初期シードに対して同じ数値シーケンスが生成されます。

Rnd を呼び出す前に、引数を指定せずに Randomize ステートメントを使用して、システム タイマーに基づくシードで乱数ジェネレーターを初期化します。

于 2012-11-13T15:40:41.780 に答える