C# Windows Media Player在新线程上无法正常工作
我上了一堂音乐课,内容如下:C# Windows Media Player在新线程上无法正常工作,c#,wpf,multithreading,C#,Wpf,Multithreading,我上了一堂音乐课,内容如下: public class Music { public void StartMusic() { WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer(); wplayer.URL = "Resources/music3.MID"; wplayer.controls.play();
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();
}
通过在startMusic()方法之外创建WindowsMediaPlayer对象,我已经解决了这个问题。真是个愚蠢的错误。请将此标记为问题的答案。是的,但stackoverflow不允许我在明天之前将此标记为答案。