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 对于两个语句都是相同的。我想你第一个是“英语”,最后一个是“菲律宾语”。我已经提供了一些你可以做的改变......我看不出你会如何从中得到任何东西,因为这两个陈述都是正确的,你说如果它等于这个做这个并且 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... 试一试,让我知道它是否适合您。还要在“Private Sub sound”上设置一个断点,然后按“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 回答