背景:
有一个工单系统,通过http的request+正则表达式,抓到了一些派单号、报修时间、要求完成时间等信息。然后使用datediff计算已过去时间和剩余时间。
然后根据这些信息做语音提示,因为音频是mp3格式的,就调用了mediaPlayer控件。
代码如下:
If 剩余时间<3600 And 剩余时间>= 1800 Then
wmp.URL = Application.StartupPath & "\sound\剩余不足1小时.mp3"
wmp.Ctlcontrols.play()
elseif 剩余时间<1800 And 剩余时间>= 600
wmp.URL = Application.StartupPath & "\sound\剩余不足半小时.mp3"
wmp.Ctlcontrols.play()
elseif 剩余时间<600 And 剩余时间>= 0
wmp.URL = Application.StartupPath & "\sound\剩余不足10分钟.mp3"
wmp.Ctlcontrols.play()
end if
If 已派单时间>1800 And 派单状态 = "已开单" Then
wmp.URL = Application.StartupPath & "\sound\长时间未响应.mp3"
wmp.Ctlcontrols.play()
end if
当两个条件(剩余时间不足1小时,并且派单超过1800秒),结果mediaPlayer控件只能播放一个声音,猜测可能是播放的时候程序没有暂停,而是继续执行了。
尝试改成wav格式,就可以实现两个声音先后播放。
If 剩余时间<3600 And 剩余时间>= 1800 Then
My.Computer.Audio.Play("Application.StartupPath & "\sound\剩余不足1小时.wav",AudioPlayMode.WaitToComplete)
elseif 剩余时间<1800 And 剩余时间>= 600
My.Computer.Audio.Play("Application.StartupPath & "\sound\剩余不足半小时.wav",AudioPlayMode.WaitToComplete)
elseif 剩余时间<600 And 剩余时间>= 0
My.Computer.Audio.Play("Application.StartupPath & "\sound\剩余不足10分钟.wav",AudioPlayMode.WaitToComplete)
end if
If 已派单时间>1800 And 派单状态 = "已开单" Then
My.Computer.Audio.Play("Application.StartupPath & "\sound\长时间未响应.wav",AudioPlayMode.WaitToComplete)
end if
使用wav的文件+playsound方法就可以两个声音同时播放。
所以想问下,如果用mediaPlayer控件怎么实现类似playsound的WaitToComplete效果