【问题标题】:C# Playing sound before closing formC#在关闭表单之前播放声音
【发布时间】:2017-01-26 17:05:49
【问题描述】:

我尝试在关闭程序之前播放声音。我为退出按钮设置了那个声音。这是我的代码(我使用了库 WMPLib):

private void button1_Click(object sender, EventArgs e)
{
        WindowsMediaPlayer btnPlayer = new WindowsMediaPlayer();
        btnPlayer.URL = "Wrong.wav";
        btnPlayer.controls.play();
        //Thread.Sleep(2000); 
        this.Close();
}

我的问题是:它立即退出并且不播放声音。请帮忙!谢谢。

【问题讨论】:

  • 使用threadasync method 播放声音。当方法结束工作然后关闭表单
  • 尝试添加一个计时器,然后关闭表单
  • 为什么注释掉这一行:Thread.Sleep(2000);
  • @AminurRashid 因为我认为它会等待并完全播放声音
  • @HoangViet,我认为这会延迟应用关闭,从而让音乐播放

标签: c# audio formclosing


【解决方案1】:

您的问题是WindowsMediaPlayer.Play 立即返回。

您应该像这样订阅状态更改事件:

btnPlayer.PlayStateChange += this.PlayStateChange;

还有:

private void PlayStateChange(int NewState)
{
    if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
    {
        this.Close();
    }
}

都是here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多