我有一个背景音乐,还有一个播放1~2秒音效的按钮。我想做的是让背景音乐在按钮声音播放后仍能继续播放。
目前,它正在永久停止播放背景音乐,以播放声音按钮。
这就是我现在拥有的解决方案
private void LoginGUI_Load(object sender, EventArgs e)
{
try
{
string filename = @"..\..\Soundtracks\The Boy Who Shattered Time.wav";
Player = new System.Media.SoundPlayer(filename);
Player.PlayLooping();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Unable to play soundtrack.");
}
}
这是按钮
public virtual void getButtonSound()
{
try
{
string filename = @"..\..\Soundtracks\demacia.wav";
Player = new System.Media.SoundPlayer(filename);
Player.PlaySync();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Unable to play soundtrack.");
}
}
发布于 2016-02-14 03:59:57
尝试使用线程
new System.Threading.Thread(() => {
var c = new System.Windows.Media.MediaPlayer();
c.Open(new System.Uri(@"..\..\Soundtracks\The Boy Who Shattered Time.wav"));
c.PlayLooping();
}).Start();
new System.Threading.Thread(() => {
var c = new System.Windows.Media.MediaPlayer();
c.Open(new System.Uri(@"..\..\Soundtracks\demacia.wav"));
c.Play();
}).Start();
发布于 2016-02-14 04:15:21
我猜Player
是你的类的一个字段,所以你用你的按钮声音覆盖了包含循环wav文件的第一个实例。使用两个SoundPlayer
实例-每个声音一个-应该不需要线程。
您还应该将PlaySync()
更改为Play()
,因为Play()
和PlayLooping()
将在内部使用线程,而PlaySync()
将阻塞当前线程。
https://stackoverflow.com/questions/35384634
复制相似问题