对不起,标题。我想不到更好的了。另外,对不起我的英语。
我有这四种形式。表格2-4上有一个按钮,当按下该按钮时,它将播放表格1中的特定声音。有时,几乎同时按下三个表格中的所有按钮,这会导致从表格1中播放的音频相互重叠。我该如何预防?
编辑: 当按下所有按钮时,我希望音频在播放时“轮流”。 “音频2、3”必须等待“音频1”完成播放才能播放,然后“音频3”也必须等待“音频2”完成播放。每个“音频播放”均由SpeechSynthesizer组成(使用.SpeakAsync)和SoundPlayer(使用.PlaySync播放)。我的ISP发生了互联网中断,所以我只是在使用手机。很难在手机上手动键入代码,对此感到抱歉。
答案 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(..)
在声音周围增加了时间-不知道这是否是这样做的方法,但这可能会有帮助