[英]Playing two sound simultaneously with loop c#
我有背景音乐和一个正在播放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.");
}
}
尝试使用线程
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();
我猜Player
是您班级的一个领域,因此您正在用按钮声音覆盖包含循环wav文件的第一个实例。 使用两个SoundPlayer
实例(每个声音一个),并且不需要线程。
另外,您应该将PlaySync()
更改为Play()
,因为Play()
和PlayLooping()
将在内部使用线程,而PlaySync()
将阻止当前线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.