SoundPlayer PlaySync()睡眠(或延迟)程序C#

时间:2017-08-09 03:38:11

标签: c# winforms visual-studio-2012

我使用Visual Studio 2012构建Queue-System程序,并使用System.Media.SoundPlayer播放声音。这是我的代码形式:

public static SoundPlayer player = new System.Media.SoundPlayer();
private void callNumber()
{
   update_number_to_database();
   player = new System.Media.SoundPlayer("C:\1.wav");
   player.PlaySync();
   player = new System.Media.SoundPlayer("C:\2.wav");
   player.PlaySync();
}

因此,当有人按下按钮时,它将调用函数callNumber()。在此功能中,它将更新数据库中的某些内容并按顺序播放一些声音。例如:

号码| 1 | 2 | 3 |去房间1

我喜欢使用SoundPlayer因为它太棒了:使用PlaySync我不需要关心声音的顺序。它总是等待完成前一个声音,并将下一个声音放入队列中。

然而,我的问题是,函数callNumber必须等到完成声音才能调用它。但我想要的是:当我按下按钮时,它应立即运行函数callNumber,并且声音将在队列中。

Iam尝试使用WMPLib.WindowsMediaPlayer作为另一种方式,但不像SoundPlayer那么简单,我需要将所有文件放在播放列表中并播放它们。但是,如果我快速按下按钮2次呢?

很抱歉我的英语不好,但我仍难以描述我的问题。

1 个答案:

答案 0 :(得分:0)

我从您的描述中了解到:

您可以使用yourPlayer.stop()或类似的东西在重播其他声音之前先停止声音。

您可以通过创建停止播放器的其他功能然后调用callNumber()函数来完成此操作。