我正在设置一个警报,该警报会弹出一个对话框,其中包含用户可以选择的多个声音文件选项。我遇到的问题是在本地创建一个声音播放器,我可以用一个按钮关闭它。我遇到的问题是当我关闭表单时声音一直在循环,因为按钮单击事件中不存在 SoundPlayer。
这就是我所拥有的:
void callsound()
{
if (SoundToggle == 0) // if sound enabled
{
if ((SoundFile == 0) && (File.Exists(@"attention.wav")))
{
System.Media.SoundPlayer alarm = new System.Media.SoundPlayer(@"attention.wav");
alarm.PlayLooping();
}
if ((SoundFile == 1) && (File.Exists(@"aahh.wav")))
{
System.Media.SoundPlayer alarm = new System.Media.SoundPlayer(@"aahh.wav");
alarm.PlayLooping();
}
}
private void button1_Click(object sender, EventArgs e)
{
//alarm.Stop(); Only works if SoundPlayer declared at class level
this.Close();
}
有没有办法通过声明我所在的 SoundPlayer 实例来做我想做的事情?或者有没有办法在类级别声明它,并且仍然能够根据用户设置更改声音文件?