做了一个播放wav的东西,程序代码如下:在form的代码里
Private Sub broadcast_Click()
    
    Dim now As Integer
    Dim out_or_in As Integer
    Dim dir As Integer
    
    now = Int(nowStat.Text)
    out_or_in = Int(outin.Text)
    dir = Int(Dire.Text)
    
    Call Brc(now, out_or_in, dir)
    
End Sub另外在一个模块中定义的函数:
Public Function Brc(nowStation As Integer, outorin As Integer, Direction As Integer)
    
    Dim wavpath As String
    Dim brcpath As String
    Set Voice = New SpVoice
    wavpath = App.Path + "\wav\"
Select Case nowStation
    Case 1
     If outorin = 1 Then
        If Direction = 1 Then
            brcpath = wavpath + "111c.wav"   
            Voice.Speak brcpath, SVSFIsFilename Or SVSFlagsAsync
            brcpath = wavpath + "111e.wav"
            Voice.Speak brcpath, SVSFIsFilename Or SVSFlagsAsync
        End If
     End If
      
End Select
End Function现在的问题是如果把函数Brc放到form的代码里,播放可以正常执行,可是如果把Brc放到模块中,执行的时候不能播放声音
经过单步调试,发现播放的语句可以正常执行,必须给这个语句足够的时间执行,当执行的代码从模块返回form中的代码的时候,wav的播放就停止了,怎么解决呢?(因为程序执行速度很快,Brc函数很快就执行完了,跳回form的按钮事件里面去,而wav播放完毕需要10秒左右。)