我一直在試圖讓這個按鈕來做一些我想要的東西。當我按下它時,我希望它能發出聲音,這正是我設法做到的。但是,每當你按下按鈕時,它就像應用程序凍結一樣,給予聲音所有的注意力,等等。所以基本上我的目標是讓按鈕播放聲音,而不必讓UI停止並讓它播放,之前繼續。我也想知道按下時是否有按鈕播放聲音的方法,但是當再次按下時,當前聲音停止並再次播放,以防止播放點擊按鈕的「X」點擊量等。點擊一個按鈕,然後播放聲音,暫停用戶界面,如果你垃圾按鈕連續播放?
這裏是我的代碼:
public static void ButtonSound()
{
SoundPlayer _sound = new SoundPlayer();
try
{
_sound.Stop();
_sound.SoundLocation = path + "ButtonTap.wav";
_sound.Load();
_sound.PlaySync();
}
catch
{
}
finally
{
_sound.Dispose();
}
}
和按鈕的代碼:
private void Button()
{
SoundPlayers.ButtonSound();
}
注意,我有我的另一個類聲音播放,和我使用DelegateCommands引用我的按鈕()方法等我也使用.wav文件。另外,是否有更高效的方法來實現我正在努力完成的任務?如果你需要別的東西,就問問。
謝謝!
如果*「[...]只是處置SoundPlayer將使其停止。」*是真的,那麼你真的不能像你所做的那樣將Play方法的調用放在使用塊中,或者? (我知道你想展示如何利用塊來代替try-finally-dispose,但在你的答案中,它似乎有點缺陷......) – elgonzo
我測試了這個,它確實有效,所以我當我說處置它停止聲音時,我錯了。看起來停止的聲音是再次調用'Play()'。謝謝! –
好的,如果我要發送垃圾郵件按鈕,它會播放x次點擊的完全相同的聲音? – Hypergyzed