mp3形式などのオーディオファイルを再生するにはどうすればいいのでしょうか? WAVE音声ファイルを再生する方法であればSoundPlayerクラスを使う方法があります。

ところがMIDI(.mid)やMP3(.mp3)形式などの再生機能は用意されていませんので、Win32 APIなどを使用する必要があります。

参考にしたサイト MIDI、MP3などの音楽ファイルを再生する – .NET Tips (VB.NET,C#…)

注意が必要なのは、停止しないと次に再生することができなくなることです。再生に必要な時間がわかっているのであればタイマーを使って停止させればよいのですが、ゲームの場合は再生している途中で次の音を再生しなければならない場合があります。そのときは途中で前の音の再生を中止すればよいのですが、これだとタイマーイベントが発生したとき、現在再生されているものが中止されてしまうという問題がおきます。

そこで中止するかどうかのbool変数をリストに保存してしまいます。途中で新しく再生がはじまったときはすでに停止されているのでタイマーイベントが発生しても中止する必要はありません。