信息:我正在使用Visual Studio 2017中的C#创建游戏
我该如何停止音乐线程?即使来自不同的窗体,这是否可能? 我使用了以下代码创建在后台播放音乐的线程:
MediaPlayer bg;
public void main()
{
IntializeComponent();
Bg_music();
}
private void Bg_music()
{
new System.Threading.Thread(() =>
{
bg = new System.Windows.Media.MediaPlayer();
bg.Open(new System.Uri(path + "Foniqz_-_Spectrum_Subdiffusion_Mix_real.wav"));
bg.Play();
}).Start();
}
当我尝试使用这段代码停止线程时,它会停止当前打开的窗口,但音乐/线程仍会继续播放音乐。
bg.Dispatcher.Invoke(() =>
{
bg.Close();
});
同时这个方案没有奏效
bg.Dispatcher.Invoke(() =>
{
bg.Stop();
});
Play()
不会阻塞用户界面。 - Panagiotis KanavosPlay()
不会阻塞,而且最好使用MediaPlayerElement标记。请查看使用MediaPlayer播放音频和视频标记。 - Panagiotis Kanavos