如何防止音频重叠?

时间:2018-09-01 13:19:33

标签: c# winforms

对不起,标题。我想不到更好的了。另外,对不起我的英语。

我有这四种形式。表格2-4上有一个按钮,当按下该按钮时,它将播放表格1中的特定声音。有时,几乎同时按下三个表格中的所有按钮,这会导致从表格1中播放的音频相互重叠。我该如何预防?

编辑: 当按下所有按钮时,我希望音频在播放时“轮流”。 “音频2、3”必须等待“音频1”完成播放才能播放,然后“音频3”也必须等待“音频2”完成播放。每个“音频播放”均由SpeechSynthesizer组成(使用.SpeakAsync)和SoundPlayer(使用.PlaySync播放)。我的ISP发生了互联网中断,所以我只是在使用手机。很难在手机上手动键入代码,对此感到抱歉。

1 个答案:

答案 0 :(得分:1)

嗨,我在自己制作的游戏中做过类似的事情,因为我遇到了声音在彼此顶部播放的问题。在处理声音的方法中,我这样做了:

SoundPLayer sound = new SoundPlayer(..);
SoundPLayer anotherSound = new SoundPlayer(..);

public async void gameMethod()
{
   sound.Play();
   await Task.Delay(400); //length of sound
   //some code ...
   anotherSound.Play();
}

这对我有用,只是使用await Task.Delay(..)在声音周围增加了时间-不知道这是否是这样做的方法,但这可能会有帮助