次のように音楽クラスを作成しました。
public class Music
{
public void StartMusic()
{
WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
wplayer.URL = "Resources/music3.MID";
wplayer.controls.play();
}
}
メイン画面で、次のように新しいスレッドを開始します。
Music music = new Music();
thread = new Thread( new ThreadStart(music.StartMusic));
thread.Start();
現在、画面を起動すると音楽が再生されますが、問題は、UI を操作してボタンまたはエキスパンダーをクリックするとすぐに、音楽スレッドが停止することです。興味深いことに、MusicPlayer の代わりに SoundPlayer を使用すると、すべて問題なく動作します。SoundPlayer のコードは次のとおりです。
public void StartMusic()
{
SoundPlayer sound = new SoundPlayer("Resources/music1.wav");
sound.PlayLooping();
}