0

こんにちは、vb.net で作成したビンゴ ゲームを持っています。D: フォルダーに録音されたサウンドがあります。数字や文字を描くたびに遊んでいるのですが、ゲームフォームを閉じてメニューからゲームをやり直すと音が鳴らなくなります。しかし、それは音を再生しません。ここに私のコードがあります:

Sub sound()
    If lblletter.Text <> "" And lblNumber.Text <> "" And lbllang.Text = "English" Then
        Dim sound As String = "D:\BINGO BONANZA\ENGLISH\" + lblletter.Text + " " + lblNumber.Text + ".wav"
        If My.Computer.FileSystem.FileExists(sound) Then
            My.Computer.Audio.Play(sound, AudioPlayMode.Background)
        Else
            MsgBox("No sound file for this")
        End If
    ElseIf lblletter.Text <> "" And lblNumber.Text <> "" And lbllang.Text = "English" Then
        Dim sound As String = "D:\BINGO BONANZA\FILIPINO\" + lblletter.Text + " " + lblNumber.Text + ".wav"
        If My.Computer.FileSystem.FileExists(sound) Then
            My.Computer.Audio.Play(sound, AudioPlayMode.Background)
        Else
            MsgBox("No sound file for this")
        End If
    End If
End Sub
4

3 に答える 3

0

私はすでに私の問題を解決しました..私のコードで何もする必要はありません。受け継がれてきた言語が価値を感じないことがあります。とにかく時間をありがとう.. :)

于 2013-01-14T07:30:01.003 に答える
0

修正できる問題がいくつかあります... lbllang.Text は両方のステートメントで同じです。最初に「English」、最後に「Filipino」と書いていると思います。私はあなたができるいくつかの変更を提供しました...両方のステートメントが真であり、これが等しい場合はこれを行い、elseifは同じことをしていると言っているため、これから何かを取得する方法がわかりません... ?

 Private Sub sound()
   If lblletter.Text <> "" And lblNumber.Text <> "" And lbllang.Text = "English" Then
    Dim sound As String = "D:\BINGO BONANZA\ENGLISH\" + lblletter.Text + " " + lblNumber.Text + ".wav"
    If My.Computer.FileSystem.FileExists(sound) Then
        My.Computer.Audio.Play(sound, AudioPlayMode.Background)
    Else
        MsgBox("No sound file for this")
    End If
  Else
    Dim sound As String = "D:\BINGO BONANZA\FILIPINO\" + lblletter.Text + " " + lblNumber.Text + ".wav"
    If My.Computer.FileSystem.FileExists(sound) Then
        My.Computer.Audio.Play(sound, AudioPlayMode.Background)
    Else
        MsgBox("No sound file for this")
    End If
   End If
 End Sub

最初の条件が満たされない場合は、else が実行されます...これを試してみて、うまくいくかどうかお知らせください。また、「プライベートサブサウンド」にブレークポイントを設定し、「F11」を押してステップスルーし、条件を確認します...

于 2013-01-14T05:38:01.733 に答える
0

何が問題なのかはわかりました。便宜上、もう少し簡潔でオサドックスなコーディング方法を次に示します。

Private Sub PlaySound()

 If (string.IsNullOrEmpty(lblletter.Text) Or string.IsNullOrEmpty(lblNumber.Text)) Then return

 Dim soundFile As String = String.Format("D:\BINGO BONANZA\{0}\{1} {2}.wav",lbllang.Text, lblletter.Text, lblNumber.Text)

 If My.Computer.FileSystem.FileExists(soundFile) Then
    My.Computer.Audio.Play(soundFile, AudioPlayMode.Background)
 Else
    MessageBox.Show("No sound found for file: " & soundFile)
 End If
End Sub
于 2013-01-14T05:54:15.557 に答える