重新打开表单时声音不播放

时间:2013-01-14 01:19:21

标签: vb.net audio

大家好,我有一个在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

3 个答案:

答案 0 :(得分: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

如果没有达到第一个条件,那么它将执行其他...试一试,让我知道它是否适合你。同时在“私人子声音”上设置一个断点,然后按“F11”逐步检查你的条件......

答案 1 :(得分:0)

你知道现在有什么问题,为了方便起见,这里有一个更简洁和othadox的编码方式:

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

答案 2 :(得分:0)

我已经解决了我的问题..它不需要对我的代码做任何事情。传递的语言有时无法获得价值。非常感谢你的时间.. :)