检测音频是否已停止播放

时间:2017-09-14 09:04:58

标签: c# vb.net audio

是否可以确定音频文件是否已停止播放?
我需要在音频停止播放后触发Sub

我通过以下方式播放音频:

My.Computer.Audio.Play(My.Resources.music, AudioPlayMode.Background)
callSubMethodHere()

但即使音频尚未完成,它也会触发该方法 我尝试使用:

My.Computer.Audio.Play(My.Resources.Second, AudioPlayMode.WaitToComplete)
callSubMethodHere()

是的!它在执行Sub之前等待音频完成播放。但它冻结了我的程序,我的客户不想要它。

有没有办法通过以下方式确定它:If My.Computer.Audio.Stop = True或其他什么?虽然在互联网上没有找到任何东西。似乎msdn也没有它。

有什么帮助吗? vb.netc#会这样做。谢谢!

1 个答案:

答案 0 :(得分:0)

使用Async / Await。进一步阅读:https://msdn.microsoft.com/en-us/library/hh191443.aspx

Class LockingWithAwait
Public Sub Test()
    DoSomething()
End Sub

Private Sub doSomething()
    Await Task.Run(Function() PlayTheMusicWithLock())
    CallSubMethodHere()
End Sub

Private Sub PlayTheMusicWithLock()
    My.Computer.Audio.Play(My.Resources.Second, AudioPlayMode.WaitToComplete)
End Sub

Private Sub CallSubMethodHere()
    Console.WriteLine("Hello world.")
End Sub
End Class