我在使用C#的Visual Studio中有一个Windows窗体应用程序,只要按下一个键,我就会弹出键盘按键声音:
keyClick[randomiser.Next(0, 4)].Play();
(随机客户只是从一系列不同的声音中挑选)
然而,当声音播放并且在声音结束之前按下另一个键时,它会停止播放该声音并播放一个新声音,这使声音听起来很糟糕。
所以我的问题是如何确保它播放整个声音文件,并在顶部覆盖任何新的播放命令,而不是阻止第一个播放命令?
答案 0 :(得分:3)
您可以使用Async异步播放声音,以便分离声音和输入。您也可以启动任务来执行相同的操作。两者都在新线程上启动声音,您可以继续使用不会中断它的输入。
代码示例:
Task playSound = new Task(() => keyClick[randomizer.Next(0,4)].Play());
playSound.Start();
希望这有助于