2016-04-27 74 views
2

我使用C#在Visual Studio中的Windows窗體應用程序,我有一個鍵盤按鍵聲音播放時使用按下一個鍵:播放整個聲音文件C# - Visual Studio中

keyClick[randomiser.Next(0, 4)].Play(); 

(該隨機化是剛剛採摘從不同的聲音組成的數組)

然而,當播放聲音和另一個鍵的聲音完成之前按下,則停止播放聲音和播放一個新的,這使得它聽起來糟糕。

所以我的問題是我如何確保它播放整個聲音文件,並在播放頂部覆蓋任何新播放命令而不是停止播放第一個播放命令?

+0

你可以生成一個新的線程,並播放聲音異步。這樣它不會被中斷 –

回答

3

您可以使用Async異步播放聲音,以便將聲音和輸入分離。你也可以啓動一個任務來做同樣的事情。兩者都可以在新線程上啓動聲音,並且可以繼續使用不會中斷它的輸入。

代碼示例:

Task playSound = new Task(() => keyClick[randomizer.Next(0,4)].Play()); playSound.Start();

希望這有助於

+1

謝謝,你能給我一個我會用的代碼的例子嗎?我還不是很擅長C#。 – TacoMakerMan