【发布时间】:2018-09-01 13:19:32
【问题描述】:
抱歉标题。我想不出更好的了。另外,对不起我的英语。
我有这四种形式。表格 2-4 有一个按钮,按下时会播放表格 1 中的特定声音。有时,三个表格中的所有按钮几乎同时按下,这会导致表格 1 播放的音频相互重叠。如何防止这种情况发生?
编辑: 当按下所有按钮时,我希望音频“轮流”播放。 "Audio 2, 3" 必须等待 "Audio 1" 播放完毕后才能播放,然后 Audio 3" 也必须等待 "Audio 2" 播放完毕。每个“音频播放”由一个 SpeechSynthesizer 组成(使用.SpeakAsync)和一个 SoundPlayer(使用 .PlaySync 播放)。我的 ISP 上的互联网中断,所以我只是在使用我的手机。在我的手机上手动输入代码非常困难,对此感到抱歉。
【问题讨论】:
-
同时按下所有按钮时的预期行为是什么?还分享代码并展示您如何播放声音。要了解有关如何提出好问题的更多信息,请查看How to Ask。
-
我编辑了我的评论 :)
-
不要在表单中播放音频,而是设计一个专门的类来做到这一点。然后所有表单向该类的同一个实例发送音频播放请求,该实例本身可以自动将不同的剪辑排队,并逐个播放。在软件工程中,我们遵循这些常见的设计实践和原则。
-
TIL。我是否只是将播放声音的代码传输到一个类,它会自动排队播放?