我一直在试图让这个按钮来做一些我想要的东西。当我按下它时,我希望它能发出声音,这正是我设法做到的。但是,每当你按下按钮时,它就像应用程序冻结一样,给予声音所有的注意力,等等。所以基本上我的目标是让按钮播放声音,而不必让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