C#を使用して.NETで簡単なゲームを実装しようとしています。オブジェクトに対してバウンドするボールがあり、バウンドすると、System.Media:SoundPlayerを使用して非同期でサウンドを再生します。問題は、ほとんどの場合(常にではない)、サウンドが再生されている限り、インパクト時にボールがフリーズすることです。
これはWindowsXPで発生しますが、Windows7では発生しません。私は.NET3.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();
この投稿で「Attempt#4」も試しました: System.Media.SoundPlayerを使用してサウンドファイルを非同期で再生するにはどうすればよいですか?
ネット上のどこかで見つけたアドバイスに基づくもう1つの必死の試みは、サウンドストリームをファイルに保存することでした。これは、SoundPlayerがファイルから初期化されたときにうまく機能することです。
それらの試みはどちらもうまくいきませんでした。
何か案は?