1

我正在尝试使用 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”: 如何使用 System.Media.SoundPlayer 异步播放声音文件?

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

这些尝试都没有奏效。

有任何想法吗?

4

0 回答 0