Я работаю над настройкой будильника, который появляется в виде диалога с несколькими параметрами звукового файла, из которых пользователь может выбирать. У меня проблема с созданием звукового проигрывателя на местном уровне, который я могу закрыть кнопкой. У меня проблема в том, что звук закрывается, когда я закрываю форму, потому что 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, где я нахожусь? Или есть способ объявить это на уровне класса и при этом иметь возможность изменять звуковой файл в зависимости от настроек пользователя?