我正在研究一种(至少是密切相关的)虚拟键盘,并希望包含一些点击声音。对于我刚刚使用的测试
SoundPlayer player = new SoundPlayer(Resource2.click);
player .PlaySync();
现在我显然不希望它成为Sync,因为它会冻结键盘。 相反,如果在上一次点击声音仍在播放时点击了一个新按钮,我宁愿第一个按钮停止,只需重新点击即可重新开始。对于每个按钮,它总是相同的声音,大约。 1秒长,但可能会有很多事件(打字速度)
所以我打算继续
//Startup
SoundPlayer player = new SoundPlayer(Resource2.click);
player.Load();
和
//ButtonClickEvent
player.Stop()
player.Play()
//More stuff
虽然环顾四周但我找到了这个帖子: How to use System.Media.SoundPlayer to asynchronously play a sound file?
我这样做的方式是他的尝试#1,但他似乎有一个问题:" SoundPlayer和嵌入的资源流没有立即处理"。 现在我不太清楚这是什么意思。如果我有许多不同的SoundPlayer对象,这只涉及内存问题吗?或者这是其他可能给我带来长期问题的东西,我在第一次测试中没有看到。这是我的主要问题。另外:有没有其他我忽略的可能会偶尔出现问题?例如。在没有多次运行时停止播放器?