请教下vb.net的mediaPlayer控件怎么实现类似playsound的WaitToComplete效果


背景:

有一个工单系统,通过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效果

https://blog.csdn.net/qq_38698722/article/details/78063259?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~Rate-5-78063259-ask-7771144.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~Rate-5-78063259-ask-7771144.pc_feed_download_top3ask