我想要的是当警报仍然响起时,持续播放声音2秒钟。但是声音是可以互换的。如果zone1已打开,则zone1警报将继续循环。但是如果zone1和zone2处于打开状态,则zone1警报播放,然后更改为zone2警报播放,并继续进行直到该区域之一关闭。当所有区域都关闭时,alarmstillon会变为假。
while (alarmStillOn == true)
{
if(alarmStillOn == false)
{
break;
}
bool repeat = true;
Console.WriteLine("RunThisCode");
if (zone1On == true && repeat == true)
{
repeat = false;
Console.WriteLine("TurnOnZone1");
System.Media.SoundPlayer player = new System.Media.SoundPlayer("test1.wav");
player.Play();
Thread.Sleep(3000);
}
if (zone2On == true && repeat == true)
{
repeat = false;
Console.WriteLine("TurnOnZone2");
System.Media.SoundPlayer player = new System.Media.SoundPlayer("test2.wav");
player.Play();
Thread.Sleep(2000);
}
repeat = false;
}
很明显,我的代码无法正常工作。它只是重复运行zone1,而不会更改为zone2,并且当Alarmstillon变为false时甚至无法爆发。
有什么主意吗?