System.Media.SoundPlayer.Play()冻结了GUI

时间:2010-08-26 10:55:13

标签: c# .net soundplayer

我正在尝试使用C#在.NET中实现一个简单的游戏。有一个球反弹物体,当它反弹时,我使用System.Media:SoundPlayer异步播放声音。问题在于,只要声音播放,大部分时间(并非总是)球在撞击时会冻结。

这种情况发生在Windows XP上,但不发生在Windows 7上。我使用的是.NET 3.5。 最奇怪的是,如果我打开应用程序Windows Media Player并播放几秒钟的mp3,问题就会消失。

这是我初始化SoundPlayer对象的代码:

System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream s = a.GetManifestResourceStream("Game.Resources.GameBounce.wav");
_playerBounce = new System.Media.SoundPlayer(s);
_playerBounce.Load();

......当球击中障碍物时,这条线被称为:     _playerBounce.Play();

我在这篇文章中也尝试过“尝试#4”: How to use System.Media.SoundPlayer to asynchronously play a sound file?

根据我在网上找到的一些建议,另一个绝望的尝试是将声音流保存到文件中,SoundPlayer在从文件初始化时效果更好。

这些尝试都没有奏效。

有什么想法吗?

0 个答案:

没有答案