我制作了一个音乐课程如下:
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上进行交互,单击按钮或扩展器,音乐线程就会停止。有趣的是,如果我使用SoundPlayer而不是MusicPlayer,一切正常。以下是SoundPlayer的代码:
public void StartMusic()
{
SoundPlayer sound = new SoundPlayer("Resources/music1.wav");
sound.PlayLooping();
}
答案 0 :(得分:2)
我已经通过在startMusic()方法之外创建WindowsMediaPlayer对象解决了这个问题。这样一个愚蠢的错误。